Valakの進化、始まりから大量配布まで

By

Category: Malware, Unit 42

Tags: , , , ,

Illustration of a malware infection

This post is also available in: English (英語)

概要

2019年後半に発見されたValakは、情報窃取とマルウェアのロードを目的とするマルウェアで、昨今脅威ランドスケープで増加しつつあります。2020年の4月から6月にかけて、ShathakまたはTA551と呼ばれる電子メール配布ネットワークを介し、週に平均2回から4回程度、Valakマルウェアの波が確認されています。Valakには以下のような特徴があります。

  • Valakは、スケジュールされたタスクWindowsレジストリの更新を利用して感染Windowsホストでの永続性を確立します。
  • Valakは、感染ホスト上でのフォローアップマルウェア実行手段として代替データストリーム(ADS)を使用します。
  • 最近のValak感染では、感染時に使用する設定スクリプトに難読化されたコードが増えてきています。これは検知を回避するためと考えられます。
  • 私たちは2020年4月以降、ShathakやTA551という通称を持つ攻撃者が、多数のValakマルウェアを配布したようすを確認しています。

本稿では、Valakの歴史、感染のイベント連鎖、Valakにより生成されるトラフィック、および検知を回避するためにこのマルウェアで使用されている難読化手法の最近のアップデートについて解説します。また、2020年4月以降、Valakを送り出し続けているShathak/TA551の配布システムについても考察します。

パロアルトネットワークス製品をご利用中のお客様は、弊社次世代ファイアウォールの脅威防御サブスクリプションによりValakから保護されています。

Valakの歴史

Valakの最も古い記録は、Suricataオープンソース脅威検知エンジン用のProofpoint社のET Proルールセットで、そのさい2019年10月22日にValakを検知する2つのルールが追加されました

2019年12月19日にはValakが(GoziやIFSBとも呼ばれる)Ursnif感染中のフォローアップマルウェアであることが記録されています。またCybereason社の分析により、感染Windowsホスト上での永続性確立のためにValakが複数の手法を組み合わせて使用することが明らかになっています。ValakはスケジュールされたタスクとWindowsレジストリの更新を利用しています。また、フォローアップマルウェアの感染プロセス中に、代替データストリーム(ADS)も使用します。

ここ数か月に発見されたValakの例の大半は、悪意のあるスパム(マルスパム)経由で配布されていました。SentinelLabs (SentinelOne)社が、Valakマルウェアの配布と「Gozi ConfCrew」に似たキャンペーンとのつながりを含む、Valakについての詳細情報を提供するレポートを公開しています。その配布特性は、Talos (Cisco)社が発表したValakに関する脅威スポットライトでさらに検証されています。

マルスパムを使用してValakを送り出している配布ネットワークは、TwitterでShathakと呼ばれています。Malware Don’t Need Coffeeブログには、ShathakはTA551という攻撃者によるものであると記載されています。

イベント連鎖

この図は、最近のValakマルウェアの活動で観察されたイベント連鎖を示しています。Shathak/TA551配布ネットワークから始まるプロセスには、マルスパム、パスワード保護されたZIP添付ファイル、この添付ファイルからのマクロ付きのWord文書の抽出、マクロの有効化、および.cabで終わるHTTP URLへの誘導が含まれます。これが、第1段階のValakバイナリのダウンロード、第1段階の感染活動用のスクリプトの設定、HTTP Valak C2トラフィック、およびJSファイル、レジストリエントリ、スケジュールされたタスクによるValakの持続性の確立へと続きます。Valak C2トラフィックが増加し、ADSとしてテキストファイルに追加されたフォローアップマルウェアが、スケジュールされたタスクによりまず実行されます。
図1: 最近のValakマルウェア活動におけるイベント連鎖。マルスパムにパスワード保護されたZIPファイルが添付されており、これを展開するとマクロ入りWord文書が生成される。マクロが有効化されると.cabで終わるHTTP URLにアクセスが発生し、初期Valakバイナリがダウンロードされる。このバイナリが初期感染活動の設定スクリプトを生成してC2トラフィックを発生させる。ValakはJS、レジストリ、スケジュールされたタスクなどを利用して永続性を確立し、さらにC2トラフィックを生成してフォローアップ マルウェアを代替データストリームとしてテキストファイルに書き込み、これを初回スケジュール タスクとして実行する

図1は、2020年6月および7月前半のValak感染で確認されたイベント連鎖を示しています。Windowsを実行するコンピュータを感染させるには、被害者が以下のことを行う必要があります。

  • パスワード保護されたZIPファイルが添付されたマルスパムを開く。なお2020年6月30日と7月1日には、添付ファイルの代わりにZIPアーカイブをダウンロードするリンクが含まれていた痕跡も見つかっています。
  • メッセージ本文に含まれる固有パスワードを使用し、パスワード保護されたZIPアーカイブからMicrosoft Word文書を抽出する。
  • 以下の図2に示すように、Word文書を開いて、マクロを有効にする。
The text in the screenshot reads: "This document created in previous version of Microsoft Office Word. To view or edit this document, please click 'Enable editing' button on the top bar, and then click 'Enable content.'" This message is designed to trick the recipient into enabling macros for Valak.
図2: Valak用のマクロを含む、2020年6月24日のMicrosoft Word文書の例。

2020年6月のValak感染では、第1段階の活動は以下から構成されていました。

  • ValakをインストールするDLLを返す、.cab で終わるHTTPまたはHTTPS URL。
  • 図3に示すように、Valak DLLは、通常はファイル拡張子が.datまたは.jpgのランダムなファイル名で、C:\ProgramData\ディレクトリに保存される。
  • Valak DLLが、regsvr32.exe -s [filename] の形で実行される。
  • 図4に示すような DLL の実行が成功したことを示すポップアップメッセージ。
  • 図5と6に示すように、C:\Users\Public\ディレクトリ下に、ランダムなファイル名(感染波ごとに同じ名前)でJavaScript設定ファイルが作成される。
  • 第1段階のHTTPコマンドとコントロール(C2)トラフィックにより、感染用の追加のマルウェア/アーティファクトを作成するために使用されるエンコードされたASCIIテキストが返される。

このスクリーンショットに示すように、Valak DLLはランダムなファイル名を使用してC:\ProgramData\ディレクトリに保存されます。
図3: 図2のWord文書でマクロを有効化後に取り込まれた第1段階のValak DLL。
スクリーンショットに示されているメッセージ: RegSvr32, DllRegisterServer in c:\programdata\51508.jpg succeeded. ユーザーが[OK]をクリックするためのリンクが表示されています。
図4: 2020年6月24日、マクロを有効化してRegSvr32.exeによる第1段階のValak DLL実行に成功後、Windows 10ホストに表示されたポップアップメッセージ。

JavaScript設定ファイルが、C:\Users\Public\ディレクトリ下にランダムなファイル名として表示されます。
図5: 2020年6月24日のValak感染で使用されたC:\Users\Public\ディレクトリの第1段階のスクリプトファイル。

スクリーンショットは、JavaScript設定ファイルで、Valakにより変数名がどのように難読化されているかを示しています。これは、2020年6月以降確認されている難読化の例です。
図6: 2020年6月24日のJavaScript設定ファイルの内容。

図6は、JavaScript設定ファイルでの変数名の難読化を示しています。これは、2020年6月以降確認されている難読化の例です。このブログの後半にあるValakの進化の項でより詳細に説明します。

感染プロセスが進むと感染Windowsホスト上での永続性確立のため、以下の4つがほぼ同時に発生します。

  • 図7に示すように、.binで終わる(PE32実行可能ファイル、Mono/.Netアセンブリの)Windows実行可能ファイル(EXE)が作成されます。作成場所は感染ユーザーのAppData\Local\Tempディレクトリでファイル名はランダムです。
  • HKCU\SOFTWARE\ApplicationContainer\Appsw64のキーの下にWindowsレジストリエントリが作成されます。
  • 図8、9、10に示すように、ランダムに命名されたテキストファイルとJavaScript (JS)ファイルの両方が、C:\Users\Public\ディレクトリ下に作成されます。
  • 図11に示すように、C:\Users\Public\下にあるJSファイルを実行し、4分ごとに実行を繰り返すようにスケジュールされたタスクが作成されます。

.binで終わるランダムなファイル名として、感染したユーザーのAppData\Local\Tempディレクトリに、Windows実行可能ファイルが作成されます。
図7: 2020年6月24日のValak感染からの.binファイル拡張子を持つEXEファイル。

ランダムに命名されたテキストファイルとJavaScript (JS)ファイルの両方が、C:\Users\Public\ディレクトリ下に作成されます。
図8: 感染中にC:\Users\Public\ディレクトリに作成される追加のアーティファクト。

WordPadで表示すると、テキストファイルの内容がランダムな文字列であることがわかります。
図9: ランダムな文字列である、テキストファイルの内容。

Valak感染の持続性を確立するために使用されるJSファイル内で、感染したWindowsホストを識別する16進値を表す32文字のASCII文字列が見つかりました。
図10: Valak感染の持続性を確立するために使用されるJSファイルの内容。

スクリーンショットは、Valak感染の持続性を確立する、スケジュールされたタスクのコンテキストを示しています。テキストの一部を示します。
図11: Valak感染の持続性を確立するために使用されるJSファイルに対するスケジュールされたタスク。

C2ドメインが感染中もアクティブであった場合、早ければ4分後に、以下のように、フォローアップマルウェアが実行されます。

  • Valak C2トラフィックにより返された、エンコードされたASCIIテキストを使用して、フォローアップマルウェアEXEが作成されます。
  • 図12に示すように、ADSを使用して、フォローアップマルウェアEXEが、C:\Users\Public下のランダムに命名されたテキストファイルに追加されます。
  • 図13に示すように、フォローアップマルウェアEXEの作成直後に、このマルウェアを1回実行するためのスケジュールされたタスクが作成されます。
上のスクリーンショットは、フォローアップマルウェア用のADSが追加された[AlternateStreamView]を示しています。下のスクリーンショットは、作成後に変更されたテキストファイルを示しています。
図12: ADSで更新されたC:\Users\Public\ディレクトリのテキストファイル。

スクリーンショットには、Smart Update Serviceに加え、フォローアップマルウェア(WSUPackage...)を実行するための追加のスケジュールされたタスクが示されています。
図13: フォローアップマルウェアを実行するためのスケジュールされたタスク。

弊社のテストでは、米国内で脆弱なWindows 10ホストに対してValakを実行したところ、フォローアップマルウェアとして、IcedIDと呼ばれるバンキング型トロイの木馬が返されました。また、2020年6月のある事例では、Windows 7ホスト上で、IcedIDとNetSupport Manager RATベースのマルウェアの両方がフォローアップマルウェアとして作成されました。

Valakの感染トラフィック

感染は、被害者がいずれかの悪意のある文書でマクロを有効にすると始まります。これにより通常、Windows DLLファイルを返す、.cabで終わるURLが生成されます。図14に、HTTP要求とその他のWebベースのトラフィックを表示するようにWiresharkでフィルタリングした、2020年6月24日のValak感染を示します。最初の行は、.cabで終わるURLを示しています。このアクティビティのTCPストリームを図15に示します。サーバーから返されたEXEまたはDLLファイルの痕跡が見られます。

これは、IcedIDがフォローアップマルウェアであるValak感染からのトラフィックのログを示しています。
図14: Wiresharkでフィルタリングされた、2020年6月の、IcedIDがフォローアップマルウェアであるValak感染からのトラフィック。

サーバーから返されたEXEまたはDLLファイルの痕跡。
図15: Windows DLLファイルを返した、.cabで終わるHTTP GET要求に対するTCPストリーム。

VirusTotalでバイナリをチェックすると、このファイルがDLLであることがわかります。このDLLはValakのインストーラです。Valak DLLに対する第1段階のHTTPトラフィック直後に、以下で始まるその他のHTTP GET要求があることがわかります。

  • license.jsp?client=
  • archive.jsp?page=
  • db.aspx?dfc=

これらのHTTP要求は、おとりドメイン(正当な組織からの悪意のないドメイン)および悪意のあるドメインに送信される、Valak C2トラフィックです。これらのドメインは、前述の図6に示した、第1段階のValakスクリプトに記述されています。たとえば、2020年6月24日のValak感染では、おとりドメインは以下の通りでした。

  • e87.dspb.akamaidege.net
  • insiderppe.cloudapp.net
  • pagead46.l.doubleclick.net

図6には、2020年6月24日のValak感染の、以下の悪意のあるドメインも記述されています。

  • thepicklepilot.com
  • joonaskallinen.com
  • xfitnessproducts.com

さらに図6には、2020年6月24日のValak感染の3つの追加ドメインも記述されています。これらのドメインは登録されておらず、どのIPアドレスにも解決されないため、偽のドメインまたはプレースホルダであるようです。

  • 59xidd-fuel.com
  • 19geds-space.com
  • 55sfors-cask.com

Valak C2トラフィックはエンコードされたASCIIテキストとしてデータを返します。このデータは被害者ホストでデコードされ、スクリプトファイル、感染中に使用されるEXE、およびValak感染のレジストリ更新用のデータなどのマルウェアアイテムとして保存されます。図16に、このトラフィックの例を示します。

被害者ホスト上にマルウェアアイテムを作成するために使用されるASCIIデータを返す、HTTP経由のValak C2トラフィック。
図16: 被害者ホスト上にマルウェアアイテムを作成するために使用されるASCIIデータを返す、HTTP経由のValak C2トラフィック。

HTTP GET要求に加え、ValakはHTTP POST要求を使用して、特定のデータタイプを密かに抽出します。図17と18には、感染したWindowsホストから、Microsoft Outlookで使用されるログイン資格情報を送信する、class4.aspx?internalService=で始まるHTTP POST要求が示されています。

Outlookが動作する、Valakに感染したWindowsホストで見られるHTTP POST要求
図17: C2トラフィックからのHTTP POST要求を示す、WiresharkでフィルタリングされたValak感染トラフィック。

スクリーンショットは、感染したWindowsホスト上でMicrosoft Outlookに使用される電子メールアカウントのログイン資格情報を示しています。また、Valakに感染したホストのOutlookログイン資格情報に変換されるbase64文字列も示しています。
図18: 感染したホストのOutlookログイン資格情報を含むbase64文字列を示す、HTTP POST要求のTCPストリーム。

米国内で生成されたValak感染では、フォローアップマルウェアとして主にIcedIDが確認されています。図19に、Valak感染トラフィックでのIcedIDの痕跡を示します。

Valak感染でのIcedIDトラフィック(スクリーンショットでは悪意のあるドメインを矢印で示しています)
図19: このValak感染のフォローアップマルウェアであるIcedIDの痕跡。

最近の進化

Valakの進化とともに、Valakの設定スクリプト内の難読化が増加しています。この難読化は、感染の持続性を確立するためのその他のスクリプトやWindowsレジストリの更新にも見られます。図20に、Valakソフトウェアバージョン40を使用する、2020年6月23日の設定スクリプトを示します。図21に、Valakソフトウェアバージョン41を使用する、2020年6月24日の設定スクリプトを示します。Valakがバージョン40から41に変わった際に、変数名や値の一部が難読化されていることに注目してください。

2020年6月23日のValak設定スクリプトでは、ソフトウェア(Valak)シグネチャ、ソフトウェア(Valak)バージョン、および変数名と値はプレーンテキストで記述されています。
図20: 変数名と値がプレーンテキストで記述されているValakバージョン40の設定スクリプト。

2020年6月24日のValak設定スクリプトでは、ソフトウェア(Valak)シグネチャ、ソフトウェア(Valak)バージョン、および変数名と値にはエンコードされた文字列が使用されています。
図21: 変数名と一部の値に難読化テキストが使用されているValakバージョン41の設定スクリプト。

大半の難読化と同様に、これはおそらく検知を回避するための試みでしょう。時間の経過とともに、Valakの設定スクリプトおよび関連ファイルはさらに難読化されると予想されます。

Shathak/TA551配布ネットワーク

ShathakまたはTA551は、マルスパムの添付ファイルとしてパスワード保護されたZIPアーカイブを使用する特定の配布方法に対して、一部のセキュリティリサーチャーが付けた名前です。この配布ネットワークは、ロシアのサイバー犯罪に関連している可能性があります。英語、イタリア語、ドイツ語、および日本語圏の受信者を標的とするWord文書テンプレートが使用されています。Shathak/TA551は、少なくとも2019年2月にはすでにアクティブでした。

Shathak/TA551配布ネットワークには以下の特徴があります。

  • マルスパムは、以前に感染したWindowsホストから取得したメールボックスデータに基づく、正当な電子メールチェーンになりすまします。これらの電子メールチェーンのコピーを、元の電子メールチェーンの送信者と受信者に送信します。
  • なりすましの電子メールチェーンには、チェーンの最も新しい項目として、短いメッセージが含まれます。この項目は、提供されたパスワードを使用して添付のZIPアーカイブを開くように受信者に指示する一般的なメッセージです。
  • パスワード保護されたZIP添付ファイルには、マルウェアをインストールするマクロ付きのMicrosoft Word文書が含まれます。付録Aに、2020年6月のこのようなWord文書の例を示します。
  • 通常、これらのマクロはマルウェアをインストールするバイナリを取得するための、.cabで終わるURLを生成します。このバイナリは現在はDLLファイルです。付録Bに、このキャンペーンからのURLの例を示します。
  • 2020年4月より前は、Shathak/TA551に関連したWord文書によって最も多く配布されていたマルウェアはUrsnifでした。
  • 2020年4月以降、このようなWord文書により最も多く配布されているマルウェアはValakになりました。付録Cに、2020年6月の一連のValak DLLの例を示します。
  • 2020年5月以降、ZIP添付ファイルに使用されているパスワードは受信者ごとに固有のようです。

Shathak/TA551に関連するトラフィックパターンがどのようなものかわかるように、関連するWordマクロにより生成されたURLの最近の例を以下に示します(日付 – URL)。

  • 2020-05-26 – hxxp://c1j4xptyujjpyt8[.]com/gg88wyaftcxr7gu/wo0zz.php?l=sfzs9.cab
  • 2020-05-27 – hxxp://ft23fpcu5yabw2[.]com/alfh/xzrn.php?l=lfahe9.cab
  • 2020-06-03 – hxxp://awh93dhkylps5ulnq-be[.]com/czwih/fxla.php?l=gap1.cab
  • 2020-06-09 – hxxp://a4zy33hbmhxx70w9q[.]com/hdil/kzex.php?l=soub12.cab
  • 2020-06-10 – hxxp://kzex9vp0jfw6a8up1[.]com/hdil/kzex.php?l=phin1.cab
  • 2020-06-22 – hxxp://5u2mr[.]com/unbbmevd/d76.php?l=oev1.cab
  • 2020-06-23 – hxxp://fepz41[.]com/unbbmevd/d76.php?l=ynetz11.cab
  • 2020-06-24 – hxxp://mbzrrt[.]com/unbbmevd/d76.php?l=ftywl4.cab
  • 2020-06-26 – hxxp://ofxvp[.]com/unbbmevd/d76.php?l=wozmbl9.cab
  • 2020-07-06 – hxxp://eto9ve1[.]com/iz5/yaca.php?l=tze7.cab

前述のとおり、付録Bに、Shathak/TA551に関連するWordマクロにより生成されたこのようなURLの例をさらに示しています。

図22~30は、Shathak/TA551に関連する、マルスパムおよび抽出されるWord文書のいくつかの例のスクリーンショットです。これらの図は、Shathak/TA551配布ネットワークが、2019年2月以降どのように進化したかを示しています。

図22: 2019年2月4日の英語圏の受信者に対するShathak/TA551マルスパム。
図22: 2019年2月4日の英語圏の受信者に対するShathak/TA551マルスパム。
図23: 2019年4月2日のイタリア語圏の受信者に対するShathak/TA551マルスパム。
図23: 2019年4月2日のイタリア語圏の受信者に対するShathak/TA551マルスパム。
図24: 2019年7月22日の英語圏の受信者に対するShathak/TA551マルスパム。
図24: 2019年7月22日の英語圏の受信者に対するShathak/TA551マルスパム。
図25: 2019年10月30日のドイツ語圏の受信者に対するShathak/TA551マルスパム。
図25: 2019年10月30日のドイツ語圏の受信者に対するShathak/TA551マルスパム。
スクリーンショットには日本語のあいさつ文が含まれています。続いてZIPのパスワードと完了手順が示されています。抽出された文書info_12_18が開き、マクロを有効化するようにユーザーをだますメッセージが表示されます。
図26: 2019年12月17日の日本語圏の受信者に対するShathak/TA551マルスパム。
図27: 2020年3月26日のドイツ語圏の受信者に対するShathak/TA551マルスパム。
図27: 2020年3月26日のドイツ語圏の受信者に対するShathak/TA551マルスパム。
図28: 2020年4月28日の英語圏の受信者に対するShathak/TA551マルスパム。
図28: 2020年4月28日の英語圏の受信者に対するShathak/TA551マルスパム。
図29: 2020年5月22日の英語圏の受信者に対するShathak/TA551マルスパム。
図29: 2020年5月22日の英語圏の受信者に対するShathak/TA551マルスパム。
図30: 2020年5月26日のドイツ語圏の受信者に対するShathak/TA551マルスパム。
図30: 2020年5月26日のドイツ語圏の受信者に対するShathak/TA551マルスパム。

Shathak/TA551からは、以前はたいていUrsnifが送り出されていましたが、2020年4月後半以降、主にValakが配布されています。ただし、このネットワークから今もUrsnifが配布されることがあり、最近では2020年6月10日と2020年7月7日に確認されています。

結論

2020年も後半に入りましたが、Valakの勢いはまったく衰える兆しがありません。Valak用のマクロを含むWord文書を送り出すShathak/TA551配布ネットワークからのマルスパムの波はさらに続くと予想されます。

マルウェアコードでのレジストリ更新にある程度依存するその複雑な感染プロセスにより、Valakは保護されていないWindowsホストを簡単に感染させることができます。ADSを使用してValak感染のフォローアップマルウェアを隠ぺいすることも、リスクを大幅に向上させます。

ただし、すべてのパッチを適用した最新バージョンのMicrosoft Windowsを実行するなどのセキュリティのベストプラクティスを実践することにより、Valak感染を阻止または防止することができます。パロアルトネットワークス製品をご利用中のお客様は、弊社次世代ファイアウォールの脅威防御サブスクリプションにより、Valakからさらに保護されています。AutoFocusをご利用中のお客様はValakタグをでValakによる活動を検索できます。

付録A

2020年6月のShathak/TA551配布ネットワークからのWord文書に対するSHA256ファイルハッシュと関連するファイル名のサンプルはこちらから入手できます。 https://raw.githubusercontent.com/pan-unit42/iocs/master/Valak/2020-June-SHA256-hashes-of-Word-docs-from-Shathak-TA551-distribution.txt

付録B

Shathak/TA551に関連するWord文書により生成されたURLのサンプルはこちらから入手できます。 https://raw.githubusercontent.com/pan-unit42/iocs/master/Valak/2020-03-23-to-2020-07-07-TA551-traffic-pattern-history-since-Valak.txt

付録C

2020年6月のShathak/TA551配布ネットワークからのValak DLLファイルに対するSHA256ファイルハッシュのサンプルはこちらから入手できます。 https://raw.githubusercontent.com/pan-unit42/iocs/master/Valak/2020-June-SHA256-hashes-of-Valak-DLL-files-from-Shathak-TA551-distribution.txt