
OMIGOD! OM I GOOD? は、Wizの脅威調査チームが発見した「OMIGOD」脆弱性の1つ(具体的にはCVE-2021-38647)に対して脆弱なVMを検出する無料スキャナーです。
このリポジトリには、Wiz の脅威リサーチチームが発見した「OMIGOD」脆弱性の1つ、具体的には CVE-2021-38647 に対して脆弱な VM を検出する無料のスキャナが含まれています。
Wiz による元のブログ記事: https://www.wiz.io/blog/omigod-critical-vulnerabilities-in-omi-azure
このスキャナは、Azure API に接続するための Azure 資格情報を必要とし、サブスクリプションとリソースグループを指定すると(デフォルトでは利用可能なすべてをスキャンします)、Linux VM の一覧を取得し、そのマシンが脆弱である可能性があるかどうかを報告します。
また、この目的のために Microsoft の公式ツールも確認してください: https://github.com/microsoft/OMS-Agent-for-Linux/tree/master/tools/OMIcheck
Azure API に対する認証には、azure cli(デフォルト)と Interactive Browser 認証の両方がサポートされています。--auth コマンドラインパラメータを確認してください。
Linux マシン自体でコマンドを実行せずに、マシンが OMI に対して脆弱かどうかを判断する簡単な方法はありません。これは、拡張機能を介した RunShellScript コマンドを使用して Azure API 経由で実行できます。Microsoft の公式ツール(https://github.com/microsoft/OMS-Agent-for-Linux/tree/master/tools/OMIcheck)もこの方法を使用しています。
なお、VM が脆弱であっても、OMI サーバーが HTTP/HTTPS(デフォルト)で公開されていない可能性があり、公開されている場合でも、そのポートが Azure のネットワークセキュリティグループによってブロックされ、到達不能になっている可能性があります。これはパッチ適用を避ける理由にはなりませんが、脆弱な Linux VM が多数ある場合、どの VM がより露出しているかを把握し、対策の優先順位を決めるのに役立つかもしれません。
omigood はこのより包括的なアプローチに従い、攻撃対象領域を把握するためにコマンドラインオプションで実行できる多数のチェックを備えた JSON 出力を生成します。
omigood によって実行されるチェックは次のとおりです:
1.13.40 である必要があります。実行するスクリプトは こちら で確認できます。-e コマンドラインオプションで有効にします。-r コマンドラインオプションで有効にします。自己責任で使用してください!/usr/bin/id コマンドを実行して、マシンのパブリック IP への攻撃を試みます。このチェックはオプションであり、VM の悪用を試みることを伴います。-a コマンドラインオプションで有効にします。テストを許可されたターゲットにのみ使用してください。自己責任で使用してください!生成された JSON 出力ファイルには、スキャンされた VM に関するすべての情報(ID、オペレーティングシステム、ネットワークセキュリティグループ、電源状態など)が含まれます。
チェックに関連するフラグ('YES'/'NO')は次のとおりです:
YES。1.13.40 より低い場合は YES。YES。YES。-e コマンドラインオプションでのみ。1.6.8-1 より低いと判断された場合は YES。-r コマンドラインオプションでのみ。YES。-r コマンドラインオプションでのみ。YES。-r コマンドラインオプションでのみ。usage: omigood_scanner.py [-h] [-v] [--auth {azurecli,interactivebrowser}] [-r] [-a] [-e] [-s SUBSCRIPTIONS]
[-g RESOURCEGROUPS] [-m VMS] -o OUTPUT
OMIGood scanner for CVE-2021-38647
optional arguments:
-h, --help show this help message and exit
-v, --verbose [OPTIONAL] Verbose mode: Displays additional debug details.
--auth {azurecli,interactivebrowser}
Authentication mode. Default: azurecli.
-r, --runscript [OPTIONAL] Run Script. Runs bash script on target VMs to check for OMI server, agent and
version. Disabled by default. Use at your own risk.
-a, --attack [OPTIONAL] Try to attack the host. Disabled by default. Use at your own risk.
-e, --effective [OPTIONAL] Check Effective Security Rules. Disabled by default. Requires higher permissions on
Azure.
-s SUBSCRIPTIONS, --subscriptions SUBSCRIPTIONS
[OPTIONAL] Comma separate list of subscriptions IDs. If not specified, it will try all.
-g RESOURCEGROUPS, --resourcegroups RESOURCEGROUPS
[OPTIONAL] Comma separated list of Resource Group names. If not specified, it will try all. If
specified, it will work only with a single subscription provided.
-m VMS, --vms VMS [OPTIONAL] Comma separated list of VM names. If not specified, it will try all. If specified,
it will work only with a single subscription and a single resource group provided.
-o OUTPUT, --output OUTPUT
JSON output file with results.
このリポジトリで提供されるソフトウェアおよびコードサンプルは、明示的または黙示的を問わず、いかなる種類の保証もなく「現状のまま」提供されます。自己責任で使用してください。