カスタマー・ポータルサポートを利用カスタマー・サポート疑問を解決プログラムサポートに関するお知らせサポート対象製品コミュニティドキュメント・ポータルサポートFireEyeは、専門家が24時間365日体制で対応するグローバルサポート・ネットワークを構築しています。パートナー様を支援する登録制ポータルサイト。案件登録、トレーニング情報にアクセスできます。Mandiantインシデントレスポンス・チームはCVE-2019-19781の悪用に起因する侵入への対応に追われてきました。ADCに対する数十件の攻撃を分析した結果、Post-exploitation活動をする複数のグループを確認しました。これらの中で、目を引くものがありました。ある特定の攻撃者が、我々が作成したコード・ファミリーNOTROBINと呼ばれる、これまで観測されたことのないペイロードを展開していました。脆弱なNetScaler機器にアクセスすると、この攻撃者は既知のマルウェアを削除し、その後の攻撃をブロックするためにNOTROBINを展開します。NOTROBINは秘密のパスフレーズを知る人のためにバックドアのアクセスを維持しているので、すべてが想定するようにはいきません。FireEyeでは、この攻撃者が後続のキャンペーン攻撃のために、NetScalerデバイスへのアクセスを静かに収集している可能性があると考えています。ネットワーク内部への侵入この攻撃者は、CVE-2019-19781を使用してNetScalerデバイスを悪用し、侵害されたデバイスでシェルコマンドを実行します。POSTリクエストを発行して、脆弱なCGIスクリプトnewbm.plにペイロードを送信します。図1は、エクスプロイトを記録するWebサーバー・アクセス・ログ・エントリーです。POSTリクエストを使用して、デバイスを悪用しているように見えます。GETは観察されませんでした。残念ながら、POST本文のコンテンツを復元して、どのように機能するかを確認していません。いずれにしても、エクスプロイトは、図2に示すBashワンライナーを侵害されたシステム上で実行します。OKを約束します(CVE-2019-19781)」に記載した方法論と同じです。この一連のコマンドの影響には、次のものがあります。実行中のすべてのnetscalerdインスタンス(NetScalerデバイスに展開された仮想通貨マイニング・ユーティリティに使用される共通のプロセス名)を強制終了し、削除する。隠しステージング・ディレクトリ/tmp/.initを作成し、NOTROBINをそこにダウンロードし、実行権限を有効にする。持続性を維持するため、cronデーモンを使って/var/nstmp/.nscache/httpdをインストールする。これは、NOTROBINが自分自身をコピーするためのパスです。手動でNOTROBINを実行する。ここで多くが解凍されます。注目すべき点として、攻撃者はCVE-2019-19781の脆弱性を利用して、NetScalerデバイスを標的にすることで知られるマルウェアを削除します。仮想通貨マイナーは、CPUをほぼ100%使用するプロセスを探すだけなので、一般に特定が簡単です。これらの不要なユーティリティをアンインストールすることで、攻撃者は、管理者がNetScalerデバイスへの明らかな侵害を見逃してしまう可能性を狙っています。攻撃者はcurlを使用して、廃止されたWordPressサイトと思われるIPアドレス95.179.163[.]186を持つホスト・サーバーから、NOTROBINを取得します。FireEyeは、このサーバー上でホストされている多くのペイロードを特定しました。それぞれのペイロードは、組み込みの認証キーを先頭にした名前が付けられています。興味深いことに、FireEyeでは、複数のクライアントで同じペイロードが再利用されるのを確認したことがありません。ペイロードを分けることは、攻撃者が運用上のセキュリティを警戒していることを示します。syslogエントリーを復元し、NOTROBINの持続的なインストールを確認しました。これらのエントリーは、ネットワーク内部への侵入の直後に現れます。これは、NetScalerデバイスをトリアージするための安定した侵害インジケーター(IOC)です。次に、NOTROBINの機能に注目します。1.10で記述され、BSD系の64ビットELFバイナリにコンパイルされたユーティリティです。ファイル名のパターンとコンテンツ特性に一致するファイルを定期的にスキャンし、削除します。その目的は、CVE-2019-19781の脆弱性に対する攻撃の試みを阻止することにあるように思われますが、FireEyeは、NOTROBINが侵害されたシステムへのバックドア・アクセスを提供すると考えています。実行時、NOTROBINはパス/var/nstmp/.nscache/httpdから必ず実行されます。ない場合、ユーティリティは自身をこのパスにコピーし、新しいコピーを生成してから、自身を終了します。これにより、プロセスを/tmp/(長時間実行されるプロセスの実行が疑われる場所)からNetScaler関連の隠しディレクトリと思われる場所に移行することで、検知の隠れ蓑を提供します。これでプロセスが開始されます。エクスプロイトを定期的にチェックするルーチンと、エクスプロイトを削除するルーチンの、2つのルーチンを生成します。1秒ごとに、NOTROBINはディレクトリ/netscaler/portal/scripts/内で最近14日間で作成されたエントリーを検索し、ファイル名またはファイル・コンテンツにハードコードされたキー(例:64d4c2d3ee56af4f4ca8171556d50faa)が含まれていなければ、それらを削除します。オープンソースのレポートでは、一部の攻撃者が、CVE-2019-19781を悪用した後で、このディレクトリにスクリプトを書き込むことを示しています。したがって、このルーチンは、PersonalBookmark.plなどの一般に知られているペイロードのシステムを削除すると考えられます。1秒間に8回、NOTROBINは、ディレクトリ/netscaler/portal/templates/内で.xml拡張子を持つファイルを検索します。このディレクトリは、CVE-2019-19781のエクスプロイトが攻撃者コマンドを含むテンプレートの書き込み先です。NOTROBINは、ProjectZeroIndiaエクスプロイトで見つかったような潜在的なエクスプロイト・コードに一致する可能性のある、文字列blockまたはBLOCKのいずれかを含むファイルを削除しますが、ファイル名に秘密キーを含むファイルは削除しません。FireEyeでは、攻撃者は、侵害されたNetScalerデバイスへのバックドア・アクセスを維持しながら、CVE-2019-19781の脆弱性の悪用を阻止するためにNOTROBINを展開している、と考えています。緩和策は機能しており、NetScalerテンプレート内で見つかる準備用のエクスプロイト・コードを、それが呼び出される前に削除します。攻撃者がその後に続く攻撃時にハードコードされたキーを提供する場合、NOTROBINはペイロードを削除しません。これにより、攻撃者はその後で脆弱なデバイスにアクセスできるようになります。多数の調査を通して、FireEyeは、攻撃者が一意のキーを持つNOTROBINを展開していることを確認しました。異なるバイナリ・ファイルから、100個近くのキーを復元しました。これらはMD5ハッシュのように見えますが、FireEyeはどの平文にも復元できていません。複雑でユニークなキーを使用することで、他の攻撃者やFireEyeなどのサードパーティが、NOTROBINで「保護」されているNetScalerデバイスを検索することは難しくなります。この攻撃者は、強力なパスワードポリシーを持っているようです。攻撃者は、NOTROBIN内で見つかった文字列に基づいて、キーにちなんだ名前を付けたソースコード・ファイルを使用してGoプロジェクトにキーをインジェクションしているように見えます。図4および図5は、このようなファイル名の例を示しています。Integrationセットアップを「tmpl_ci」が参照しているのではないかと考えています。元のソースを失った後で攻撃者がバックアップに戻す必要がなくなることも期待しています。未解決の質問NOTROBINは、UDPポート18634をリッスンしてデータを受信するバックグラウンド・ルーチンを生成しますが、データを検査せずにドロップします。このロジックを図6に示します。FireEyeでは、この動作の目的をまだ明らかにしていません。DCSOは、このポートではアクティブにできるリスナーは1つのみであるため、mutexとして使用されるとする説得力のあるケースを示しています。図6:UDPトラフィックをドロップするNOTROBINのロジック実装コードが削除された空の関数main.install_cronもあります。そのため、代わりに、これらはNOTROBINの初期バージョンの証拠となるかもしれません。いずれにせよ、UDPポート18634でリッスンするNetScalerデバイスは信頼できるIOCです。図7は、侵害されたNetScalerデバイスでのopenファイル・ハンドルの一覧表示の例を示しています。18634でリッスンしているポートも含まれます。図7:侵害されたNetScalerデバイスのファイル・ハンドルのリストNOTROBINの有効性1つのエンゲージメントの最中に、FireEyeは、攻撃者がNOTROBINをデプロイする前後の両方で、1つのデバイスに対するNetScalerの悪用の試みをフォレンジック調査した証拠をレビューしました。1月12日以前、つまりNOTROBINがインストールされる前、FireEyeは、複数の攻撃者が攻撃を仕掛けたことを確認しました。続く3日間で、NOTROBINによって十数回の攻撃が阻止されました。言い換えると、NOTROBINは、さらなる侵害から脆弱なデバイスを保護しました。図8には、失敗したエクスプロイトの試みを記録するログメッセージを示します。404("見つかりません")を返します。NOTROBINは、不正なテンプレートが作成された直後と、他の攻撃者が使用できるようになる前に、そのテンプレートを削除しました。FireEyeは、この攻撃者がNOTROBINバックドアに戻ってきたかどうかは、まだ確認していません。結論FireEyeは、NOTROBINの背後に隠れた攻撃者が、今後のキャンペーン攻撃に備えて、NetScalerデバイスを日和見的に侵害する可能性があると考えています。Citrixセキュリティ情報CTX267027を読み込んだ後に、デバイスをチェックする管理者による検知を回避するため、他の既知のマルウェアが削除される可能性があります。NOTROBINは、侵害されたデバイス上でCVE-2019-19781を緩和しますが、秘密鍵を持つ攻撃者のバックドアを維持します。攻撃者が戻ってくるのをまだ確認していませんが、インターネットを他の攻撃者から保護するロビンフッドの役割を果たせているかどうかは懐疑的です。IOCと開示手続き表1に、FireEyeが特定したNOTROBIN亜種に一致するインジケーターを示します。ドメインvilarunners[.]catは、NOTROBINペイロードをホストしているWordPressのサイトです。ドメインは、観察された攻撃の間に95.179.163[.]186に解決されました。1月15日現在、vilarunners[.]catドメインは現在、解決済みの新しいIPアドレス80.240.31[.]218になっています。次のVTIクエリーを使用すれば、VirusTotalでNOTROBIN亜種を特定できます。vhash:"73cee1e8e1c3265c8f836516c53ae042"vhash:"e57a7713cdf89a2f72c6526549d22987"vHashの実装は非公開であるため、このテクニックが機能する理由を確認することはできません。実際には、vHashesは、図9にリストされているYaraルールによって特定された同じ亜種と一致します。them}図9:NOTROBIN亜種に一致するYaraルール復元された認証キーFireEyeは、NOTROBIN亜種から、攻撃者が侵害された環境に再侵入するために使用していた可能性のある約100個のハードコードされたキーを特定しました。これらの文字列は、ファイル名またはペイロードのコンテンツのいずれかとして、その後のエクスプロイトの試みで見つかる可能性があります。FireEyeではお客様の懸念からこれらを公開しませんが、お客様の環境内でNOTROBINを探索している場合はお問い合わせください。リストを提供いたします。Frazerなど、現在この攻撃に対応しているFireEyeのすべてのアナリストに感謝します。Backdoor」(英語)の日本語抄訳版です。最新の脅威情報や攻撃者動向、ソリューション解説についての情報をお届けします。