- Cisco Talos では以前から継続的に LodaRAT の動向をモニタリングしており、これまでにもたびたび新機能が追加されていることを確認しています。
- LodaRAT の新しいバージョンは複数見つかっており、実際の使用も確認されています。
- 新しいバージョンの LodaRAT では、従来の難読化手法が廃止されています。
- 分析中も攻撃者による直接操作が確認されていることから、感染したホストを攻撃者が活発に監視していることが伺われます。
最新情報
Talos は最近、AutoIt で記述されたリモートアクセス型トロイの木馬 LodaRAT の新しいバージョンを複数発見しました。これらのバージョンでは、従来の難読化手法が廃止されているだけでなく、いくつかの機能が書き直され、新しい機能が追加されています。以前のバージョンには新しい VB スクリプトのほか 16 進数でエンコードされた PowerShell のキーロガースクリプトが追加されましたが、以降のバージョンでは削除されています。分析時には、攻撃者による直接操作も確認されています。
要点
2020 年 2 月に Loda に関するブログ記事を投稿して以来、Talos は LodaRAT の動向を継続的に監視してきました。そして最近確認されたいくつかの変更点は、Loda の実効性を高める新たな手口を攻撃者が学びつつあることを示唆しています。取り立てて大きな変更ではありませんが、Loda をより強力な RAT へと進化させるべく、現在も開発が継続中であることがわかります。
配布方法
以前のキャンペーンにおける感染までの流れは、まず悪意のある Microsoft Word ドキュメントが配布され、そのドキュメントによって別のドキュメントがダウンロードされ、最終的に CVE-2017-11882 がエクスプロイトされるというものでした。その後、エクスプロイトペイロードによって、コンパイル済みの Loda AutoIt スクリプトを含む MSI がダウンロードされます。
一方、今回分析したサンプルは、従来よりもはるかにシンプルな方法で配布されています。新しいバージョンの Loda は、フィッシングメールに添付された悪意のある RAR アーカイブを介して配布されています。キャンペーンに使用されたフィッシングメールの例を以下に示します。
メールに添付されている RAR ファイルの拡張子は「.rev」で、ファイルにはコンパイル済みの Loda AutoIt バイナリが含まれています。本来の「.rev」ファイルはマルチボリューム RAR アーカイブと同時に作成されるリカバリファイルですが、フィッシングメールに添付されていた .rev ファイルは実際には標準の RAR ファイルでした。
感染までの流れ全体が以前のキャンペーンに比べて大幅に簡素化されているため、キャンペーンの成功率も低下している可能性があります。現在のバージョンでは、何らかの形で自動的にエクスプロイトがトリガーされて感染が進行することはなく、ターゲットユーザがバイナリをダブルクリックしない限りマルウェアは実行されません。
マルウェア
調査の結果、複数のバージョンの Loda が同時に配布されていることがわかりました。これらのバージョンの全体的な機能はよく似ていますが、いくつかの重要な違いがあります。複数のバージョンが同時に使用されていることから、Loda を使用している攻撃者が複数存在し、それぞれが各バージョンを別々に開発している可能性も考えられます。Talos の調査で実際の使用が確認されたサンプルの大部分は古いバージョンであり、最新バージョンはほとんど使用されていませんでした。
Loda に埋め込まれているバージョン番号には矛盾が見られます。Loda に関する以前の投稿で取り上げたバージョンは「1.1.1」でしたが、新しいバージョンの中には、更新や変更が加えられているにもかかわらずバージョン番号が上がっていないものもあります。その一方で、コードと機能に変更が加えられた、「1.1.7」というラベル付きの新しいバージョンも確認されています。したがって、Loda に埋め込まれているバージョン番号のみを頼りに分析対象の Loda のバージョンを判断するのは軽率です。なお、「beta」という文字列は Loda のすべてのバージョンで使用されています。
バージョン番号 1.1.1
バージョン番号 1.1.7
難読化
新しいバージョンの Loda で特に顕著な変更点は、難読化の完全廃止です。従来の Loda では、文字列の難読化と関数名のランダム化が組み合わせて使用されていました。しかし、これらの手法ではウイルス対策ツールによる検出を回避できなくなってきたため、廃止された可能性があります。以下の図に、以前のバージョンの Loda で難読化されていたコードの例を示します。このコードには、ランダム化された関数名と難読化された文字列の両方が含まれています。
次の図は、最新バージョンの Loda の同じセクションで使用されているコードを示しています。関数には意味のある名前があり、文字列は一切難読化されていません。
1.1.1
新機能について見てみると、1.1.1 のラベルが付いた新しいバージョンでは、以下のように 16 進数でエンコードされた文字列として保存された PowerShell キーロガーが実装されています。
16 進数でエンコードされた PowerShell スクリプト
デコード後のキーロガー
この PowerShell スクリプトは、短いブログ記事からコメントを削除してコピーしたもののようです。Loda は C2 から「MgPlugUp」コマンドを受信すると、このスクリプトを「tmpwstz21.ps1」というファイルに書き込んで実行します。ログは一時ディレクトリにテキストファイルとして出力され、ファイル名にはその時点の日付が使用されます。
また、Loda AutoIt スクリプトをプロセス名で検索して、実行中のインスタンスが 1 つだけであることを確認する VB スクリプトも追加されています。このスクリプトも部分的に 16 進数でエンコードされた文字列として保存されていて、デコード後のスクリプトは「BYDVRI.vbs」というファイルに追加されます。
16 進数でエンコードされたスクリプト
デコード後の VB スクリプト
1.1.7
1.1.7 のラベルが付いたバージョンでは、さらにいくつかの変更が加えられています。特に顕著なのは、上記の PowerShell スクリプトと VB スクリプトが削除されている点です。全体としてはほとんど変更されていないものの、コードのシンタックスと読みやすさの点で細かい改善が数多く加えられています。この最新バージョンでは、 Loda の本来の目的である、ブラウザからパスワードと Cookie を盗み出すことに重点が置かれています。
以下の機能は、1.1.7 だけに見られる新しい機能です。このバージョンの Loda は、まずはじめに AutoIt マクロ「@OSVERSION」を使用して OS のバージョンを確認し、Windows のバージョンに応じて Temp ディレクトリまたは startup ディレクトリに自身をコピーします。その後、自身のコピーを実行します。
バージョン番号は 1.1.7 ですが、以前のバージョンの Loda よりも機能が低下しているように見えます。信頼性を確保するために一部のコードが削除されたか変更された可能性があります。
無駄なコード
Loda のすべてのバージョンを通じて、事実上無駄な機能が 2 つ存在します。1 つ目は「QURAN」コマンドです。このコマンドは、現在非推奨の MMS(Microsoft Media Server)プロトコルを使用して、コーランの読誦音声を感染したホスト上の Windows Media Player でストリーミングするためのものです。このストリームの URL は「live.mp3quran[.]net:9976」ですが、もはや存在していないようで、このコマンドは事実上機能しません。このコマンドについては、LodaRAT に関する以前のブログ記事でも取り上げています。
2 つ目は「__SQLITE_DOWNLOAD_SQLITE3DLL」関数で、実際には存在しない URL から SQLite3 DLL のダウンロードを試みるものです。
C2
どちらのバージョンも、C2 通信に正規のサービスを悪用する手法に移行しています。分析時には、Ngrok.io と portmap.io の両方が使用されていることが確認されました。これらのサービスは本来、インターネットに直接接続されていないホストと通信するために開発者や管理者が利用するサービスですが、匿名化を目論む攻撃者によって簡単に悪用される危険性もあります。Talos では以前からこの手口を利用した脅威について取り上げてきました。詳しくはこちらをご覧ください。
バージョン 1.1.1 の分析時には、C2 から複数のコマンドが送信されていることがリアルタイムで確認されました。Loda が C2 から最初に受信するコマンドとして最も多いは、感染したホストのスクリーンショットを C2 に送り返す「Screen」コマンドです。このコマンドは定期的に送信され、ホストの現在のスクリーンショットを攻撃者に送り続けます。
スクリーンショットが C2 サーバに何枚か送信された後、攻撃者は分析対象マシンと直接やり取りを開始しました。 その後、「MpS8x」コマンドが使用され、メッセージボックス内にカスタムメッセージを表示する簡単な VB スクリプトが生成されました。
「MpS8x」コマンド
メッセージの内容から判断すると、攻撃者はマルウェアがサンドボックスで実行されていることに気付いたようです。このやり取りで興味深い点は、Loda 自体にサンドボックス検出機能がないということです。メッセージボックスが表示される前に、マルウェアが仮想マシンで実行されていることを示すデータが C2 に送信された形跡はまったくありません。サンドボックス検出機能がないため、攻撃者はスクリーンショットだけを見て侵入先がサンドボックスであると気付いたことになります。この直接やり取りから、攻撃者が侵入先のホストを積極的に監視していることが伺われます。
やり取りのパケットキャプチャ
表示されたメッセージボックス
繰り返しになりますが、現在出回っている Loda インスタンスの大部分は古いバージョンであり、従来と同じ手法を使用しています。このブログ記事で分析している難読化されていないバージョンが発見されることは、以前のバージョンと比べると極めてまれです。新しいバージョンの Loda に効果があることが明らかになれば、使用頻度が徐々に増えてくるかもしれません。また、これらのバージョンにもいずれ文字列の難読化や関数名のランダム化が導入される可能性があります。というのも、Loda はこれまでこうした手法を定期的に取り入れてきたからです。
まとめ
Loda は以前から効果的な RAT であり、機能の変更や追加は現在も行われています。軽微な変更もありますが、この事実から Loda が絶えず進化し続けていることがわかります。このマルウェアは、感染したホストを深刻な脅威にさらします。Loda は単純なマルウェアかもしれませんが、深刻な経済的被害をもたらすには十分すぎるほど効果的と言えるマルウェアです。
カバレッジ
SNORT
[SID] 53031
OSquery
Cisco AMP ユーザは、Orbital Advanced Search を使用して複雑な OSquery を実行し、エンドポイントが MedusaLocker などの脅威に感染しているかどうかを確認できます。類似の脅威に対応する OSquery の具体例については、以下をクリックしてください。
お客様がこの脅威を検出してブロックできる別の方法を以下に記載します。
Advanced Malware Protection(AMP)は、これらの攻撃者がマルウェアを実行できないようにするための最適な方法です。
Cisco クラウド Web セキュリティ(CWS)または Web セキュリティアプライアンス(WSA)の Web スキャンは、悪意のある Web サイトへのアクセスを防止し、上述したような攻撃で使用されるマルウェアを検出します。
E メールセキュリティは、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。
次世代ファイアウォール(NGFW)、次世代侵入防御システム(NGIPS)、および Meraki MX などのネットワーク セキュリティ アプライアンスは、今回の脅威に関連する悪意のあるアクティビティを検出します。
AMP Threat Grid は、悪意のあるバイナリを特定し、すべてのシスコセキュリティ製品に保護機能を組み込みます。
Umbrella(シスコのセキュア インターネット ゲートウェイ(SIG))は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。
オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.org で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。
IOC
添付ファイル
0d181658d2a7f2502f1bc7b5a93b508af7099e054d8e8f57b139ad2702f3dc2d
fcbaf2e5ed0b1064da6a60101f231096164895328fd6c338b322b163d580b6e3
cf40e1ec36f44e20a9744e8038987527027e2a6ee7e96d9044842f92ece9d7e8
05d2fa5bb97f37edaaff99f58ffedbd438e928fb3881ede921a19b07fb884b0b
1.1.1
866397c8db26190c5a346bd863d9beb81e53d96011af9a3be6eeb713bbb57287
cfb12ee4004cea2a396e1cecd7105760b17a73a67a95156d675cfec76fc37ba2
70526973e70acef4a71f474b0e321b9e600a327522903ee6bfac4e6f07935f7f
f169680d8f24694e2d99c9df31988511e212e088f4dc2854ef059915019e8348
1.1.7
2d317bcccea4739b2deefcc3b14cf5eafe147162f62c5ff1288db3635b5c3f10
C2
http://roodan888tools[.]atwebpages[.]com/ng.txt
サンプルに関連する IP:
193[.]161[.]193[.]99
174[.]126[.]51[.]178
本稿は 2020 年 9 月 29 日に Talos Group のブログに投稿された「LodaRAT Update: Alive and Well」の抄訳です。