
CVE-2019-19781 の侵害兆候スキャナー
このリポジトリには、CVE-2019-19781に関連するCitrix ADCアプライアンスの侵害を検出するためのユーティリティが含まれています。 このユーティリティとそのリソースは、FireEye Mandiantの調査中に収集された侵害指標をエンコードしています。 詳細については、このツールのリリースを発表したブログをご覧ください。
要約すると、このユーティリティは次のことを行います:
次のことはしません:
コミュニティからのフィードバックにより、このツールの検出はより徹底される可能性があります。 問題、アイデア、フィードバックがある場合は、issueを開く、PRを提出する、または作者に連絡するしてください。
このスキャナは以下を識別できます:
CVE-2019-19781の侵害指標(IoC)スキャナは、CVE-2019-19781の悪用に関連するインシデント対応の経験から得た知識に基づいて、FireEye MandiantとCitrixが共同で開発しました。 スキャナの目標は、利用可能なログソースとシステムフォレンジックアーティファクトを分析し、CVE-2019-19781の悪用成功の証拠を特定することです。 このツールが達成できることには限界があり、したがって、ツールの実行はシステムが侵害されていないことの保証とみなされるべきではありません。 例えば、侵害の証拠があるシステム上のログファイルは切り詰められたりローテーションされたりしている可能性があり、システムが再起動された可能性があり、攻撃者が侵害の証拠を除去するためにシステムを改ざんした可能性があり、および/または侵害の証拠を隠すルートキットをインストールした可能性があるなどです。
このツールの出力は、次の3つのカテゴリのいずれかに分類されます:
侵害の証拠。これがデフォルトです。
このカテゴリに該当する証拠は、デバイスが正常に侵害されたことを示します。
これは、情報を開示するコマンドの実行(例:ns.conf や smb.conf 設定ファイルの表示)から、
バックドアのインストール(例:NOTROBIN、コインマイナーなど)、
またはPerlベースのWebシェルのドロップまで、さまざまです。
脆弱性スキャン成功の証拠 (これは、許可されたシステム管理者または許可されていない攻撃者である可能性があります)。 このカテゴリに該当する証拠は、システムが脆弱な状態にあった(例えば、緩和策が適用されていなかった)ことと、 CVE-2019-19781を悪用するための少なくとも最初のステップが成功したことを示します。
脆弱性スキャン失敗の証拠。 このカテゴリに該当する証拠は、システムをスキャンまたは悪用しようとする試みが失敗したことを示します。
このツールは、すべての侵害の証拠、またはCVE-2019-19781に関連するすべての侵害の証拠を見つけることを保証するものではありません。 システム上で侵害の兆候が特定された場合、組織は侵害されたシステムのフォレンジック調査を実施し、インシデントの範囲と程度を判断する必要があります。 このツールは現状有姿で提供され、保証はありません。
このリポジトリのReleasesタブからスタンドアロンのBashスクリプトをダウンロードしてください。 ソースディレクトリをCitrix ADCアプライアンスにコピーすることは可能ですが、推奨されません。
IoCスキャナは、Citrix ADCアプライアンス上で直接実行できます。
このモードでは、ツールはファイル、プロセス、ポートをスキャンして既知の指標を探します。
ツールは診断メッセージをSTDERRストリームに、結果をSTDOUTストリームに書き込みます。
通常の使用では、STDOUTをファイルにリダイレクトして確認する必要があります。
ライブモードでは、Citrix ADCアプライアンス上でrootとして実行する必要があります。
例えば:
$ sudo bash ./ioc-scanner-CVE-2019-19781-v1.1.sh > "/tmp/results-$(date).txt"
このツールは、以下の製品で使用するように設計されています:
IoCスキャナは、マウントされたフォレンジックイメージを検査することもできます。 このシナリオでは、イメージのルートディレクトリへのパスを指定するコマンドライン引数を渡します。 オフラインモードで実行するためにrootである必要はありません。
例えば:
$ bash ./ioc-scanner-CVE-2019-19781-v1.1.sh /mnt/path/to/evidence/root/
どちらのモードでも、ツールはサポートコードを一時ディレクトリに展開します。このディレクトリはスクリプトの終了時に削除されます。 ツールはシステムにそれ以上の変更を加えませんが、ログエントリが生成される可能性があります。
すべてのフォレンジック分析と同様に、ライブレスポンスよりもddイメージに対するオフライン分析を推奨します。
これにより、ツールが関連する証拠を上書きする可能性が排除されます。
詳細については、よくある質問を参照してください。
侵害を特定するさらなる方法を考案された場合は、このIoCスキャナへのコントリビューションをご検討ください。 できる限り徹底的で正確なスキャナを提供したいと考えています。
主な目標は、信頼性の高い侵害指標を報告することです。 ユーザーはこのツールの出力に基づいてさらなる調査を開始する可能性があるため、無駄な追跡をさせないことが重要です。 したがって、単純なスキャンなどの活動はデフォルトモードでは報告されるべきではありません。 アクターがシステムにアクセスし、情報を取得し、またはコンテンツを作成した証拠は常に報告されるべきです。
このツールをBashスクリプトとして提供するのは、Citrix ADCアプライアンス間で共通の基盤だからです。 Citrix ADCリリースの機能マトリックスは以下の通りです:
GoがFreeBSD/NetScalerを標的にするマルウェアを見かけることがありますが、GoはFreeBSD 6.xをサポートしていません。
./tests/ ディレクトリには、侵害の証拠を含むスパースファイルシステムイメージを保持しています。
既知のパスやブラックリストコンテンツなどのIoCをこのツールに追加する際は、テスト用の証拠の例を提供してください。
単体テストは、LinuxまたはmacOSシステムで次のように実行できます:
$ bash ./tests/test.sh
runnning test: access-logs
runnning test: xml-template
runnning test: crontab
runnning test: var-cron-tabs-nobody
runnning test: error-logs
runnning test: file-system
runnning test: netscalerd
runnning test: notrobin-tmp-init
runnning test: notrobin-var-nstmp-nscache
runnning test: ns-content
runnning test: chr-encoded-template
runnning test: copied-ns-conf
runnning test: curl-in-template
runnning test: perms
runnning test: var-tmp-netscaler-portal-templates
runnning test: var-vpn-bookmark
runnning test: webshell-in-scripts
runnning test: shell-history
runnning test: bash_log
runnning test: notice_log
ソースリポジトリをチェックアウトしたら、./build.sh ツールを使用してスタンドアロンスクリプトをビルドできます。
これにより、プライマリスクリプトとサポートリソースが単一のバンドルにパッケージ化されます。
実行時に、一時ディレクトリに展開され、そこから実行され、その後クリーンアップされます。
ビルドするには:
$ bash ./build.sh > ioc-scanner-CVE-2019-19781-rev$(git rev-parse HEAD | cut -c 1-8).sh
CVE-2019-19781および実際の悪用に関するFireEyeからの追加情報については、以下をご参照ください:
CVE-2019-19781への対応はセキュリティ業界全体で重要な取り組みであり、これらのブログでは、このツールのユーザーにとって価値のある追加の貢献を多く引用しています。 環境内の活動を最もよく理解するために、これらの投稿からリンクされている資料を読むことをお勧めします。 いつものように、FireEye Mandiantチームは、こちらからお問い合わせいただくことで、フォローアップの質問や調査のさらなる支援を提供できます。
| NetScaler バージョン | OS | 利用可能な言語 |
|---|
| 13.0 | FreeBSD 8.4 | Bash, Perl, Python |
| 12.1 | FreeBSD 8.4 | Bash, Perl, Python |
| 12.0 | FreeBSD 8.4 | Bash, Perl, Python |
| 11.1 | FreeBSD 8.4 | Bash, Perl |
| 10.5 | FreeBSD 8.4 | Bash, Perl |
| 10.1 | FreeBSD 6.3 | Bash, Perl |
| 9.3 | FreeBSD 6.3 | Bash, Perl |