
Malwoverviewは、VirusTotal、Hybrid Analysis、URLHaus、Polyswarm、Malshare、Alien Vault、Malpedia、Malware Bazaar、ThreatFox、Triage、IPInfo、Shodan、AbuseIPDB、GreyNoise、URLScan.io、Whois/RDAP、NIST、VulnCheckにわたる脅威ハンティングのためのファーストレスポンスツールです。LLMエンリッチメント、IOC抽出、YARAスキャン、Android解析に対応しています。
Copyright (C) 2018-2026 Alexandre Borges (https://exploitreversing.com)
このプログラムはフリーソフトウェアです。あなたはこれを再配布および改変できます。
この再配布は、Free Software Foundation が公開した GNU 一般公衆利用許諾契約書
(バージョン3、またはあなたの選択によりそれ以降のバージョン)の条項に基づいて
行われます。
このプログラムは有用であることを期待して配布されますが、
いかなる保証もなく、商品性または特定目的への適合性の
暗黙の保証もありません。詳細は GNU 一般公衆利用許諾契約書を
参照してください。
GNU 一般公衆利用許諾契約書は <http://www.gnu.org/licenses/> を参照してください。
重要なお知らせ: Malwoverview はデフォルトではサンプルをいかなるエンドポイントにも送信しないため、
可能性のある秘密保持契約(NDA)を尊重します。サンプルを明示的に送信する特定のオプション
もありますが、これらのオプションはヘルプで説明されています。
Malwoverview.py は脅威ハンティングのためのファーストレスポンスツールであり、初期かつ迅速な マルウェアサンプル、URL、IPアドレス、ドメイン、マルウェアファミリー、IOC、ハッシュのトリアージを実行します。さらに、 Malwoverview は動的および静的な挙動レポートの取得、サンプルの提出およびダウンロードを 複数のエンドポイントに対して行うことができます。一言で言えば、既存の主要なサンドボックスに対するクライアントとして機能します。
このツールの目的は次のとおりです:
Alexandre Borges (https://github.com/alexandreborges) | プロジェクトオーナー兼メイン開発者
Artur Marzano (https://github.com/Macmod) | 共同メイン開発者
Corey Forman (https://github.com/digitalsleuth) | REMnux インテグレーション担当
Christian Clauss (https://github.com/cclauss)
バージョン 6.0.0 以降、"dev" という新しいブランチがあります。すべての貢献と提案は この "dev" ブランチに対して行う必要があります。
貢献を希望する専門家は、提案する改善内容とそれがプロジェクトをどのように良くするかを説明する issue を開く必要があります。 承認されると、その人は PR を提出する権限を得ます。PR はテストされます。
すべての変更がテストされると、Malwoverview の新しいバージョンが master ブランチに複製され、新しい Python パッケージが生成されます。
このツールは REMnux、Ubuntu、Kali Linux、macOS、Windows でテストされています。Malwoverview は 次のコマンドを実行してインストールできます:
* pip3.11 install git+https://github.com/alexandreborges/malwoverview
or...
* python -m pip install -U malwoverview
macOS に Malwoverview をインストールする場合は、次のコマンドを実行する必要があります:
* /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
* brew install libmagic
* pip3 install urllib3==1.26.6
* pip3 install -U malwoverview
* Python バイナリディレクトリを PATH 変数に追加するには、ホームディレクトリの .bash_profile ファイルを編集します。
例:
export PATH=$PATH:/Users/alexandreborges/Library/Python/3.9/bin
* 実行: . ./.bash_profile
Windows に Malwoverview をインストールする場合は、Malwoverview をインストールした 後に次の条件が満たされていることを確認してください:
* python-magic がインストールされていないこと。(pip show python-magic)
* python-magic-bin がインストールされていること。(pip show python-magic-bin)
一部の機能にはオプションの依存関係が必要です。必要に応じてインストールしてください:
* YARA スキャン: pip install malwoverview[yara]
* 署名チェック: pip install malwoverview[signature]
* PDF レポートエクスポート: pip install malwoverview[pdf]
* TUI ダッシュボード: pip install malwoverview[tui]
* すべてのオプション: pip install malwoverview[all]
すべての API を入力しなくても Malwoverview の使用を開始できます。ただし、 Malwoverview のすべてのオプションを使用するには、次のサービスの各 API を VirusTotal, Hybrid Analysis, URLHaus, Malshare, Polyswarm, Alien Vault, Malpedia, Triage, IPInfo, Malware Bazaar, ThreatFox, VulnCheck, Shodan, AbuseIPDB, GreyNoise および URLScan.io の .malwapi.conf 設定ファイルに入力する必要があります。このファイルは ホームディレクトリ(Linux では /home/[username] または /root、Windows では C:\Users[username])に存在(または作成)する必要があります。あるいは、ユーザーは カスタム設定ファイルを作成し、-c オプションで指定することもできます。
強調しておくと、.malwapi.conf ファイルがホームディレクトリに存在しない場合は、それを作成する必要があります。
Alien Vault に関する特別な注意: -n 1 オプションを使用する前に、Alien Vault ウェブサイトでパルスに登録する必要があります。
Malshare と Shodan に関する特別な注意: どちらのサービスも API キーを URL 自体に含めて送信する必要があり、 ヘッダーやリクエストボディの代替手段はドキュメント化されていません(Malshare の hashlookup エンドポイントは POST ですが、キーは依然としてクエリ文字列に含まれます)。Malwoverview はこれら 2 つの キーを、出力するすべてのエラーメッセージ内で [REDACTED] に置き換えるため、バグレポートに貼り付ける出力に それらが含まれることはありません。ただし、キーはそれらのサービスのアクセスログや、 あなたとサービスの間で TLS を終端するプロキシには記録されます。両方のキーはサービス事業者に 公開されたものとして扱い、他の認証情報と同様にローテーションしてください。
.malwapi.conf 設定ファイルの形式は次のとおりです:
[VIRUSTOTAL]
VTAPI =
[HYBRID-ANALYSIS]
HAAPI =
[MALSHARE]
MALSHAREAPI =
[HAUSSUBMIT]
HAUSSUBMITAPI =
[POLYSWARM]
POLYAPI =
[ALIENVAULT]
ALIENAPI =
[MALPEDIA]
MALPEDIAAPI =
[TRIAGE]
TRIAGEAPI =
[IPINFO]
IPINFOAPI =
[BAZAAR]
BAZAARAPI =
[THREATFOX]
THREATFOXAPI =
[VULNCHECK]
VULNCHECKAPI =
[URLHAUS]
URLHAUSAPI =
[SHODAN]
SHODANAPI =
[ABUSEIPDB]
ABUSEIPDBAPI =
[GREYNOISE]
GREYNOISEAPI =
[URLSCANIO]
URLSCANIOAPI =
[LLM]
PROVIDER = claude
CLAUDE_API_KEY =
CLAUDE_MODEL = claude-opus-4-8
GEMINI_API_KEY =
OPENAI_API_KEY =
OPENAI_MODEL = gpt-4o-mini
OLLAMA_URL = http://localhost:11434
OLLAMA_MODEL = llama3.1
API はそれぞれのサービスの Web サイトで取得できます:
Malwoverview は --enrich フラグを使用した LLM による脅威エンリッチメントをサポートしています。任意のクエリの後、リスクレベル、マルウェアファミリーの識別、MITRE ATT&CK マッピング、アナリスト推奨事項を含む AI 生成の脅威評価が追加されます。
3 つのプロバイダーがサポートされています。.malwapi.conf の [LLM] セクションで 1 つを設定してください:
18. Anthropic Claude(有料・最高品質)
脅威インテリジェンス分析に最適な結果。マルウェア
ファミリーを正確に特定し、正確な MITRE ATT&CK テクニックをマッピングし、実世界の
脅威知識に基づく実践的な推奨事項を提供します。
セットアップ:
a) https://console.anthropic.com/ で API アカウントを作成します(claude.ai のサブスクリプションとは別)
b) Settings → Billing → Add credit に移動(最低 $5、従量課金)
c) Settings → API Keys → Create Key に移動
d) キーをコピーします(sk-ant-api03-... で始まる)
e) .malwapi.conf を設定します:
[LLM]
PROVIDER = claude
CLAUDE_API_KEY = sk-ant-api03-your-key-here
CLAUDE_MODEL = claude-opus-4-8
CLAUDE_MODEL はオプションで、デフォルトは claude-opus-4-8 です。一般的な選択肢:
- claude-opus-4-8 — 最高品質(デフォルト)
- claude-sonnet-4-6 — 品質とコストのバランスに優れる
- claude-haiku-4-5 — 最速かつ最安
コスト: デフォルトの Opus モデルを使用した場合、エンリッチメント呼び出しあたり約 $0.02〜0.04(
Sonnet または Haiku ではより低額)。$5 のクレジットで、約 125〜250 回の Opus エンリッチメント呼び出しが可能です。
19. Google Gemini(課金が必要)
良好な品質の結果。Google Cloud の課金アカウントが必要です。
セットアップ:
a) https://aistudio.google.com/apikeys にアクセス
b) Google アカウントでサインイン
c) Create API Key をクリック → キーをコピー
d) 課金を有効化: キーの横にあるプロジェクトリンクをクリック → Google Cloud
Console → Billing → Link a billing account
e) .malwapi.conf を設定します:
[LLM]
PROVIDER = gemini
GEMINI_API_KEY = your-gemini-key-here
GEMINI_MODEL = gemini-2.0-flash
注記: 無料ティアはレート制限が低い(毎分 2〜5 リクエスト)。
より高い制限が必要な場合は、従量課金を有効にしてください。
20. OpenAI(有料)
GPT モデルを使用した良好な品質の結果。API クレジットを
持つ OpenAI アカウントが必要です。
セットアップ:
a) https://platform.openai.com/signup でアカウントを作成
b) https://platform.openai.com/api-keys にアクセス → Create new secret key
c) https://platform.openai.com/settings/organization/billing で課金を追加
d) .malwapi.conf を設定します:
[LLM]
PROVIDER = openai
OPENAI_API_KEY = sk-your-key-here
OPENAI_MODEL = gpt-4o-mini
利用可能なモデル:
- gpt-4o-mini — 最安(エンリッチメントあたり約 $0.002)、良好な品質(デフォルト)
- gpt-4o — より高品質(エンリッチメントあたり約 $0.01)
21. Ollama(無料・ローカル・プライベート)
完全にローカルマシン上で実行されます。API キーは不要で、データが
システム外に出ることはありません。脅威データをクラウド API に送信できない
環境に適しています。品質は選択したモデルに依存します。
セットアップ:
a) https://ollama.com/download から Ollama をダウンロードしてインストール
(Windows、Linux、macOS で利用可能)
b) ターミナルを開いてモデルを取得:
ollama pull qwen2.5:14bRecommended models:
- qwen2.5:14b — 妥当なサイズで最高の品質 (9 GB、16 GB RAM が必要)
- llama3.1:8b — 良好な品質、より小型 (5 GB、8 GB RAM が必要)
- llama3.1:70b — 優れた品質、大容量 (40 GB、48 GB RAM が必要)
c) Ollama は自動的に起動し、http://localhost:11434 でサービスを提供します。
d) .malwapi.conf を設定します:
[LLM]
PROVIDER = ollama
OLLAMA_URL = http://localhost:11434
OLLAMA_MODEL = qwen2.5:14b
パフォーマンス: 12 GB 以上の VRAM を搭載した GPU では高速な応答 (5〜10秒) が得られます。
CPU のみの場合は遅くなります (30〜60秒) が、機能はします。より大きなモデル (14b、70b) は
より多くの VRAM を必要とし、CPU で十分なメモリがない場合はタイムアウトする可能性があります。
llama3.1:8b モデルは、GPU メモリが限られているマシン (6 GB 以下) に推奨されます。
想定される応答時間:
- Claude API: 3〜8秒
- Gemini API: 3〜8秒
- Ollama (十分な VRAM を搭載した GPU): 5〜15秒
- Ollama (CPU のみ、8b モデル): 30〜60秒
- Ollama (CPU のみ、14b+ モデル): 60〜300秒
使用例:
# CLI: append --enrich to any query
malwoverview -v 8 -V <hash> --enrich
malwoverview -ip 1 -IP 8.8.8.8 --enrich
malwoverview --correlate-hash <hash> --enrich
# Interactive REPL: toggle enrichment on/off or switch provider
malwoverview --interactive
malwoverview> set enrich on # use provider from config
malwoverview> set enrich claude # switch to Claude
malwoverview> set enrich ollama # switch to Ollama
malwoverview> set enrich openai # switch to OpenAI
malwoverview> set enrich off # disable enrichment
malwoverview> vt hash <hash> # malware analysis + enrichment
malwoverview> nist cve CVE-2024-3400 # CVE lookup + enrichment
malwoverview> vulncheck cve CVE-2024-3400 # VulnCheck + enrichment
# TUI: click the Enrich button to cycle through providers
# Enrich (OFF) → claude → gemini → openai → ollama → OFF
# Green button = provider active and configured
# Yellow button = provider selected but API key missing
# Default button = enrichment disabled
malwoverview --tui
このサービスと承認はコミュニティによる審査に基づいています。したがって、API リクエストは ビジネス用メールアドレスから送信することをお勧めします。公開・無料のメールアドレス (Gmail、Outlook など) からは送信しないでください。さらに、自身に関する情報 (LinkedIn アカウント、X/Twitter、Mastodon、BlueSky など) を提供していただけると、 本人確認、職歴、正当性の検証が容易になり、リクエストの承認が迅速に進みます。
Triage のすべての操作は各アーティファクトの Triage ID に基づいています。そのため、正しい ID を検索するには "-x 1 -X \<attribute\>:\<value\>" を使用し、その ID 情報を残りの Triage オプション (-x [2-7]) と併用して、Triage エンドポイントからより多くの脅威ハンティング情報を取得する必要があります。
2025年下半期以降、URLHaus、Malware Bazaar、Threat Fox の各サービスを利用するには Auth-Key (API) が必要になります。
Malwoverview はダークなターミナル背景向けに出力するよう作られています。ただし、-o 0 オプションを使用すると、ライト背景向けに出力色を変更・調整できます。
インストールを確認するには、以下を実行してください:
malwoverview --help
詳細情報は以下で入手できます:
(PYPI.org リポジトリ) https://pypi.org/project/malwoverview/
(Github) https://github.com/alexandreborges/malwoverview
手動インストールを実行する場合 (通常は必要ありません)、次のサブセクションに示すように、いくつかの手順を実行するだけで済みます。
Python バージョン 3.11 以降 (Python 3.x のみ!!! Python 2.7 では動作しません)
$ apt-get install python3.11 (for example)
Python-magic。
python-magic パッケージをインストールするには、次のコマンドを実行できます:
$ pip3.11 install python-magic
または、github リポジトリからコンパイルすることもできます:
$ git clone https://github.com/ahupp/python-magic
$ cd python-magic/
$ python3.11 setup.py build
$ python3.11 setup.py install
既存の python-magic パッケージには2つのバージョンに関連する深刻な問題があるため、 Github (上記の2番目の手順) からインストールし、magic.py ファイルを malwoverview ツールと 同じディレクトリにコピーすることをお勧めします。
必要な Python パッケージをすべてインストールします:
$ pip3.11 install -r requirements.txt
OR
$ pip3.11 install -U pefile
$ pip3.11 install -U colorama
$ pip3.11 install -U simplejson
$ pip3.11 install -U python-magic
$ pip3.11 install -U requests
$ pip3.11 install -U validators
$ pip3.11 install -U geocoder
$ pip3.11 install -U polyswarm-api
$ pip3.11 install -U pathlib
$ pip3.11 install -U configparser
Android モバイルを確認するには、"adb" ツールをインストールする必要があります:
$ sudo apt get install adb
注意: Android オプションを試す前に、以下を確認してください:
* adb ツールが PATH 環境変数に含まれているか。
* システムが "adb devices -l" を使用してデバイスへのアクセスを承認しているか。
usage: python malwoverview.py -c -d -o <0|1> -v <1-20> -V -a <1-13> -A -l <1-8> -L <hash|file type> -j <1-8> -J -p <1-8> -P -y <1-5> -Y -n <1-5> -N -m <1-9> -M -b <1-15> -B -x <1-9> -X -ip <1-8> -IP -O --nist <1-5> --NIST -vc <1-8> -VC -s <1-2> -S -ab <1> -AB -gn <1> -GN -wh <1-2> -WH -ct <1-2> -CT -u <1-5> -U --correlate-hash --extract-iocs <file|url> --yara --yara-target --peinfo <file|directory> --entropy-threshold --sigcheck <file|directory> --no-signature --sig-verify-mode <any|first|all|best> --output-format text|json|csv --proxy --quiet --verbose --no-cache --cache-ttl --cache-stats --prune-cache --clear-cache --no-resolve --defang --no-ioc-filter --report html|pdf --interactive --tui --attack-map
Malwoverview は、Alexandre Borges によって書かれた脅威ハンティングのためのファーストレスポンスツールです。
MALWARE OPTIONS: マルウェア解析およびインテリジェンス検索オプション
-h, --help
+ このヘルプメッセージを表示して終了します。
-c CONFIG FILE, --config CONFIG FILE
+ API を指定するためのカスタム設定ファイルを使用します。
-d DIRECTORY, --directory DIRECTORY
+ VIRUS TOTAL に対してチェックするマルウェアサンプルが含まれるディレクトリを指定します。
+ -D オプションを使用して、公開 VT API と Premium VT API のどちらを使用しているかを決定します。
-o BACKGROUND, --background BACKGROUND
+ 出力色をライト背景色のターミナルに合わせます。
+ デフォルトはダーク背景色のターミナルです。
-v VIRUSTOTAL, --virustotal_option VIRUSTOTAL
+ -v 1: -V オプションでファイルを指定すると、VIRUS TOTAL データベース (API v.3) に照会して、-V オプションで指定されたファイルのレポートを取得します。
+ v 2: -V オプションで指定されたファイルのアンチウイルスレポートを表示します (API v.3)。
+ v 3: -v2 と同じですが、バイナリの IAT と EAT も表示されます (API v.3)。
+ v 4: オーバーレイを抽出します。
+ v 5: URL を VT スキャンに提出します。
+ v 6: IP アドレスを Virus Total に提出します。
+ v 7: 指定されたドメインに関するレポートを Virus Total から取得します。
+ v 8: 指定されたハッシュを Virus Total で検証します。
+ v 9: サンプルを VT に提出します (最大 32 MB)。Windows システムではスラッシュを使用して対象ファイルを指定します。-V オプションでサンプルファイルを指定する必要があります。
+ -v 10: -V オプションで指定されたファイルからハッシュを検証します。このオプションは公開 VT API v.3 を使用します。
+ -v 11: -V オプションで指定されたファイルからハッシュを検証します。このオプションは Premium API v.3 を使用します。
+ -v 12: -V オプションで指定されたハッシュのサンプルの挙動情報を表示します。このオプションは VT API v.3 を使用します。-v 13: API v.3 を使用して LARGE ファイル (32 MB 超) を VT に提出します。
+ -v 14: -V で指定された YARA ルールファイルまたはルールディレクトリを使用して Retrohunt ジョブを提出します (VT は過去数か月間に受信したサンプルをルールに対してスキャンします)。
+ -v 15: あなたの Retrohunt ジョブを一覧表示します。-V で渡されるステータス (starting、running、aborting、aborted、finished) で任意にフィルタリングできます。
+ -v 16: -V で指定された ID の Retrohunt ジョブのステータスと進捗を表示します。
+ -v 17: -V で指定された ID の Retrohunt ジョブに一致したファイルを一覧表示します。
+ -v 18: -V で指定された YARA ルールファイルまたはルールディレクトリから Livehunt ルールセットを作成します (VT はその後、すべての新しい提出物をそれに対して照合します)。
+ -v 19: あなたの Livehunt ルールセットを一覧表示します。
+ -v 20: あなたの Livehunt 通知を一覧表示します。オプション 14〜20 には、プレミアム (エンタープライズ) 権限を持つ VT キーが必要です。
-V VIRUSTOTAL_ARG, --virustotal_arg VIRUSTOTAL_ARG
+ -v オプションの引数を提供します。"-v 1"〜"-v 4"の場合、-V はファイルパスである必要があります。"-v 5"の場合、-V は URL である必要があります。"-v 6"の場合、-V は IP アドレスである必要があります。"-v 7"の場合、-V はドメインである必要があります。"-v 8"の場合、-V はハッシュ (MD5/SHA1/SHA256) である必要があります。"-v 9"または "-v 13" の場合、-V は提出するファイルパスである必要があります。"-v 10"または "-v 11" の場合、-V はハッシュを含むファイル (1行に1つ) である必要があります。"-v 12"の場合、-V は挙動分析用のハッシュである必要があります。"-v 14"または "-v 18"の場合、-V は YARA ルールファイルまたはルールのディレクトリである必要があります。"-v 15"の場合、-V はジョブステータスでも構いません。"-v 16"または "-v 17"の場合、-V は Retrohunt ジョブ ID である必要があります。
-a HYBRID_ANALYSIS, --hybrid_option HYBRID_ANALYSIS
+ このパラメータは HYBRID ANALYSIS からレポートを取得し、サンプルをダウンロードして、分析対象のサンプルを提出します。
+ 指定可能な値は次のとおりです:
+ 1: Windows 7 32ビット環境から指定されたハッシュまたはサンプルのレポートを取得します。
+ 2: Windows 7 32ビット環境 (HWP サポート) から指定されたハッシュまたはサンプルのレポートを取得します。
+ 3: Windows 64ビット環境から指定されたハッシュまたはサンプルのレポートを取得します。
+ 4: Android 環境から指定されたハッシュまたはサンプルのレポートを取得します。
+ 5: Linux 64ビット環境から指定されたハッシュまたはサンプルのレポートを取得します。
+ 6: サンプルを Windows 7 32ビット環境に提出します。
+ 7. HWP サポート環境の Windows 7 32ビット環境にサンプルを提出します。
+ 8. サンプルを Windows 7 64ビット環境に提出します。
+ 9. サンプルを Android 環境に提出します。
+ 10. サンプルを Linux 64ビット環境に提出します。
+ 11. 指定されたハッシュのサンプルをダウンロードします (保存されているサンプルはサンドボックス環境に関係なく同じであるため、1つのオプションで以前のオプション 11〜15 を置き換えます)。
+ 12. ファイルからハッシュを一括チェックします (1行に1つのハッシュ)。
+ 13. ディレクトリスキャン - 各ファイルの SHA256 を計算し、Hybrid Analysis に対してチェックします。
-A SUBMIT_HA, --ha_arg SUBMIT_HA
+ HYBRID ANALYSIS の -a オプションの引数を提供します。"-a 1"〜"-a 5"の場合、-A はハッシュまたはファイルパス (自動検出) である必要があります。"-a 6"〜"-a 10"の場合、-A は提出するファイルパスである必要があります。"-a 11"の場合、-A はダウンロードするハッシュである必要があります。"-a 12"の場合、-A はハッシュを含むファイル (1行に1つ) である必要があります。"-a 13"の場合、-A はスキャンするディレクトリパスである必要があります。
-D VT_PUBLIC_PREMIUM, --vtpubpremium VT_PUBLIC_PREMIUM
+ このオプションは -d オプションと一緒に使用する必要があります。
+ 指定可能な値:
+ <0> Premium VT API v3 を使用します (デフォルト)。
+ <1> Public VT API v3 を使用します。
-l MALSHARE_HASHES, --malsharelist MALSHARE_HASHES
+ このオプションは、MALSHARE リポジトリから過去24時間の特定タイプのサンプルのダウンロードとハッシュの表示を実行します。
+ 指定可能な値は次のとおりです:
+ 1: サンプルをダウンロードします。
+ 2: PE32 (デフォルト)。
+ 3: ELF。
+ 4: Java。
+ 5: PDF。
+ 6: 過去24時間に利用可能なファイルタイプを一覧表示します (各タイプのサンプル数も表示)。
+ 7: 過去24時間のハッシュの一覧。
+ 8: -L で指定されたファイルタイプのハッシュを一覧表示します (有効なファイルタイプを確認するには -l 6 を使用します)。
-L MALSHARE_HASH_SEARCH, --malshare_hash MALSHARE_HASH_SEARCH
+ MALSHARE リポジトリからサンプルをダウンロードするための引数としてハッシュを提供します (-l 1)。-l 8 と一緒に使用する場合は、ハッシュを一覧表示するファイルタイプを提供します。
-j HAUS_OPTION, --haus_option HAUS_OPTION
+ このオプションは、引数として渡された値に応じて URLHaus から情報を取得します:
+ 1: 指定されたサンプルのダウンロードを実行します。
+ 2: 指定されたハッシュに関する情報を照会します。
+ 3: 指定された URL に関する情報を検索します。
+ 4: 指定されたタグ (大文字小文字を区別) で悪意のある URL を検索します。
+ 5: タグが指定されたペイロードを検索します。
+ 6: 最近のペイロードへのダウンロード可能なリンクの一覧を取得します。
+ 7: 最近の悪意のある URL の一覧を取得します。
+ 8: ファイルからハッシュを一括チェックします (1行に1つのハッシュ)。
-J HAUS_ARG, --haus_arg HAUS_ARG
+ URLHaus の -j オプションの引数を提供します。"-j 1"の場合、-J はサンプルをダウンロードするための SHA256 ハッシュである必要があります。"-j 2"の場合、-J は検索するハッシュ (MD5/SHA1/SHA256) である必要があります。"-j 3"の場合、-J はチェックする URL である必要があります。"-j 4"の場合、-J はタグ (大文字小文字を区別) である必要があります。"-j 5"の場合、-J は署名名である必要があります。
-p POLY_OPTION, --poly_option POLY_OPTION
+ (Linux のみ) このオプションは POLYSWARM 操作に関連します:
+ 1. -P オプションで指定されたハッシュに関連する情報を検索します。
+ 2. -P オプションで指定されたサンプルを Polyswarm エンジンによる分析に提出します。
+ 3. -P オプションでハッシュを指定して Polyswarm からサンプルをダウンロードします。注意: Polyswarm は1か月あたり最大20サンプルに制限しています。
+ 4. -P オプションで指定されたサンプルファイルに基づいて類似サンプルを検索します。
+ 5. -P オプションで指定された IP アドレスに関連するサンプルを検索します。
+ 6. -P オプションで指定されたドメインに関連するサンプルを検索します。
+ 7. -P オプションで指定された URL に関連するサンプルを検索します。
+ 8. -P オプションで指定されたマルウェアファミリに関連するサンプルを検索します。
-P POLYSWARM_ARG, --poly_arg POLYSWARM_ARG
+ (Linux のみ) POLYSWARM の -p オプションの引数を提供します。
-y ANDROID_OPTION, --android_option ANDROID_OPTION
+ この ANDROID オプションには複数の指定可能な値があります:
+ <1>: USB 接続された Android デバイスからすべてのサードパーティ APK パッケージをマルチスレッドを使用して Hybrid Analysis に対してチェックします。注: Android デバイスは root 化されている必要はなく、システムには PATH 環境変数に adb ツールが含まれている必要があります。
+ <2>: USB 接続された Android デバイスからすべてのサードパーティ APK パッケージを Public API を使用して VirusTotal に対してチェックします (4ハッシュごとに60秒の遅延があるため遅くなります)。注: Android デバイスは root 化されている必要はなく、システムには PATH 環境変数に adb ツールが含まれている必要があります。
+ <3>: USB 接続された Android デバイスからすべてのサードパーティ APK パッケージをマルチスレッドを使用して VirusTotal に対してチェックします (Private Virus API のみ)。注: Android デバイスは root 化されている必要はなく、システムには PATH 環境変数に adb ツールが含まれている必要があります。
+ <4> USB 接続された Android デバイスからサードパーティの APK を Hybrid Analysis に送信します。
+ 5. USB 接続された Android デバイスからサードパーティの APK を Virus-Total に送信します。
-Y ANDROID_ARG, --android_arg ANDROID_ARG
+ このオプションは ANDROID の -y の引数を提供します。
-n ALIENVAULT, --alienvault ALIENVAULT
+ ALIENVAULT から複数の情報をチェックします。指定可能な値は次のとおりです:
+ 1: 購読しているパルスを取得します。
+ 2: IP アドレスに関する情報を取得します。
+ 3: ドメインに関する情報を取得します。
+ 4: ハッシュに関する情報を取得します。
+ 5: URL に関する情報を取得します。
-N ALIENVAULT_ARGS, --alienvaultargs ALIENVAULT_ARGS
+ ALIENVAULT の -n オプションの引数を提供します。"-n 1"の場合、-N は取得する購読パルスの数である必要があります。"-n 2"の場合、-N は IP アドレスである必要があります。"-n 3"の場合、-N はドメインである必要があります。"-n 4"の場合、-N はハッシュ (MD5/SHA256) である必要があります。"-n 5"の場合、-N は URL である必要があります。
-m MALPEDIA, --malpedia MALPEDIA
+ このオプションは MALPEDIA に関連し、選択した値に応じて異なる意味を持ちます。次のとおりです:
+ 1: すべてのファミリのメタ情報を一覧表示します。
+ 2: すべてのアクター ID を一覧表示します。
+ 3: Malpedia からファミリごとに整理された利用可能なすべてのペイロードを一覧表示します。
+ 4: 特定のアクターからメタ情報を取得します。この場合、-M オプションを使用する必要があります。さらに、malwoverview を -m 3 オプションで実行して、正しいアクター ID を確認することをお勧めします。
+ 5: すべてのファミリ ID を一覧表示します。
+ 6: 特定のファミリからメタ情報を取得します。この場合、-M オプションを使用する必要があります。さらに、malwoverview を -m 5 オプションで実行して、正しいファミリ ID を確認することをお勧めします。
+ 7: Malpedia からマルウェアサンプルを取得します (zip 形式 -- パスワード: infected)。-M オプションを使用して要求するハッシュを指定する必要があります。
+ 8: 特定のファミリの Yara ルールを含む zip ファイルを取得します (可能なファミリは -m 5 を使用して確認)。-M オプションで指定する必要があります。
+ 9: TLP レベルの完全な Malpedia Yara ルールセットを含む zip ファイルを取得します。-M で tlp_white、tlp_green、tlp_amber、auto のいずれかを指定する必要があります (短縮形の white、green、amber も受け付けられます)。ダウンロードしたルールでスキャンするには --yara と組み合わせてください。
-M MALPEDIAARG, --malpediarg MALPEDIAARG
+ MALPEDIA の -m オプションの引数を提供します。"-m 4"の場合、-M はアクター名である必要があります (-m 2 で確認)。"-m 6"の場合、-M はファミリ名である必要があります (-m 5 で確認)。"-m 7"の場合、-M はサンプルをダウンロードするためのハッシュである必要があります。"-m 8"の場合、-M は YARA ルールを取得するためのファミリ名である必要があります。
-b BAZAAR, --bazaar BAZAAR+ MALWARE BAZAAR および THREATFOX から複数の情報を確認します。指定可能な
値は以下のとおりです:
+ 1: (Bazaar) マルウェアハッシュサンプルに関する情報を照会します;
+ 2: (Bazaar) 特定のタグに関連付けられたマルウェアサンプルの情報とリストを取得します;
+ 3: (Bazaar) 指定された imphash に一致するマルウェアサンプルのリストを取得します;
+ 4: (Bazaar) 最新のマルウェアサンプルを照会します;
+ 5: (Bazaar) SHA256 ハッシュを指定して Malware Bazaar からマルウェアサンプルをダウンロードします。ダウンロードされたサンプルは次の
パスワードで ZIP 圧縮されています: infected;
+ 6: (ThreatFox) オプション -B で指定した過去 x 日分の現在の IOC データセットを取得します (最大 7 日間);
+ 7: (ThreatFox) オプション -B で指定した IOC を ThreatFox で検索します;
+ 8: (ThreatFox) オプション -B で指定したタグに基づいて IOC を検索します;
+ 9: (ThreatFox) オプション -B で指定したマルウェアファミリに基づいて IOC を検索します;
+ 10. (ThreatFox) 利用可能なすべてのマルウェアファミリを一覧表示します。
+ 11: (Bazaar) ファイル (1行に1ハッシュ) から Malware Bazaar に対する
バッチハッシュチェックを行います;
+ 12: (Bazaar) ディレクトリスキャン — ディレクトリ内の各ファイルの SHA256 を
計算し、Malware Bazaar に対してチェックします;
+ 13: (Bazaar) オプション -B で指定した YARA ルール名に一致するサンプルを
検索します。ルール名はハッシュレポート (-b 1) の末尾に一覧表示され、
また -b 14 でダウンロードし -b 15 で展開する YARAify セット内の
ルール名でもあります;
+ 14: (YARAify) Malware Bazaar の背後にあるルールセットである YARAify
ルールセット (abuse.ch) をダウンロードします;
+ 15: (YARAify) ダウンロードした YARAify ルールセットを、--yara に
指定できるルールディレクトリに展開します。
-B BAZAAR_ARG, --bazaararg BAZAAR_ARG
+ -b の MALWARE BAZAAR および THREAT FOX オプションに引数を提供します:
+ "-b 1" は、-B の引数がハッシュである必要があり、サンプルに関するレポートが
取得されることを示します;
+ "-b 2" は、-B の引数がマルウェアタグである必要があり、このタグに一致する最新のサンプル
が表示されることを示します;
+ "-b 3" は、-M で指定する引数が imphash である必要があり、この impshash に一致する最新のサンプル
が表示されることを示します;
+ "-b 4" は、-M で指定する引数が "100 or time" である必要があり、"100" は
直近の「100サンプル」を一覧表示し、"time" は直近 60 分間に Malware Bazaar に
追加された最新サンプルを一覧表示します;
+ "-b 5" は、サンプルがダウンロードされ、-B の引数が Malware Bazaar から
ダウンロードしたいサンプルの SHA256 ハッシュである必要があることを示します;
+ "-b 6" は、IOC のリストが取得され、-B の値がそのような IOC をフィルタリングする
日数であることを示します。最大期間は 7 (日) です;
+ "-b 7" は、-B の引数が検索したい IOC であることを示します;
+ "-b 8" は、-B の引数が検索したい IOC の TAG であることを示します;
+ "-b 9" は、-B の引数が IOC を検索したいマルウェアファミリであることを示します;
-x TRIAGE, --triage TRIAGE
+ 指定された値に応じて TRIAGE から情報を提供します:
+ 1: このオプションは、-X オプションで引数を指定してサンプルの一般情報を
以下の形式のいずれかで取得します:
- sha256:<value>
- sha1:<value>
- md5:<value>
- family:<value>
- score:<value>
- tag:<value>
- url:<value>
- wallet:<value>
- ip:<value>;
+ 2: 指定された Triage ID (オプション -x 1 で取得) のサマリレポートを取得します;
+ 3: 分析用にサンプルを提出します;
+ 4: URL 経由でサンプルを分析用に提出します;
+ 5: Triage ID で指定されたサンプルをダウンロードします;
+ 6: 指定された Triage ID に関連付けられたサンプルの pcapng ファイルをダウンロードします;
+ 7: 指定された Triage ID (オプション -x 1 で取得) の動的レポートを取得します;
+ 8: ファイル (1行に1ハッシュ) から Triage に対するバッチハッシュチェックを行います;
+ 9: ディレクトリスキャン — ディレクトリ内の各ファイルの SHA256 を計算し、
Triage に対してチェックします。
-X TRIAGE_ARG, --triagearg TRIAGE_ARG
+ TRIAGE の -x オプションに引数を提供します。"-x 1" の場合、-X は検索クエリ
(例: sha256:<hash>, family:<name>, tag:<tag>, ip:<ip>) である必要があります;
"-x 2" の場合、-X は Triage サンプル ID (-x 1 で取得) である必要があります;
"-x 3" の場合、-X は提出するファイルパスである必要があります; "-x 4"
の場合、-X は提出する URL である必要があります; "-x 5" または "-x 6" の場合、-X は
ダウンロードする Triage サンプル ID である必要があります; "-x 7" の場合、-X は
動的レポート用の Triage サンプル ID である必要があります; "-x 8" の場合、-X は
ハッシュを含むファイル (1行に1つ) である必要があります; "-x 9" の場合、-X は
スキャンするディレクトリパスである必要があります。
-O OUTPUTDIR, --output-dir OUTPUTDIR
+ すべてのサンプルダウンロードの出力ディレクトリを設定します。
-ip IP, --ip IP
+ さまざまなソースから IP 情報を取得します。指定可能な値は以下のとおりです:
+ 1: -IP で指定した IP アドレスの詳細を IPInfo から取得します;
+ 2: バージョン 8.1.0 で削除されました (BGPView がサービス終了);
+ 3: -IP で指定した IP アドレスの詳細を、利用可能なすべての
インテリジェンスサービス (VirusTotal/Alienvault) から取得します;
+ 4: IP アドレスの詳細を Shodan から取得します;
+ 5: IP アドレスの詳細を AbuseIPDB から取得します;
+ 6: IP アドレスの詳細を GreyNoise から取得します;
+ 7: IP アドレスの詳細をすべてのサービスから取得します (包括的);
+ 8: ファイル (1行に1つ) から IP アドレスを VirusTotal に対して
バッチチェックし、サマリテーブル (IP アドレス、国、AS 所有者、
検出結果) を表示します。-D を使用して Public (-D 1) と Premium
(-D 0、デフォルト) の VT API を選択します。
-IP IPARG, --iparg IPARG
+ -ip オプションに引数を提供します。-ip 1 から 7 の場合、有効な
IP アドレス (IPv4 または IPv6) である必要があります;-ip 8 の場合、
IP アドレスを含むファイル (1行に1つ) である必要があります。
-s SHODAN, --shodan SHODAN
+ SHODAN オプション:
+ 1: IP ルックアップ;
+ 2: 検索クエリ。
-S SHODAN_ARG, --shodanarg SHODAN_ARG
+ SHODAN の -s オプションに引数を提供します。"-s 1" の場合、-S は
IP アドレスである必要があります; "-s 2" の場合、-S は検索クエリ
(例: "apache", "port:22 country:BR") である必要があります。
-ab ABUSEIPDB, --abuseipdb ABUSEIPDB
+ ABUSEIPDB オプション:
+ 1: IP のレピュテーションを確認します。
-AB ABUSEIPDB_ARG, --abuseipdbarg ABUSEIPDB_ARG
+ ABUSEIPDB の -ab オプションに IP アドレスを提供します。
-gn GREYNOISE, --greynoise GREYNOISE
+ GREYNOISE オプション:
+ 1: クイック IP チェック (コミュニティ API)。
-GN GREYNOISE_ARG, --greynoisearg GREYNOISE_ARG
+ GREYNOISE の -gn オプションに IP アドレスを提供します。
-wh WHOIS, --whois WHOIS
+ WHOIS オプション:
+ 1: ドメイン whois ルックアップ;
+ 2: IP whois/RDAP ルックアップ。
-WH WHOIS_ARG, --whoisarg WHOIS_ARG
+ WHOIS の -wh オプションに引数を提供します。"-wh 1" の場合、-WH は
ドメイン名である必要があります; "-wh 2" の場合、-WH は IP アドレスである必要があります。
-ct CRTSH, --crtsh CRTSH
+ API キーを必要としない crt.sh を通じて Certificate Transparency ログを
照会します。指定可能な値:
+ 1: -CT で指定したドメインに対して発行された証明書に含まれる個別の
DNS 名を一覧表示します。これはサブドメインを列挙する簡単な方法です。
証明書が複数のテナントをカバーできるために出現する、他のドメインに属する
名前は、別途カウントされ報告されます;
+ 2: 証明書自体を一覧表示します (識別子、発行者、コモンネーム、
有効期間、新しい順)。
-CT CRTSH_ARG, --crtsharg CRTSH_ARG
+ -ct オプションで照会するドメイン名を提供します。
-u URLSCANIO, --urlscanio URLSCANIO
+ URLSCAN.IO オプション:
+ 1: スキャン用に URL を提出します;
+ 2: UUID でスキャン結果を取得します;
+ 3: Elasticsearch クエリ構文を使用してスキャンを検索します
(例: "page.server:nginx", "task.tags:phishing");
+ 4: ドメインでスキャンを検索します;
+ 5: IP でスキャンを検索します。
-U URLSCANIO_ARG, --urlscanioarg URLSCANIO_ARG
+ URLSCAN.IO の -u オプションに引数を提供します。"-u 1" の場合、-U は
スキャン用に提出する URL である必要があります; "-u 2" の場合、-U は UUID
(-u 1 で取得) である必要があります; "-u 3" の場合、-U は Elasticsearch
クエリ (例: "page.server:nginx", "task.tags:phishing") である必要があります;
"-u 4" の場合、-U はドメインである必要があります; "-u 5" の場合、-U は
IP アドレスである必要があります。
--correlate-hash HASH
+ サービス間ハッシュ相関: VirusTotal、Hybrid Analysis、Triage、AlienVault に
わたってハッシュを照会し、統合レポートを生成します。
--extract-iocs SOURCE
+ ファイル (.txt, .pdf, .eml) または URL (http/https) から IOC (ハッシュ、IP、
URL、ドメイン、メール、CVE) を抽出します。
PDF 抽出には次が必要です: pip install malwoverview[pdf]
--yara RULES_FILE
+ スキャンに使用する YARA ルールファイル。--yara-target と一緒に使用する必要があります。
必要要件: pip install malwoverview[yara]
--yara-target TARGET
+ YARA ルールでスキャンするファイルまたはディレクトリ。
--peinfo TARGET
+ ファイルまたはディレクトリのローカル PE トリアージ (API キー不要): ファイルタイプ、
サイズ、オーバーレイ、オーバーレイサイズ、エントロピー。ディレクトリは再帰的に
スキャンされます。エントロピーは PE セクションの最大エントロピー、または非 PE
ファイルの場合はファイル全体のシャノンエントロピーです。
--entropy-threshold VALUE
+ --peinfo がファイルをパック済みまたは暗号化済みとして強調表示するエントロピー値。
デフォルト: 7.0
--sigcheck TARGET
+ ファイルまたはディレクトリの Authenticode 署名を確認します (API キー不要):
ステータス、署名者、発行者、証明書の有効期間、ダイジェストアルゴリズム、証明書の
拇印、シリアル番号。ステータスは VALID、TAMPERED、UNTRUSTED、EXPIRED、
MALFORMED、INVALID、NONE (埋め込み署名なし)、PRESENT (署名は存在するが
検証されていない)、または N/A (PE ファイルではない) のいずれかです。
埋め込み署名のみが読み取られます: NONE と報告されたファイルでも、Windows
カタログを通じて署名されている場合があります。
完全な検証には次が必要です: pip install malwoverview[signature]
VALID は、ファイルが署名時に使用された証明書にまだ一致していることを意味します。
これはファイルに対する判定ではありません: 署名証明書は盗まれたり、悪用されたり、
誤って発行されたりすることがあり、マルウェアが有効な Microsoft 署名を保持していた
例もあります。埋め込み署名はオーバーレイに格納されるため、署名済みファイルは常に
1 つの署名を報告し、そのオーバーレイは追加されたペイロードではありません。
証明書の失効はチェックされません。ネットワークリクエストは行われないため、
後に失効した証明書で署名されたファイルでも VALID と報告されます。
カウンター署名が付いている場合、署名は証明書の有効期限後も VALID のままです。
カウンター署名は、証明書がまだ有効な間にファイルが署名されたことを証明するからです。
これは Authenticode の本来の動作であり、その場合レポートにもその旨が記載されます:
VALID の横に過去の有効期限日があっても矛盾ではありません。
ファイルには複数の埋め込み署名が含まれることがあり、通常は互換性のための SHA-1 と
SHA-256 であり、署名者は頻繁に異なります。Signer 列にはそのうちの 1 つが表示され、
残りは (+N) としてマークされます。単一のファイルに対して --sigcheck を実行すると、
各署名が独自のダイジェストアルゴリズム、証明書、拇印、シリアル番号とともに一覧表示されます。
--no-signature
+ --peinfo および --sigcheck での署名検証をスキップし、署名が存在するかどうかのみを
報告します。大規模なディレクトリで便利です。
--sig-verify-mode MODE
+ 複数署名ファイルのステータスを決定する埋め込み署名:
any、first、all または best。デフォルト: best
best は、最も強力なダイジェストアルゴリズムで作成された署名に従います。
これは Windows が優先する署名です。first はファイル順に従い、
sigcheck.exe と一致します。all はすべての署名の検証を必要とし、any は
1 つでも検証できればファイルを受理します。この選択は重要です: 517
個の複数署名ドライバのうち、37 個がこの設定によってステータスが変わり、
any は first が拒否する 21 個のファイルで VALID と報告します。
--attack-map
+ ビヘイビアレポートの MITRE ATT&CK テクニックマッピングを有効にします。
一般的なオプション: 出力形式、プロキシ、キャッシュ、および冗長性オプション
--output-format text|json|csv
+ 出力形式: text (デフォルト、色付きターミナル)、json、または csv。
--proxy URL
+ HTTP/HTTPS/SOCKS5 プロキシ URL (例: socks5://127.0.0.1:9050)。
--quiet
+ バナーおよび装飾的な出力を抑制します。
--verbose
+ デバッグ情報 (リクエスト URL、タイミングなど) を表示します。
--no-cache
+ 結果のキャッシュを無効にします。
--cache-ttl SECONDS
+ キャッシュの有効期限 (秒単位) (デフォルト: 3600)。
--cache-stats
+ ローカル結果キャッシュの場所、保持されているエントリ数、現在の --cache-ttl の
下で期限切れになっているエントリ数、およびディスク上のサイズを表示します。
その後終了します。
--prune-cache
+ ローカル結果キャッシュから期限切れのエントリのみを削除し (--cache-ttl に従って)、
終了します。
--clear-cache
+ ローカル結果キャッシュからすべてのエントリを削除し、終了します。
--no-resolve
+ 結果内で見つかったホスト名の解決や地理位置情報の特定を行いません。フィード
(たとえば URLHaus のペイロードおよびタグの一覧) を一覧表示すると、通常は
ホストが表示するすべての URL をルックアップするため、そのインフラストラクチャの
運用者に調査されていることが伝わります。このオプションを使用すると、ロケーション
列には代わりに "Not Resolved" と表示されます。
--defang
+ --extract-iocs によって一覧表示された IOC をデファング形式
(hxxp://example[.]com) で出力します。クリック可能にならずにレポートやチケットに
コピーできるようにするためです。これはその一覧表示にのみ適用され、出力のみを
変更します: クエリは引き続き実際の値で実行されます。
--no-ioc-filter
+ --extract-iocs がデフォルトで適用するノイズフィルタリングを無効にします。
通常、HTML ページでは <script>、<style>、<svg> ブロックがスキップされ、
ドメインはその最後のラベルが実際のトップレベルドメインである場合にのみ報告され、
ソースサイトへのリンクや既知のページ装飾 (アナリティクス、フォント、ソーシャル
ボタン) は除外されます。このオプションを使用すると、代わりに生ソース内のすべての
正規表現マッチが報告されます。
--report html|pdf
+ 指定された形式でレポートを生成します。
PDF エクスポートには次が必要です: pip install malwoverview[pdf]
--report-file PATH
+ 生成されたレポートの出力パス。
--interactive
+ 対話型 REPL モードを起動します。
--tui
+ サービスセレクタ、クエリ入力、スクロール可能な結果パネルを備えた TUI
(Text User Interface) ダッシュボードモードを起動します。必要要件:
pip install malwoverview[tui]
--enrich
+ 結果の LLM エンリッチメントを有効にします。各クエリ結果の後に AI 生成の脅威評価を
追加します。マルウェアハッシュルックアップ、IP レピュテーションチェック、CVE 検索
(NIST および VulnCheck)、サービス間相関を含むすべてのクエリタイプで動作します。
.malwapi.conf の [LLM] セクションで設定されたプロバイダを使用するか、--llm で
上書きします。サポートされているプロバイダ:
- claude: Anthropic Claude API (最高品質、有料)
- gemini: Google Gemini API (課金が必要)
- openai: OpenAI API (有料、GPT モデル)
- ollama: ローカル Ollama インスタンス (無料、プライベート)
--llm PROVIDER
+ エンリッチメント用の LLM プロバイダを上書きします (--enrich と一緒に使用)。
例:
malwoverview -v 8 -V <hash> --enrich --llm claude
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich --llm claude
malwoverview -vc 3 -VC CVE-2024-3400 --enrich --llm ollama
脆弱性オプション: 脆弱性データベースのクエリオプション
NIST CVE データベースクエリ:
NIST CVE データベースのクエリオプション (クエリタイプと値は必須、その他のオプションは任意)
--nist NIST_OPTION, クエリタイプ: 1=CPE/製品検索, 2=CVE ID 検索,
3=CVSS v3 深刻度, 4=キーワード検索, 5=CWE ID 検索
--NIST NIST_ARG 検索値 (形式はクエリタイプに依存)
--time YEARS 結果を過去 N 年に制限
--rpp NUM ページあたりの結果数 (デフォルト: 100、最大: 2000)
--startindex NUM ページネーションの開始インデックス (デフォルト: 0)
--ncves NUM 出力を最初の N 個の CVE に制限
VulnCheck データベースクエリ:
VulnCheck 脆弱性データベースのクエリオプション (Community/Free ティア)
-vc VULNCHECK_OPTION, --vulncheck VULNCHECK_OPTION
+ クエリタイプ: 1: 利用可能なインデックスを一覧表示;
2: KEV (既知の悪用された脆弱性) を取得;
3: KEV 内で CVE を検索;
4: KEV バックアップリンクを取得;
5: MITRE CVE を一覧表示;
6: NIST NVD2 CVE を一覧表示;
7: MITRE 内で CVE を検索;
8: NIST NVD2 内で CVE を検索。
-VC VULNCHECK_ARG, --VULNCHECK VULNCHECK_ARG
+ 検索値 (オプション 3/7/8 の場合は CVE ID、オプション 2/5/6 の場合は最大結果数、
例: 50)。
バージョン 8.0 以降、Malwoverview は従来のフラグベース構文に加えて、代替の サブコマンド構文をサポートしています。両方の構文が完全にサポートされており、 同一の結果を生成します。
利用可能なサブコマンド:
vt VirusTotal 操作 (file, av, hash, url, ip, domain, submit, behavior, batch)
ha Hybrid Analysis 操作 (report, submit, download, batch, dir)
bazaar Malware Bazaar 操作 (hash, tag, download, batch, dir)
triage Triage 操作 (search, summary, submit, dynamic, batch, dir)
urlhaus URLHaus 操作 (hash, url, tag, download, batch)
ip IP アドレスルックアップ (info, shodan, abuse, greynoise, all, batch)
whois Whois/RDAP ルックアップ (domain, ip)
shodan Shodan 操作 (ip, search)
correlate サービス間相関 (hash)
extract ファイルまたは URL からの IOC 抽出
yara YARA ルールスキャン
nist NIST CVE データベースクエリ
vulncheck VulnCheck データベースクエリ
サブコマンドの例 (フラグベース構文と同等):
# These pairs are equivalent:
malwoverview vt hash <sha256> # same as: malwoverview -v 8 -V <sha256>
malwoverview vt behavior <sha256> # same as: malwoverview -v 12 -V <sha256>
malwoverview ha report <hash> --env 3 # same as: malwoverview -a 3 -A <hash>
malwoverview ha batch <hashfile> # same as: malwoverview -a 12 -A <hashfile>
malwoverview bazaar hash <sha256> # same as: malwoverview -b 1 -B <sha256>
malwoverview bazaar batch <hashfile> # same as: malwoverview -b 11 -B <hashfile>
malwoverview bazaar dir <directory> # same as: malwoverview -b 12 -B <directory>
malwoverview triage search sha256:<value> # same as: malwoverview -x 1 -X sha256:<value>
malwoverview triage batch <hashfile> # same as: malwoverview -x 8 -X <hashfile>
malwoverview ip all <ipaddr> # same as: malwoverview -ip 7 -IP <ipaddr>
malwoverview ip shodan <ipaddr> # same as: malwoverview -ip 4 -IP <ipaddr>
malwoverview ip batch <ipfile> # same as: malwoverview -ip 8 -IP <ipfile>
malwoverview whois domain <domain> # same as: malwoverview -wh 1 -WH <domain>
malwoverview correlate hash <sha256> # same as: malwoverview --correlate-hash <sha256>
malwoverview extract <file|url> # same as: malwoverview --extract-iocs <file|url>
malwoverview yara <rules> <target> # same as: malwoverview --yara <rules> --yara-target <target>
malwoverview nist 2 CVE-2021-44228 # same as: malwoverview --nist 2 --NIST CVE-2021-44228
詳細については、任意のサブコマンドで --help を使用してください:
malwoverview vt --help
malwoverview ip --help
malwoverview ha report --help
# VirusTotal
malwoverview vt hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
malwoverview vt file 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview vt av 95a8370c36d81ea596d83892115ce6b90717396c8f657b17696c7eeb2dba1d2e.exe
malwoverview vt url http://jamogames.com/templates/JLHk/
malwoverview vt ip 185.220.100.243
malwoverview vt domain xurl.es
malwoverview vt submit cc2d791b16063a302e1ebd35c0e84e6cf6519e90bb710c958ac4e4ddceca68f7.exe
malwoverview vt behavior 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
malwoverview vt batch /home/remnux/malware/hash_list_3.txt
malwoverview vt batch /home/remnux/malware/hash_list_3.txt --public
# Hybrid Analysis
malwoverview ha report 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8
malwoverview ha report 2e1fcadbac81296946930fe3ba580fd0b1aca11bc8ffd7cefa19dea131274ae8 --env 3
malwoverview ha submit 47eccaaa672667a9cea23e24fd702f7b3a45cbf8585403586be474585fd80243.exe
malwoverview ha download cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview ha batch /home/remnux/malware/hash_list.txt
malwoverview ha dir /home/remnux/malware/samples/
# Malware Bazaar
malwoverview bazaar hash c9d7b5d06cd8ab1a01bf0c5bf41ef2a388e41b4c66b1728494f86ed255a95d48
malwoverview bazaar tag Revil | more
malwoverview bazaar download bda50ff249b947617d9551c717e78131ed32bf77db9dc5b7591d3e1af6cb2f1a
malwoverview bazaar batch /home/remnux/malware/hash_list.txt
malwoverview bazaar dir /home/remnux/malware/samples/
# Triage
malwoverview triage search score:10 | more
malwoverview triage search sha256:71382e72d8fb3728dc8941798ab1c180493fa978fd7eadc1ab6d21dae0d603e2
malwoverview triage summary 220315-qxzrfsadfl
malwoverview triage submit cd856b20a5e67a105b220be56c361b21aff65cac00ed666862b6f96dd190775e
malwoverview triage dynamic 220315-xmbp7sdbel
malwoverview triage batch /home/remnux/malware/hash_list.txt
malwoverview triage dir /home/remnux/malware/samples/
# URLHaus
malwoverview urlhaus hash 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
malwoverview urlhaus url https://unada.us/acme-challenge/3NXwcYNCa/
malwoverview urlhaus tag Qakbot
malwoverview urlhaus download 7c99d644cf39c14208df6d139313eaf95123d569a9206939df996cfded6924a6
# IP lookups
malwoverview ip info 8.8.8.8
malwoverview ip shodan 8.8.8.8
malwoverview ip abuse 185.220.100.243
malwoverview ip greynoise 185.220.100.243
malwoverview ip all 8.8.8.8
# Shodan (standalone)
malwoverview shodan ip 8.8.8.8
malwoverview shodan search "apache"
# Whois
malwoverview whois domain example.com
malwoverview whois ip 8.8.8.8
# Cross-service correlation
malwoverview correlate hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# IOC extraction (text, PDF, email, or URL)
malwoverview extract /home/remnux/malware/report.txt
malwoverview extract /home/remnux/malware/report.pdf
malwoverview extract https://example.com/threat-report.html
# YARA scanning
malwoverview yara /home/remnux/rules/malware.yar /home/remnux/malware/samples/
# NIST CVE queries
malwoverview nist 1 "windows" --ncves 50
malwoverview nist 2 CVE-2021-44228
malwoverview nist 3 CRITICAL --ncves 50
malwoverview nist 4 "remote code execution" --ncves 50
# VulnCheck queries
malwoverview vulncheck 2 30
malwoverview vulncheck 3 CVE-2021-44228
# Subcommands combined with global options
malwoverview vt hash <sha256> --output-format json
malwoverview ip all 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview vt behavior <sha256> --attack-map
malwoverview --interactive
# Inside the prompt (type "help" for the full list):
vt hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
vt file /home/remnux/malware/sample.exe
vt behavior 9d26e19b8fc5819b634397d48183637bacc9e1c62d8b1856b8116141cb8b4000
vt batch /home/remnux/malware/hash_list.txt
vt retrohunt submit /home/remnux/rules/
vt retrohunt list
vt retrohunt status 1712345678-abcdef0123456789
vt livehunt notifications
bazaar yara Windows_Trojan_Emotet
bazaar yaradownload
bazaar yaraextract
bazaar dir /home/remnux/malware/samples/
urlhaus batch /home/remnux/malware/hash_list.txt
urlhaus payloads
triage submit /home/remnux/malware/sample.exe
triage pcap 220315-xmbp7sdbel
malpedia ruleset tlp_white
malpedia meta emotet
malshare types
malshare type PE32
hybrid file /home/remnux/malware/sample.exe
hybrid dir /home/remnux/malware/samples/
threatfox malwarelist
ip batch /home/remnux/malware/ip_list.txt
ip multi 8.8.8.8
ip all 8.8.8.8
crtsh subdomains iana.org
crtsh certs iana.org
android ha
android sendvt com.example.app
yara /home/remnux/rules/ /home/remnux/malware/samples/
iocs /home/remnux/malware/report.pdf
peinfo /home/remnux/malware/samples/
peinfo /home/remnux/malware/samples/ 7.5
sigcheck /home/remnux/malware/suspicious.exe
cache stats
cache prune
set attack on
set enrich claude
export json
export csv results.csv # the export path must be inside the current directory
malwoverview --tui
# Pick a service on the left panel, type the query, press Enter.
# F3 copies the result, F4 picks an ID out of it, F5 exports the
# collected results to json, F6 exports them to csv, Ctrl+L clears.
# Ctrl+V (or Shift+Insert) pastes the clipboard into the query box from
# anywhere in the dashboard, so a hash can be pasted without clicking
# into the box first.
# The key list is printed above the results and is written again every
# time the pane is cleared, which includes the start of every search.
# While the query box has the focus, quitting is Ctrl+Q, because Q itself
# has to remain typeable.
# Search for Windows vulnerabilities
malwoverview --nist 1 --NIST "windows" --ncves 50
# Search for Apache vulnerabilities
malwoverview --nist 1 --NIST "apache" --ncves 30
# Search for Chrome vulnerabilities
malwoverview --nist 1 --NIST "chrome" --ncves 25
# Search for Chromium vulnerabilities
malwoverview --nist 1 --NIST "chromium" --ncves 25
# Search for Linux vulnerabilities
malwoverview --nist 1 --NIST "linux" --ncves 25
# Search for MacOS vulnerabilities
malwoverview --nist 1 --NIST "MacOS" --ncves 25
# Search for Log4Shell vulnerability
malwoverview --nist 2 --NIST "CVE-2021-44228"
# Search for ProxyShell vulnerability
malwoverview --nist 2 --NIST "CVE-2021-34473"
# Search for Spring4Shell vulnerability
malwoverview --nist 2 --NIST "CVE-2022-22965"
# Search for CRITICAL severity vulnerabilities
malwoverview --nist 3 --NIST "CRITICAL" --ncves 50
# Search for HIGH severity vulnerabilities
malwoverview --nist 3 --NIST "HIGH" --ncves 40
# Search for MEDIUM severity vulnerabilities
malwoverview --nist 3 --NIST "MEDIUM" --ncves 30
# Search for Authentication Bypass vulnerabilities
malwoverview --nist 4 --NIST "authentication bypass" --ncves 30
# Search for Remote Code Execution (RCE) vulnerabilities
malwoverview --nist 4 --NIST "remote code execution" --ncves 50
# Search for SQL injection vulnerabilities
malwoverview --nist 4 --NIST "sql injection" --ncves 25
# Search for Path Traversal vulnerabilities (CWE-22)
malwoverview --nist 5 --NIST "CWE-22" --ncves 30
# Search for SQL Injection vulnerabilities (CWE-89)
malwoverview --nist 5 --NIST "CWE-89" ---ncves 40
# Search for Cross-Site Scripting vulnerabilities (CWE-79)
malwoverview --nist 5 --NIST "CWE-79" --ncves 35
# List available VulnCheck indexes (Community/Free tier)
malwoverview -vc 1
# Get Known Exploited Vulnerabilities (KEV) - 30 results
malwoverview -vc 2 -VC 30
# Get Known Exploited Vulnerabilities (KEV) - 100 results
malwoverview -vc 2 -VC 100
# Search for a specific CVE in KEV database
malwoverview -vc 3 -VC CVE-2021-44228
# Search for a specific CVE in KEV database
malwoverview -vc 3 -VC CVE-2022-22965
# Get backup download link for VulnCheck KEV dataset
malwoverview -vc 4
# List recent CVEs from MITRE database
malwoverview -vc 5
# List recent CVEs from MITRE database - 20 results
malwoverview -vc 5 -VC 20
# List recent CVEs from NIST NVD2 database
malwoverview -vc 6
# List recent CVEs from NIST NVD2 database - 50 results
malwoverview -vc 6 -VC 50
# Search for specific CVE in MITRE database (official CVE records)
malwoverview -vc 7 -VC CVE-2024-21412
# Search for specific CVE in NIST NVD2 (CVSS scores, CWE, CISA KEV status)
malwoverview -vc 8 -VC CVE-2024-21412
唯一の破壊的変更です。Hybrid Analysis の5つのダウンロードオプションは同じ動作をしていたため、1つに統合され、後続の2つのオプションは番号が繰り下がりました。
# Download a sample from Hybrid Analysis (was -a 11, -a 12, -a 13, -a 14 or -a 15)
malwoverview -a 11 -A 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979
# Batch hash check from a file (was -a 16)
malwoverview -a 12 -A /home/remnux/malware/hashes.txt
# Scan every file in a directory (was -a 17)
malwoverview -a 13 -A /home/remnux/malware/samples/
他のすべてのオプションは番号を維持しました。新しい番号はすべて追加です。
# Triage a directory: type, size, overlay, overlay size, entropy, signature
malwoverview --peinfo /home/remnux/malware/samples/
# Lower the bar for what counts as packed or encrypted (default 7.0)
malwoverview --peinfo /home/remnux/malware/samples/ --entropy-threshold 6.5
# Skip signature verification on a large sweep
malwoverview --peinfo /home/remnux/malware/samples/ --no-signature
# YARA now accepts a whole rules directory, scanned recursively
malwoverview --yara /home/remnux/rules/ --yara-target /home/remnux/malware/samples/
# One file: status, signer, issuer, certificate dates, thumbprint, serial
malwoverview --sigcheck /home/remnux/malware/suspicious.exe
# A whole directory, one row per file
malwoverview --sigcheck /home/remnux/malware/samples/
ファイルには複数の埋め込み署名を含めることができます(通常は互換性のための SHA-1 と SHA-256)。署名者も異なることがよくあります。テーブルでは追加分を (+N) としてマークします。すべてを一覧表示するには単一ファイル形式を実行してください。ステータスを決定する署名は選択可能です:
# Strongest digest decides (default, and what Windows honours)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode best
# First in file order decides (what sigcheck.exe reports)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode first
# Every signature must verify (strictest)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode all
# Any one signature verifying is enough (most permissive)
malwoverview --sigcheck /home/remnux/malware/driver.sys --sig-verify-mode any
VirusTotal 自身の署名データも表示されるようになりました。ハッシュ検索では署名者チェーン、署名日、およびすべての証明書の拇印が報告されます:
# Signature block from VirusTotal, by hash
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979
# Same block when checking a local file
malwoverview -v 1 -V /home/remnux/malware/suspicious.exe
# Distinct DNS names seen in certificates issued for a domain
malwoverview -ct 1 -CT example.com
# The certificates themselves: identifier, issuer, common name, validity
malwoverview -ct 2 -CT example.com
# Submit a Retrohunt job from a rules file or a rules directory
malwoverview -v 14 -V /home/remnux/rules/hunting.yar
# List your Retrohunt jobs, optionally filtered by status
malwoverview -v 15
malwoverview -v 15 -V finished
# Status and progress of one job, then the files it matched
malwoverview -v 16 -V 1234abcd-5678-90ef-1234-567890abcdef
malwoverview -v 17 -V 1234abcd-5678-90ef-1234-567890abcdef
# Create a Livehunt ruleset, list your rulesets, list notifications
malwoverview -v 18 -V /home/remnux/rules/livehunt.yar
malwoverview -v 19
malwoverview -v 20
ハッシュ検索で、サンプルにマッチした YARA ルールが一覧表示されるようになりました。次のコマンドで使うルール名はここから取得します:
# 1. look a sample up: the report ends with the rules that matched it
malwoverview -b 1 -B 3b89db05cd1e6283a5d23e32eb6a6c17d92953c80c93befa194a0c93a633c1b5
tags: elf Mirai upx-dec
yara rules:
ELF_Mirai
linux_generic_ipv6_catcher
unixredflags3
# 2. take one of those names and pull every other sample it matched
malwoverview -b 13 -B ELF_Mirai
ルール名はルールセット自体にも含まれており、ダウンロードしてローカルで読むことができます:
# Download the YARAify rule set from abuse.ch, then extract it.
# Both use -O for the working directory; -b 15 finds the archive there.
malwoverview -b 14 -O /home/remnux/rules/
malwoverview -b 15 -O /home/remnux/rules/
アーカイブは /home/remnux/rules/yaraify-rules.zip として配置され、/home/remnux/rules/yaraify-rules/ に展開されます。ルールごとに1つの .yar ファイルがあります。そのディレクトリが --yara のターゲットとなり、ファイル名がルール名になります:
malwoverview --yara /home/remnux/rules/yaraify-rules/ --yara-target /home/remnux/malware/samples/
多くの作者から収集されたルールセットは、すべての YARA バージョンに対して問題なくコンパイルできるとは限りません。構文エラーのあるファイルは一覧表示されてスキップされ、スキャンは残りで実行されます: 上記のセットの実行では557ファイル中548ファイルがコンパイルされました。
# The complete Malpedia YARA ruleset for a TLP level
malwoverview -m 9 -M white
# -m 1 returned the family list; it now returns family meta information
malwoverview -m 1
# -l 6 lists the file types seen in the last 24 hours, -l 8 lists one of them
malwoverview -l 6
malwoverview -l 8 -L PE32
# -ip 3 and -ip 7 used to be identical; -ip 3 is VirusTotal + OTX,
# -ip 7 queries every configured service (IPInfo was never reached)
malwoverview -ip 3 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
# -j 8 (URLhaus batch hash check) was unreachable
malwoverview -j 8 -J /home/remnux/malware/hashes.txt
json と csv がツール全体で動作するようになりました(以前は3分の1のみ):
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979 --output-format json
malwoverview --sigcheck /home/remnux/malware/samples/ --output-format csv
malwoverview -b 6 -B 3 --output-format json
# LLM enrichment reaches json and csv too, as a typed record
malwoverview -v 8 -V 495c7e5513fa7766c236e76d8520139139fc4ad7203ddcb2ccdae17bdb691979 --enrich --output-format json
# Do not resolve attacker-controlled hostnames to IP addresses
malwoverview -j 2 -J http://malicious.example.com/payload.bin --no-resolve
# Defang the extracted IOCs so the list can be pasted into a ticket
malwoverview --extract-iocs /home/remnux/malware/report.txt --defang
# The source can equally be a URL, so a published report can be read and
# its IOCs defanged in one step
malwoverview --extract-iocs https://example.com/threat-report.html --defang
# A vendor blog is mostly navigation, analytics and minified JavaScript, so
# the extractor skips <script>, <style> and <svg>, drops links back to the
# source site and to known page furniture, and only reports a domain whose
# last label is a real top-level domain
malwoverview --extract-iocs https://www.fortinet.com/blog/threat-research/dprk-related-campaigns-with-lnk-and-github-c2
# Turn all of that off and report every regex match in the raw source
malwoverview --extract-iocs https://example.com/threat-report.html --no-ioc-filter
malwoverview --cache-stats
malwoverview --prune-cache
malwoverview --clear-cache
# Command-line REPL
malwoverview --interactive
# Full-screen dashboard: 111 services, Ctrl+V pastes, F5 exports json,
# F6 exports csv
malwoverview --tui
8.0.0 は一度に多くのものを追加したため、ここではコマンドをオプション番号ではなく目的別にグループ化しています。8.0.1 から 8.0.5 は主に修正であり、最後にあります。8.1.0 でオプション番号が後から変更された場合、以下のコマンドは現在の番号を使用し、以前の番号を明記します。
# URLScan.io (-u): submit a URL, fetch a result by id, search,
# then look up a domain or an IP
malwoverview -u 1 -U https://example.com
malwoverview -u 2 -U 019ce889-ab8d-768b-894e-3e5bf5401f8d
malwoverview -u 3 -U task.tags:phishing
malwoverview -u 4 -U example.com
malwoverview -u 5 -U 8.8.8.8
# Shodan (-s): a single IP, or a search query
malwoverview -s 1 -S 8.8.8.8
malwoverview -s 2 -S "apache"
# AbuseIPDB (-ab): IP reputation
malwoverview -ab 1 -AB 185.220.100.243
# GreyNoise (-gn): background internet noise, or aimed at you?
malwoverview -gn 1 -GN 185.220.100.243
# Whois / RDAP (-wh): a domain, then an IP
malwoverview -wh 1 -WH example.com
malwoverview -wh 2 -WH 8.8.8.8
新しい IP サービスは -ip からも到達可能です。1つのアドレスをサービスごとに、またはすべてのサービスを一度に処理できます:
malwoverview -ip 4 -IP 8.8.8.8
malwoverview -ip 5 -IP 8.8.8.8
malwoverview -ip 6 -IP 8.8.8.8
malwoverview -ip 7 -IP 8.8.8.8
malwoverview --correlate-hash ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# Malware Bazaar: a file of hashes, then a directory of samples
malwoverview -b 11 -B /home/remnux/malware/hash_list.txt
malwoverview -b 12 -B /home/remnux/malware/samples/
# Hybrid Analysis (8.0.0 numbered these -a 16 and -a 17)
malwoverview -a 12 -A /home/remnux/malware/hash_list.txt
malwoverview -a 13 -A /home/remnux/malware/samples/
# Triage
malwoverview -x 8 -X /home/remnux/malware/hash_list.txt
malwoverview -x 9 -X /home/remnux/malware/samples/
# Pull hashes, IPs, URLs, domains, emails and CVEs out of a report
malwoverview --extract-iocs /home/remnux/malware/report.txt
malwoverview --extract-iocs /home/remnux/malware/report.pdf
malwoverview --extract-iocs https://example.com/threat-report.html
# Scan samples with YARA rules
malwoverview --yara /home/remnux/rules/malware.yar --yara-target /home/remnux/malware/samples/
# Provider taken from the [LLM] section of .malwapi.conf
malwoverview -v 8 -V <hash> --enrich
# Override it per run: claude, gemini, openai or ollama
malwoverview -v 8 -V <hash> --enrich --llm claude
malwoverview --nist 2 --NIST CVE-2024-3400 --enrich --llm gemini
malwoverview -v 8 -V <hash> --output-format json
malwoverview -ip 1 -IP 8.8.8.8 --output-format csv
malwoverview -v 12 -V <hash> --attack-map
malwoverview -v 8 -V <hash> --report html --report-file /home/remnux/report.html
malwoverview -v 8 -V <hash> --report pdf --report-file /home/remnux/report.pdf
malwoverview -v 8 -V <hash> --no-cache
malwoverview -v 8 -V <hash> --cache-ttl 86400
malwoverview -ip 3 -IP 8.8.8.8 --proxy socks5://127.0.0.1:9050
malwoverview -v 8 -V <hash> --quiet
malwoverview -v 8 -V <hash> --verbose
malwoverview --interactive
malwoverview --tui
# 8.0.1: these take a file path again, not only a hash
malwoverview -v 1 -V /home/remnux/malware/suspicious.exe
malwoverview -a 1 -A /home/remnux/malware/suspicious.exe
malwoverview -l 1 -L ab4d6a82cafc92825a0b88183325855f0c44920da970b42c949d5d5ffdcc0585
# 8.0.2: batch IP check against VirusTotal, Premium then Public API
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt
malwoverview -ip 8 -IP /home/remnux/malware/ip_list.txt -D 1
# 8.0.2: Android scans work on current devices again, hashing with SHA256
malwoverview -y 1
malwoverview -y 2
# 8.0.3 and 8.0.4: Claude enrichment works again and is rendered with colour
malwoverview -v 8 -V <hash> --enrich --llm claude
# 8.0.5: overlay and entropy in the directory check and the hash report
malwoverview -d /home/remnux/malware/samples/
malwoverview -v 8 -V <hash>
バージョン 8.1.0:
このバージョンは、YARA ハンティングとローカル PE トリアージを追加し、
説明どおりに動作しなかったオプションを修正し、一連のセキュリティ
修正を含みます。
注意: 2つのオプションの番号が変更されました。5つの Hybrid Analysis
ダウンロードオプション(-a 11 から -a 15)は、現在は単一のオプション
-a 11 です。バッチハッシュチェックは -a 12(以前は -a 16)に移動し、
ディレクトリスキャンは -a 13(以前は -a 17)に移動しました。
他の番号は変更されていません。
新しいオプション
* --sigcheck: API キーもネットワークリクエストも不要な、ファイル
またはディレクトリの Authenticode 署名チェック。署名者、発行者、
証明書の日付とともに VALID、TAMPERED、UNTRUSTED、EXPIRED、
MALFORMED、INVALID、NONE、または N/A を報告します。埋め込まれた
すべての署名が、それぞれのダイジェストアルゴリズム、拇印、シリアル
番号とともに一覧表示されます。検証には
pip install malwoverview[signature] が必要です。これがない場合、
ステータスは PRESENT または NONE になります。
* --sig-verify-mode any|first|all|best: 複数署名されたファイルの
ステータスを決定する署名。デフォルトは best。
* --no-signature: 大きなディレクトリでの署名検証をスキップします。
* --peinfo と --entropy-threshold: ファイルまたはディレクトリの
ローカル PE トリアージ。ファイルタイプ、サイズ、オーバーレイ、
オーバーレイサイズ、エントロピー、署名ステータスを一覧表示し、
しきい値(デフォルト 7.0)以上のファイルを強調表示します。
再帰的で、API キーは不要です。
* -ct 1|2 と -CT: crt.sh による証明書透過性。API キーは不要です。
-ct 1 はドメインに対して発行された証明書に含まれる DNS 名を
一覧表示し、-ct 2 は証明書を一覧表示します。
* -v 14 から -v 20: VirusTotal Retrohunt と Livehunt。ジョブの送信、
ジョブの一覧表示、ジョブの追跡、マッチしたファイルの一覧表示、
ルールセットの作成、ルールセットの一覧表示、通知の一覧表示。
プレミアムキーが必要です。
* -b 13、-b 14、-b 15: YARA ルール名による Malware Bazaar 検索、
および YARAify ルールセットのダウンロードと展開。
* -m 9: TLP レベルに対応する Malpedia YARA ルールセットの
ダウンロード。
* -l 8: -L で指定された MalShare ファイルタイプのハッシュを
一覧表示します。
* -j 8: URLHaus のバッチハッシュチェック。以前はどのオプションも
到達できませんでした。
* --cache-stats、--prune-cache、--clear-cache。
* --no-resolve: -j 2 と -j 3 で表示されるホスト名を解決または
ジオロケーションしません。
* --defang: --extract-iocs が一覧表示する IOC を
hxxp://example[.]com の形式で出力します。出力のみに適用されます。
* --no-ioc-filter: --extract-iocs のノイズフィルタリングを無効にし、
生のソース内のすべての正規表現マッチを報告します。
* --yara はルールのディレクトリを受け付けるようになりました。各
ファイルは独自の名前空間でコンパイルされます。コンパイルに失敗
したファイルは報告されてスキップされます。
修正されたオプション
* -m 1 は -m 5 と同じエンドポイントを呼び出していました。現在は
ファミリのメタ情報を取得し、-M でオプションのフィルタを受け付け
ます。
* -l 6 は "Composite(OLE)" とラベル付けされ、PDF サンプルを一覧
表示していました。現在は過去24時間に確認されたファイルタイプを
件数付きで一覧表示します。
* -ip 3 と -ip 7 は同一の出力を生成していました。-ip 3 は現在
VirusTotal と AlienVault のみをクエリし、-ip 7 は IPInfo を含む
残りのすべてのサービスをクエリします。
* -l 1 はすべてのサンプルに対して 0 バイトのファイルを書き込み、
成功を報告していました。リダイレクトが追跡され、空の本文は
拒否されます。
* -a 6 から -a 10 と -y 4 は常に "Requested URI - Not Found" で
失敗していました。Hybrid Analysis のリクエストは、アップロードを
ドロップするリダイレクトがあった www ホストを経由しなくなりました。
* -b 14 は HTTP 301 を返していました。ルールセットは abuse.ch
Auth-Key を使用して動作するアドレスから取得されます。
* -v 20 は、sha256 を含む hunting_notification_files エンドポイント
から Livehunt 通知を読み取ります。
* -b 6、-m 4、およびその他の引数を消費するオプションは、引数が必須に
なりました。省略された場合、そのうち8つは生の TypeError で停止して
いました。
* -A はネイティブの Windows パス(-a 1 から -a 5)を受け付けるように
なりました。以前は "Input contains invalid characters" として拒否
されていました。
* --report html、--report pdf、--enrich が --correlate-hash、
--extract-iocs、--yara でも動作するようになりました。以前は
レポートを生成していませんでした。
* Malpedia のサンプルとルールのダウンロードが、レポートと json/csv
エクスポートの前にプログラムを終了しなくなりました。
* すべての引数の検証済み形式が使用されるようになりました。hxxp://example[.]com と
書かれた URL は無害化されたままサービスに送信され、~/samples の
ようなパスは展開されませんでした。
* -ip 2(BGPView)は削除されました: そのドメインは解決されなくなり
ました。番号は維持され、削除を報告して -ip 1 と -ip 7 を指し示し
ます。他の -ip 番号は変更されていません。
* --defang は --extract-iocs にのみ適用されることが文書化されました。
--extract-iocs がこのオプションを読み取る唯一のオプションです。
新しい動作
* -y 1、-y 2、-y 3 は、ベース APK のみではなく、パッケージのすべての
APK をハッシュ化します。テストデバイスでは、スキャンが35個から79個
の APK に増えました。-y 4 と -y 5 は、選択したパッケージがスプリット
APK の場合に報告します。
* -b 1 はサンプルにマッチした YARA ルールを一覧表示するため、その名前を
-b 13 に渡すことができます。
* -v 1 と -v 8 は、VirusTotal がすでに返した署名ブロックを表示します:
検証されたかどうか、署名者とカウンター署名者のチェーン、署名日、および
各証明書のステータス、アルゴリズム、日付、シリアル番号、拇印。
* --sigcheck と --peinfo は、レポートおよび json と csv で、証明書の
拇印、シリアル番号、ダイジェストアルゴリズムを報告します。
* --extract-iocs はウェブページ自身のコードを報告しなくなりました。
ベンダーブログでは 855 個の IOC を返し、そのうち 743 個は minified
JavaScript によって生成された「ドメイン」でした。script、style、svg、
noscript ブロックはスキップされ、ドメインは最後のラベルが実際の
トップレベルドメインである場合のみ報告され、ソースサイトやページフレーム
へのリンクは除外されます: 855 個の IOC は 16 個になり、すべての
サンプルハッシュと C2 URL は保持されました。抑制はカウントされて報告
されます。コードホスティング、ペースト、メッセージングサービスは決して
抑制されません。* --extract-iocs は、フェッチが失敗したときにホストと失敗の種類を名前で示し、生の urllib3 例外を出力しない。
* GreyNoise Community の 404 は、エラーではなく、そのアドレスがインターネットスキャナではないという結果として報告される。
* ネットワーク障害が Python のトレースバックとしてユーザーに届くことはなくなった。
43 個の try ブロックは ValueError しか捕捉していなかったため、接続エラーが捕捉されずに漏れていた。 報告されるホストは解析済み URL から取得され、例外テキストから取得されることはない。
* TLS 障害は説明される: 完了してから閉じるハンドシェイク、検証に失敗する証明書、TLS なしで応答するポート、拒否されるハンドシェイクは、それぞれ固有の行を持つ。 例外テキストは読み取られるが、出力されることはない。
* crt.sh は忍耐強い再試行ポリシー (5 回再試行、2 秒のバックオフ) を使用する。同じ URL に対して 200、404、502 を秒単位で返すためである。 他のすべてのサービスは以前のポリシーを維持する。
* HTTP 429 は最大 3 回まで再試行されるようになり、Retry-After の両形式を尊重し、300 秒以上待つことはない。 サンプルのアップロードは再試行されない。
* エントロピー計算はファイルを全体として読み込むのではなく、ブロック単位で読み取る。 報告される値は変わらない。
* YARA スキャナは、ルールのコンパイル中にプロセスの作業ディレクトリを変更しなくなった。
* --attack-map のマッチングは部分文字列検索ではなく完全一致になり、無関係なテクニックが属性付けられていた (空のタグが 691 個すべてにマッチしていた) 問題が修正された。 Hybrid Analysis レポートと --correlate-hash にも拡張されている。
* --enrich には、ターミナルからスクレイピングしたテキストではなく、収集したレコードが送信され、--output-format json および csv でも動作するようになった (以前は黙って無視されていた)。
* すべてのオプションが --output-format json および csv のレコードを生成するようになった。 以前は 3 分の 1 しか生成していなかった。
* MalShare の結果が json および csv に含まれるようになった。
* [INQUEST] セクションと [VIRUSEXCHANGE] セクションは .malwapi.conf とその背後にあるコードから削除された。
* 最小 Python バージョンは 3.10 になり、classifier は 3.10 から 3.13 を宣言している。
INTERACTIVE AND GRAPHICAL MODES
* --interactive は、これまでコマンドラインにしかなかったすべてのコマンドを獲得した:
VirusTotal レポート、アップロード、ビヘイビアレポート、バッチチェック、
Retrohunt と Livehunt、Malware Bazaar の imphash、ダウンロード、バッチ、
ディレクトリ、YARA ルール検索、YARAify ルールセット、URLHaus のペイロード
ダウンロード、シグネチャ検索、ペイロードリスト、バッチチェック、フィード、
Triage のサブミッション、ダウンロード、動的レポート、バッチ、ディレクトリ
チェック、Malpedia のファミリーメタ、ペイロードリスト、ルールセット、
MalShare のファイルタイプ一覧、Hybrid Analysis のサブミッション、バッチ、
ディレクトリチェック、ThreatFox のファミリーリスト、IP バッチおよび
マルチサービス クエリ、そして crtsh、android、yara、iocs、cache。
ATT&CK は "set attack on|off" で切り替えられる。
* --tui は、各サービス呼び出しの独自コピーではなく、コマンドラインで使用されるモジュールコード上に再構築された: 3013 行が 818 行になり、サービスリストは 37 エントリから 111 エントリになった。 結果のエクスポートは F5 (json) と F6 (csv) で行うが、以前はまったくサポートされていなかった。
* --tui の貼り付けが修正された。 クエリボックスをクリックする前に貼り付けられたハッシュは、メッセージなしで破棄されていた。フォーカスのあるウィジェットだけが貼り付けを受け取り、ダッシュボードはサービスリストで開始されるためである。 貼り付けはウィンドウ全体で捕捉されるようになった。
* --tui に Ctrl+V と Shift+Insert が追加された。これは、貼り付けを送信しないターミナル向けにクリップボードを直接読み取る。 サードパーティのパッケージは不要。
* --tui のキーリストは、結果ペインがクリアされるたびに再書き込みされ、キーバインド自体から構築される。 キーバーは、クエリボックスにフォーカスがある間は Quit (Ctrl+Q として) と Paste を維持し、ラベルはキーを繰り返さない。
REPORTS
* --peinfo と --sigcheck は、列のサイズをスキャン対象ファイルから決定し、ファイル名 (通常は SHA256) を短縮しない。 Type と Signer は上限付きのまま。 短縮された値は画面上でのみ短縮される。
* すべてのテーブル列は文字ではなくターミナルセルで測定されるため、CJK の証明書サブジェクトやファイル名が列をずらすことはなくなった。 切り詰めは文字境界で停止する。
* テーブルの罫線は列の合計と等しくなり、列ヘッダーと罫線はニュートラルになり、空のセルは n/a と表示され、閉じは "[+] " で始まる。 -j 8、-a 12、-a 13、-b 11、-b 12、-b 13、-x 8、-x 9、-l 6、-s 2、-u 3、--yara、--peinfo、--sigcheck に適用された。これらの罫線は列と最大 51 文字ずれていた。
* 同じ処理が残りのすべてのレポートでも完了した。
罫線が固定数値で書かれることはなくなった。各罫線は名前付き幅またはその下にあるヘッダーから描画されるため、タイトル、罫線、列がずれることはない。 ツールが照会するすべてのサービスに到達する、19 ファイルの 88 個の罫線。
* 38 個のレポートタイトルに 28 個の末尾スペースが埋め込まれ、タイトル行が下の罫線を超えていた。 画面上では見えず、出力がパイプ、リダイレクト、コピーされるとすぐに見える。
* -b 6 から -b 10: 長い値はレポート幅に折り返される。 参照 URL やカンマ区切りのエイリアスリストは、100 列の罫線の下で最大 137 列に達していた。 ある -b 6 の実行では、5936 行中 52 行がそうだった。
* -j 2 から -j 7: 各レポートは、実際に出力する列から取得した 1 つの幅で描画され、以前使用されていた 6 つの異なる数値 (100、104、126、130、136、146) が置き換えられた。 -j 2 は URL 列もレスポンスからサイズ調整し、ヘッダーを 2 回出力しなくなった。
* -l 1 と -l 8 はテーブル。 ヘッダーは 126 の罫線の下に 75、38、8 を中央に置いた 3 列を宣言していたが、下の行は "sha256: ... md5: ... type: ..." を出力していたため、ヘッダーは何にも並んでいなかった。 MalShare エラーは、結果が決して届かないことを約束するヘッダーの下に出力されなくなった。
* -ct 1 と -ct 2: レポートヘッダーは、それが導入するテーブルの幅に合わせて描画され、ステータス、エラー、カウント行は、それを超えて続くのではなく、箇条書きのアドバイザリとしてその幅に折り返される。
* -a 12 と -a 13: Hybrid Analysis が一度も見たことのないハッシュは空白行を生成していたが、今は not found と表示される。これは "unknown" という判定とは異なる。 HTTP 障害はそのように報告される。 -a 13 はすべてのファイル名を 40 文字に切り詰めなくなった。
* -j 8: Status 列は生の応答を表示していたため、ヒットは "ok" と読めていた。 現在は found、not found、invalid hash、bad request と表示される。 ハッシュ列はファイル内のハッシュに従う。
* -x 8 と -x 9: ファイル名とタグは単純なスライスで切られていたが、省略記号 (ellipsis) 付きになり、スコアは値に応じて色付けされる。
* -b 11 と -b 12: Signature 列は 17 列で、未知のサンプルは隙間を残す代わりに n/a と表示される。
* -s 2 は、ホストごとに 4 つのラベル付き行 (1 クエリにつき 100 ブロック) ではなく、テーブルになった。 列は IP、Port、Country、Product、Vulns、Organization。 生のバナーは Product に置き換えられた。これは Shodan がバナーまたは Server ヘッダーから解析したもの。 バナー全体は json と csv に引き続き到達する。 Vulns は Shodan がホストに対してリストする CVE の数。
* -u 3: Score 列は常にゼロだった。検索エンドポイントは判定を一切返さず、コードが値をデフォルト設定していたため。 json と csv レコードは、フィッシングクエリのすべての結果に対して "malicious": "False" を保持していた。 両方のフィールドは削除され、ドメインの経過日数を日単位で表す Age(d) に置き換えられ、値に応じて色付けされる。 セルはスライスではなく省略記号 (ellipsis) で切り詰められ、IP 列は IPv6 アドレスを途中で切らなくなった。
* -u 2: 判定、スコア、カテゴリ、タグ、ブランドが MIME タイプのように描画されるのではなくハイライトされ、値は画面外に続く代わりに折り返され、証明書の日付は生のエポック秒ではなく UTC で表示される。 ページタイトルは 80 文字で切られなくなった。
* -u 1: 最後のメモは "[+] " が前置され、もう 1 つのフィールドではなくアドバイスとして描画され、送信したばかりのスキャンの UUID を保持するため、取得コマンドをコピーできる。
* --correlate-hash、-wh 1、-wh 2 は値を折り返し、継続行は最初の行に揃えられる。 WHOIS ステータスは 100 の罫線の上で 187 列に達し、パルスセットの ATT&CK ID は 200 に達した。 SHA512 は複数行に分割される。レコードはすべての値を 1 行に保持する。
* --yara はファイルごとのコンパイラエラーを出力しなくなった。これらはサンプルではなくルールセットのプロパティであり、レポートを画面外に押しやっていた。 カウントはサマリーに残り、詳細は --verbose で利用できる。 File 列と Rule 列は内容からサイズ調整される。どちらかを切るとサンプルまたはルールへのリンクが壊れるため。
* -v 1 と -v 8 の証明書ブロックは 120 列で折り返される。 ステータスは問題ごとに 1 文でカンマで結合され、1 行で 233 文字に達していた。
* --enrich 出力は、その上の罫線の幅に折り返され、継続行はリストマーカーの下にインデントされる。 json と csv レコードは折り返されていない回答を保持する。
* -y 1 は APK インベントリをテーブルの上ではなく最後に報告し、ニュートラルカラーで "[+] " を前置する。 行はパッケージごとに 1 スレッドで出力され、それらのスレッドは Windows 以外では結合されていなかったため、行はそれらの後に出力されるようになった。 -y 2 と -y 3 も同様に処理される。
* -ip 3 と -ip 7: 2 つの相互参照メモには "[+] " が前置され、その上のデータの一部として読まれていた。
* スキップされた YARA ルールファイルは、その理由を報告するようになった。 以前はパスが行全体を取り、理由が切り詰められていた。
* --correlate-hash、--extract-iocs、--yara の json と csv 出力は、先頭の空行で始まらなくなった。
* レポートは json や csv と一緒に標準出力に出力されなくなった。これにより結果の解析が不可能になっていた。29 個の関数がエクスポート前にプログラムを終了することもなくなった。 コマンドがレコードを生成しない場合、テキストは標準エラーに送られるため、失敗を空の結果と区別できる。
* Windows で標準出力に書き込まれる csv は、すべての行の後に空行が続かなくなった。また、json と csv の両方がコンソールのエンコーディングではなく UTF-8 で書き込まれる。
* インタラクティブモードで "export csv" によって書き込まれる csv は、Windows で各行の末尾に 2 つのキャリッジリターンが付かなくなった。
* コンソールが表現できない文字を含む証明書によって、UnicodeEncodeError で実行が終了しなくなった。
* PolySwarm ファミリー検索の無効なエスケープシーケンスが SyntaxWarning を発しなくなった。
* 切り詰められた、または壊れた ATT&CK キャッシュが "Error while connecting to Virus Total!" でクラッシュしなくなった。 検出され、再度ダウンロードされ、アトミックに書き込まれる。
* 拒否された Hybrid Analysis サブミッションが KeyError で停止しなくなった。サービスが返す理由が出力される。
* リクエスト周辺の 43 個のハンドラーは ValueError しか捕捉していなかったため、ネットワーク障害が Python トレースバックとしてユーザーに届く可能性があった。 現在はリクエストエラーも捕捉し、サービスとホストを名指しする。 MalShare と Shodan は URL に API キーを保持しているため、メッセージに例外テキストが含まれることはない。
* URLHaus のそれらのハンドラーのうち 7 つは到達不能だった: その上のより広いハンドラーが最初に失敗を捕捉し、何も出力せずに終了していた。 到達不能なサービスに対する -j 7 は、ヘッダー、罫線、そしてそれ以外は何も出力せず、これは何も見つからなかった検索とまったく同じように読める。
* --defang は IOC 抽出レポートの Source 行も defang するようになり、レポート全体を安全な場所に貼り付けられる。 ローカルファイルパスはそのまま残り、エクスポートされたレコードは両方の場合で実際の値を保持する。
* このファイルの SUBCOMMANDS リストは、このリリースで削除された "ip bgp" を宣伝し、"ip batch" と "urlhaus batch" を省略し、存在したことのない urlscanio サブコマンドをリストしていた。 URLScan.io には -u で到達できる。
COLOURS
* 明るい背景では、シアンもライトブルーも使用されなくなり、青のみが使用される。 暗い背景では両方とも使用され続ける。 これにより、共有の info() カラーを含む 16 ファイルの 298 箇所が変更された。
* パッケージ全体の監査により、ルールを破るさらに 26 箇所が見つかった。一部は背景テスト内にあり、一部は両方の背景のために 1 回色付けされていた。 暗い背景の緑は現在ライトグリーン。
* ニュートラルカラーは Windows の暗い背景では決して適用されなかった: 拡張 256 カラーエスケープとして書かれていたが、colorama が使用するコンバーターは基本コードしか理解しないため、破棄され、以前のカラーが有効のままであった。 すべてのテーブル罫線、列ヘッダー、箇条書きアドバイザリが影響を受けた。
* -x 8 と -x 9: Tags 列は暗い背景ではライトブルー、明るい背景では青。 以前は隣の Hash 列と同じトーンを使用していた。
* -b 1: フィールドラベルは暗い背景ではライトシアン、明るい背景では青で、他のすべてのレポートと一致する。 明るい背景は緑を使用していた。
* -j 8: ハッシュ列は暗い背景ではライトパープル、明るい背景では青。 ステータス列は、報告するものがあるまでグレー。
* -ab 1: フィールドラベルは暗い背景ではライトブルー、明るい背景では青。
* -y 1: Package 列は暗い背景でライトブルー。
* -y 2 と -y 3: Hash 列は暗い背景ではピンク、明るい背景ではパープル。
* -s 2: Product 列は暗い背景ではライトブルー、明るい背景ではシアン。
以下の変更はセキュリティ修正です。 いずれもコマンド構文を変更しません。
* サービスレスポンスからのターミナルエスケープシーケンス注入を修正 (HIGH)。 ターミナルに出力される攻撃者制御フィールド (VirusTotal のビヘイビアデータとサンプル名、Malware Bazaar と URLHaus のファイル名、シグネチャ、タグ、AlienVault OTX のパルス名と説明、ThreatFox と Hybrid Analysis のフィールド) は、カーソルを移動して既に出力された判定を上書きし、ウィンドウタイトルを設定し、クリップボードに書き込むか、画面をクリアすることができた。 すべての JSON レスポンスは、解析されるとすぐにサニタイズされるようになった。
* グラフィカルモードでも同じエスケープシーケンス注入を修正 (HIGH)。 --tui は 16 箇所でサービスレスポンスを自前で解析しており、そのいずれもサニタイズされていなかった。 現在はどのレスポンスも解析しない。
* コマンドラインと入力ファイルからのターミナルエスケープシーケンス注入を修正 (MEDIUM)。 -B、-X、-TR、-S、-M、-L、-NIST およびその他の自由テキスト引数は ESC、8 ビット CSI、バックスペースを受け入れ、バリデータ―は拒否された値をクリーニングせずにターミナルにエコーバックしていた。 これは Linux と macOS にのみ影響した。
* さらに 3 つのソースからのターミナルエスケープシーケンス注入を修正 (MEDIUM): --extract-iocs によって抽出された値 (その URL パターンは空白を除外したが、他の制御文字は除外しなかった)、WHOIS フィールド (レジストラとレジストラントによって書かれたプレーンテキストとして届く)、および USB 接続の Android デバイスから読み取られた sha256 (現在は 64 の 16 進文字の許可リストに対してチェックされる)。
* --extract-iocs のサービス拒否を修正 (MEDIUM)。 HTML 処理は、script、style、svg、コメントブロックを遅延正規表現で削除していたが、これは開始タグが閉じられない場合に二次関数的になる: 400 KB の 50,000 個の未終了 script タグは 158 秒かかり、このオプションは URL から最大 10 MB を読み取る。 ブロックは現在、単一の前方スキャンで削除される。
* IOC 抽出における可能性のあるサービス拒否を修正 (LOW/MEDIUM): ドメインと電子メールの正規表現は、巧妙に細工された文書で非常に長い時間がかかる可能性があった。 テキストは現在、マッチングの前に境界のあるトークンに分割され、抽出された IOC は変更されない。
* エクスポートされたレポートの CSV 数式注入を修正 (MEDIUM)。 "="、"+"、"-"、"@" またはタブで始まる値は、Excel と LibreOffice によって数式として実行されていた。 現在は単一引用符が前置され、埋め込まれた改行は除去される。
* エクスポートされたレポートのヘッダー行の CSV 数式注入を修正 (LOW)。 列名はサービスレスポンスから取得され、上記の保護なしで書き込まれていた。








