Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
MalEval — ISSTA 2026論文の公式コード: 「それが悪意のあることを知るだけで十分か? きめ細かなマルウェア動作監査のためのLLM評価」 | Kitploit
ツール/GitHubGitHub/zhengxr930/maleval
Androidセキュリティ静的分析コード分析マルウェア分析機械学習論文と研究学習と教育AIセキュリティ
GitHubzhengxr930/maleval

MalEval

ISSTA 2026論文の公式コード: 「それが悪意のあることを知るだけで十分か? きめ細かなマルウェア動作監査のためのLLM評価」

リポジトリを見る
51121ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

MalEval

論文: 「悪質だと分かっているだけで十分か? マルウェアのきめ細かな動作監査におけるLLMの評価」

論文DOI: 10.1145/3832187

MalEval は、大規模言語モデルによって生成されたAndroidマルウェアの挙動レポートを評価するためのフレームワークです。このリポジトリのコードは、次の2つの実行パスを実装しています。

  1. APKから: APKファイルに対して静的解析を実行し、エントリポイント、コールチェーン、関数本体、到達可能な関数を生成します。
  2. アーティファクトから: 事前計算された静的解析出力から開始し、関数サマリー、コンテキスト中間表現、ビヘイビアレポート、評価メトリクスを生成します。

公開されているデータセットは、MalEval Hugging Face データセットリポジトリ に別途ホストされています。

このベンチマークには 255件のAndroidアプリケーション が含まれています: アーカイブされたマルウェアサンプル200個、最近のマルウェアサンプル30個、そして模擬誤検知として使用される良性アプリケーション25個です。公開されたファイル、由来、権利、および安全な取り扱いに関する注意については DATA.md を参照してください。

リポジトリ構成

root@kitploit:~
info/                Sample metadata for the benign, MalRadar, and new malware splits.
model_registry.yaml Model/provider configuration for LLM-based stages.
DATA.md              Dataset composition, provenance, and access instructions.
LICENSE.txt          License scope and third-party-material exclusions.
CITATION.cff         Machine-readable citation metadata.
src/                 Static analysis, summarization, behavior generation, and metrics code.

データセットは、リポジトリが次のレイアウトになるように展開してください:

root@kitploit:~
MalEval/
|-- info/
|-- src/
`-- artifacts/
    |-- apk/
    |-- call_chain/
    |-- entrypoints/
    |-- functions/
    |-- meta_info/
    |-- reachable_func/
    `-- reports/

環境

Python 3.10 以降を使用してください。新しい仮想環境を推奨します:

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
python3 -m pip install --upgrade pip
python3 -m pip install -r requirements.txt

LLMベースのステージを実行する前に、model_registry.yaml でモデルプロバイダーを設定してください。各モデルエントリには、api_key や base_url のようなリテラル値、または api_key_env や base_url_env のような環境変数参照のいずれかを格納できます。

例:

root@kitploit:~
models:
  gpt:
    provider: openai
    model: gpt-5
    api_key: <your_openai_key>
    base_url: https://api.openai.com/v1

デフォルトのレジストリには、gpt、gpt-5、qwen、deepseek、llama、coder、claude、gemini のエントリが含まれます。環境変数を利用したい場合は、model_registry.yaml が参照する変数(例: OPENAI_API_KEY、DEEPSEEK_API_KEY、QWEN3_API_KEY、HUGGINGFACE_API_KEY、ANTHROPIC_API_KEY、GEMINI_API_KEY、、)を設定してください。

APKから

このパスは、artifacts/apk/<split>/ 配下のAPKファイルから開始し、静的解析アーティファクトを再生成します。split は malradar、new、benign のいずれかである必要があります。

単一のAPKを実行:

root@kitploit:~
sha=<apk_sha256>
python3 src/preparation/run_static_analysis.py \
  --folder malradar \
  --apk "$sha" \
  --output-root results/static_analysis

小規模なサンプリングバッチを実行:

root@kitploit:~
python3 src/preparation/run_static_analysis.py \
  --folder malradar \
  --sample-size 5 \
  --seed 42 \
  --output-root results/static_analysis

生成されたファイルは以下の場所に書き込まれます:

root@kitploit:~
results/static_analysis/entrypoints/
results/static_analysis/call_chain/
results/static_analysis/functions/
results/static_analysis/reachable_func/

アーティファクトから

このパスは、公開されている artifacts/ ディレクトリから開始します。事前計算済みの functions、call_chain、entrypoints、reachable_func、meta_info ファイルを使用します。

関数サマリー

root@kitploit:~
model=gpt
split=malradar
sha=<apk_sha256>

python3 src/preparation/get_functionality_summary.py --model "$model" --folder "$split" --apk "$sha"

--apk を省略すると、スプリット全体に対して実行します。

コンテキストあり・なしサマリー

root@kitploit:~
python3 src/preparation/get_context_summary.py --model "$model" --folder "$split" --apk "$sha"
python3 src/preparation/get_no_context_summary.py --model "$model" --folder "$split" --apk "$sha"

ビヘイビアレポート

root@kitploit:~
python3 src/generate_behavior/get_behavior.py --model "$model" --folder "$split" --flag context --apk "$sha"
python3 src/generate_behavior/get_behavior.py --model "$model" --folder "$split" --flag no_context --apk "$sha"
python3 src/generate_behavior/get_meta_behavior.py --model "$model" --folder "$split" --apk "$sha"

出力は results/summary/、results/context_summary/、results/no_context_summary/、results/behavior/、results/no_context_behavior/、results/meta_behavior/ 配下に書き込まれます。

メトリクス

サマリーとビヘイビアレポートが生成されたら、以下のコマンドでメトリクスを計算します:

root@kitploit:~
python3 src/metrics/run_metrics.py --model "$model" --flag context
python3 src/metrics/run_metrics.py --model "$model" --flag no_context
python3 src/metrics/run_metrics.py --model "$model" --flag meta

ジャッジモデルの呼び出しをスキップする場合:

root@kitploit:~
python3 src/metrics/run_metrics.py --model "$model" --flag context --skip-eas

個別のメトリクススクリプトも利用できます:

root@kitploit:~
python3 src/metrics/aec_b_f1.py --model "$model" --flag context
python3 src/metrics/fpcr_tpmr_f1c.py --model "$model" --flag context
python3 src/metrics/eas.py --model "$model" --flag context --split malradar --judge-model gpt-5

最小限の検証

ソースツリーは、APKをダウンロードしたりモデルの資格情報を設定したりせずに確認できます:

root@kitploit:~
python3 -m compileall -q src
python3 - <<'PY'
import json
from pathlib import Path

expected = {
    "archived_sample_info.json": 200,
    "latest_sample_info.json": 30,
    "benign_sample_info.json": 25,
}
for name, count in expected.items():
    actual = len(json.loads((Path("info") / name).read_text()))
    assert actual == count, (name, actual, count)
print("metadata check passed: 200 archived malware + 30 recent malware + 25 benign")
PY

再現性の範囲

  • 公開されたレポートに対するメトリクス計算は、ローカルでのモデル推論ハードウェアを必要としません。
  • LLM出力の再生成には、対応するAPI資格情報または互換性のあるセルフホスト型エンドポイントが必要です。
  • 静的解析とAPKの取り扱いはすべて、隔離された研究環境で実施する必要があります。個人用または本番用デバイスに公開されたサンプルをインストールしたり実行したりしないでください。
  • 正確な数値の再現は、ホスト型モデルエンドポイントの変更によって影響を受ける可能性があります。公開されたレポートには、論文で使用された出力が保存されています。
ツールをダウンロード
GEMINI_PROJECT
GEMINI_LOCATION