
AV/EDRプラットフォーム向けの軽量なネイティブWindowsメモリスキャナー。IATサンクを使用して不審なマップイメージと手動DLLインジェクション手法を検出します。
ネイティブWindowsメモリスキャナ:悪意のあるDLLインジェクションやインメモリマルウェアを検出
MappedImagesDetectorは、低レベルC++20 Windowsツールであり、従来のアンチウイルスソリューションでは見逃されがちな、現代のマルウェアが使用する悪意のあるDLLインジェクション手法(手動マッピングDLL、消去されたPEヘッダー、不審なメモリマッピングイメージなど)を検出するために設計されています。
本プロジェクトは、ディスクシグネチャではなくメモリベースの検出に焦点を当てています。プロセスアドレス空間への可視性が重要となるアンチウイルスエンジン、EDRシステム、マルウェア研究のために構築されています。
現代のマルウェアは、完全にメモリ上で動作することが増えています。
LoadLibraryを使用せずに手動マッピングされたDLLディスクベースのAVには何も見えません。MappedImagesDetectorはプロセスメモリを直接検査し、これらの異常をフラグ付けします。
ギミックはありません。シグネチャデータベースもありません。単なるメモリ検査です。
これは攻撃用フレームワークではなく、ローダーでもありません。
スキャナーは複数の防御的ヒューリスティックを適用します。
各発見項目はスコア化され、上位レベルのロジック(EDR、SIEM、自動化)で利用できます。
AnomaliesDetector/ # 中核スキャンロジック
TestModule/ # ローカル検証用テストDLL
MappedImagesDetector.sln # Visual Studioソリューション
Visual Studioでソリューションを開き、 x64 / Release をビルドするか、MSBuildを使用します:
msbuild MappedImagesDetector.sln /p:Configuration=Release /p:Platform=x64
バイナリは各プロジェクトの bin ディレクトリに生成されます。
TestModule は開発と検証のみに使用しますログは組み込みのロガーで処理され、リダイレクトまたは拡張できます。
メモリ検出は強力ですが、ノイズが発生しやすいです。本プロジェクトは以下を意図しています。
防御的な検出品質に焦点を当てたコントリビューションを歓迎します。
攻撃的またはローダー機能を追加するプルリクエストは却下されます。
MappedImagesDetectorが存在する理由はただ一つ:
メモリに隠れて従来のアンチウイルス検出を回避する悪意のあるコードを暴露するためです。
セキュリティソフトウェアを構築していて、ディスクのみの指標をまだ信頼しているなら、すでに後れを取っています。