Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
VulTriage — O código do VulTriage: Aumento de Contexto de Caminho Triplo para Detecção de Vulnerabilidades Baseada em LLM | Kitploit
Ferramentas/GitHubGitHub/vinsontang1/vultriage
Análise EstáticaAnálise de VulnerabilidadesAnálise de CódigoAprendizado de MáquinaPapers e PesquisaAprendizado e EducaçãoSegurança de IA
GitHubvinsontang1/vultriage

VulTriage

O código do VulTriage: Aumento de Contexto de Caminho Triplo para Detecção de Vulnerabilidades Baseada em LLM

Ver Repositório
517há 4 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

ChatGPT Image 2026年5月10日 16_51_24

Um framework inteligente de detecção de vulnerabilidades baseado em Grandes Modelos de Linguagem e análise estática de código, com suporte a avaliação em múltiplos conjuntos de dados e estudos de ablação.

image-20260510164600403

📋 Sumário

  • Introduction
  • Key Features
  • System Requirements
  • Quick Start
  • Usage
  • Datasets & Models
  • FAQ

Introdução

Este projeto é um framework inteligente de detecção de vulnerabilidades baseado nos modelos GPT-4o e BGE-M3, combinando:

  • Análise de Estrutura Estática: Grafos de Fluxo de Controle (CFG), Grafos de Fluxo de Dados (DFG), Árvores Sintáticas Abstratas (AST)
  • Geração Aumentada por Recuperação (RAG): Correspondência de padrões de vulnerabilidade com base na base de conhecimento CWE
  • Compreensão de Código: Análise semântica usando Grandes Modelos de Linguagem
  • Detecção Pareada/De Amostra Única: Suporte a múltiplos modos de avaliação

Principais Recursos

  • ✅ Suporte aos conjuntos de dados PrimeVul e Kotlin
  • ✅ Recuperação integrada à base de conhecimento de vulnerabilidades CWE
  • ✅ Estudos de ablação configuráveis
  • ✅ Acompanhamento de métricas em tempo real
  • ✅ Suporte flexível a experimentos de hiperparâmetros
  • Requisitos do Sistema

    • Python >= 3.9
    • CUDA (opcional, para aceleração por GPU)

    Início Rápido

    1. Instalar Dependências

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

    2. Preparar Recursos

    Baixar o Modelo BGE-M3

    O modelo será baixado automaticamente, ou você pode baixá-lo manualmente:

    root@kitploit:~
    git clone https://huggingface.co/BAAI/bge-m3
    # Note: BGE-M3 related dependencies can be installed via FlagEmbedding. For details, refer to: pip install -U FlagEmbedding
    

    Preparar Dados CWE

    Certifique-se de que os arquivos cwec_latest.xml/cwec_v4.19.1.xml e 1435.csv/1435_filtered_columns.csv (dados do índice CWE) existam no diretório raiz do projeto.

    Nota: Este projeto utiliza as CWE Top 25 Fraquezas de Software Mais Perigosas. Os arquivos relacionados já estão incluídos no diretório raiz do projeto.

    Preparar Conjuntos de Dados

    Coloque os seguintes arquivos no diretório raiz do projeto:

    • primevul_test_paired.jsonl (conjunto de dados PrimeVul)
    • LLM4Vul-main/LLM4Vul-main/data/kotlin_data.csv (conjunto de dados Kotlin)

    3. Configurar a Chave da API

    Modifique a configuração da API da OpenAI em main.py ou hyperparam_exp.py:

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

    Nota: A URL atual https://api.poixe.com/v1 falhou ao ser analisada. Pode ser um tipo de página da web não suportado ou um link quebrado. Verifique a validade do link ou alterne para outro provedor de API.

    4. Executar a Detecção de Vulnerabilidades

    Modo Básico (Funcionalidade Completa)

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

    Modo de Estudo de Ablação

    root@kitploit:~
    # Without control flow information
    python main.py --wotask wo_ctrl_info_pth --jsonl_file primevul_test_paired.jsonl
    # Without RAG knowledge
    python main.py --wotask wo_rag_pth --jsonl_file primevul_test_paired.jsonl
    # Without code understanding
    python main.py --wotask wo_exp_pth --jsonl_file primevul_test_paired.jsonl
    # Without any auxiliary information
    python main.py --wotask nan --jsonl_file primevul_test_paired.jsonl
    

    Experimentos de Hiperparâmetros

    root@kitploit:~
    # Pairwise evaluation mode
    python hyperparam_exp.py --mode pairwise --input_file primevul_test_paired.jsonl --detail_level C --info_comb all --desc_level concise --max_vuln 2
    # Single-sample evaluation mode
    python hyperparam_exp.py --mode single --input_file LLM4Vul-main/LLM4Vul-main/data/kotlin_data.csv
    

    5. Visualizar Resultados

    Os resultados da detecção são salvos em tempo real em metrics_log.txt e os resumos finais da avaliação são exibidos no terminal:

    • As métricas de avaliação incluem acurácia, revocação (recall), taxa de falsos positivos, etc.
    • Os resultados do estudo de ablação comparam as diferenças de desempenho entre os diferentes modos para analisar a contribuição de cada módulo.

    Uso

    Visão Geral dos Scripts Principais

    ScriptFinalidade
    main.pyScript principal de detecção de vulnerabilidades com suporte a estudo de ablação
    hyperparam_exp.pyExperimentos de hiperparâmetros e avaliação em múltiplos modos
    retrieval.pyMódulo de recuperação da base de conhecimento CWE (recuperação híbrida baseada no modelo BGE-M3)
    metrics_tracker.pyRastreador de métricas em tempo real com salvamento de logs e suporte a visualização

    Descrição dos Parâmetros

    Parâmetros do main.py

    ParâmetroPadrãoDescrição
    --wotaskallModo de ablação: all (funcionalidade completa), wo_ctrl_info_pth (sem informações de estrutura estática), wo_rag_pth (sem conhecimento RAG), wo_exp_pth (sem compreensão de código), nan (sem informações auxiliares)
    --jsonl_fileprimevul_test_paired.jsonlCaminho do conjunto de dados JSONL
    --metrics_filemetrics_log.txtArquivo de saída de métricas

    Parâmetros do hyperparam_exp.py

    ParâmetroPadrãoDescrição
    --modepairwiseModo de avaliação: pairwise ou single
    --input_fileObrigatórioCaminho do arquivo de entrada (formato JSONL ou CSV)
    --detail_levelCNível de detalhe da análise de código: C (completo), B (padrão), A (resumido)
    --info_comballCombinação de informações: all, no_ast, no_cfg, no_dfg
    --desc_levelconciseNível de descrição: concise, normal, detailed
    --max_vuln2Número máximo de vulnerabilidades: 2 ou 4

    Conjuntos de Dados e Modelos

    📊 Conjuntos de Dados

    1. Conjunto de Dados PrimeVul

    • Citação: 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).
    • Objetivo: Benchmark de detecção de vulnerabilidades pareadas
    • Formato: JSONL (contém os campos func e target)
    • Fonte: Conferência ISSTA 2025 (Site Oficial do ISSTA). Consulte o artigo original para obter permissões de acesso ao conjunto de dados.

    2. Conjunto de Dados Kotlin

    • Citação: 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.
    • Objetivo: Pesquisa de previsão de vulnerabilidades em idiomas de baixos recursos
    • Formato: CSV (contém as colunas code e label)
    • Fonte: Conferência EASE 2024 (Site Oficial do EASE 2024). Consulte o artigo original para obter permissões de acesso ao conjunto de dados.

    3. Banco de Dados CWE

    • Versão: CWE v4.19.1
    • Fonte: MITRE CWE
    • Objetivo: Base de conhecimento de padrões de vulnerabilidade e aumento de recuperação
    • Nota: A CWE pode ser usada livremente para fins de pesquisa, desenvolvimento e comerciais. A atribuição de direitos autorais à MITRE deve ser mantida.

    🤖 Modelos

    1. Modelo de Embedding BGE-M3

    • Desenvolvedor: BAAI (Beijing Academy of Artificial Intelligence)
    • HuggingFace: BAAI/bge-m3
    • Licença: Licença MIT (Nota: A análise da página de licença do modelo atual falhou. Consulte a licença do projeto FlagEmbedding, que é a Licença MIT)
    • Objetivo: Recuperação híbrida de vetores densos e esparsos, suportando recuperação multilíngue, multigranular (comprimento máximo de entrada de 8192 tokens) e multifuncional
    • Projeto Relacionado: FlagEmbedding (Repositório de código aberto para os modelos da série BGE)

    2. GPT-4o

    • Desenvolvedor: OpenAI
    • Versão do Modelo: gpt-4o-2024-11-20
    • Licença: Segue os Termos de Uso da OpenAI (vigentes a partir de 1º de janeiro de 2026)
    • Objetivo: Compreensão de código, identificação de vulnerabilidades, raciocínio e julgamento
    • Nota: O uso deve estar em conformidade com os Termos de Serviço da OpenAI. Atividades ilegais ou prejudiciais e engenharia reversa do modelo são proibidas.

    📦 Bibliotecas de Dependências

    BibliotecaVersãoLicença
    FlagEmbedding1.4.0MIT
    openai2.26.0Apache 2.0

    FAQ

    Q1: Como alterar o provedor da API da OpenAI?

    Modifique o base_url e o api_key em main.py ou hyperparam_exp.py.

    Q2: Por que os resultados da recuperação são imprecisos?

    1. Verifique se 1435.csv/1435_filtered_columns.csv foi carregado corretamente e garanta que o formato dos dados do índice CWE esteja correto;
    2. Confirme se o modelo BGE-M3 foi baixado corretamente. Você pode baixá-lo manualmente via git clone https://huggingface.co/BAAI/bge-m3;

    Q3: Como personalizar as métricas de avaliação?

    Modifique o método update_pair_metrics em metrics_tracker.py para adicionar ou ajustar a lógica de cálculo das métricas.

    Q4: E se o download do modelo BGE-M3 falhar?

    Baixe os arquivos do modelo diretamente do site da HuggingFace, extraia-os para o diretório raiz do projeto, ou verifique sua conexão de rede e execute novamente o comando git clone https://huggingface.co/BAAI/bge-m3.

    Baixar ferramenta