悪魔の XDR:Palo Alto のソフトウェアをマルウェアに変身させる – Black Hat Asia

Evil XDR: Researcher Turns Palo Alto Software Into Perfect Malware

2024/04/19 DarkReading — Palo Alto Networks の XDR (Extended Detection and Response) ソフトウェアの狡猾な悪用により、それを悪意のマルチ・ツールのように、攻撃者たちに操られる。4月17日に開催された Black Hat Asia のブリーフィングで、SafeBreach のセキュリティ研究者である Shmuel Cohen は、同社の代表的な製品である Cortex をリバース・エンジニアリングでクラックさせただけでなく、リバースシェルとランサムウェアを展開するために、それを武器化する方法も説明した。


彼のエクスプロイトと組み合わされる弱点は、1つを除いて Palo Alto により修正されている。他の同様の XDR ソリューションが、攻撃に対して同様に、脆弱であるかどうかは現時点で不明である。

サイバー・セキュリティにおける悪魔の取引

ある種のセキュリティ・ツールを使用する際には、悪魔の駆け引き的な判断が避けられない。それらのプラットフォームが役割を果たすためには、システムの隅々にいたるまで、きわめて特権的な白紙委任アクセス権を与える必要がある。

たとえば、IT エコシステム全体において、リアルタイムでのモニタリングと脅威の検知を XDR で行うためには、可能な限り高い権限と、きわめてセンシティブな情報へのアクセスが要求される。しかも、それらの削除は容易ではない。Shmuel Cohen に、ひねくれたアイデアを思いつかせたのは、これらのプログラムが振るう巨大な力だった。

彼は、「私は考えた。EDR ソリューション自体を、マルウェアに変えることは可能だろうか? XDR が持っている、それら全てのものを、ユーザーに対して利用するのだ」と、DarkReading に対して語っている。

彼は、実験対象として Cortex を選んだ後に、そこに含まれる各種のコンポーネントのリバースエンジニアリングを開始した。何が悪意があり、何が悪意がないかを、どのように定義しているのかを解明しようとしたのだ。

そして、このプログラムが最も頼りにしている、一連のプレーン・テキスト・ファイルを発見したとき、アイデアがひらめいた。

XDR を悪に染める方法

Shmuel Cohen は、「それらのルールは、私のコンピュータの中にある。手動で削除したらどうなるのだろう?」と考えた。

すでに Palo Alto は、そのことを考えていたことが分かった。改ざん防止メカニズムにより、貴重な Lua ファイルに、ユーザーが触れることを防いでいたのだ。それぞれの Lua ファイル名ではなく、それらをカプセル化したフォルダを保護する仕組みになっていたのだ。目的のファイルに辿り着くには、改ざん防止機構を解除する必要はない。ファイルに辿り着くためのパスの向きを変えれば、機構を完全に回避できるのだ。

単純なショートカットでは不十分だろうから、ハードリンクを使った。ハードリンクとは、ハードディスクに保存されている実際のデータとファイル名を、結びつけるためコンピュータの用法である。

Shmuel Cohen は、「対象となるファイルが、元の Lua ファイルと同じハードディスクの場所を指していることに、このプログラムは気づかなかった。したがって、ファイルへのハードリンクを作成し、いくつかのルールを編集して削除した。さらに、ルールを削除して、アプリに新しいルールを読み込ませる操作を行うと、脆弱なドライバを読み込むことができた。その時点で、コンピューター全体が私のものになった」と述べている。

彼は、「この PoC エクスプロイト攻撃により、完全にコントロールを奪った後に、そのサーバーへの通信も遮断した。すべてが上手くいっているように見える。悪意のアクティビティをユーザーから隠すことも可能だ。防止できたはずのアクションであっても、XDR は通知を出さない。エンドポイント・ユーザーに対しては、すべてが OK であることを示す緑色のマークが表示される」と付け加えている。

彼が、最初に実行することにしたマルウェアはリバースシェルであり、標的のマシンを完全に制御できるものだった。続いて、それを用いて、ランサムウェアの展開に成功した。

Palo Alto が行わなかった修正

Palo Alto Networks は Shmuel Cohen の研究成果を受け入れ、彼と緊密に連携してエクスプロイトを理解し、修正プログラムを開発した。

Cortex の Lua ファイルは、きわめて機密性が高いものだが、暗号化されることなく、完全な平文で保存されている。

それは憂慮すべきことに思えるが、現実には、暗号化しても攻撃者に対して大した抑止力にはならない。したがって、両者が話し合った結果として、暗号化を変更する必要はないとの結論に達した。

XDR は、最終的に何をすべきかを理解する必要がある。たとえ暗号化されていたとしても、操作のある時点では、ファイルを読むために、そのファイルを復号化する必要がある。したがって攻撃者は、そのときにファイル内容をキャッチすれば良い。そのファイルを読むためには、もう一手間かかることになるが、それでも読むことは可能だ。

さらに Shmuel Cohen は、「他の XDR プラットフォームも、同じような攻撃を受けやすいだろう。もしかしたら、そこでは違う形で実装されるかもしれない。ファイルが暗号化されているかもしれない。しかし、彼らが何をしようとも、私はいつでも、それを回避できる」と述べている。