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

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

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

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

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

Категории

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

VulTriage

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

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

Популярное

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

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

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

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

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

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. Установка зависимостей

    root@kitploit:~
    pip install -r requirements.txt
    

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

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

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

    root@kitploit:~
    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:

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

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

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

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

    root@kitploit:~
    python main.py --wotask all --jsonl_file primevul_test_paired.jsonl
    

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

    root@kitploit:~
    # Без информации о потоке управления
    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
    

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

    root@kitploit:~
    # Режим парной оценки
    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 обязательно.

    🤖 Модели

    1. Модель встраивания BGE-M3

    • Разработчик: BAAI (Пекинская академия искусственного интеллекта)
    • HuggingFace: BAAI/bge-m3
    • Лицензия: MIT License (Примечание: страницу лицензии текущей модели не удалось обработать. Обратитесь к лицензии проекта FlagEmbedding — MIT License)
    • Назначение: Гибридный поиск на основе плотных и разреженных векторов, поддерживающий многоязычный, многогранулярный поиск (максимальная длина входа 8192 токенов) и многофункциональный поиск
    • Связанный проект: FlagEmbedding (открытый репозиторий моделей серии BGE)

    2. GPT-4o

    • Разработчик: OpenAI
    • Версия модели: gpt-4o-2024-11-20
    • Лицензия: В соответствии с Условиями использования OpenAI (вступают в силу с 1 января 2026 года)
    • Назначение: Понимание кода, выявление уязвимостей, рассуждение и принятие решений
    • Примечание: Использование должно соответствовать Условиям предоставления услуг OpenAI. Запрещены незаконные или вредоносные действия, а также обратный инжиниринг модели.

    📦 Библиотеки зависимостей

    БиблиотекаВерсияЛицензия
    FlagEmbedding1.4.0MIT
    openai2.26.0Apache 2.0

    Часто задаваемые вопросы

    В1: Как сменить поставщика OpenAI API?

    Измените base_url и api_key в main.py или hyperparam_exp.py.

    В2: Почему результаты поиска неточные?

    1. Проверьте, корректно ли загружены файлы 1435.csv/1435_filtered_columns.csv, и убедитесь, что формат индексных данных CWE правильный;
    2. Убедитесь, что модель BGE-M3 загружена корректно. Вы можете скачать её вручную с помощью git clone https://huggingface.co/BAAI/bge-m3;

    В3: Как настроить метрики оценки?

    Измените метод update_pair_metrics в metrics_tracker.py, чтобы добавить или скорректировать логику расчёта метрик.

    В4: Что делать, если загрузка модели BGE-M3 не удалась?

    Скачайте файлы модели напрямую с сайта HuggingFace, распакуйте их в корневой каталог проекта, либо проверьте сетевое соединение и повторите выполнение команды git clone https://huggingface.co/BAAI/bge-m3.

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