Integração "Skanner-VS" e DefectDojo: Análise de Relatórios HTML e Automação de Importação

Integração "Skanner-VS" e DefectDojo: Análise de Relatórios HTML e Automação de Importação

Descubra como automatizar o processamento de relatórios de vulnerabilidade do "Skanner-VS", convertendo HTML em JSON e importando-os para o DefectDojo, otimizando a gestão de riscos de segurança.

MundiX News·03 de junho de 2026·20 min de leitura·👁 12 views

Após a conclusão de varreduras de infraestrutura com ferramentas certificadas como o "Skanner-VS", é comum receber relatórios extensos em formatos como HTML ou PDF. Embora úteis para visualização e compartilhamento, a integração desses dados em fluxos de trabalho de gerenciamento de vulnerabilidades, especialmente em plataformas como Jira ou DefectDojo, pode ser desafiadora. Soluções certificadas frequentemente carecem de formatos de exportação que facilitem a automação, resultando em dados isolados e em análises manuais demoradas para identificar CVEs em relatórios volumosos.

Este artigo é direcionado a profissionais de segurança da informação, engenheiros DevSecOps e administradores de sistemas que buscam integrar os resultados de varreduras de rede realizadas por scanners certificados em seus processos existentes de gerenciamento de vulnerabilidades, sem incorrer em custos adicionais com conversores pagos. Detalharemos o processo de transformação de relatórios HTML do "Skanner-VS" em JSON estruturado, a importação automática desses resultados para o DefectDojo e, quando necessário, a criação de parsers customizados para uma integração mais profunda. Para aqueles interessados em automatizar a execução do "Skanner-VS", recomendamos a consulta de artigos anteriores sobre o uso de scripts e APIs para essa finalidade.

O objetivo principal é extrair informações valiosas dos relatórios e manipulá-las de forma eficiente. A arquitetura proposta envolve a recepção de relatórios HTML do "Skanner-VS", o processamento desses arquivos por um script Python para gerar um relatório JSON compatível com o DefectDojo. Essa abordagem não só facilita a importação automatizada, mas também permite a análise manual dos dados em formato JSON, uma alternativa mais prática do que a navegação por relatórios extensos. A meta final é visualizar os dados do scanner certificado em um formato estruturado e enviá-los para o DefectDojo, uma plataforma robusta para gerenciamento de vulnerabilidades.

Sobre as Ferramentas Utilizadas: Skanner-VS e DefectDojo

O "Skanner-VS" é uma ferramenta certificada pela FSTEC da Rússia, projetada para testes de segurança e análise de vulnerabilidades em sistemas de informação, além de verificar a eficácia de medidas de proteção. Ferramentas certificadas por órgãos como a FSTEC são frequentemente requisitos para conformidade, especialmente em certificações de sistemas de informação governamentais (GIS).

A versão atual do "Skanner-VS" é a sétima, mas a sexta ainda é amplamente utilizada. Uma diferença notável entre as versões em relação aos relatórios é que a sexta oferecia formatos PDF e HTML, enquanto a sétima se concentra exclusivamente em HTML. Felizmente, a estrutura das tags HTML nos relatórios das versões sexta e sétima é consistente, o que significa que o script desenvolvido aqui é compatível com ambas.

DefectDojo: O que é e para que serve

O DefectDojo é uma plataforma de código aberto para Gerenciamento de Vulnerabilidades (Vulnerability Management Platform). Sua principal função é agregar resultados de diversos scanners de segurança em uma interface unificada, permitindo o acompanhamento do ciclo de vida das vulnerabilidades, a priorização de correções e a geração de relatórios abrangentes. As funcionalidades chave do DefectDojo incluem:

  • Suporte a mais de 150 parsers integrados para ferramentas como Nmap, Burp Suite, Trivy, OpenVAS, entre outras.
  • Deduplicação automática de vulnerabilidades entre diferentes varreduras.
  • Integração com sistemas populares como Jira, Slack e GitHub.
  • API REST para automação da importação de resultados.
  • Modelo de controle de acesso baseado em papéis (RBAC).
  • Métricas e dashboards para visualização do estado de segurança.

A plataforma organiza os dados em uma hierarquia: Produto → Engajamento → Teste → Finding. Essa estrutura permite uma organização granular das vulnerabilidades em relação a produtos específicos e fases de desenvolvimento.

Por ser desenvolvido em Python, o DefectDojo facilita a adição de parsers customizados para fontes de dados não suportadas nativamente pela plataforma.

Configuração do DefectDojo

Para uma implantação rápida e local do DefectDojo, a utilização do docker-compose oficial do projeto é a abordagem mais recomendada. O processo envolve clonar o repositório do projeto, navegar até o diretório e executar o comando docker compose up -d. Após a inicialização, o DefectDojo estará acessível em http://localhost:8080. A senha inicial do administrador pode ser encontrada nos logs do Docker.

Análise de Relatórios do Skanner-VS

O foco da análise recai sobre o relatório em formato HTML gerado pelo "Skanner-VS". Este arquivo é a fonte de dados para o nosso parser.

Estrutura do Arquivo HTML do Relatório

O relatório HTML é logicamente dividido em seções:

  1. Resumo: Contém informações gerais sobre a varredura, como o número de vulnerabilidades por criticidade, lista de ativos com seus IPs, FQDNs e sistemas operacionais, os 5 ativos mais vulneráveis e os pacotes de software mais afetados.
  2. Dados sobre Recursos Varredos: Esta seção detalha as vulnerabilidades encontradas. Para cada vulnerabilidade, o relatório inclui:
    • Identificador CVE no título do subtópico.
    • Identificadores adicionais (BDU FSTEC, etc.) no campo "Identificadores Relacionados".
    • Característica textual da criticidade no campo "Nível de Criticidade".
    • Nome do serviço ou pacote vulnerável no campo "SO/Pacote".
    • Porta do ativo onde a vulnerabilidade foi detectada no campo "Porta".
    • Pontuações CVSSv2, CVSSv3 e CVSSv4, com vetores de ataque, nos campos correspondentes.
    • Informações adicionais sobre a vulnerabilidade no campo "Descrição" (nem sempre preenchido).
    • Recomendações para correção, geralmente links para recursos externos, no campo "Recomendações" (nem sempre preenchido).

Se um ativo não apresentar vulnerabilidades, a seção 2 para ele estará vazia.

Para visualizar a estrutura completa do HTML, é possível remover atributos e valores de tags. Um script Python utilizando BeautifulSoup pode ser empregado para essa finalidade. O foco da extração de dados se concentra na seção 2, onde as informações sobre as vulnerabilidades são detalhadas.

Código para Análise (Parsing)

Utilizaremos a biblioteca BeautifulSoup para analisar os relatórios HTML. A função parse_vulnerabilities_html() é responsável por:

  • Verificar a existência e acessibilidade do arquivo HTML.
  • Identificar os cabeçalhos <h1> que correspondem aos endereços IP dos hosts.
  • Para cada host, extrair o IP e o nome DNS (se disponível), localizar os blocos <div> associados ao host e selecionar o bloco contendo "Vulnerabilidades Encontradas".
  • Extrair identificadores CVE de tags <h3> e, para cada vulnerabilidade, analisar a tabela para obter porta, componente e nível de criticidade.

O resultado dessa função é um dicionário estruturado como {ip: {cve: {port: ..., component: ..., severity: ...}}}. Casos onde tags específicas não são encontradas são tratados para evitar erros, e avisos são gerados para tabelas de dados ausentes.

A função parse_all_reports() processa múltiplos arquivos HTML em um diretório especificado, agregando os resultados em um dicionário unificado {ip: {...}}.

A função restructure_data() permite reorganizar os dados com base em diferentes campos, como IP, CVE, porta, criticidade ou componente, facilitando análises sob diversas perspectivas.

Envio de JSON para o DefectDojo

A função dd_sender() é responsável por enviar o arquivo JSON gerado para o DefectDojo via API. Ela realiza:

  • Verificação da existência do arquivo.
  • Envio de uma requisição POST para a URL especificada.
  • Utilização do formato multipart/form-data, transmitindo o arquivo JSON e parâmetros de varredura (tipo de scan, engajamento, data do scan).

É importante notar que a verificação do certificado SSL é desativada (verify=False) e o status da resposta do servidor é exibido no console. O parâmetro scan_type deve corresponder a um tipo de scan registrado no DefectDojo; neste caso, utilizamos "ScannerVS".

A sequência de ações culmina na visualização dos dados no DefectDojo, com os identificadores CVE linkados a informações adicionais sobre descrição e recomendações de correção.

Criação de um Parser Customizado para "Skanner-VS"

Embora a exportação em JSON e a importação via API sejam suficientes para integrações básicas, podem surgir limitações quanto à flexibilidade e personalização. Para um controle mais refinado, a criação de um parser customizado para o DefectDojo é a solução. Isso permite gerenciar a lógica de importação, configurar deduplicação, mapear severidades e adaptar-se às particularidades dos relatórios do "Skanner-VS".

O DefectDojo detecta parsers automaticamente ao iniciar, escaneando o diretório /app/dojo/tools/. Cada subdiretório deve conter um módulo parser.py e um classe com nome específico (nome_da_pasta + parser, ignorando maiúsculas/minúsculas e underscores). O método get_scan_types() é usado para registrar os tipos de scan.

A estrutura mínima de um parser inclui:

  • dojo/tools/scanner_vs/ ├── __init__.py └── parser.py

Cada parser deve implementar quatro métodos essenciais: get_scan_types(), get_label_for_scan_types(), get_description_for_scan_types() e get_findings(). O método get_findings() é o principal, responsável por analisar o arquivo de entrada (neste caso, um JSON com a estrutura {ip: {cve: {port: ..., component: ..., severity: ...}}}) e retornar uma lista de objetos Finding.

O código do parser customizado inclui a lógica de mapeamento de severidades (do russo para o inglês), deduplicação baseada em CVE, IP e porta, e a geração de hash_code para deduplicação entre diferentes varreduras. Ele também considera a compatibilidade com a funcionalidade V3_FEATURE_LOCATIONS do DefectDojo para o registro de localizações de vulnerabilidades.

Considerações Importantes no Desenvolvimento do Parser:

  • Nome da Classe: Deve seguir estritamente o padrão nome_da_pasta.replace('_', '') + 'parser' (case-insensitive). Por exemplo, para a pasta scanner_vs, a classe deve ser ScannerVsParser.
  • unsaved_endpoints vs unsaved_locations: A partir da versão 2.56.1 do DefectDojo, o mecanismo de Locations é o preferencial. É crucial verificar o flag V3_FEATURE_LOCATIONS e utilizar a abordagem correta. A atribuição deve ser feita após a criação do objeto Finding.
  • Deduplicação: O DefectDojo utiliza unique_id_from_tool (para deduplicação dentro de um scan) e hash_code (para deduplicação entre scans). A chave recomendada para scanners de CVE é CVE_ID|IP|PORT.
  • Mapeamento de Severidade: O DefectDojo aceita valores específicos (Critical, High, Medium, Low, Info). É necessário um mapeamento explícito para severidades em outros idiomas, com uso de .strip() para remover espaços em branco.

Construção e Implantação de Imagem Customizada

Para implantar um parser customizado, é necessário construir uma nova imagem Docker que inclua o parser. Um Dockerfile é utilizado para copiar os arquivos do parser para o diretório apropriado dentro da imagem base do DefectDojo. Após a construção e publicação da imagem em um registry, as configurações do Helm (se estiver usando Kubernetes) devem ser atualizadas para referenciar a nova imagem.

Depuração do Parser

Para depurar um parser:

  1. Verificação do Nome da Classe: Confirme se o nome da classe segue o padrão correto. Um script de verificação pode ser executado dentro do container.
  2. Logs de Carregamento: Analise os logs do DefectDojo após a inicialização para identificar erros no carregamento de parsers.
  3. Teste Local: Teste o parser diretamente dentro do container Docker, sem necessidade de implantação completa.

Erros Comuns e Soluções:

  • Parser não aparece na UI: Verifique o nome da classe.
  • unexpected keyword argument ‘unsaved_endpoints’: Atribua unsaved_endpoints após a criação do objeto Finding.
  • Todos os findings com severidade Medium: Verifique o mapeamento de severidade e o uso de .strip().
  • Duplicatas em reimportações: Preencha unique_id_from_tool e hash_code.
  • Parser does not exist: Confirme que os arquivos foram copiados para a imagem e que a imagem foi reconstruída.

Importação de Resultados de Varredura via Interface Web

O DefectDojo também permite a importação de resultados de varredura através de sua interface web. O processo envolve:

  1. Acessar a seção de "Scans" ou "Tests".
  2. Selecionar o produto e engajamento desejados.
  3. Fazer o upload do arquivo de relatório (no formato esperado pelo DefectDojo ou pelo parser customizado).
  4. Selecionar o tipo de scan correspondente (neste caso, "ScannerVS").
  5. Configurar opções adicionais, como data do scan e nível de severidade mínimo.
  6. Iniciar o processo de importação.

Após a importação bem-sucedida, os resultados estarão disponíveis na plataforma, organizados conforme a estrutura do DefectDojo, facilitando a análise e o acompanhamento das vulnerabilidades.

🛡️⚡

Pare de pesquisar. Comece a hackear.

O MundiX é seu copiloto de pentest com IA: comandos exatos, análise de outputs e próximo passo na kill chain — em segundos.

Testar grátis por 7 dias →

Sem cartão para começar · Planos a partir de R$49/mês

📤 Compartilhar & Baixar

🧰 Ferramentas recomendadas

Divulgação: alguns links são patrocinados. Podemos receber comissão se você comprar — sem custo extra para você. Só indicamos o que faz sentido para a comunidade.

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Aprendendo Kali Linux: Teste de segurança, pentest e hacking ético

Com centenas de ferramentas pré-instaladas, a distribuição Kali Linux facilita o trabalho de os profissionais de segurança começarem a fazer testes de segurança rapidamente. No entanto, com mais de 600 ferramentas em seu arsenal, o Kali Linux também pode ser desafiador. A nova edição deste prático livro abrange as atualizações nas ferramentas e inclui uma melhor abordagem da análise forense e da engenharia reversa. Ric Messier, autor, não fica apenas no teste de segurança, mas também faz uma abordagem sobre a execução de análise forense, incluindo a análise em disco e na memória, assim como alguma análise básica de malware. • Explore as diversas ferramentas disponíveis no Kali Linux • Entenda o valor do teste de segurança e examine os tipos de teste disponíveis • Aprenda os aspectos básicos do pentest em todo o ciclo de vida do ataque • Instale o Kali Linux em vários sistemas, tanto físicos quanto virtuais • Descubra como usar diferentes ferramentas destinadas à segurança • Estruture um teste de segurança baseado nas ferramentas do Kali Linux • Estenda as ferramentas do Kali para criar técnicas de ataque avançadas • Use o Kali Linux para ajudar a criar relatórios quando o teste terminar “A abordagem concisa, clara e baseada na experiência adotada por Ric Messier para a introdução do Kali Linux e dos testes de cibersegurança é incomparável. Este livro é uma leitura excelente e acessível para iniciantes e um recurso valioso para qualquer pessoa.” —Alexander Arlt, Consultor sênior de segurança, Google

Ver na Amazon
Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Gshield 2 em 1 Hub Extensor Conector USB-C + USB-A e Adaptador de Rede Ethernet LAN RJ45 com 3 Entradas USB 3.0 até 5 Gbps em Liga de Alumínio para Computador e Notebook, Cinza

Compatível com portas USB-C e USB-A, ideal para ampliar a conectividade de dispositivos como MacBook Pro e outros com portas USB-C. Inclui um adaptador USB-A extra, proporcionando uma conexão Ethernet estável e veloz de até 1 Gbps, perfeita para filmes, jogos online e videoconferências. Oferece três portas USB 3.0 com velocidades de transferência de até 5 Gbps, permitindo conectar mouse, teclado, discos rígidos e outros periféricos. Fabricado em alumínio durável, garantindo longa vida útil e resistência ao uso diário. Design compacto e leve, ideal para viagens de negócios e uso diário, facilitando o transporte e armazenamento. Funciona com Windows 10/8.1/8, Mac OS e Chrome OS, oferecendo versatilidade incomparável para diversas necessidades de conectividade. Assegura uma conectividade estável e rápida, perfeita para tarefas exigentes como transferência de dados, streaming e mais.

Ver na Amazon
Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs: Breaking Web Application Programming Interfaces

Hacking APIs is a crash course on web API security testing that will prepare you to penetration-test APIs, reap high rewards on bug bounty programs, and make your own APIs more secure. You'll learn how REST and GraphQL APIs work in the wild and set up a streamlined API testing lab with Burp Suite and Postman. Then you'll master tools useful for reconnaissance, endpoint analysis, and fuzzing, such as Kiterunner and OWASP Amass. Next, you'll learn to perform common attacks, like those targeting an API's authentication mechanisms and the injection vulnerabilities commonly found in web applications. You'll also learn techniques for bypassing protections against these attacks. In the book's nine guided labs, which target intentionally vulnerable APIs, you'll practice: Enumerating APIs users and endpoints using fuzzing techniques Using Postman to discover an excessive data exposure vulnerability Performing a JSON Web Token attack against an API authentication process Combining multiple API attack techniques to perform a NoSQL injection Attacking a GraphQL API to uncover a broken object level authorization vulnerability

Ver oferta
Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition

Up-to-date strategies for thwarting the latest, most insidious network attacks This fully updated, industry-standard security resource shows, step by step, how to fortify computer networks by learning and applying effective ethical hacking techniques. Based on curricula developed by the authors at major security conferences and colleges, the book features actionable planning and analysis methods as well as practical steps for identifying and combating both targeted and opportunistic attacks. Gray Hat Hacking: The Ethical Hacker's Handbook, Sixth Edition clearly explains the enemy's devious weapons, skills, and tactics and offers field-tested remedies, case studies, and testing labs. You will get complete coverage of Internet of Things, mobile, and Cloud security along with penetration testing, malware analysis, and reverse engineering techniques. State-of-the-art malware, ransomware, and system exploits are thoroughly explained. Fully revised content includes 7 new chapters covering the latest threats Includes proof-of-concept code stored on the GitHub repository Authors train attendees at major security conferences, including RSA, Black Hat, Defcon, and B-Sides

Ver na Amazon
Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Bloqueador USB de privacidade de porta USB para PC, notebook, bloco de laptop,

Proteção de privacidade aprimorada: protege o link de transmissão de dados para evitar roubo de informações, fornecendo proteção de segurança robusta que protege a privacidade do usuário durante transferências de arquivos e garante uma conexão segura para interações de dispositivos sem preocupações em vários ambientes Uso a longo prazo: a camada protetora resistente ao desgaste, combinada com um corpo de metal resistente, oferece gerenciamento de calor confiável e qualidade duradoura durante o uso diário Entrega eficiente de energia: a tecnologia de chip inteligente garante a identificação automática dos requisitos de energia, fornecendo carregamento eficiente alinhando-se com vários protocolos de carregamento rápido para maior conveniência Proteção contra sobrecarga: evitando riscos de sobrecarga, este bloqueador de dados USB protege a vida útil da bateria e garante um desempenho estável, mantendo um fluxo estável de energia para melhorar a longevidade do dispositivo de forma eficaz Prático de transportar: com atenção à portabilidade, este bloqueador de dados USB oferece um design compacto que é leve e fácil de transportar, melhorando a conveniência do usuário e operação eficiente

Ver na Amazon

📩 Newsletter MundiX

Receba novidades de cibersegurança + um checklist de pentest grátis. Sem spam.

Ao assinar você concorda em receber e-mails. Cancele quando quiser.