- LodaRAT のサンプルが、RedLine や Neshta など他のマルウェアファミリと一緒に展開されていました。
- Cisco Talos がいくつかの亜種を確認したところ、機能に更新が加えられた LodaRAT の改変版が実際に展開されていることがわかりました。
- これらの LodaRAT 亜種には、接続されたリムーバブルストレージへの拡散を可能にする新機能や、新しい文字列エンコードアルゴリズムが実装されていました。また、使えなくなった機能は削除されていました。
- S500 というあまり知られていない VenomRAT の亜種が LodaRAT を展開していることが確認されました。
LodaRAT(または Loda)として知られるリモートアクセスツール(RAT)に関するブログ記事を Cisco Talos が初めて投稿したのは 2020 年 2 月のことです。以来、LodaRAT のアクティビティの監視を続け、その後に投稿した以下のブログ記事で調査結果を紹介しました。
Kasablanka Group の LodaRAT が Android と Windows のスパイ機能を強化
シリーズの続きとなる本ブログ記事では、2022 年に LodaRAT を監視している際に確認した新しい亜種と新たな動きについて取り上げます。ここでは、これらの亜種の変更点について詳しく見ていきます。以下で説明するように、かなり細かい変更もありますが、大幅な変更が加えられている亜種もあります。具体的に言うと、コードの削除と追加機能の実装の両方が実施されています。
このような調査結果があるほか、Talos が確認したところでは、Loda はさまざまな攻撃者から注目を集めているようです。Talos が特定した少数のサンプルでは、他のマルウェアと一緒に Loda が展開されたり、他のマルウェアによって Loda がドロップされたりしていました。一緒に展開されていたのが RedLine と Neshta で、Loda をドロップしていたのが、S500 というこれまで文書で報告されたことのない VenomRAT の亜種です。
Loda とその亜種に加えられた変更
LodaRAT は AutoIt(Windows の管理タスクを自動化するためによく使用される有名なスクリプト言語)で記述されています。AutoIt スクリプトはスタンドアロンバイナリにコンパイルできるため、AutoIt がホストにインストールされていなくても Windows マシンで実行できます。元のソースコードは、AutoIt 逆コンパイラを使用すれば、コンパイル済みバイナリから簡単に取得できます。
過去のブログ記事で説明したように、LodaRAT は通常、分析を妨げるために関数の難読化と文字列エンコーディングを利用します。ただし、難読化されていないサンプルも数多く存在し、そうしたサンプルには元の関数名と文字列が含まれています。他の方法ではソースコードにアクセスできない攻撃者でも、スクリプトを逆コンパイルし、必要な変更を加えてから再コンパイルするだけで、独自の Loda 亜種を作成できます。また、LodaRAT の C2 通信は暗号化されていないため、カスタムの C2 インフラの実装もごく簡単です。手軽にソースコードを入手してカスタマイズできることが、LodaRAT の亜種やカスタマイズされたバージョンが大量に拡散している一因となっている可能性があります。
このように、確認した各種サンプルの間には差異が存在します。本ブログ記事で取り上げる変更点は、LodaRAT の複数の亜種と改変版から集めたものであり、すべての亜種にあてはまるわけではありません。LodaRAT の改変版はよく見つかりますが、ほとんどのサンプルでソースコードに何らかの変更が加えられているものと考えられます。
C2 ビーコン
当初、LodaRAT の作成者グループ Kasablanka は、機能を追加したり削除したりした場合だけでなく、単にコードを最適化した場合にも、その都度公式の更新バージョンをリリースしていました。更新バージョンには対応するバージョン番号が付与され、C2 ビーコンに埋め込まれていました。以下に示すとおり、本記事の執筆時点で最後に確認されていたバージョン番号は 1.1.8 です。
以前のバージョンの C2 ビーコン(バージョン番号 1.1.8)
今回分析した最新の Loda サンプルでは、バージョン番号は C2 ビーコンから完全に削除され、感染したホストの IP アドレスに置き換えられています。なお、理由は不明ですが「beta」タグは残っています。この変更は、LodaRAT の最近の亜種すべてで共通しているようです。
バージョン番号のない新しい C2 ビーコン
マイナーではあるものの注目に値する追加機能としては、Windows 11 ホストを識別する機能があり、ほとんどの亜種に含まれています。識別された Windows のバージョン情報は、最初のビーコンで C2 に送信されます。
Windows 11 検出機能
マルウェア対策ソフトウェアの検出
大幅に変更が加えられたバージョンの Loda(c73771b3b8c6e548724dd02e5f12380a9160323d88dbdbe12d388ade0f7bc1e2)では、マルウェア対策のプロセスを検出する関数が書き直されています。この新しい関数は、30 のプロセス名を検索します。一方、元のバージョンと大半の亜種では、WMI クエリを実行してすべてのウイルス対策プロセスを列挙します。新しい実装では、プロセスの検索対象リストに含まれていない製品は検出されません。過去の実装よりも大きく効果が落ちる点は注目に値します。
新しいウイルス対策検出機能
この新しい機能には興味深い点があり、数年前に販売が終了している複数の製品が検索対象となっています。
「Prevx」:Webroot 社の製品で、販売終了済み
「The Hacker」:ペルーの Hacksoft 社の製品で、販売終了済み
「ByteHero」:中国に拠点を置く ByteHero Information Security Lab 社の製品で、販売終了済み
「Norman Virus Control」:AVG 社に買収された Norman Data Defense Systems 社のソフトウェアで、販売終了済み
これらの古い製品は、Windows XP や Windows 7 などの古いバージョンの Windows を実行している分析マシンや VM を検出しようとして検索対象に追加された可能性があります。また、検索対象リストには世界各地で製造されたソフトウェアが含まれている点も注目に値します。このことから、攻撃者は特定の国や地域を標的にしているわけではないと考えられます。
コードの削除、改変、使えなくなった機能
Talos が分析した多くの LodaRAT サンプルでは、何らかの方法で機能が削除されています。これは、作成者が検出率を下げようとしているからだと考えられます。特に PowerShell キーロガーがよく削除されているようです。この機能は、過去のバージョンには普通に搭載されていました。
以前から LodaRAT には、使えなくなった関数やコマンドが含まれていました。つまり、コードの一部のコンポーネントは機能しないということです。こうした不要な関数の 1 つに、「__SQLITE_DOWNLOAD_SQLITE3DLL」があります。AutoIt の公式 Web サイトから x64 SQLite3 DLL をダウンロードする関数です。SQLite3 は、LodaRAT がブラウザのデータベースから機密情報を抽出し、感染したホストで実行されているウイルス対策プロセスを列挙するのに必要なものです。
ただ、ダウンロード URL が 404 HTTP 応答を返すため、「__SQLITE_DOWNLOAD_SQLITE3DLL」は長い間機能していませんでした。ほとんどの LodaRAT サンプルは、x86 SQLite3 DLL を変数として保存していますが、x86 システムでしか実行できません。これでは x64 バージョンはダウンロードできないので、x64 ベースの標的ではこの関数を正常に実行することは不可能ということになります。本機能が正常に機能しないため、攻撃者は必要な DLL を他の手段で提供する必要があります。
使えなくなっている SQLite3 ダウンロード機能
拡張されたウイルス対策検出機能を備えたサンプル(c73771b3b8c6e548724dd02e5f12380a9160323d88dbdbe12d388ade0f7bc1e2)では、「__SQLITE_DOWNLOAD_SQLITE3DLL」も x86 バージョンを含む文字列変数も削除されており、スクリプトのサイズが大幅に小さくなっています(227KB 減)。削除の副作用として、古いウイルス対策検出機能も使えなくなっています。LodaRAT が実行中のウイルス対策プロセスを列挙するには SQLite3 が必要だからです。この変更が原因で、前述したウイルス対策プロセス機能の書き換えが行われたと考えられます。
機能しなくなっているにもかかわらず、Talos が分析したすべてのバージョンになぜか残されているコードのセクションもあります。C2 コマンド「QURAN」です。LodaRAT が C2 からこのコマンドを受信すると、Windows Media Player で次の URL にある Microsoft Media Server(MMS)の音声をストリーミングしようとします。
埋め込まれている MMS の URL
この機能は 2008 年に廃止されたため、Windows Media Player の最新バージョンでは MMS の URL の音声をストリーミングできません。「QURAN」コマンドの機能は、感染したホストのスピーカーを介して祈りの音声をストリーミングすることです。なぜ LodaRAT が登場して以来これまでずっと「QURAN」コマンドが削除されずに残されているのか、理由は定かではありません。
接続されたストレージへの感染
Talos が確認したもう 1 つの重要な変更点は、マウントされているすべてのリムーバブル ストレージ デバイスに LodaRAT のファイルをコピーする機能です。LodaRAT の古いバージョンにも同様の機能がありましたが、新しいバージョンでは機能が拡張されており、接続されているすべてのリムーバブルドライブを自動的に列挙し、それぞれにファイルをコピーするようになっています。古いバージョンでは自動化されていなかったため、各ドライブにファイルをコピーするには C2 から個別のコマンドを送信する必要がありました。
マウントされているリムーバブルドライブにファイルをコピーする関数(関数名と変数名はわかりやすいように変更)
文字列の難読化
分析したところ、LodaRAT のサンプルの 1 つで、Talos が確認した過去のバージョンとは異なる文字列エンコードアルゴリズムが使用されていました。この新しい実装が採用されたのは、実行速度を向上させるためと考えられます。
ほとんどの LodaRAT サンプルは従来、文字列の難読化に、単純なカスタムエンコードスキームで文字列をエンコードするという手法を使っています。各文字列が関数で参照されると、スクリプトの最後にあるルーチンがその文字列を復号化します。ほとんどの場合、変数に格納されている静的数値のランダム化を別にすると、復号化ルーチンのアルゴリズムは難読化されたすべての LodaRAT サンプルで同じでした。
文字列を復号化するには、エンコードされたテキストから特定の文字を取り除き(以下の例の場合は「s」を削除)、その後 3 つの静的な値を使って XOR 演算します。以下は、こうした関数の一例です。
古い復号化関数(関数と変数の名前はわかりやすくするために変更)
ですが今回の分析中に、これとは違う文字列のエンコード/復号化手法を使用した亜種が確認されました。この新しい手法は、古いアルゴリズムほど複雑ではありません。文字列の復号化速度を向上させるために実装されたものと考えられます。3 つの別個の数値を使って文字列を XOR 処理するのではなく、単純に単一の値を文字列から減算します。
新しい復号化関数(関数と変数の名前はわかりやすくするために変更)
S500
バックグラウンド
調査する中で、S500(または S500RAT)というこれまで文書化されたことのない VenomRAT の亜種が LodaRAT をドロップすることを確認しました。S500 は、VenomRAT と同様、Hidden VNC(HVNC)機能を備えた .NET コモディティマルウェアです。攻撃者は感染したホスト上で非表示のデスクトップ環境を実行できます。S500 の広告では、被害者のブラウザから攻撃者が制御する隠しブラウザにユーザープロファイルをコピーできる機能を大々的に宣伝しています。
S500 の初回リリース
S500 は、2022 年 4 月初めに販売者の Telegram チャネルで最初に発表されました。
しかし、リリース直後の 2022 年 5 月に全ソースコードが漏洩し、Github で公開されています。その後、最初の Github へのアップロードは削除されたものの、2022 年 7 月にもう一度アップロードされました。漏洩後、販売者は S500 のソースコードを売却しようとしましたが、おそらく成功していません。
漏洩した S500 ソースコードの Github リポジトリ
S500 のソースコードと漏洩した VenomRAT のソースコードを比較すると、S500 の大部分が VenomRAT からコピーされていることがすぐにわかります。ただし、一部削除されている機能もあります。以下に示すように、メソッド名と変数名のほとんどは変更されていません。
S500 ソースコードに記載されている VenomRAT のメソッド名
漏洩したソースコードを新製品として「再パッケージ化」する行為は、通常、スキルの低い攻撃者が手っ取り早く収入を得ようとして行うものです。ただ、こうしたあからさまなコピーは窃盗または盗作と見なされる可能性が極めて高く、元の作成者や他の攻撃者からの報復を誘発しかねません。S500 のソースが漏洩されたのも報復であった可能性があります。
LodaRAT のドロップ
LodaRAT をドロップすることが確認された S500 のサンプルは難読化されており、暗号化されたリソースが含まれていました。メソッド名と変数名は、ゲエズ文字(エチオピアで使用される言語の 1 つであるアムハラ語話者が使用する文字)の書記体系の文字をランダムに使って作成されています。
ゲエズ文字を使用した S500 のメソッド名
分析したサンプルでは、LodaRAT は暗号化されたリソースとして保存されていました。実行されると自動的に復号され、感染したホストにドロップされます。
メモリ内の復号された LodaRAT
S500 は VenomRAT の簡易版ですが、感染したホストには依然として重大な脅威となり得ます。ブラウザからプロファイルをコピーする機能により、深刻なデータ損失と金銭的損失が生じる可能性があります。ソースコードが公開されているため、さまざまな攻撃者が今後も S500 を使用し続けるものと考えられます。
RedLine と Neshta
LodaRAT のアクティビティを調査していたところ、RedLine と Neshta マルウェアファミリと一緒に単一のペイロードにバンドルされた LodaRAT のサンプルを検出しました。攻撃者が RedLine のような高度な情報窃取マルウェアと LodaRAT を一緒に展開している理由は不明です。考えられる理由としては、特定の機能の実行に攻撃者が LodaRAT を好んで使用していることが挙げられます。
LodaRAT と RedLine はどちらもリモートアクセスとデータ窃取を目的としています。一方、Borland Delphi プログラミング言語で記述されている Neshta は、基本的にはファイルインフェクタです。2003 年に発見されて以来、Neshta は展開され続けてきました。感染したホスト上で拡散するために、Neshta は自身を実行ファイルの先頭に付加し、感染したファイルが実行されるたびに実行されるようにします。
Neshta の初期ペイロード
この感染チェーンの最初のファイルは Neshta バイナリで、サイズの大きい圧縮されたオーバーレイがファイルの最後に追加されていました。このオーバーレイに含まれていたのが RedLine のペイロードと LodaRAT のペイロードです。下の画像に示すように、実行ファイルの 95.47% がオーバーレイとなっています。
RedLine と LodaRAT を含むオーバーレイ
実行されると、Neshta はシステム全体の実行ファイルへの感染を開始し、オーバーレイに含まれている 2 番目のステージをドロップします。オーバーレイは解凍され、「JQZEKD.exe」というラベルの付いたファイルとして保存されます。バージョン情報のメタデータに記載されている内部名は「Implosions.exe」です。このファイルは、「\Users\Administrator\AppData\Local\Temp\」ディレクトリに配置された後、「C:\Users\psykotorhsrat2\Desktop\relise」ディレクトリにコピーされ、「Winupdate.exe」という名前に変更されます。
ドロップされたこの 2 番目のステージも圧縮されていますが、こちらは Ultimate Packer for Executables(UPX)のカスタム実装を使用しています。解凍対策として、UPX で作成される代表的なセクション名(UPX0、UPX1 など)を「aHc」や「Security」に変更し、自動解凍を防止しています。
UPX を検出する PEiD
変更されているセカンダリペイロード内のセクション名
前述のように、RedLine ペイロードと LodaRAT ペイロードがバイナリ内に格納されています。RedLine は「Security」セクションに格納され、LodaRAT は初期ステージと同じ方法でバイナリの最後にオーバーレイとして追加されています。「aHc」セクションは空であり、最終的には解凍された RedLine ペイロードが挿入されます。実行されると、続いて LodaRAT および RedLine バイナリが解凍され実行されます。
LodaRAT AU3 スクリプトを含むオーバーレイ
以下に示すように、RedLine ペイロードの内部名は「Happy.exe」です。
分析対策は一切講じられていません。文字列の難読化が行われていないため、C2 アドレス「34[.]174[.]95[.]150:54865」も「EntryPoint」メソッド内にプレーンテキストとして保存されています。RedLine のほとんどの実装と同様に、このメソッドの文字列は暗号化されています。
RedLine メソッド
C2 アドレスを含む EntryPoint() メソッド
LodaRAT との関係性はこれまでの経緯からすると異例なものですが、それを別にすれば、今回の RedLine と Neshta の動作は典型的なものでした。同じバイナリ内に RedLine、LodaRAT、Neshta すべてが組み合わされているのは、かなり攻撃的です。回避手法が講じられておらず、難読化の使用も最小限であることから、今回の攻撃者は検出の回避に関心がないことがわかります。こうした攻撃的な姿勢は、「スマッシュ&グラブ」型の攻撃が展開されていることを示唆しています。この戦術の攻撃は、セキュリティ製品やアナリストによって検出される可能性が高くなりますが、それでも深刻な脅威をもたらすことがあります。どのような影響や損害を与える可能性があるかを攻撃者が気にしていないからです。今回の感染チェーンで使用されているマルウェアは、攻撃が成功すれば、攻撃者にとって強力な足場となり得ます。
今後の見通し
LodaRAT は登場して以来、数多くの変更を経ながら進化し続けてきました。純粋に速度と効率の向上やファイルサイズの削減を図るための変更と思われるものもありますが、Loda というマルウェアの強化につながる変更もあります。合理的に考えて、人気が高まるのに伴い、今後さらなる変更が加えられると予想されます。LodaRAT はソースコードに簡単にアクセスできるため、機能に関心のある攻撃者にとっては魅力的なツールです。
LodaRAT のカスタマイズを試みる攻撃者のスキル次第で、より複雑で高度な亜種が登場して実際に展開されるようになる可能性もあります。LodaRAT の新しい亜種の登場と合わせ、他のマルウェアファミリと一緒に今後もドロップされると考えられます。簡単に入手でき、カスタマイズも容易なため、LodaRAT は一部の攻撃者にとって魅力的なツールとなっています。
さらに、脅威としての LodaRAT の存在感が高まれば、元のマルウェアの作成者である Kasablanka が新しいマルウェアを開発する可能性もあります。ツールの人気が高まれば、検出率が上昇し、LodaRAT の有効性は低下するものと考えられます。その場合、Kasablanka はツールを一新するという選択をするかもしれません。
Cisco Talos は、今後も変わらずこうした変更や亜種を監視し、カバレッジを提供していきます。
カバレッジ
今回の脅威は、以下の製品で検出してブロックすることが可能です。
Cisco Secure Endpoint(旧 AMP for Endpoints)は、この記事で説明したマルウェアの実行を阻止するのに最適です。Cisco Secure Endpoint の無料トライアルはこちらからお申し込みください。
Cisco Secure Web Appliance の Web スキャンは、悪意のある Web サイトへのアクセスを防止し、上述したような攻撃で使用されるマルウェアを検出します。
Cisco Secure Email(旧 E メールセキュリティ)は、攻撃の一環として攻撃者が送りつける不正な電子メールをブロックします。Cisco Secure Email の無料トライアルはこちらからお申し込みください。
Threat Defense Virtual、適応型セキュリティアプライアンス、Meraki MX など、Cisco Secure Firewall(旧次世代ファイアウォールおよび Firepower NGFW)アプライアンスは、この脅威に関連する悪意のあるアクティビティを検出できます。
Cisco Secure Malware Analytics(Threat Grid)は、悪意のあるバイナリを特定し、シスコのすべてのセキュリティ製品に保護機能を組み込みます。
Umbrella(シスコのセキュア インターネット ゲートウェイ(SIG))は、社内ネットワークの内外で悪意のあるドメイン、IP、URL への接続をブロックします。Umbrella の無料トライアルはこちらからお申し込みください。
Cisco Secure Web Appliance(旧 Web セキュリティアプライアンス)は、危険性のあるサイトを自動的にブロックし、ユーザーがアクセスする前に疑わしいサイトを検査します。
特定の環境および脅威データに対する追加の保護機能は、Firewall Management Center から入手できます。
Cisco Duo は、ユーザーに多要素認証を提供し、承認されたユーザーのみがネットワークにアクセスできるようにします。
オープンソースの Snort サブスクライバルールセットをお使いであれば、Snort.org で購入可能な最新のルールパックをダウンロードすることで、最新状態を維持できます。この脅威の Snort SID は次のとおりです。
この脅威を検出する Snort SID は、53031 です。
この脅威を検出するには、次の ClamAV シグネチャを使用できます。
- Txt.Malware.LodaRAT-9769386-0
- Win.Malware.Bulz-9880537-0
- Win.Trojan.Neshuta-1
- Win.Malware.Zbot-9977624-0
IOC
SHA256 ファイルハッシュ:
LodaRAT:ac3c94d88bcd4833d6fc5ffde7379f90a8915863567990572f2fa0d7fe83d0da
LodaRAT:e6bf1b38f9d4b2a2aeb00dc4c12dd22eff26c318665687b4653fe8269d39d878
S500 + LodaRAT:c73771b3b8c6e548724dd02e5f12380a9160323d88dbdbe12d388ade0f7bc1e2
Neshta + LodaRAT + RedLine:cd6a8e6b17a1ecb5aafb24ef4f7ec0ba0be44508ea10dbde551e0037220571f8
RedLine:50e2444e832e4c3ed711fcf27c038967c2c5f5037a4e0ea2cc6d53ef6ac54cfb
ドメイン:
catkiller7767-64721[.]portmap[.]io
judithabusufaitdyg[.]duckdns[.]org
IP:
193[.]161[.]193[.]99
34[.]174[.]95[.]150:54865
本稿は 2022 年 11 月 17 日に Talos Group のブログに投稿された「Get a Loda This: LodaRAT meets new friends」の抄訳です。