ESET、悪名高きStealth Falconグループが利用する特殊な手法を使った未知のバックドアを発見
中東のジャーナリストや活動家、体制反対派を標的に攻撃するスパイウェアを操るグループ「Stealth Falcon」が使用しているマルウェアと関連のあるバックドアを、ESETの研究員が発見しました。
ESET Research 1 Oct 2019
中東のジャーナリストや活動家、体制反対派を標的に攻撃するスパイウェアを操るグループ「Stealth Falcon」が使用しているマルウェアと関連のあるバックドアを、ESETの研究員が発見しました。
ESET Research 1 Oct 2019
Stealth Falconは2012年から活動しているグループであり、中東の政治運動家やジャーナリストを標的とした攻撃を行っています。Stealth Falconは、これまでCitizen Labによって追跡されてきました。Citizen Labはセキュリティと人権保護を目的としたNPO団体であり、2016年にサイバー攻撃に関する分析を公開しています。さらに、2019年の1月ロイター通信は、Stealth Falconと同様の標的を攻撃しているProject Ravenで、NSA(米国国家安全保障局)の元諜報員が雇われていたと見られる活動に関する調査レポートを公開しました。
同じような標的、そして攻撃手法について調査したこの2つのレポートを元に、アムネスティインターナショナルシニアテクノロジストのClaudio Guarnieri氏は、Stealth FalconとProject Ravenは同一グループである、と結論づけました。
特に前述したCitizen Labの分析によって、Stealth Falconに関する技術的な情報はすでに公開されています。
Citizen Labのレポートによれば、この攻撃の重要なコンポーネントはPowerShellをベースにしたバックドアであり、悪意のある電子メールに含まれる武器化されたドキュメントによって拡散されました。
今回、ESETは報告されたことのないバイナリバックドアを発見し、このバックドアをWin32/StealthFalconと名付けました。この記事ではこのバイナリバックドアと、Stealth Falconグループによって作られたバックドアの機能を持つPowerShellスクリプトの共通点を明らかにします。これらの共通点は、Win32/StealthFalconが同一グループによって作られたことを裏付ける強力な証拠になると考えています。
Win32/StealthFalconバックドアは2015年に作られたと見られ、攻撃者は感染させたコンピューターをリモートから操作できます。アラブ首長国連邦、サウジアラビア、タイ、オランダのいくつかの標的が攻撃されており、後者2国のケースでは、標的となったのは中東国家との外交任務でした。バックドアがどのように拡散したのか、標的となったシステムでどのように実行されるのかはこの調査ではわかっていません。ESETでは、バックドアの機能と、C&Cとの通信について主に分析しました。
Win32/StealthFalconは、C&Cサーバーとの通信にWindowsの標準コンポーネントであるBITS(Background Intelligent Transfer Service)を使っていますが、これはどちらかというと特殊な方法です。BITSはネットワーク帯域幅を大きく消費せずに大容量のデータを転送するために設計されたもので、スループットを抑えてデータを送信することで、他のアプリケーションが必要とする帯域幅に影響を与えない仕組みです。通常はバックグラウンドで動作するアップデーターやメッセンジャーなどのアプリケーションで使用されています。これは、BITSのタスクがホストベースのファイアウォールによって許可される可能性が高いということを意味します。
従来型のAPI関数による通信と比べて、BITSはCOMインターフェースを使用していることから、セキュリティ製品による検出が比較的難しくなっています。またこの設計は信頼性が高くステルス性にも優れます。ネットワーク切断やユーザーのログアウト、システムの再起動などの理由で中断した転送は自動的に再開されます。さらにBITSは使用可能な帯域幅に応じて、ファイル転送レートを適切な値に設定するため、ユーザーが不審に思うことはありません。
Win32/StealthFalconは2つのC&Cサーバー間で通信を切り替えることができます。これらのサーバーのアドレスはレジストリーキーに他の構成値と共に格納され、バックドアコマンドによって更新される場合もあります。バックドアがC&Cサーバーとの接続に失敗すると、あらかじめ設定された回数接続を試みたのちに、感染したコンピューターから自身を削除します。
Win32/StealthFalconはDLLファイルです。実行されると、ユーザーがログインするときに毎回起動されるタスクがスケジュールされます。基本的なコマンドにしか対応していませんが、データの抽出、さらなる悪意のあるツールの導入、自身の構成のアップデートなどといった、データを収集するための体系的な処理を実行します。
表1 バックドアコマンド
コマンド名 | 機能/製品 |
---|---|
K | 自身をアンインストールします。 |
CFG | 構成データをアップデートします。 |
RC | 指定されたアプリケーションを実行します。 |
DL | ダウンロードしたデータをファイルに書き出します。 |
CF | ファイルを外部に送信するための準備を行います。 |
CFW | ファイルを外部に送信し、消去します。 |
CFWD | アクション無し / 動作停止 |
たとえば、このバックドアの重要な機能である、ファイルのダウンロードと実行は、“win*.dll”または“std*.dll”と名付けられた、マルウェアの実行元であるディレクトリに存在するライブラリを定期的にチェックし、そのライブラリをロードすることで行われます。
さらに、Win32/StealthFalconはファイルを収集し、ハードコードされた接頭辞を付けた暗号化したコピーを一時フォルダに保存し、外部に送信するための準備を行います。そのようなファイルを定期的にチェックし、自動的に外部に送信します。ファイルの送信に成功すると、そのマルウェアはすべてのログファイルや、収集したファイルを安全に消去します。ファイルを消去する前に、ランダムなデータで上書きしますが、これはフォレンジック分析を防止し、消去したファイルが復元されないようにするためです。
コンフィグレーションの値はHKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions
のレジストリーキーに格納されます。すべの値は、マルウェアのファイル名が、拡張子無しで接頭辞として付与されます。
表2 レジストリ内のコンフィグレーションデータ
値の名前の接尾辞 | 内容/製品 |
---|---|
-FontDisposition | ランダムに生成された4バイトの攻撃を受けたユーザーのID |
-MRUData | RC4で暗号化されたC&Cドメイン |
-MRUList | RRC4で暗号化されたC&Cドメイン |
-IconPosition | 使用するC&Cドメインを決定するフラグ |
-IconDisposition | C&Cサーバーへの接続の繰り返しの後に、スリープに入るまでの秒数 |
-PopupPosition | C&Cサーバーへの接続失敗回数 |
興味深いのは、悪意のあるペイロードが開始される前に実行される機能で、これが一見無駄な処理に見えます。300以上のインポートを参照しますが、それらのファイルは一切使いません。その代わりに、またペイロードに戻り、操作を続行しますが、コンディションのチェックを行いません。これはエミュレーションを回避するための方法である可能性があります。
この機能の正確な意図はわかりませんが、おそらく検出を避けるためか、マルウェアの作成者が使用したより大規模なフレームワークの残骸ではないかと考えています。
Win32/StealthFalconも、Citizen Labの分析で説明されているPowerShellをベースとしたバックドアも、同じC&Cサーバーを使用しています。windowsearchcache[.]comというアドレスが「第2段階のC2サーバードメイン」としてCitizen Labに分析されたバックドアとWin32/StealthFalconの一部のバージョンの両方で使われています。
どちらのバックドアもコードに重要な共通点があります。それぞれ別の言語で書かれていますが、ベースにあるロジックは同じです。どちらもハードコードされた識別子を使い(ほぼ間違いなく攻撃IDか、標的ID)どちらの場合も、感染したホストからのネットワークコミュニケーションはすべてこれらの接頭辞が付けられていて、ハードコードされたキーのRC4によって暗号化されています。
C&Cサーバーとの通信は、どちらもHTTPSを使いますが、サーバーの証明書を無視するために接続には特定のフラグを設定しています。
C&Cとの通信に特殊な手法(Windows BITS)を使ったバックドア、そしてそれが高度な技術によって検出や分析を回避し、常駐化を可能にし、フォレンジック分析を撹乱していることをESETは発見し、分析しました。既知のStealth Falconのマルウェアと比較してコードと使用するインフラストラクチャに多くの共通点があり、Win32/StealthFalconバックドアも同一のグループによって使用されていると結論付けました。
Win32/StealthFalcon
31B54AEBDAF5FBC73A66AC41CCB35943CC9B7F72
50973A3FC57D70C7911F7A952356188B9939E56B
244EB62B9AC30934098CA4204447440D6FC4E259
5C8F83CC4FF57E7C67925DF4D9DAABE5D0CC07E2
258A4A9D139823F55D7B9DA1825D101107FBF88634A870DE9800580DAD556BA3
2519DB0FFEC604D6C9A655CF56B98EDCE10405DE36810BC3DCF125CDE30BA5A2
3EDB6EA77CD0987668B360365D5F39FDCF6B366D0DEAC9ECE5ADC6FFD20227F6
8DFFDE77A39F3AF46D0CE0B84A189DB25A2A0FEFD71A0CD0054D8E0D60AB08DE
注:マルウェアはハードコードされたキーのバイトを0x3DによってXORすることで次のRC4キーを作成します。
ImageIndexer.dll
WindowsBackup.dll
WindowsSearchCache.dll
JavaUserUpdater.dll
%TEMP%\dsc*
%TEMP%\sld*
%TEMP%\plx*
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Shell Extensions X-MRUList
X-MRUData
X-FontDisposition
X-IconDisposition
X-IconPosition
X-PopupPosition
Xはマルウェアのファイル名(拡張子なし)
WindowsImages-
WindowsBackup-
WindowsSearchCache-
ElectricWeb
footballtimes[.]info
vegetableportfolio[.]com
windowsearchcache[.]com
electricalweb[.]org
upnpdiscover[.]org
目的 | ID | 名前 | 説明 |
---|---|---|---|
実行 | T1059 | コマンドラインインターフェース | マルウェアは、cmd.exeを使っていくつかのコマンドを実行します |
T1106 | APIを用いた実行 | マルウェアは、CreateProcessW APIを実行に使用します。 | |
T1085 | Rundll32 | マルウェアは、rundll32.exeを使用してバックドアDLLをロードします。 | |
T1053 | タスクのスケジュール | マルウェアは、rundll32.exeをログインするときに毎回実行し、バックドアDLLをロードするようスケジュールします。 | |
常駐化 | T1053 | タスクのスケジュール | マルウェアは、ユーザーがログインするときに毎回バックドアをロードするタスクをスケジュールし、常駐化します。 |
保護回避 | T1197 | BITSジョブ | マルウェアは、検出を回避するため、マルウェアがネットワーク通信にBITSファイル転送メカニズムを使用します。 |
T1140 | ファイルまたは情報の解読、デコード | 文字列が独自のXOR暗号によって暗号化される。構成データとログファイルはハードコードされた鍵を使用してRC4で暗号化されます。 | |
T1107 | ファイルの削除 | マルウェアは、ファイルを外部に送信すると、ファイルを消去し、ランダムなデータで上書きします。 | |
T1036 | 偽装 | マルウェアは、正規のように見えるファイル名を使って偽装します。 | |
T1112 | レジストリの変更 | マルウェアは、構成をレジストリーキーに格納します。 | |
T1027 | 難読化されたファイルまたは情報 | 文字列が独自のXOR暗号によって暗号化される。構成データとログファイルはハードコードされた鍵を使用してRC4で暗号化されます。 | |
検出 | T1063 | セキュリティソフトの検出 | マルウェアは、McAfee エージェントバイナリ(cmdagent.exe)を発見した時点で自身を終了します。 |
収集 | T1074 | データの格納 | マルウェアは、収集したデータにハードコードした接頭辞を付けて一時フォルダに保存します。 |
T1005 | ローカルシステムのデータ | マルウェアには、感染したシステムからファイルを収集または盗み出すコマンドがあります。 | |
コマンドとコントロール | T1008 | フォールバックチャネル | マルウェアは、2つのC&Cサーバーと通信できます。バックドアコマンドを使用して、別のC&Cサーバーと通信するように切り替えることもできます。 |
T1105 | リモートからのファイルコピー | マルウェアは、BITSジョブを使用してC&Cと通信します。 | |
T1032 | 標準の暗号化プロトコル | マルウェアは、ハードコードされた鍵とRC4を使用してC&Cとの通信を暗号化します。 | |
外部への送信 | T1020 | 自動化された外部への送信 | マルウェアは、自動的にファイルをハードコードした接頭辞を付けたファイルとして、一時フォルダに抽出します。 |
T1022 | データの暗号化 | マルウェアは、ハードコードされた鍵とRC4を使用して、収集したデータを外部に送信する前に暗号化します。 | |
T1041 | C&Cチャネルを通じた外部への送信 | マルウェアは、C&Cチャネルを通してデータを外部に送信します。 |