レッドチーム:攻撃者から見たCVE-2019-19781
本ブログ記事は、2020年5月4日に米国で公開された抄訳版です。原文はこちらからご覧頂けます。
プロフェッショナルサービスグループに所属していると受けられる恩恵はたくさんあります。たとえば、さまざまな組織や業界の動向を知ることができます。BlackBerryインシデント対応(IR)チームが確認している最も顕著な動向は、CVE-2019-19781を悪用した侵害の増加です。
この番号を見てもピンとこない方のために説明すると、これは、Citrix/Netscaler Application Delivery Controller(ADC)、Citrix/Netscaler Gateway、Citrix SD-WAN WANOPの各アプライアンスや、ESX、Hyper-V、KVM、AWS、GCP、Azure、SDXなどのアプライアンスをはじめとする、任意のCitrix Hypervisor上でホストされているVirtual Appliances(VPX)で見つかった重要な脆弱性です。攻撃者は、悪用に成功すると、任意のコマンドを実行できるようになります。多くの場合は、その後のアクセスの拠点として使用される環境へのバックドアアクセスを確立するために利用されます。
それ以外に、BlackBerry IRチームは、攻撃者の戦術、技法、手順(TTP)が最近変化していることにも気付きました。侵害されたCitrixホストで特定された新しい永続化の方法では、ディスク操作の必要性を減らすための興味深い巧みな技法が使用されていました。この記事ではこの件の概要について説明します。今後、その全貌について詳細にお伝えする予定です。
図1:バックドア実行プロセス
BlackBerry IRチームが確認している3つ目のさらに警戒すべき動向は、この脆弱性を修復したと確信していたにもかかわらず依然として侵害されたままの被害者の数が多いことです。これこそが、皆さんの意識向上を目指し、脆弱性を検知し、軽減するためのガイダンスを提供している、大きな理由です。セキュリティに対する誤った認識を持ってしまう理由の1つとして考えられることですが、ホストが一旦侵害されてしまうと、最初の脆弱性を取り除いただけでは、すでにインストールされているバックドアを修復することはできません。これでは馬が逃げた後に馬小屋の扉を閉めるようなものです。
2019年12月17日にCitrixがこの脆弱性について初めて公開すると、当初は概念実証(POC)コードがリリースされていなかったにもかかわらず、悪用されている可能性があることをすぐにセキュリティ専門家が確認しました。2020年1月10日に最初の公開POCコードがリリースされると、まもなく、それとは別の多くのPOCがセキュリティコミュニティのさまざまな関係者から追加でリリースされました。ハニーポットオペレータは、POCコードがリリースされてすぐ、この脆弱性に関連するリソースの要求の増加が確認されたと述べています。
多くの組織において、この脆弱性が主にリスクに曝されていたのは、1月10日に公開POCコードがリリースされてから最終的に脆弱性が軽減されるまでの間でした。しかし、エクスプロイトの存在が明らかにされた後に多くの攻撃者が独自にエクスプロイトを開発したことを考えると、1月10日に公開エクスプロイトコードがリリースされる前に高度な技術を持つ攻撃者が独自のエクスプロイトコードを開発してこの脆弱性を悪用していた可能性があることも考えておかなければなりません。
公開POCコード以外に、Citrixが2020年1月16日に確認したファームウェアのバグの存在にも注目する必要があります。このバグは、最初の軽減策がCitrix ADCリリース12.1の一部のビルドでは無効であることを示しています。これは、攻撃者に、この脆弱性を悪用して被害者のネットワークにおける足がかりを築くためのさらなる機会を与えました。
次のいずれかの製品を使用している場合は、それらの修復、テスト、侵入の痕跡のチェックが十分に行われていることを二重、三重に確認するようお願いします(出典)。
- Citrix ADCおよびCitrix Gatewayバージョン13.0の、13.0.47.24より前のサポートされているすべてのビルド
- NetScaler ADCおよびNetScaler Gatewayバージョン12.1の、12.1.55.18より前のサポートされているすべてのビルド
- NetScaler ADCおよびNetScaler Gatewayバージョン12.0の、12.0.63.13より前のサポートされているすべてのビルド
- NetScaler ADCおよびNetScaler Gatewayバージョン11.1の、11.1.63.15より前のサポートされているすべてのビルド
- NetScaler ADCおよびNetScaler Gatewayバージョン10.5の、10.5.70.12より前のサポートされているすべてのビルド
- Citrix SD-WAN WANOPアプライアンスの4000-WO、4100-WO、5000-WO、5100-WOの各モデルの、10.2.6bおよび11.0.3bより前のサポートされているすべてのソフトウェアリリースビルド
脆弱性のテスト
上記のアプライアンスまたは仮想アプライアンスのいずれかを使用している場合、Citrixが提供する検証ツールをはじめとするさまざまなツールで脆弱性をテストできます。
図2:Citrixが提供する脆弱性チェックスクリプトの実行と出力の例
Metasploit Frameworkにも、この脆弱性の存在をスキャンするモジュールが含まれています。
修復
システムに脆弱性が存在することがわかった場合は、Citrixが示す手順に従って修復を実行します。これらの手順を実行した後も、上記の脆弱性テストをもう一度実行して、脆弱性が実際に修正されたことを確認する必要があります。
さらに、Citrixアプライアンスの管理に使用するドメインアカウントについて、最小権限の原則に従うことをお勧めします。Citrixデバイスに保存されている昇格された認証情報を使用して企業環境に容易に水平移動することのできたインシデントでは、結果に明らかな違いが見られました。ネットワークセグメンテーションなどの一般的なセキュリティのベストプラクティスをレビューすることもお勧めします。
侵入の痕跡(IOC)
修復作業をダブルチェックするときには、侵入の兆候をチェックすることをお勧めします。幸いなことに、そのためのツールと手動チェック機能も用意されています。最も簡単なのは、CitrixとMandiantが共同でリリースした、一般的なIOCを特定するためのスキャンツールです。これにより、侵入の痕跡と脆弱性スキャンが試された痕跡の両方が特定されます。
このツールをとりあえず最初に実行するのは良いことですが、すべての侵害が特定されることを100%保証するものではないことに注意する必要があります。この脆弱性または他の脆弱性に起因する侵害の懸念がある場合は、侵害に関する詳しい調査を実施するのがベストです。
手動による解析により、次のチェックも行えます。
- パーシスタンスメカニズム。特に、不明なcrontabエントリを探します。
- 疑わしいエントリのcron履歴。BlackBerry IRチームは、curlを使用してファイルをダウンロードし、メモリ内で実行するスクリプトを検知しました。
- 初期侵害に関連するXMLテンプレートなどのファイルのクリーンアップをはじめとする、悪意のあるアクティビティの痕跡を示すシェル履歴ログ
- 悪意のあるアクティビティの痕跡を示すWebサーバーアクセスログ
- "NOTROBIN"などの特に有名なバックドア、XMLテンプレート、スクリプト、Webシェルの一部を含む異常なファイル
- "nobody"として動作する異常な実行中のプロセス
BlackBerry IRチームが、使用可能なさまざまなセキュリティツールの実行結果の解釈における信頼性の低さを指摘したことも注目に値します。たとえば、スキャン出力で侵害が発生した可能性が示されているのに、それがリスクとして識別されることも、適切な調査が行われることもありませんでした。また、被害者が、実行したスクリプトの目的や出力が意味することを理解していないケースがありました。
たとえば、CVE-2019-19781に対する脆弱性がデバイスに存在するかどうかを確認するためだけの検証ツールが、侵害が発生したかどうかを判断するために誤用されていたことがありました。解析ツールやスキャンツールの出力が何を意味しているのかを知るために詳細な検証または支援を必要とする場合は、信頼できるセキュリティパートナーやIRリテーナーサービスに問い合わせることをお勧めします。
結論
CVE-2019-19781エクスプロイトに起因するインシデント対応に関する問い合わせが増えていることから、こうした脆弱性が存在しないかどうか、侵害の可能性がないかどうかを、一度だけでなく二重にチェックする必要があることを皆さんに気付いていただくために、私たちは今回の情報を公開しました。次の記事では、攻撃する側から見たこの脆弱性の検知と悪用について、BlackBerry Cylanceのレッドチームの実例に基づいて説明します。
参考文献