Rust マルウェアを解析する RIFT (Rust Identification and Function Tagging):OSS ツールとして Microsoft が公開

RIFT – Microsoft’s New Open-Source Tool to Analyze Malware in Rust Binaries

2025/06/30 CyberSecurityNews — Rust バイナリ内に隠されたマルウェアを識別/分析する、サイバー・セキュリティ・アナリストたちを支援するためにデザインされた、画期的な OSS ツールである RIFT (Rust Identification and Function Tagging) が、Microsoft からリリースされた。これまでの5年間で、サイバー・セキュリティ・コミュニティが目の当たりにしてきたのは、Rust ベースのマルウェア開発へと向かう大きな移行だった。注目すべき Rust への移行例としては、2021年12月の BlackCat ランサムウェア、そして、2022年6月の Hive ランサムウェアが挙げられる。

概要

Microsoft がリリースした RIFT は、BlackCat/Hive ランサムウェアなどの、Rust ベースのマルウェアを分析するための OSS ツールである。Rust バイナリには、10,000以上の関数が取り込まれており、従来からのマルウェア分析を困難にしている。

RIFT における、IDA Pro (Interactive Disassembler) 統合を備えた3つのパートで構成されるシステムは、メタデータ抽出とシグネチャ生成のためのものだ。実際のマルウェアを対象とするテストで成功しており、アナリストにより悪意のコードへの集中を支援している。

最近の傾向としては、AsyncRAT マルウェアと RALord ランサムウェアが Rust を採用しており、サイバー犯罪者の間では、Rust の人気が引き続き高いことを示している。

Rust の特徴とされる、メモリ安全性/タイプ安全性/並行性機能は、正規の開発において魅力的であるが、それと同時に、マルウェア・アナリストにとっての大きな課題も生み出している。

従来のプログラミング言語とは異なり、通常の Rust バイナリは静的にリンクされており、膨大なライブラリ・コードが取り込まれるため、実行ファイルは 3MB 以上に膨れ上がり、その中には 10,000 個近くの関数が含まれることになる。その一方で、C++ プログラムの場合は、関数が 100 個未満でサイズは 20KB 未満となる。

Rust バイナリ解析の拡張機能

RIFT は、IDA Pro との統合向けに設計された、洗練された3つのコンポーネント・アーキテクチャを通じて、これらの課題に対処する。

Overview of Rust developer toolset

IDA Pro プラグインとして機能する RIFT 静的アナライザーは、Rust コンパイラのコミットハッシュ/組み込み依存関係/ターゲット・アーキテクチャ/オペレーティング・システム情報などの、重要なメタデータをバイナリ・ファイルから抽出する。

RIFT static Analyzer

RIFT ジェネレーター・コンポーネントは、FLIRT シグネチャの生成やバイナリ diff など、最も複雑なプロセスを自動化する。

このコンポーネントはラッパーとして機能し、Cargo (Rust package manager)/Hexray の FLAIR tools (sigmake.exe and pcf.exe)/IDA のコマンドライン・インターフェイス (idat.exe)/Diaphora ツールといった必須ツールを、その中に取り込む。

この自動化により、COFF ファイルと RLIB ファイル (TAR に類似する Rust 固有のアーカイブ形式) 抽出と処理が可能になる。

Phases of RIFT Generator

RIFT Diff Applier は、バイナリ diff 結果を適用するための、対話型インターフェイスをアナリストに提供する。対話型モードと自動リネーム・モードで動作し、類似度しきい値の設定も可能である。

RALord ランサムウェアや SPICA バックドアなどの、実際の脅威に対する RIFT のフィールドテストでは、大幅な効率向上が実証されているという。

このツールにより、攻撃者が作成したコードと標準ライブラリ関数の的確な区別が可能になるため、アナリストは悪意のロジックへの集中を可能にし、安全なライブラリ・コードの特定に時間を浪費することもなくなる。

RIFT の FLIRT シグネチャ・アプローチは、低い誤検知率で信頼性の高いアノテーションを提供する。また、バイナリ差分の手法は、厳密なシグネチャ・マッチングと比較して、より広い範囲をカバーし、失敗のケースを減少させる。

この二重のアプローチにより、さまざまなマルウェア亜種やコンパイル・シナリオをカバーしながら、包括的な分析の機能を確保していく。

RIFT の OSS 化により Microsoft が目指すのは、増大する Rust ベースのマルウェアの脅威に対する、グローバルなサイバー・セキュリティ防御の強化である。それにより、高度化の一途をたどるサイバー脅威に対抗するための重要なツールを、セキュリティ・コミュニティに提供したいと述べている。