はじめに:QuasarRATの脅威を掘り下げる
「設定抽出のアドベント」シリーズの第2弾として、セキュリティ研究者が広く展開されている.NETリモートアクセス型トロイの木馬(RAT)であるQuasarRATの分析結果を発表しました。この分析は、クリーンなバイナリサンプルと難読化されたバイナリサンプルの両方から、暗号化された設定を抽出する洗練された技術を明らかにしています。本稿では、Jupyter Notebook、pythonnet、およびdnSpyを使用した再現性のある手法が示されており、サイバーセキュリティ専門家がこの継続的な脅威に対抗するための実用的なツールを提供します。
QuasarRATとは:多機能なオープンソースRATの悪用
QuasarRATは、2014年にxRATという名前で最初にリリースされ、サイバーセキュリティの脅威として大きな課題を提起しています。オープンソースの正当なWindowsリモート管理ツールとしてGitHubで公開されましたが、サイバー犯罪者や国家支援型攻撃者によって組織的に武器化されてきました。JPCERT/CCがBotconf 2020で行った包括的なプレゼンテーションでは、マルウェアの進化が記録され、多数の亜種とその攻撃キャンペーンにおける機能拡張がカタログ化されています。
C#で.NET Framework上に実装されているQuasarRATは、そのアクセシビリティの高さから、脅威アクターの間で好まれています。このマルウェアは、システム偵察、ファイル操作、リモートデスクトップ閲覧、キーロギング、任意コマンド実行など、広範なリモート管理機能をサポートしています。これらの機能は理論的には正当な管理目的にも利用できますが、研究者はQuasarRATがサイバースパイ活動、不正な監視キャンペーン、独立した脅威アクターおよび国家と連携したグループによる侵入に利用されていることを確認しています。
技術的解剖:設定抽出のメカニズム
分析環境とツール
- dnlib: .NETアセンブリの深い検査と変更のために設計されたオープンソースの.NETライブラリです。メタデータ、型、メソッド、属性、および中間言語(IL)命令をプログラムで公開します。
- pythonnet: PythonコードがdnlibのAPIをシームレスに呼び出すための重要なブリッジとして機能します。これにより、個々の関数の逆コンパイル、名前空間、クラス、メソッドを含むアセンブリ構造の走査、カスタム型、メタデータエントリ、埋め込み文字列の抽出が可能になります。
- Docker: 分析環境はDockerでコンテナ化されており、異なる分析環境間でのポータビリティと再現性を確保しています。
中間言語(IL)の役割
ILは、Microsoft IL(MSIL)またはCommon IL(CIL)とも呼ばれ、スタックベースの中間バイトコードとして動作します。スタックマシンアーキテクチャでは、命令は値をスタックにプッシュし、他の操作は処理のために値をポップします。各IL命令は、オペコード(ldstr、stloc、callなどの操作)と、文字列、クラス参照、整数、分岐ターゲットなどの追加データを提供するオプションのオペランドで構成されます。
難読化されていないサンプルの抽出
DEBUGが無効になっている状態でコンパイルされた難読化されていないQuasarRATのサンプルでは、抽出戦略はConfig名前空間内のSettingsクラスを標的にします。このクラスには、バージョン、ホスト、再接続遅延、インストールパラメータ、暗号化キー、サーバー証明書などの重要な構成キーが含まれています。設定は、クラスの静的コンストラクタ(.cctorメソッド)によって初期化される静的フィールドに存在します。抽出プロセスは、モジュールの型を反復的に走査してターゲットの名前空間とクラスを見つけることから始まります。特定されると、エクストラクタは静的コンストラクタのIL命令を分析し、ldstrがリテラル文字列をロードし、その直後に対応するクラスフィールドを参照する命令が続くペアを探します。このパターンマッチングアプローチにより、クリーンなサンプルからプレーンテキストの設定値が正常に取得されます。
高度な抽出手法:暗号化された設定の解読
高度な抽出戦略は、QuasarRATのランタイム復号メカニズムを利用します。ソースコード分析により、マルウェアがAES-256(CBCモード)を使用し、キー導出にPBKDF2を実行していることが判明しています。Aes256暗号化モジュールは、AESのデフォルトのシステム実装を使用し、暗号化キーはクラスメンバーとして格納され、静的コンストラクタで初期化されます。このアプローチにとって重要なのは、System.Security.Cryptography.AesCryptoServiceProviderのインスタンス化をスキャンしてAes256クラスを特定することです。NET ILでは、静的フィールドはクラスの静的コンストラクタである.cctor(Class ConsTOR)によって初期化されます。プライベート静的バイト配列として格納されているソルト値は、静的コンストラクタ内のldtoken命令を介してロードされるメタデータトークンを解決することで復元されます。クロスリファレンス分析により、Settings Initializeメソッドが復号ルーチンの唯一の呼び出し元であることが特定されます。
今後の展望とサイバーセキュリティへの影響
この体系的な設定抽出アプローチは、.NETベースのマルウェアに対する自動分析の実現可能性を示しています。QuasarRATに特化して調整されていますが、名前空間の走査、クロスリファレンスの解決、オペコードの比較を強調するモジュール式のワークフローは、同様の初期化パターンと暗号化APIを採用する他の.NET脅威にも容易に適合します。完全なQuasarRATエクストラクタコードは、Sekoia.ioコミュニティGitリポジトリで公開されており、サイバーセキュリティコミュニティに脅威インテリジェンスとインシデント対応のための実用的なツールを提供しています。再現性のあるラボ環境と.NET中間言語の徹底的な理解を組み合わせることで、セキュリティ専門家は重要なクラスを体系的に特定し、暗号化パラメータを復元し、コマンド&コントロール設定を収集できる完全に自動化されたエクストラクタを構築できます。この手法は、パッキングされたサンプルや代替暗号を使用するQuasarRATの亜種には普遍的に対応していませんが、実際の展開シナリオの大部分で正確な結果を提供します。
