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という攻撃者によるものであると記載されています。
イベント連鎖
図1は、2020年6月および7月前半のValak感染で確認されたイベント連鎖を示しています。Windowsを実行するコンピュータを感染させるには、被害者が以下のことを行う必要があります。
- パスワード保護されたZIPファイルが添付されたマルスパムを開く。なお2020年6月30日と7月1日には、添付ファイルの代わりにZIPアーカイブをダウンロードするリンクが含まれていた痕跡も見つかっています。
- メッセージ本文に含まれる固有パスワードを使用し、パスワード保護されたZIPアーカイブからMicrosoft Word文書を抽出する。
- 以下の図2に示すように、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テキストが返される。
図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分ごとに実行を繰り返すようにスケジュールされたタスクが作成されます。
C2ドメインが感染中もアクティブであった場合、早ければ4分後に、以下のように、フォローアップマルウェアが実行されます。
- Valak C2トラフィックにより返された、エンコードされたASCIIテキストを使用して、フォローアップマルウェアEXEが作成されます。
- 図12に示すように、ADSを使用して、フォローアップマルウェアEXEが、C:\Users\Public下のランダムに命名されたテキストファイルに追加されます。
- 図13に示すように、フォローアップマルウェアEXEの作成直後に、このマルウェアを1回実行するためのスケジュールされたタスクが作成されます。
弊社のテストでは、米国内で脆弱な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ファイルの痕跡が見られます。
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に、このトラフィックの例を示します。
HTTP GET要求に加え、ValakはHTTP POST要求を使用して、特定のデータタイプを密かに抽出します。図17と18には、感染したWindowsホストから、Microsoft Outlookで使用されるログイン資格情報を送信する、class4.aspx?internalService=で始まるHTTP POST要求が示されています。
米国内で生成されたValak感染では、フォローアップマルウェアとして主にIcedIDが確認されています。図19に、Valak感染トラフィックでのIcedIDの痕跡を示します。
最近の進化
Valakの進化とともに、Valakの設定スクリプト内の難読化が増加しています。この難読化は、感染の持続性を確立するためのその他のスクリプトやWindowsレジストリの更新にも見られます。図20に、Valakソフトウェアバージョン40を使用する、2020年6月23日の設定スクリプトを示します。図21に、Valakソフトウェアバージョン41を使用する、2020年6月24日の設定スクリプトを示します。Valakがバージョン40から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月以降どのように進化したかを示しています。
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