New Research: Tackling .NET Malware With Harmony Library
2024/01/08 InfoSecurity — 2024年1月8日に、セキュリティ研究者たちが発表したのは、Harmony ライブラリを使用して .NET マルウェアに対抗するための、戦略的洞察に関するレポートだ。マルウェア研究者/アナリスト/リバース・エンジニアたちにとって、コードの特定の部分の機能を操作する能力は、分析プロセスで有意義な結果を得るために不可欠なものだ。
従来において、コード機能の変更は、デバッグ/Dynamic Binary Instrumentation (DBI) /フッキング・フレームワークなどにより行われてきた。これらの方法は、管理されていないネイティブ・コードには効果的だと証明されているが、.NET プラットフォーム上で実行されるアプリケーションを扱うときには状況が変わる。
研究者たちにとって、大きな課題となっていたのは、.NET ドメインでマネージド・レイヤのコードを解析する機能が制限されていることだ。しかし現時点では、CPR (Check Point Research) が提供する Harmony ライブラリが、優れたソリューションとなっている。
オープンソースのライブラリである Harmony は、リアルタイムの .NET のメソッドへのパッチの適用/置換/装飾などに特化しており、マネージド・コードの変更に伴う制限を克服している。
CPR は研究レポートで、Harmony ライブラリを使用した .NET マネージド・フッキングのコンセプトについて詳述している。具体的に言うと、その内部構造を掘り下げ、実践的な実装例を提供し、さまざまなタイプの Harmony パッチを紹介している。
重要なのは、Harmony ライブラリがインメモリ・コードのみで動作するため、変更がディスク上のファイルに影響を与えない点だ。この機能は、特に難読化で保護された.NET マルウェアを扱う場合において、非常に貴重なものとなる。ディスクベースの難読化解除では、元の構造が変更され、機能が失われる危険性がある。
CPR のレポートでは、参照される全アセンブリの機能を、特に .NET ランタイムに不可欠なアセンブリの機能を変更できる Harmony フッキングの汎用性が強調されている。さらに、ブートストラップとインジェクションのプロセスにも触れ、ローダーあるいはインジェクターを介して、Harmony を .NET プロセスに注入する方法が紹介されている。
さらに同レポートでは、Prefix/Postfix/Transpiler/Finalizer/Reverse Patch などの、多様なタイプの Harmony パッチを分類している。これらのパッチは、それぞれが .NET メソッドの動作を変更する、特定の目的を果たすものだ。
研究者たちは、「これらの例は、.NETフッキングがいかに強力であるかを示している。さらに重要な点は、Harmony ライブラリを使用すれば、.NET instrumentation を実装するのが、いかに簡単でわかりやすいかを示していることだ」と締め括っている。
Check Point の Harmony ライブラリは、なかなか良さそうな感じですね。.NET で検索してもらうと、このプラットフォームを狙う攻撃が、だんだんと増えてきている状況が感じられると思います。2023年を振り返ってみると、リポジトリに関しては、PyPI/npm/GitHub などで起こっていたことが、だんだんと VSCode や NuGet にも広がっているように思えました、ご用心ください。


You must be logged in to post a comment.