IAmAntimalware — アンチウイルスプロセスをターゲットにするコード注入ツール

Security

概要

IAmAntimalwareは、Windowsのアンチウイルス(AV)関連プロセスへコードを注入するためのツール群をC++で実装したリポジトリです。主に「サービスの複製(service cloning)」「デジタル署名のクローン(証明書の流用)」「Protected Process Light(PPL)」といった仕組みを扱い、ある既存のAVサービスを模した新しいサービスを作成してそのプロセスに対してDLL等を注入することを意図しています。リポジトリ自体は少数のコミットで構成され、Visual StudioプロジェクトファイルなどWindowsネイティブ開発環境向けの構成が含まれます。研究・検証目的での使用を想定していますが、悪用の可能性が高いため利用時は厳格な法令順守と倫理的配慮が必要です。

GitHub

リポジトリの統計情報

  • スター数: 10
  • フォーク数: 3
  • ウォッチャー数: 10
  • コミット数: 6
  • ファイル数: 10
  • メインの言語: C++

主な特徴

  • アンチウイルスサービスの複製とそれに伴うプロセス操作を行うツール群を提供
  • デジタル証明書(署名)のクローンを用いることで正規プロセスを装う設計
  • PPL(Protected Process Light)対応のオプションを考慮した設計
  • Windowsネイティブ(Visual Studio)プロジェクトとして提供

技術的なポイント

IAmAntimalwareが扱うのはOSやセキュリティ製品の信頼モデルを突く手法で、主に以下の技術的要素が注目されます。まず「サービス複製」は、既存の正規サービスの設定や振る舞いを模して新しいサービスエントリを作成し、似た権限や起動パスを持つプロセスを生成することで正規性を偽装する概念です。次に「証明書のクローン(署名の偽装)」は、バイナリやサービスが持つデジタル署名の信頼を利用してAVプロセスに近い信頼性を示し、セキュリティ製品やOSのチェックをすり抜けることを目指します。さらにProtected Process Light(PPL)は、Windowsで高権限プロセスを保護する仕組みであり、PPL対応サービスに対して追加の対策(オプション)を設けることでPPLの有無に応じた取り扱いを試みる設計になっています。

リポジトリのコードはC++で記述され、Windows APIやサービス管理、デジタル証明書の検査・扱いに関わる処理を含むものと推測されます。Visual Studioのソリューション/プロジェクトファイルが同梱されているため、開発環境依存のビルド手順やリンク設定、署名検査のためのAPI呼び出しなどが含まれている可能性があります。一方で、こうした技術はセキュリティの脆弱性評価や防御側の検証研究において有益ですが、実運用環境や第三者のシステムで使用すると法的・倫理的に問題となるため、限定的なテスト環境と明示的な許可のもとでのみ扱うべきです。防御観点では、サービスの整合性チェック、正当な証明書の管理、PPLやコード署名の検証強化などが対抗策となり得ます。

プロジェクトの構成

主要なファイルとディレクトリ:

  • .gitattributes: file
  • .gitignore: file
  • IAmAntimalware.cpp: file
  • IAmAntimalware.sln: file
  • IAmAntimalware.vcxproj: file

…他 5 ファイル

まとめ

研究目的以外での使用は危険であり厳重な法的・倫理的配慮が必要です(50字程度)。

リポジトリ情報:

READMEの抜粋:

IAmAntimalware

This is a tool that uses the technique of cloning Windows services of Antivirus and cloning digital signatures to inject code into the processes of the Antivirus.

Command Line Syntax

IAmAntimalware.exe <originalSVName> <newSVName> <certPath> <dllPath>

Hijacking technique via Cryptographic Provider

IAmAntimalware.exe <originalSVName> <newSVName> <certPath> <dllPath> <P>

P: Enable PPL (Protected Processes Light) if the service supports it…