脅威アクターはCやC++などの伝統的な言語からRustなどの現代的な言語に移行しており、クロスプラットフォームのマルウェア開発を可能にしています。Rustベースの新しい情報窃取ツールLucaが登場し、一般公開されました。この進展は、マルウェアにおけるRustの使用が増加していることを強調し、サイバーセキュリティの守護者たちに新たな課題を投げかけています。
マルウェア開発者はGolang、Rust、Nimなどの言語にますます移行しており、CやC++から離れています。この変化により、LinuxとWindowsの両プラットフォーム向けに悪意あるコードを少ない調整でコンパイルできます。最近の脅威の中では、Rustで構築された情報窃取ツールLuca Stealerが野生で現れ、BlackCatランサムウェアなどの脅威とともに登場しています。
Rustのマルウェアにおける役割はGolangに比べてまだ初期段階ですが、急速に成長しています。Luca Stealerのパブリックオープンソースリリースは、研究者にRustの有害ソフトウェアへの適用を調査する機会を提供し、より良い防御の構築を支援します。しかし、このシフトはこれらの先進的なバイナリを分析・リバースエンジニアリングするための新しいアプローチを要求します。
Rust実行ファイルは防御者に障害をもたらします。Cプログラムとは異なり、Rustの文字列にはnull終端がなく、Ghidraなどのツールがデータを誤読し、重複定義を作成します。アナリストはしばしばコードバイトを手動で調整し、文字列を再定義して正確な分析を行います。main関数の場所特定にはRustコンパイラの出力理解が必要で、エントリーポイントは環境を設定した後std::rt::lang_start_internalを呼び出し、引数追跡でユーザーのメイン関数にリンクします。
幸い、RustのCargoビルドシステムは痕跡を残します。依存関係(crates)は静的リンクされ、「cargo\registry」などのパターンがreqwestなどのHTTP操作ライブラリを暴露します。デバッグセクションにはPDBパスが残り、作者のユーザー名やシステムディレクトリなどの詳細を明らかにします。脅威アクターの間でRustが普及する中、これらの特性を把握することが検知努力に不可欠です。