
静的および動的解析ツール:悪意のあるコード、不審なバイナリ、プライバシー侵害を検出
インストール - 使い方 - 動的解析 - YARAルール - CI/CD
ドキュメント: English | Tiếng Việt
悪意のあるコード、不審なバイナリ、プライバシー侵害を検出する静的・動的解析ツール。ソースコード、コンパイル済み実行ファイル (.exe, .dll, .elf)、macOSバンドル (.app, .dmg, .pkg)、モバイルアプリ (.apk, .ipa)、アプリケーションパッケージを、YARAルール、Dockerサンドボックスによる動作解析、MobSFモバイル解析、ペイロード難読化解除、マルチフォーマットレポート (JSON, HTML, SARIF) で分析します。
| カテゴリ | 検出例 |
|---|---|
| リバースシェル | Python socket+subprocess, bash /dev/tcp, netcat, PowerShell TCPClient, socat |
| バックドア | ウェブシェル (PHP/JSP/ASP.NET), コマンドインジェクション (Python/JS/Java/Ruby/Go/C), バインドシェル, 隠しルート, リモートコード読み込み, ユーザー作成, SSTI, 安全でないデシリアライズ |
| 難読化 | Base64+evalチェーン, 文字コード構築, 16進ペイロード, 動的インポート |
| 暗号通貨マイナー | Stratumプール接続, マイニングAPI, ウォレットアドレス (BTC/ETH/XMR) |
| ランサムウェア | ファイル暗号化ウォーク, 身代金メッセージ, 暗号化+リネームパターン |
| 認証情報窃取 | ハードコードされたシークレット, クリップボード盗難, 環境変数収穫, ブラウザ認証情報ファイル |
| サプライチェーン | 不審なnpm/pipインストールフック, 依存関係混乱, カスタムレジストリ |
| 永続化 | Cron/schtasks作成, レジストリRunキー, LaunchAgent/Daemon, SUID操作 |
| 権限昇格 | SUIDビット操作, setuid(0), chown root |
| アンチ解析 | デバッガ検出, VM検出, TLSコールバック, ptrace使用 |
| キーロガー | GetAsyncKeyState, SetWindowsHookEx, pynput, CGEventTapCreate |
| プライバシー | トラッキングSDK (40以上), PIIフィールド (SSN, クレジットカード, 生体情報, 健康情報), 不正なパーミッション, デバイスフィンガープリンティング |
| バイナリ指標 | パック済みバイナリ (UPX, 高エントロピー), RWXセクション, 不審なインポート, 未署名/改変コード |
pip install malware-check
pipx install malware-check
git clone https://github.com/momenbasel/malware-check.git
cd malware-check
pip install -e ".[dev]"
これでコアCLIがインストールされます。pefile/liefによるバイナリ解析、magikaによるAI搭載ファイル検出、yara-pythonによるYARAスキャンはオプションの拡張機能です。
# コア + バイナリ解析 + AIファイル検出 + YARA
pip install malware-check[full]
# または必要なものだけインストール
pip install malware-check[binary]
pip install malware-check[detect]
pip install malware-check[yara]
# または手動で拡張機能をインストール
pip install pefile lief magika yara-python
pip install malware-check[detect]
インストールすると、malware-checkは Magika を使用してクロスプラットフォームのファイル識別を改善し、file_typeメタデータを充実させ、拡張子がない、または偽装されたファイルをファイル名ではなくコンテンツに基づいて適切なアナライザーにルーティングします。
# Dockerが必要 - https://docs.docker.com/get-docker/
# サンドボックスイメージをビルド (一度だけ)
malware-check build-sandbox
malware-check info
infoコマンドは、Magika搭載のファイル検出が利用可能かどうかを表示します。
Claude Codeのスキルとしてインストールすると、Claudeがあなたのためにファイルを分析できます:
# GitHubからスキルをインストール
npx skills install momenbasel/malware-check --skill malware-check
# または手動で: skill/SKILL.md をスキルディレクトリにコピー
cp -r skill/ ~/.claude/skills/malware-check/
その後、Claude Codeで「このファイルをマルウェアスキャンして」または「このバイナリは安全ですか?」と指示すると、Claudeが自動的にmalware-checkを使用します。
CLIツールもインストールする必要があります:
pip install malware-check pefile lief yara-python
ツールをインストールして、Codexエージェントの指示に追加:
# 1. CLIをインストール
pip install malware-check pefile lief yara-python
# 2. Codexの指示に追加 (codex.md またはシステムプロンプト)
echo 'ファイルをマルウェア分析するには `malware-check scan <path> --verbose` を使用してください。' >> AGENTS.md
# 3. またはCodexスキルとしてインストール
cp -r skill/ .codex/skills/malware-check/
ツールの使用やカスタム指示に対応するAIコーディングエージェント向け:
# 1. インストール
pip install malware-check
# 2. エージェントの指示に追加:
# "コード/バイナリのマルウェアチェックを求められたら、malware-check scan <target> --verbose を使用してください。"
# "レポート用: malware-check scan <target> --format html -o report.html"
# "CI/CD用: malware-check scan <target> --format sarif -o report.sarif --exit-code"
malware-check scan suspicious_file.py
# malware-check[detect] がインストールされていると最良の結果
malware-check scan suspicious_payload --verbose
malware-check scan /path/to/project --verbose
# サンドボックスを最初にビルド (一度だけ)
malware-check build-sandbox
# 行動分析でスキャン
malware-check scan malware.exe --dynamic
malware-check scan /Applications/SuspiciousApp.app --dynamic --verbose
# JSONレポート
malware-check scan target/ --format json -o report.json
# HTMLダッシュボード
malware-check scan target/ --format html -o report.html
# CI/CD用SARIF
malware-check scan target/ --format sarif -o results.sarif
# 発見事項がある場合に非ゼロコードで終了 (CIゲート用)
malware-check scan . --format sarif -o results.sarif --exit-code
malware-check info
name: Security Scan
on: [push, pull_request]
jobs:
malware-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.12"
- name: Install malware-check
run: pip install malware-check
- name: Run scan
run: malware-check scan . --format sarif -o results.sarif --exit-code
- name: Upload SARIF
if: always()
uses: github/codeql-action/upload-sarif@v3
with:
sarif_file: results.sarif