ランサムウェア
Rust言語を用いたランサムウェアグループ「Agenda」による攻撃を解析
2022年、ランサムウェアグループ「Agenda」を含むRansomware-as-a-serviceを採用したグループが、Rust言語を用いた新たなバージョンのランサムウェアを作成しました。AgendaによるRust言語の亜種は、Go言語を用いた攻撃と同様に重要な産業を標的にしています。本記事では、Rust言語の亜種について詳しく解説します。
2022年、ランサムウェアグループ「Agenda」を含むRansomware-as-a-serviceを採用したグループが、Rust言語を用いた新たなバージョンのランサムウェアを作成しました。AgendaによるRust言語の亜種は、Go言語を用いた攻撃と同様に重要な産業を標的にしています。本記事では、Rust言語の亜種について詳しく解説します。
2022年、BlackCat、Hive、RansomExxのようなRaaS(ランサムウェア・アズ・ア・サービス)グループは、WindowsやLinuxといった異なるOS(オペレーションシステム)にマルウェアを容易に対応させることが可能なクロスプラットフォーム言語であるRustを用いてランサムウェアを進化させました。本記事では、当言語を使用し始めたランサムウェアグループ「Agenda(別名:Qilin)」に焦点を当てます。
過去1ヶ月間の観測により、Agendaランサムウェアが、彼らのリークサイトにおいて攻撃対象とした多数の企業を掲載していることが判明しました。攻撃者は、これらの企業のサーバに侵入したと主張しているだけでなく、対象企業のファイルを公開すると脅しています。このランサムウェアグループがリークサイトに掲載した企業は、様々な国の製造業やIT産業が多数を占め、その合計収益は5億5000万米ドルを超えています。
先日、Rust言語で書かれたAgendaランサムウェアのサンプルが発見され、「Ransom.Win32.AGENDA.THIAFBB」として検出しました。注目すべき点は、Go言語で書かれた「同様のランサムウェア」が、以前タイやインドネシア等の国々のヘルスケア産業や教育産業を標的にしていたことです。攻撃者は、流出したアカウントや企業の固有ID等の機密情報をファイル拡張子として追加することにより、古いランサムウェアのバイナリをカスタマイズしています。また、Rust亜種は、より高速な暗号化と検知回避のために、新たな戦術の1つである「intermittent encryption(断続的な暗号化)」を使用していることも確認されています。
Blackboxの解析
実行時において、Rustバイナリは引数として「パスワードを引き渡すことを要求する」次のようなエラーを示します。このコマンドラインとしての機能は、Go言語で書かれたAgendaランサムウェアのバイナリに類似しています。
パラメータを「-password」として、ダミーのパスワード「AgendaPass」を入力し実行すると、ランサムウェアのサンプルは様々なプロセスやサービスを終了させる不正なルーチンを実行します。
このサンプルの特徴は、ランサムウェアが暗号化されたファイルに「MmXReVIxLV」という拡張子を追加している点です。また、コマンドプロンプト上に暗号化されたファイルや経過時間等の活動ログを表示します。
このランサムウェアは、暗号化した全てのディレクトリにランサムノートを作成します。また、ランサムウェアの実行に使用されたパスワードは、ランサムウェアグループのサポートチャットサイトにログインするためのパスワードとしても使用されます。
Agendaランサムウェアの解析
AgendaのGo言語を使用した亜種(引数10個)とは異なり、Rust亜種は3個の引数のみ扱います。
表1(PDF) : AgendaランサムウェアのRust亜種が使用する引数
また、Rust亜種はGo言語でコンパイルされたサンプルと同様にバイナリ内にハードコードされた設定を含んでいます。
そして、その設定に「-n, -p, fast, skip, step」フラグが追加されます。これらは、コマンドライン引数で使用する場合のみ適用され、Go言語亜種の設定には存在しません。さらなる分析により、上記フラグは「intermittent encryption(断続的な暗号化)」において使用されていることが判明しました。この手法により、ランサムウェアはフラグの値に応じてファイルを部分的に暗号化することが可能となります。また、同時に被害者のファイルをより速く暗号化することも可能となります。以上から、暗号過程の高速化及び検出(ファイルの読み取り/書き込み操作による)の回避が可能となるため、ランサムウェアによる攻撃において、当該戦術が普及しつつあります。
トレンドマイクロでは、数個のフラグを使用することにより暗号化過程の再現を試みました。なお、このシミュレーションでは「A」をコンテンツとするダミーファイルを使用しました。
For fast mode:
Value : 1
Encrypted bytes: 1 * 0x200000h, where 1 is the value set in the fast flag
For N-P mode:
Total size = 88,082,336 bytes
Bytes encrypted = 1 * 0x200000,h (1はnフラグに設定された値)
Bytes skipped = 880,818 bytes (ファイルサイズの1%), (1はpフラグに設定された値)
Rust亜種では、異なる暗号化モードにおいて使用される追加フラグの他に、「AppInfo」がサービス内に含まれています。これは、マルウェアが管理者権限を用いて実行するのを防ぐための「Windowsのセキュリティ機能」であるUAC(ユーザ・アカウント・コントロール)を無効化するためです。また、その結果として他のアプリケーションを管理者権限を用いて実行することも無効化されます。
Agendaランサムウェアは、被害者ごとにカスタマイズされたランサムウェアを展開することでも知られています。その一つであるRust亜種には、権限昇格に使用するための「アカウントを追加するスペース」が設定内に存在することが確認されています。
暗号化されたファイルに追加されるファイル拡張子は、設定内でハードコードされます。
攻撃者は、Go言語亜種とは異なり、Rust亜種の設定においては被害者の認証情報を含めませんでした。これにより、研究者がランサムウェアのチャットサポートサイトを確認することが困難になるだけではなく、サンプルが外部からアクセス可能になった際に「攻撃者との対話」にアクセスすることもできなくなります。また、被害者以外からの一方的なメッセージも阻む設定となっています。
まとめ
Agendaは、ヘルスケア産業や教育産業等の重要な産業を標的にしている新しいランサムウェアファミリーです。このランサムウェアの攻撃者はランサムウェアコードをRust言語に移行している模様です(現時点において、Go言語で書かれたオリジナルのバイナリに見られる機能がサンプル上確認できていないため)。Rust言語は、解析が難しく、さらにアンチウイルスエンジンによる検出率も低いため、攻撃者の間で需要が高まっていることが推測できます。
攻撃者は、依然としてランサムウェアを攻撃ツールとして選択し続けており、企業や組織がデータを保護するためには多層的ソリューションが不可欠となります。Trend Micro Vision One™は、メール、エンドポイント、サーバ、クラウドワークロードといった多層による可視化、検知、挙動の監視を行い、ランサムウェアを含む様々な脅威からシステムを強力に保護します。
IOC(痕跡情報)
IOC(痕跡情報)の全リストは、こちらをご覧ください。
参考記事
Agenda Ransomware Uses Rust to Target More Vital Industries
By: Nathaniel Morales, Ivan Nicole Chavez, Nathaniel Gregory Ragasa, Don Ovid Ladores, Jeffrey Francis Bonaobra, Monte de Jesus
翻訳:新井 智士(Core Technology Marketing, Trend Micro™ Research)