
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 に関連する侵害のすべての証拠を発見することを保証するものではありません。 システム上で侵害の兆候が特定された場合、組織は侵害されたシステムのフォレンジック調査を実施して、インシデントの範囲と程度を判断する必要があります。 このツールは現状のままで提供され、保証はありません。
スタンドアロンの Bash スクリプトは、このリポジトリの Releasesタブ からダウンロードしてください。 ソースディレクトリを 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 スキャナへの貢献をご検討ください。 可能な限り最も完全で正確なスキャナを提供したいと考えています。
主な目標は、信頼性の高い侵害指標を報告することです。 ユーザーはこのツールの出力を基にさらなる調査を開始する可能性があるため、無駄な調査をさせないことが重要です。 したがって、単純なスキャンなどの活動はデフォルトモードでは報告されるべきではありません。 アクターがシステムへのアクセスを取得した、情報を取得した、またはコンテンツを作成したという証拠は常に報告されるべきです。
Citrix ADC アプライアンス間で共通の環境であるため、このツールを Bash スクリプトとして提供しています。 以下が 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 ツールを使用してスタンドアロンスクリプトをビルドできます。
これにより、主要なスクリプトとサポートリソースが1つのバンドルにパッケージ化されます。
実行時に、一時ディレクトリに展開され、そこから実行され、その後クリーンアップされます。
ビルドするには:
$ bash ./build.sh > ioc-scanner-CVE-2019-19781-rev$(git rev-parse HEAD | cut -c 1-8).sh
FireEye による CVE-2019-19781 および実際の悪用に関する追加情報については、以下を参照してください。
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 |