悪性 PPT ファイルの進化
本内容は、アンラボコリアより発表された内容を翻訳したものです。
--------------------------------------------------------------------------------------------
職場での発表や報告書の作成に欠かせない PowerPoint (PPT) は、汎用性が高いことから、サイバー攻撃に悪用されることが多い。攻撃者はフィッシングメールでターゲットを騙し、添付した悪性 PPT ファイルを実行するように誘導して不正行為をする。
本文では、2021年に流布された悪性 PPT ファイルの特徴および動作方式について説明する。
悪性 PPT ファイルは、注文書、明細書などを装ってフィッシングメールに添付され、悪性 VBA マクロが含まれている。
このような攻撃方式はユーザーに気づかれにくいため、Word や Excel など別の形式の文書ファイルにも多く用いられている。
悪性 PPT ファイルに含まれたマクロが実行されると、Windows の正常なプロセスである 「mshta.exe」 を通じて特定の URL にアクセスし、悪性スクリプトを実行する。最終的に情報流出型マルウェア 「AgentTesla」 をファイルレス (Fileless) 形式で実行する。
大きな観点で見ると、悪性 PPT ファイルの配布および動作方式は以前とさほど変わっていないが、セキュリティ製品を回避するためのVBA マクロコードの変更/プロセスの変更/スクリプト機能の追加により、巧妙化を続けている。
悪性 PPT ファイルの配布方式
悪性 PPT ファイルは多くの企業ユーザーを対象に、ソーシャルエンジニアリング手法を用いたフィッシングメールに添付され配布されている。攻撃者はユーザー情報を予め把握してその情報を利用しユーザーを騙したり、注文書/明細書/運送状などのような日常で届きそうな内容のメールを不特定多数に送信する。
[図 1] は、2021年に配布された悪性 PPT ファイルが添付されたフィッシングメールである。
[図 1] 悪性 PPT ファイルが添付されたフィッシングメール
フィッシングメールに添付された悪性 PPT ファイルはさまざまな拡張子を使用しており、「.pdf 」 が使用された例もある。
以下は、2021年に流布された悪性 PPT ファイル名の一部である。
悪性 PPT ファイル名
▶ Purchase order 4500061977pdf.ppam
▶ Catalog for new order.pdf.ppam
▶ ReservationId ,pdf.ppam
▶ Purchase Inquiry_pdf.ppt
▶ Quote and Company Profile.ppam
▶ Purchase Order From Genbody.ppam
▶ Introduction of GenBody.ppam
▶ DHL ONLINE SHIPPING PREALERT ADVISORY AWB 9804583234.ppt
▶ FUJI Company Profile Presentation .ppt
▶ INTRODUCTION OF FUJICHEM.ppt
▶ Request for Offer.ppt
▶ Invoice copy.ppt
▶ Defence and security Agenda Point.ppt
▶ Distribution Notice.ppa
動作方式および特徴
悪性 PPT ファイルの全体的な動作の流れは [図 2] のとおりである。
[図 2] 悪性 PPT ファイルの動作フロー
まず、フィッシングメールに添付された悪性 PPT ファイルを実行すると、悪性 VBA マクロが動作する。悪性 VBA マクロは mshta プロセスを通じて短縮 URL にアクセスし、悪性スクリプトがアップロードされた Web サイトに接続する。
最終的に悪性スクリプトを通じて情報流出型マルウェア 「Agent Tesla」 をファイルレス型で実行する。動作方式は現在も同様の方式を維持している。
悪性 PPT ファイルを実行すると、本文はなく、マクロの有効/無効を選択する通知ウィンドウが表示される。この際、マクロを有効にすると、悪性 VBA マクロが実行される。悪性 VBA マクロは Auto_Open() や Auto_Close() 関数を使用して文書ファイルが開かれる際、または終了する際に自動的に悪意あるコードを実行する。
[図 3] PPT ファイルの実行時に表示される通知ウィンドウ
悪性 VBA マクロコードはタイプに分かれて難読化されているが、主な機能は同じである。mshta プロセスを通じて特定の URL に接続させるが、URL の大半が次のように短縮されている。
短縮 URL
▶ hxxps://bitly[.]com/dsasabqwdasdahsawgtasdajksbadsashakdasfdasd
▶ hxxp://www.bitly[.]com/hdjalsdnbhagdehasd
▶ hxxp://www.bitly[.]com/hdjkashdjksagtdjkasghdjk
▶ hxxps://j[.]mp/dbdwdadwdwfcrgdwdww
▶ hxxps://j[.]mp/jasidjaddaaoasdoj
▶ hxxp://j[.]mp/ytuiwqjslkawqtyiwqbhj
URL に接続すると Final URL にリダイレクトする。Final URL はほとんど形が類似しており、「Blogspot」 ページを利用することが特徴である。
Final URL
▶ hxxps://thethingsidontknowwhattyodo.blogspot[.]com/p/ghul-117817.html
▶ hxxps://orkyakroonmeinkyukartaahunthekat1.blogspot[.]com/p/charles123uuu.html
▶ hxxps://orkyakroonmeinkyukartaahun.blogspot[.]com/p/gibson1243gibson.html
▶ hxxps://newblogheresee.blogspot[.]com/p/27.html
▶ hxxps://newblogheresee.blogspot[.]com/p/10.html
▶ hxxps://ajmeinthakahowahun.blogspot[.]com/p/divin2222.html
Web ブラウザを使用して Final URL に接続すると、[図 4] のように正常に見える空のブログを確認することができる。しかし、このサイトには悪性スクリプトが含まれている。

最終的に接続する Web サイトへは、実際のユーザーのみがアクセス可能であり、一定時間が経過すると不正行為の分析ができないようにほとんどの悪性サイトを削除または非公開処理してアクセスを遮断する。
BlogSpot Web ページに含まれている悪性スクリプトはエンコードされており、デコードすると悪性 VBS コードを確認できる。デコードされた悪性スクリプトの共通機能は大きく2つ挙げられる。一つ目は 「継続して不正行為をするためのタスクスケジューラおよび RUN キーへの登録」、二つ目は 「悪性バイナリの正常なプロセスへのインジェクション」 である。
まず、タスクスケジューラおよび RUN キーへの登録は [図 5] のように動作する。
[図 5] スクスケジューラおよび RUN キーへの登録
[図 5] のコードが実行されると、タスクスケジューラ [schtasks] を通じて正常なスケジューラ名を偽装した[WIND0WSUPLATE] という名前でタスクスケジューラに登録する。これにより、80分ごとに mshtaを通じて特定の URL に接続し、また Blogspot ページを利用するようになる。
この Web サイトにも同様にエンコードされた悪性スクリプトが含まれており、機能はファイルによって少しずつ異なる。主に特定プロセスの終了、悪性 PowerShell コマンドの実行など、不正行為を追加で行う。タスクスケジューラへの登録後に RUN キーに登録するが、この際も mshta を通じて悪性スクリプトが含まれた Blogspot ページに接続させるコマンドを登録する。
[表 1] スクスケジューラおよび RUN キーへの登録
二つめの機能は、PowerShell コマンドを通じて特定の URL に接続し、.NET 実行ファイルをロードする機能である。
バイナリは2つあり、一つは不正行為をする payload、もう一つは payload を正常なプロセスにインジェクションする。
悪性バイナリは [図 6] のコマンドを通じてロードされ、デコードされた一つ目の.NET ファイルの projFUD.alosh_rat の Execute Method (実行メソッド) を実行する。
[図 6] 悪性バイナリのロード
実行メソッドは aspnet_compiler.exe プロセスの生成後、二つ目の .NET ファイルをインジェクションして不正行為をする。この際にインジェクションされるファイルが情報流出型マルウェア 「Agent Tesla」 である。上記の過程を経て最終的にマルウェアが実行され、特定の Web サイトに存在するバイナリを正常なプロセスにインジェクションするため、ファイルレス型で動作することになる。
動作方式および特徴
マクロの実行からマルウェアの実行までの過程は全体の流れは同じであるが、機能を遂行するスクリプトの形は少しずつ異なっており、タスクスケジューラおよび RUN キーに登録・実行される悪性スクリプトの機能も変化してきている。スクリプト以外にも VBA マクロコードおよびプロセスが変更されて流布されている。このような変化は、アンチウイルスソフトによる検知を回避するためのものであるとみられる。各機能の変化の過程は以下で紹介する。
1. VBA マクロ
2021年に流布された悪性 VBA マクロは、ほとんどが単純に分けられた mshta コマンドを組み合わせて実行する形である。
[図 7] 2021年2月に流布された悪性 VBA マクロ
2021年4月に発見された亜種の悪性 VBA マクロはコード内に mshta コマンドが含まれておらず、TextBox プロパティを利用する。プロパティに mshta コマンドを保存して利用する方式で、悪性コマンドをマクロコード内に隠すためであるみられる。
2021年8月には、分析と検知を妨害するために悪性 VBA マクロがより複雑な形へと変化した。悪性 VBA マクロは関数を複数に分け、各関数から特定の文字列を抽出して使用する。また、文字列を単純に各関数で割るのではなく、Replace()、 Mid()、Left() などの文字列インデックスを利用する関数で文字列を組み合わせる。この方式は、実行される悪性コマンドを推測しにくくする。
2021年11月には、文字列インデックスを利用する関数の使用と共に XOR 演算が追加された事例も確認された。
それまでは指定された文字列の特定位置の値を読み込む形であったが、当該事例では XOR 演算を含むおり複雑な形で文字列を読み込むため、静的分析に時間がかかる。
[図 8] 2021年11月に流布された悪性 VBA マクロ
悪性 VBA マクロは mshta コマンドを実行する機能のみならず、mshta コマンドを実行する前にエラーウィンドウを生成するタイプもある。この方式の場合、ユーザーは PPT ファイルのエラーであると思ってしまうため、不正行為に気づきにくい。
上記で説明した悪性 VBA マクロタイプ以外にも多数の変形ファイルがあり、さらに複雑に進化し続けている。
2. プロセス
従来は悪性 VBA マクロを通じて PPT プロセスで mshta コマンドがすぐに実行されたが、変形ファイルでは mshta コマンドを実行する主体が変更されている。mshta コマンドを実行する過程で PowerShell コマンドが追加され、このプロセスが cmd コマンドを実行し、最終的に cmd プロセスを通じて mshta コマンドが実行される。
[図 9] PowerShell プロセスが追加されたタイプ
mshta コマンドを実行する主体が Outlook に変更されたタイプもある。
[図 10] Outlook プロセスが追加されたタイプ
PowerShell プロセスが追加されたタイプは親プロセスが PowerPoint であるが、このタイプでは Outlook プロセスを生成して mshta コマンドを実行する。 [図 10] のコードを確認すると、CreateObject (“Outlook.Application”) を通じて Outlook 応用プログラムオブジェクトを生成して mshta コマンドを実行することが分かる。
このようなプロセスの変化は、ビヘイビア (行為) 検知を回避するためであるとみられる。
3. スクリプト機能
悪性 PPT ファイルは悪性スクリプトを通じてタスクスケジューラおよび RUN キーへ登録し、Agent Tesla を実行する。
但し、タスクスケジューラおよび RUN キーに登録される追加の悪性スクリプトの機能はタイプごとに異なる。
現在までに確認されたタイプと機能は以下のとおりである。
A. 悪性スクリプトの類型1 – コインの搾取
[図 11] はコインを搾取する悪性 PowerShell であり、タスクスケジューラに登録され、周期的に実行される。
Windows クリップボードにコピーされた文字列をスキャンし、コインアドレスであった場合は攻撃者のアドレスに変更してコインを搾取する。搾取対象は、Bitcoin、Ethereum、XMR、DOGE など、利用者が多いコインである。
[図 11] コインを搾取する悪性 PowerShell スクリプト
B. 悪性スクリプトの類型 2 – 多様な追加機能
二つ目は、セキュリティプログラムのスキャンおよび権限昇格などの多様な機能を遂行する悪性 PowerShell であり、RUN キーに登録され実行される。
まず、特定のパスに存在するセキュリティプログラムの存在有無をスキャンし、セキュリティプログラムが存在する場合は、http://www.google.com へアクセスしてダウンロードされる正常なスクリプトを実行して不正な動作をしない。
スキャン対象セキュリティプログラムのパス
▶ C:\Program Files\ESET\ESET Security\ecmds.exe
▶ C:\Program Files\Avast Software\Avast\AvastUI.exe
▶ C:\Program Files\Common Files\McAfee\Platform\McUICnt.exe
▶ C:\Program Files\Malwarebytes\Anti-Malware\mbamtray.exe
▶ C:\Program Files\AVG\Antivirus\AVGUI.exe
反対に、セキュリティプログラムが存在しない場合は、Windows セキュリティ通知の無効化、ユーザーアカウント制御 (UAC) の回避、Windows Defender の無効化などの機能を利用して追加のマルウェアが正常に実行されるようにユーザー PC 環境を設定する。
まとめ
悪性 PPT ファイルは、2020年から現在に至るまでフィッシングメールを通じて配布され続けてきた。
VBA マクロ、プロセス、悪性スクリプトの変化などにより、セキュリティ製品の有無、Windows Defender の無効化などの機能が追加され、より巧妙で持続的に不正行為ができるように進化している。
また、配布の過程でユーザーを騙す手法もさらに巧妙化しているため、ユーザーは提供元不明なメールを開く際に注意を払い、V3 などのセキュリティ製品を常に最新の状態に維持するなど、マルウェア感染の事前予防ができるよう注意しなければならない。