Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
MalEval — Официальный код для статьи ISSTA 2026: Достаточно ли «знать, что это вредоносное ПО»? Оценка LLM для детального аудита поведения вредоносных программ | Kitploit
Инструменты/GitHubGitHub/zhengxr930/maleval
Безопасность AndroidСтатический анализАнализ КодаАнализ вредоносных программМашинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИ
GitHubzhengxr930/maleval

MalEval

Официальный код для статьи ISSTA 2026: Достаточно ли «знать, что это вредоносное ПО»? Оценка LLM для детального аудита поведения вредоносных программ

Репозиторий
51121 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

MalEval

Статья: «Достаточно ли „знать, что это вредоносное ПО“? Оценка LLM для тонкозернистого аудита поведения вредоносных программ»

DOI статьи: 10.1145/3832187

MalEval — это фреймворк для оценки отчетов о поведении вредоносных Android-приложений, генерируемых большими языковыми моделями. Код в этом репозитории реализует два пути выполнения:

  1. Из APK: запуск статического анализа APK-файлов для получения точек входа, цепочек вызовов, тел функций и достижимых функций.
  2. Из артефакта: запуск с предвычисленных результатов статического анализа и генерация сводок функций, контекстных промежуточных представлений, отчетов о поведении и метрик оценки.

Опубликованный набор данных размещен отдельно в репозитории набора данных MalEval на Hugging Face.

Бенчмарк содержит 255 Android-приложений: 200 архивных образцов вредоносного ПО, 30 недавних образцов вредоносного ПО и 25 безвредных (benign) приложений, используемых для имитации ложных срабатываний. Сведения о выпущенных файлах, их происхождении, правах и правилах безопасной обработки см. в 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

Этот путь начинается с APK-файлов в каталоге artifacts/apk/<split>/ и пересоздает артефакты статического анализа. Значение 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, чтобы обработать весь split целиком.

Сводки с контекстом и без контекста

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