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

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

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

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

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

Категории

Все категории
Loading categories
VulTriage — Код VulTriage: трёхпутевое расширение контекста для обнаружения уязвимостей на основе LLM | Kitploit
Инструменты/GitHubGitHub/vinsontang1/vultriage
Статический анализАнализ уязвимостейАнализ КодаМашинное ОбучениеСтатьи и ИсследованияОбучение и ОбразованиеБезопасность ИИ
GitHubvinsontang1/vultriage

VulTriage

Код VulTriage: трёхпутевое расширение контекста для обнаружения уязвимостей на основе LLM

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

Популярное

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

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

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

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

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

ChatGPT Image 2026年5月10日 16_51_24

Интеллектуальная система обнаружения уязвимостей на основе больших языковых моделей и статического анализа кода, поддерживающая оценку на нескольких наборах данных и абляционные исследования.

image-20260510164600403

📋 Содержание

  • Введение
  • Ключевые особенности
  • Системные требования
  • Быстрый старт
  • Использование
  • Наборы данных и модели
  • Часто задаваемые вопросы

Введение

Этот проект — интеллектуальная система обнаружения уязвимостей на основе моделей GPT-4o и BGE-M3, объединяющая:

  • Анализ статической структуры: графы потока управления (CFG), графы потока данных (DFG), абстрактные синтаксические деревья (AST)
  • Генерацию с дополнением поиском (RAG): сопоставление шаблонов уязвимостей на основе базы знаний CWE
  • Понимание кода: семантический анализ с использованием больших языковых моделей
  • Парное/одиночное обнаружение: поддержка нескольких режимов оценки

Ключевые особенности

  • ✅ Поддержка наборов данных PrimeVul и Kotlin
  • ✅ Встроенный поиск по базе знаний уязвимостей CWE
  • ✅ Настраиваемые абляционные исследования
  • ✅ Отслеживание метрик в реальном времени
  • ✅ Гибкая поддержка экспериментов с гиперпараметрами

Системные требования

  • Python >= 3.9
  • CUDA (опционально, для ускорения на GPU)

Быстрый старт

1. Установка зависимостей

pip install -r requirements.txt

2. Подготовка ресурсов

Загрузка модели BGE-M3

Модель будет загружена автоматически, либо вы можете скачать её вручную:

git clone https://huggingface.co/BAAI/bge-m3
# Примечание: зависимости, связанные с BGE-M3, можно установить через FlagEmbedding. Подробнее: pip install -U FlagEmbedding

Подготовка данных CWE

Убедитесь, что файлы cwec_latest.xml/cwec_v4.19.1.xml и 1435.csv/1435_filtered_columns.csv (индексные данные CWE) существуют в корневом каталоге проекта.

Примечание: В этом проекте используется CWE Top 25 Most Dangerous Software Weaknesses. Соответствующие файлы уже включены в корневой каталог проекта.

Подготовка наборов данных

Поместите следующие файлы в корневой каталог проекта:

  • primevul_test_paired.jsonl (набор данных PrimeVul)
  • LLM4Vul-main/LLM4Vul-main/data/kotlin_data.csv (набор данных Kotlin)

3. Настройка API-ключа

Измените конфигурацию OpenAI API в main.py или hyperparam_exp.py:

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="https://api.poixe.com/v1"
)

Примечание: Текущий URL https://api.poixe.com/v1 не удалось обработать. Возможно, это неподдерживаемый тип веб-страницы или нерабочая ссылка. Проверьте корректность ссылки или переключитесь на другого поставщика API.

4. Запуск обнаружения уязвимостей

Базовый режим (полная функциональность)

python main.py --wotask all --jsonl_file primevul_test_paired.jsonl

Режим абляционного исследования

# Без информации о потоке управления
python main.py --wotask wo_ctrl_info_pth --jsonl_file primevul_test_paired.jsonl
# Без знаний RAG
python main.py --wotask wo_rag_pth --jsonl_file primevul_test_paired.jsonl
# Без понимания кода
python main.py --wotask wo_exp_pth --jsonl_file primevul_test_paired.jsonl
# Без какой-либо вспомогательной информации
python main.py --wotask nan --jsonl_file primevul_test_paired.jsonl

Эксперименты с гиперпараметрами

# Режим парной оценки
python hyperparam_exp.py --mode pairwise --input_file primevul_test_paired.jsonl --detail_level C --info_comb all --desc_level concise --max_vuln 2
# Режим оценки одиночных образцов
python hyperparam_exp.py --mode single --input_file LLM4Vul-main/LLM4Vul-main/data/kotlin_data.csv

5. Просмотр результатов

Результаты обнаружения сохраняются в реальном времени в metrics_log.txt, а итоговые сводки оценки выводятся в терминал:

  • Метрики оценки включают точность, полноту, уровень ложных срабатываний и т. д.
  • Результаты абляционного исследования сравнивают различия в производительности между режимами для анализа вклада каждого модуля.

Использование

Обзор основных скриптов

СкриптНазначение
main.pyОсновной скрипт обнаружения уязвимостей с поддержкой абляционных исследований
hyperparam_exp.pyЭксперименты с гиперпараметрами и многомодовая оценка
retrieval.pyМодуль поиска по базе знаний CWE (гибридный поиск на основе модели BGE-M3)
metrics_tracker.pyСредство отслеживания метрик в реальном времени с поддержкой сохранения логов и визуализации

Описание параметров

Параметры main.py

ПараметрПо умолчаниюОписание
--wotaskallРежим абляции: all (полная функциональность), wo_ctrl_info_pth (без статической структурной информации), wo_rag_pth (без знаний RAG), wo_exp_pth (без понимания кода), nan (без вспомогательной информации)
--jsonl_fileprimevul_test_paired.jsonlПуть к набору данных в формате JSONL
--metrics_filemetrics_log.txtФайл вывода метрик

Параметры hyperparam_exp.py

ПараметрПо умолчаниюОписание
--modepairwiseРежим оценки: pairwise или single
--input_fileОбязательныйПуть к входному файлу (формат JSONL или CSV)
--detail_levelCУровень детализации анализа кода: C (полный), B (стандартный), A (краткий)
--info_comballКомбинация информации: all, no_ast, no_cfg, no_dfg
--desc_levelconciseУровень описания: concise, normal, detailed
--max_vuln2Максимальное количество уязвимостей: 2 или 4

Наборы данных и модели

📊 Наборы данных

1. Набор данных PrimeVul

  • Цитирование: Yangruibo Ding, Yanjun Fu, Omniyyah Ibrahim, Chawin Sitawarin, Xinyun Chen, Basel Alomair, David Wagner, Baishakhi Ray, and Yizheng Chen. 2025. Vulnerability detection with code language models: How far are we? ISSTA 2025 (2025).
  • Назначение: Эталон для парного обнаружения уязвимостей
  • Формат: JSONL (содержит поля func и target)
  • Источник: Конференция ISSTA 2025 (Официальный сайт ISSTA). Обратитесь к оригинальной статье за информацией о доступе к набору данных.

2. Набор данных Kotlin

  • Цитирование: Triet Huynh Minh Le, M Ali Babar, and Tung Hoang Thai. 2024. Software vulnerability prediction in low-resource languages: An empirical study of codebert and chatgpt. In Proceedings of the 28th International Conference on Evaluation and Assessment in Software Engineering, 679–685.
  • Назначение: Исследование прогнозирования уязвимостей в языках с ограниченными ресурсами
  • Формат: CSV (содержит столбцы code и label)
  • Источник: Конференция EASE 2024 (Официальный сайт EASE 2024). Обратитесь к оригинальной статье за информацией о доступе к набору данных.

3. База данных CWE

  • Версия: CWE v4.19.1
  • Источник: MITRE CWE
  • Назначение: База знаний шаблонов уязвимостей и дополнение для поиска
  • Примечание: CWE можно свободно использовать в исследовательских, разработческих и коммерческих целях. Указание авторства MITRE обязательно.

🤖 Модели

Скачать инструмент