スパム JavaScript ランサムウェアのトライア ングル はじめに 私たちのグローバルスパムハニーポットセンサーは 悪質な JavaScript を含む Zip 圧縮された添付ファイルを利用する世界中に拡散された電子メールキャンペーンを検出しました そのファイルが開かれた場合 JavaScript が犠牲者にランサムウェアを感染させるために使用されます このキャンペーンは 2017 年 7 月 17 日の遅くに開始され 120 万件以上のメッセージでピークに達し 2017 年 7 月 19 日に終了しました 同様のバーストが図 1 と表 1 のタイムラインに示すように 数日後の 7 月 25 日から 2017 年 7 月 27 日かけて観測されました 図 1: スパムのピークを示すスパムキャンペーンのタイムライン 表 1: このキャンペーンの原産国別のスパム
電子メール本文の分析 昨年 5 月 FakeGlobe と Cerber の両方のランサムウェアを配布するスパムキャンペーンを報告しました キャンペーンは数日間続きましたが 最近 同様のマルウェアが別のキャンペーンでスパムアウトされていることが確認されました このキャンペーンでは 同じ空白の件名と本文が使用されましたが 圧縮された JavaScript(JS) ファイルの添付ファイルが異なります このキャンペーンで使用される Zip ファイルは 2 種類あり それぞれに別々の JavaScript コードセットが含まれています どちらの JS ファイルも同じコードテンプレートを使用していたようですが 異なるマルウェアを指す別の URL が含まれていました 添付ファイルを含む 2 つのスパムメッセージの匿名化されたスクリーンショットを図 2 と図 3 に示します ここでは両方のメッセージで 件名フィールドと本文が空白または空でした 空白の件名と本文を使用してスパム対策のシグネチャベースの検出を難しくし スパム発信者のための簡単なテンプレートとして機能するのは一般的なテクニックです 図 2: 添付ファイルが添付されたサンプルの電子メールメッセージ 図 3: 同様の圧縮された添付ファイルを含むサンプルの電子メールメッセージ
添付ファイルの分析 悪質な JavaScript(JS) 添付ファイルをディスクに保存して解凍すると JavaScript ファイルが表示されます この JavaScript ファイルをダブルクリックすると スパマーの目的が実行されます この JavaScript のサンプルは 読みやすいテキストの段落に埋め込まれている点がユニークです 異なる国に関する Wikipedia の記事から明らかにコピーされています パラグラフはスクリプトの一番上に置かれ 自動スキャナとそれをテキストエディタでプレビューできる人間の熟練者の両方を回避するため 良質のテキストファイルの外観を持たせていると考えられます そのようなサンプルのスクリーンショットが図 4 と図 5 に示されています このケースでは 明らかに中国に関するウィキペディアの記事からテキストの文章がコピーされています 図 4: 中国に関する長い Wikipedia の記事を含む JavaScript ファイルの先頭 図 5: 記事のテキスト内とその下に埋め込まれた JavaScript 関数 この悪質な JavaScript サンプルには 攻撃者によって作成された難読化された JS 関数が 30 以上あります これらの 関数は図 6 に示すように トリガー関数呼び出しによって実行されると その悪意のあるアクティビティを実行します
図 6: 他のすべての悪質な JS 関数を再帰的に呼び出すトリガー関数 トリガー機能は悪意のあるペイロードをダウンロードするために 最初に URL の難読化を解除します このスクリプトでは 難読化された URL からカンマを削除するという単純な非難読化手法を採用しています フェイルセーフ手法として 攻撃者はこの機能に 5 つの異なる URL を埋め込んで 他のものがオフラインになった場合に備えて少なくとも 1 つの悪質なペイロードをダウンロードさせるようにします 一つのコードの断片を図 7 に示します 図 7: 悪意のあるペイロードをホストしている URL の難読化が解除された これらの悪質な URL は ダウンローダー機能に供給されます ダウンローダー関数は MSXML2.XMLHTTP という Microsoft ActiveX オブジェクトを使用します このオブジェクトは 任意の HTTP 要求を送信し 応答を受信し その応答を Microsoft XML 文書オブジェクトモデル (DOM) で解析するために使用されます ここで Open メソッドを使用して MSXML2.XMLHTTP 要求を初期化し 図 8 に示すようにメソッドと URL を指定します Microsoft ActiveX オブジェクトの使用は スパマーが Microsoft Windows の犠牲者を対象としていることを示します このスクリプトは Windows OS でダブルクリックするだけで実行できます これは WScript.exe を使用して GUI から あるいは CScript.exe を使用してコマンドラインからスクリプトを実行および自動化するためのフレームワークである Microsoft Windows Scripting Host(WSH) によって助けられます WSH は Jscript や VBScript などのスクリプトエンジンをサポートしています さらに このスクリプトは Web ブラウザ 特に Microsoft Internet Explorer と Edge によって解釈され実行される可能性があります ActiveX オブジェクトをサポートする IE 拡張機能を実行する他のブラウザも脆弱です 図 8:HTTP 経由でのファイルダウンロードを開始する Downloader 機能と いくつかのインラインコメント 次に 攻撃者は ActiveX ストリームとファイルシステムオブジェクトを利用して ダウンロードしたファイルをランダムに名 前を付けた JPG として一時フォルダに保存し 図 9 10 図 11 に示すように EXE に名前を変更します
図 9:Temp フォルダに悪質なペイロードを JPG として保存し コードがインラインコメントとともに表示される 図 10: ダウンロードしたファイルをディスクに保存するための Stream オブジェクト 図 11: 悪意のあるファイル拡張子が.JPG から.EXE に変更され コードがインラインコメントとともに表示される 最後に 図 12 に示すように ダウンロードしたマルウェアペイロードサンプルを実行する ActiveX WScript Shell オブジェ クトを使用して 悪意のあるペイロードが実行されます つまり この JavaScript サンプルはダウンローダーおよびエグ ゼキュータです
図 12:WScript Shell ActiveX オブジェクトによるコードの実行 JS によって削除された悪意のあるペイロードの分析 2 つの異なる JavaScript サンプルがありました これらのサンプルは 同じコードテンプレートでパッケージ化されていましたが 異なる URL を使用して構成されていました これにより 2 つの異なるランサムウェアファミリ すなわち "FakeGlobe" ランサムウェアと "Cerber" ランサムウェアがダウンロードされます ペイロード IOC( 痕跡 ) FakeGlobe Ransomware これは *.dat 拡張子で終わる埋め込み URL でホストされていました JS ファイルから抽出された URL の例を以下に示します URL:hxxp://astromfghqmo.com/error.php?f = 1.dat ダウンロードしたファイルのハッシュ : MD5:D885A811324370FD2CA8ED9075A71652 SHA1:DF799BC0225C5391DAE2F0044AAAE745A2C64E14 FakeGlobe の暗号化ファイルと Ransom ノート : 実行後 FakeGlobe ランサムウェアサンプルはファイルを暗号化して名前を変更します 暗号化されたファイルは 図 13 に示すように *.crypt 拡張子名を使用してリネームされ 図 14 に示すように ランサムウェアのメモは HTML として設定 されます 図 13:*.crypt 拡張子で名前を変更したファイル
図 14:FakeGlobe Ransomware ノート Cerber ランサムウェア Cerber ランサムウェアは * doc 拡張子で終わる URL 上でホストされていました JS ファイルから抽出されたいくつか の URL がここにリストされています : URL: hxxp://asopusforums.date/1.doc hxxp://ariadnerevolution.date/1.doc hxxp://asbetosgem.trade/1.doc hxxp://phaennabazaar.trade/1.doc hxxp://dolopolesasz.com/1.doc ダウンロードしたファイルのハッシュ : MD5:FE1BC60A95B2C2D77CD5D232296A7FA4 SHA1:C07DFDEA8DA2DA5BAD036E7C2F5D37582E1CF684 暗号化されたファイルとランサムノート :
実行後 Cerber ランサムウェアサンプルはファイルを暗号化して名前を変更します Cerber ランサムウェアによって暗号化されたファイルはランダムなファイル名と拡張子を使用します このサンプルでは 図 15 に示すように この拡張子 *.ab22 を持つランダムファイルを使用していました 通常の Cerber は "*.hta" 図 16 および図 17 に示すように txt 形式に変換されます 図 15: ランダムな名前と *.ab22 拡張子を持つ暗号化ファイル 図 16: ランサムノートのテキストファイルの内容 ファイルとは別に Cerber の典型的な動作である身代金メモを表示するように壁紙を変更します
図 17: ランサムノートの HTML ファイルの内容 まとめ 攻撃者は電子メールのシンプルさを利用して 世界中の犠牲者にトランスクリプトを配布しています 私たちは 攻撃者が分散ハニーポットセンサーによって検出された何百万ものスパムメッセージを送信したそのようなキャンペーンの 1 つを検出しました これらのスパムメッセージには空白の件名が含まれていて メッセージ本文は空です メッセージは 2 つの異なるセットに分類され それぞれが異なる zip 添付ファイルを提供し 同様の難読化された JavaScript ファイルを含んでいます JS ファイルには同じコードテンプレートが含まれていますが 別のトランスコードを指す別個の URL のセットが設定されています 一度実行されると ランサムウェアが感染し 被害者のコンピュータ上のファイルを身代金のために暗号化します 緩和策として メールのゲートウェイで JS ファイルをブロックすることを検討する必要があります 最近 マルウェアがこのようなスクリプトを介して配布されているためです Trustwave の Secure Email Gateway は このキャンペーンを効果的に検出して阻止し サイバー犯罪者の脅威からお客様を守ります 謝辞 Phil Hay の有益な貢献と貴重なフィードバック アドバイスに感謝します