エグゼクティブ サマリー
2018 年 11 月、Cisco Talos は DNSpionage と呼ばれる攻撃キャンペーンを発見しました。このキャンペーンでは、攻撃者のコマンド アンド コントロール(C2)との HTTP および DNS 通信をサポートする新しいリモート管理ツールが攻撃者によって作成されました。それ以降、追加の DNSpionage 攻撃に関する他のレポートがいくつか公開されています。そして 1 月には、米国国土安全保障省が、この脅威アクティビティについての警告を発行しています。
この脅威アクティビティのレポートが増加したことに加えて、Talos では DNSpionage キャンペーンの背後の攻撃者が、戦術を変え続けていることを示す新たな証拠も発見しました。これはおそらく、攻撃の効率性向上を図るためであると考えられます。2 月には、Talos はこの攻撃者の戦術/技術/手順(TTP)が一部変更されていることを確認しました。たとえば、マルウェアに感染させるターゲットを意図的に選択する新しい偵察フェーズが使用されるようになっています。2019 年 4 月には、Talos はこの攻撃者が新しいマルウェアを使用していることも突き止めました。Talos では、このマルウェアを「Karkoff」と呼んでいます。
この記事では、上記の DNSpionage の最新情報、Karkoff マルウェアの発見、そして最近漏えいされた Oilrig マルウェア ツールセットの分析についてと、DNSpionage とこの 2 つの攻撃をどのように関連付けられるかについて説明します。
DNSpionage の最新情報
同じマクロで新しいドキュメントに感染
DNSpionage に関する以前の Talos の記事では、このマルウェアの作成者が、Microsoft Word ドキュメントに埋め込まれた悪意のあるマクロを使用していることを説明しました。2 月末にレバノンで確認されたこのマルウェアの新しいサンプルでは、攻撃者は同様のマクロを含む Excel ドキュメントを使用していました。
この攻撃者は、Talos が以前に確認した .oracleServices ディレクトリを使用する代わりに .msdonedrive ディレクトリを使用し、マルウェアの名称を「taskwin32.exe」に変更していました。スケジュールされたタスクの名称も「onedrive updater v10.12.5」に変更されていました。
ペイロード
概要
この新しいサンプルは、Talos の過去の記事で公開した以前のバージョンに似ています。このマルウェアも C2 サーバとの HTTP/DNS 通信をサポートしています。HTTP 通信は、HTML コードのコメント内に隠されています。しかし今回は、C2 サーバは Wikipedia ではなく GitHub プラットフォームを模倣しています。DNS 通信は Talos の以前の記事で説明した方法を踏襲していますが、開発者はこの最新バージョンに複数の新機能を追加しています。また、今回はデバッグ モードが削除されました。
また Talos は、攻撃者が偵察フェーズを追加したことも発見しました。これはおそらく、このキャンペーンに非常に大きな関心が寄せられているのをうけてのことです。この新しいフェーズについては次のセクションで詳しく説明しますが、このフェーズが追加されたことで、ペイロードは各マシンに無差別にダウンロードされるのではなく、特定のターゲットにドロップされるようになりました。この新しい戦術は、攻撃者のレベルがますます高度になっていることを物語っています。
新しい偵察フェーズ
最初の実行時に、このマルウェアは Windows バッチ ファイル(a .bat)をドロップして WMI コマンドを実行し、被害者のマシンで実行中のすべてのプロセスを取得します。
- wmic プロセス リスト
また、感染したシステムのユーザ名とコンピュータの名前も特定します。最後に、レベル 100 を指定して NetWkstaGetInfo() API を使用し、システム上の追加情報を取得します(64 番目の数、16 進数 の 64 は 10 進数 の 100)。
このレベルでは、プラットフォーム固有の情報、ドメインとローカル コンピュータの名前、オペレーティング システムに関する情報を含む、ワークステーション環境に関する情報が返されます。この情報は、マルウェアが被害者のみを選択し、研究者やサンドボックスの回避を試みる上で重要です。繰り返しになりますが、この技法から攻撃者の能力が向上していることがわかります。攻撃者は現在、被害者のフィンガープリントを作成しているのです。
API と強力な難読化
この最新バージョンでは、開発者は一部の文字列を 2 つに分割しています。攻撃者は、この手法を使用して API コールと内部文字列の「隠匿」を試みます。これにより、静的文字列の分析プロセスを回避すると考えられます。
以下に、API コールの分割の例を示します。この例は「rNameA」で始まり、「GetUse」が続く逆の順序になっています。オフセットも「aRnamea」と「aGetuse」という誤った名前になっています(GetUserNameA())。
以下に、内部文字列の分割の例を示します(.\\Configure.txt)。
このアプローチは、通常 Talos が観察している技法と比べて特に巧妙というわけではありません。ただし、これらの文字列に基づく Yara ルールを回避するには十分です。たとえば、次のルールは、パターンが一致しないためアラートを生成しなくなります。
rule DNSpionage { strings: $conf="Configure.txt" condition: All of them }
ウイルス対策の確認
このマルウェアは、Avira と Avast の 2 つのウイルス対策プラットフォームを検索します。
このいずれかのセキュリティ製品がシステムにインストール済みで、偵察フェーズ中に発見された場合は、フラグが設定され、構成ファイルの一部のオプションが無視されます。
DNSpionage の悪意のある Excel ドキュメント
DNSpionage のこの新しいサンプルには、攻撃者が研究コミュニティをなじったりからかったりする目的で追加されたと考えられる、奇妙な要素が含まれています。この要素は、研究者やベンダーによって攻撃者が発見されたときに確認できることがあります。DNSpionage では、Excel ドキュメントを開くと、ユーザには「haha you are donkey(あはは、お前は馬鹿だ)」という侮辱的な文章が表示されます。この片言の英語から、攻撃者の母国語が英語ではないことを推測できます。
C2 に使用されるドメインも奇妙です。以前のバージョンの DNSpionage は、検出を避け続けるために、正当に見えるドメインの使用を試みていました。しかしこの新しいバージョンでは、ドメイン「coldfart[.]com」が使用されています。このドメインは、企業環境により適したトラフィックを利用して溶け込もうとする通常の他の APT キャンペーンよりも特定が容易です。またこのドメインは、米国でホストされており、偵察型の攻撃としては異例です。この種の行動によって、この攻撃者は、Talos が先週の記事で取り上げた別の DNS ハイジャック キャンペーンの Sea Turtle などのさらに深刻なキャンペーンと、今後も区別されることになるでしょう。
Karkoff の登場
ペイロードの解析
Cisco Talos は 4 月、.NET で開発された未公開のマルウェアを確認しました。分析したサンプルには、マルウェアの作成者によって 2 つの異なる内部名(「DropperBackdoor」と「Karkoff」)が平文で残されていました。私たちは、あまり一般的でない 2 番目の名前をこのマルウェアの呼称として使用することにしました。このマルウェアは、サイズが小さいため他のマルウェアと比較して軽量で、C2 サーバからのリモート コード実行を可能にします。難読化機能はなく、コードは容易に逆アセンブルできます。このマルウェアは、「MSExchangeClient:」という名前の Windows サービスです。
インシデント対応の観点からすると、興味深いことに、このマルウェアはログ ファイル「C:\\Windows\\Temp\\MSEx_log.txt」を生成します。実行されたコマンドは、タイムスタンプとともにこのファイルに保存されます(’M’ を使用して XOR を実行)。このログ ファイルを使用すると、コマンド実行のタイムラインを簡単に作成し、この種の脅威への対応に非常に有効に活用できます。このことを考えると、このマルウェアに感染した組織は、このログ ファイルを確認して、組織に対して実行されたコマンドを特定できる可能性があります。
C2 通信
C2 サーバは、分析したサンプルではハードコードされていました。
このマルウェアは、ドメインまたは IP アドレスを使用します。また、HTTP および HTTPS 通信をサポートしています。
Karkoff は、base64 エンコード方式を使用して、まず C2 通信を難読化します。この通信は、XOR キー 70(10 進数)を使用して XOR 関数を実行することで、さらに難読化されます。
これは「DropperBackdoor.constants」値「Constants.k__BackingField = 70;」から導出されます。
このマルウェアには JSON .NET ライブラリが組み込まれています。このライブラリは、C2 サーバからのメッセージの処理に使用されます。解答は最初にデコードされ(base64)、コマンドは、次のパターンにマッチします。
[{"ID": "123", "Data": "filename.exe|base64PEContent", "Type": "101"}, {"ID": "124", "Data": "filename.exe arg1 arg2", "Type": "102"}]
コマンド タイプ 101 は、データが base64 でエンコードされたファイルであることを意味します。このファイルは、パイプの前のファイル名(この例では filename.exe)で格納されます。コマンド タイプ 102 は、実行されるコマンド ラインがデータ フィールドに格納されることを意味します。
DNSpionage と Karkoff との関連性
Talos では、DNSpionage のケースと Karkoff のケースでインフラストラクチャが重複していることを確認しました。Karkoff C2 サーバのひとつは rimrun[.]com です。このドメインの IP の履歴を示します。
- 62.141[.]247 -> 12/19/18 ~ 4/13/19
- 141.38[.]71 -> 12/26/18
- 161.23[.]204 -> 12/26/18
- 161.187[.]200 -> 12/26/18
次の IP は、Talos の最初の DNSpionage ブログ記事と関連しています。
- 161.23[.]204 は 9/21/18 に 0ffice360[.]com によって使用されました
- 141.38[.]71 は 9/26/18 に hr-wipro[.]com によって使用されました
- 161.187[.]200 は 9/21/18 に 0ffice360[.]com によって使用されました
これらの日付は、DNSpionage キャンペーン中に観察された攻撃のタイムラインにも一致します。同じ期間にこれらの IP が重複して利用されていることから、Talos では同じ攻撃者が Karkoff と DNSpionage のサンプルを使用しているという大きな確信を持っています。
Oilrig の情報漏えいとの関連性
4 月 18 日にオンラインで Oilrig の情報が漏えいされました。この情報漏えいの結果、類似する URL フィールドに基づき、Oirlig と DNSpionage の攻撃者の間に弱い関連性があることがわかりました。この関連性は決定的ではありませんが、研究コミュニティと共有するに値する興味深いデータです。
漏えいされた情報には、webmask_dnspionage リポジトリが含まれています。このリポジトリには、中間者攻撃の実行に使用されるスクリプトが含まれていますが、DNSpionage または Karkoff C2 パネルに関する要素はありませんでした。ただし、以下のスクリーンショットに含まれている URL が私たちの関心を引きました。
Talos はこの C2 パネルが「Scarecrow」であることを確認しましたが、漏えいした情報からはこのパネルへの参照は確認できませんでした。このスクリーンショットの被害者は、主にレバノン出身者です。レバノンは、DNSpionage と Karkoff が標的としている地域のひとつです。この URL には、その他の関連情報も含まれています。
この URL には、/Th!swasP@NEl ディレクトリが含まれています。Talos が最初に DNSpionage の記事を公開した後、LastLine がこの攻撃者の Django の構成に誤りがあることを説明するブログ記事を公開しました。
DNSpionage C2 サーバの PANEL_PATH 変数が /Th!sIsP@NeL であることを確認できます。漏えいされたパネル パスと、DNSpionage C2 サーバの Django 内部変数は、非常によく似ています(「/Th!swasP@NEl」と「/Th!sIsP@NeL」)。この単一のパネル パスだけでは、確固たる結論を出すには十分ではありませんが、これらのイベントの調査は継続されているため、この情報はセキュリティ調査コミュニティにとって注目に値します。
まとめ
DNSpionage マルウェアの開発が継続されていることから、攻撃者が検出を逃れる新しい手段を模索し続けていることがわかります。この記事で紹介した奇妙な要素は普通とは言えませんが、このペイロードがさらに検出を困難にするために更新されたことは明らかです。一部の攻撃者にとって、DNS トンネリングは一般的なデータ漏えい手法です。最近の DNSpionage の例は、組織が通常のプロキシやウェブログと同様に DNS を注意深く監視する必要があることを示しています。DNS は基本的にインターネットの電話帳です。DNS が改ざんされると、オンラインで確認していることが正当であるかどうかを見分けることが困難になります。Karkoff の検出によって、この攻撃者がこれまで通り中東地域に特に力を入れながら、方向を転換し、検出の回避を強化していることもわかります。Cisco Talos は、この攻撃者の活動を引き続き監視し、シスコの保護および検出機能を通じてお客様への高度な攻撃を防止できるよう取り組んでいきます。
カバレッジ
お客様がこの脅威を検出してブロックできる別の方法を以下に記載します。
Advanced Malware Protection(AMP)は、これらの攻撃者によるマルウェアの実行の阻止に最適です。以下のスクリーンショットは、AMP がこの脅威からお客様を保護する様子を示しています。
Cisco クラウド Web セキュリティ(CWS)または Web セキュリティ アプライアンス(WSA)の Web スキャンは、悪意のある Web サイトへのアクセスを防止し、これらの攻撃で使用されるマルウェアを検出します。
電子メール セキュリティは、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。
次世代ファイアウォール(NGFW)、次世代侵入防止システム(NGIPS)、およびMeraki MX などのネットワーク セキュリティ アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。
AMP Threat Grid は、悪意のあるバイナリを特定し、すべてのシスコ セキュリティ製品に保護機能を埋め込みます。
シスコのセキュア インターネット ゲートウェイ(SIG)である Umbrella は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。
オープン ソースの SNORTⓇ サブスクライバ ルール セットをお使いであれば、Snort.org で購入可能な最新のルール パックをダウンロードすることで、最新状態を維持できます。
侵入の痕跡(IOC)
次の Ioc は、このキャンペーンに関連付けられています。
DNSpionage XLS ドキュメント
2fa19292f353b4078a9bf398f8837d991e383c99e147727eaa6a03ce0259b3c5 (SHA256)
DNSpionage サンプル
e398dac59f604d42362ffe8a2947d4351a652516ebfb25ddf0838dd2c8523be8?(SHA256)
Karkoff サンプル
5b102bf4d997688268bab45336cead7cdf188eb0d6355764e53b4f62e1cdf30c
6a251ed6a2c6a0a2be11f2a945ec68c814d27e2b6ef445f4b2c7a779620baa11
b017b9fc2484ce0a5629ff1fed15bca9f62f942eafbb74da6a40f40337187b04
cd4b9d0f2d1c0468750855f0ed352c1ed6d4f512d66e0e44ce308688235295b5
C2 サーバ
coldfart[.]com
rimrun[.]com
kuternull[.]com
本稿は 2019年4月23日に Talos Group のブログに投稿された「NSpionage brings out the Karkoff」の抄訳です。