1,本脆弱性の概要
FortiOSおよび、FortiProxy製品において、代替パスまたは代替チャネルを使用した認証バイパスの脆弱性 [CWE-288]により、リモートの不正アクセス者(攻撃者)は Node.jsocket Web モジュールへの不正なリクエストを経由してスーパー管理者権限を取得できる可能性があります。
なお、この脆弱性が悪用された事例が報告されています。
下記に該当するバージョンをご利用のお客様は、速やかに対応策バージョンへのアップグレードを実施していただきますようお願い申し上げます。
3,影響バージョンと対応策
バージョン | 影響を受けるバージョン | 対応策 |
FortiOS 7.6 | 影響なし | 該当なし |
FortiOS 7.4 | 影響なし | 該当なし |
FortiOS 7.2 | 影響なし | 該当なし |
FortiOS 7.0 | 7.0.0 ~ 7.0.16 | 7.0.17以上にアップグレード |
FortiOS 6.4 | 影響なし | 該当なし |
FortiProxy 7.6 | 影響なし | 該当なし |
FortiProxy 7.4 | 影響なし | 該当なし |
FortiProxy 7.2 | 7.2.0 ~ 7.2.12 | 7.2.13以上にアップグレード |
FortiProxy 7.0 | 7.0.0 ~ 7.0.19 | 7.0.20以上にアップグレード |
FortiProxy 2.0 | 影響なし | 該当なし |
4,IOC(Indicator of Compromise)
以下のログはIOCの可能性があります
ランダムなsrcipとdstipを持つ以下のログインアクティビティログ:
type="event" subtype="system" level="information" vd="root" logdesc="Admin login successful" sn="1733486785" user="admin" ui="jsconsole" method="jsconsole" srcip=1.1.1.1 dstip=1.1.1.1 action="login" status="success" reason="none" profile="super_admin" msg="Administrator admin logged in successfully from jsconsole"
ランダムに生成されたと思われるユーザー名と送信元IPを含む管理者作成ログ:
type="event" subtype="system" level="information" vd="root" logdesc="Object attribute configured" user="admin" ui="jsconsole(127.0.0.1)" action="Add" cfgtid=1411317760 cfgpath="system.admin" cfgobj="vOcep" cfgattr="password[*]accprofile[super_admin]vdom[root]" msg="Add system.admin vOcep"
上記のログで攻撃者が使用しているIPアドレスは、主に以下の通り:
1.1.1.1
127.0.0.1
2.2.2.2
8.8.8.8
8.8.4.4
上記のIPパラメータは攻撃者の制御下にあるため、他のIPアドレスが使われる可能性があります。
また、sn と cfgtid は攻撃とは関係ありません。
観測されたケースで脅威アクター(TA)が実行した操作は、以下の一部またはすべてでした:
- デバイス上にランダムなユーザー名で管理者アカウントを作成する。
- デバイス上にランダムなユーザー名でローカル・ユーザー・アカウントを作成する。
- ユーザーグループの作成、または既存の sslvpn ユーザーグループへの上記ローカルユーザーの追加
- その他の設定の追加/変更(ファイアウォールポリシー、ファイアウォールアドレスなど)
- 上記で追加したローカルユーザーでsslvpnにログインし、内部ネットワークへのトンネルを取得する。
TAによって作成された管理者またはローカルユーザーはランダムに生成されます:
Gujhmk
Ed8x4k
G0xgey
など
さらに、TAは以下のIPアドレスを使用していることが確認されています:
45.55.158.47 [最も使用されているIPアドレス]
87.249.138.47
155.133.4.175
37.19.196.65
149.22.94.37
5,回避策
・HTTP/HTTPS管理インターフェイスを無効にする。
・または、ローカルインポリシーで管理インターフェイスに到達できるIPアドレスを制限します:
config firewall address
edit "my_allowed_addresses"
set subnet
end
次にアドレスグループを作成します:
config firewall addrgrp
edit "MGMT_IPs"
set member "my_allowed_addresses"
end
管理インターフェイス(ここではポート1)上の定義済みのグループのみにアクセスを制限するローカルインポリシーを作成します:
config firewall local-in-policy
edit 1
set intf port1
set srcaddr "MGMT_Ips"
set dstaddr "all"
set action accept
set service HTTPS HTTP
set schedule "always"
set status enable
next
edit 2
set intf "all"
set srcaddr "all"
set dstaddr "all"
set action deny
set service HTTPS HTTP
set schedule "always"
set status enable
end
デフォルト以外のポートを使用する場合は、GUI管理アクセス用に適切なサービスオブジェクトを作成します:
config firewall service custom
edit GUI_HTTPS
set tcp-portrange 443
next
edit GUI_HTTP
set tcp-portrange 80
end
前途のローカルインポリシーにおいて 「HTTPS HTTP」の代わりに、これらのオブジェクトを使用してください。
なお、trusthost機能はすべての管理者ユーザーに設定されている場合にのみ、上記のローカルインポリシーと同様の効果があることに注意が必要です。
そのためローカルインポリシーにて対応することが推奨されます。
5,詳細情報
詳細につきましては、以下のURLをご参照ください。
[Fortinet PSIRT Advisory FG-IR-24-535] (https://fortiguard.fortinet.com/psirt)
[CWE-288] https://cwe.mitre.org/data/definitions/288.html