Documentação / Segurança

Central de segurança

Análise local de dependências, código, vazamentos de memória e condições de corrida, sem enviar o seu código para lugar nenhum.

A Central de segurança faz uma análise local do projeto, sem enviar o seu código para lugar nenhum. As fontes on-line e a revisão com IA são opcionais e ativadas separadamente.

Como abrir

  • Trilho direito → Mais ferramentas → Central de segurança (“Achados e segredos”).
  • Paleta de comandos (Ctrl+Shift+A): Central de segurança (vulnerabilidades, vazamentos, corridas).
  • Pela aba Prevenção do painel Qualidade.

Clique em Analisar projeto na primeira vez e em Analisar novamente depois de alterações.

Abas

Aba O que mostra
Resumo O estado geral e os achados mais importantes.
Dependências Bibliotecas com vulnerabilidades conhecidas ou sem suporte.
Código Vulnerabilidades no código do projeto.
Memória e concorrência Vazamentos de recursos e condições de corrida.
Licenças Licenças das dependências.
Revisão com IA Uma análise opcional com o modelo, que você ativa com Análise com IA.

Dependências

Fontes de vulnerabilidades

Em Opções → Fontes de vulnerabilidades:

Fonte Estado O que envia
Base local do Yuli Sempre ativa Nada. Funciona sem conexão, com CVEs conhecidos de bibliotecas Java comuns (Struts, Log4j, commons, Spring, Jackson…), componentes sem suporte e licenças.
OSV.dev Desligada por padrão Apenas grupo, artefato e versão de cada dependência.
OWASP Dependency-Check Opcional Usa uma instalação local.

Só com a base local, a análise é totalmente offline. Ative o OSV.dev se quiser consultar também o GitHub Advisory e o NVD.

Escopo

  • Incluir código de testes.
  • Incluir jars do servidor.

Código

A análise de código cobre Java, JSP, web.xml e os descritores do Hibernate.

Categoria Exemplos
Injeção SQL montado com dados do request.
XSS Saída sem escape em JSP ou servlets.
Desserialização insegura Objetos lidos de fontes não confiáveis.
XXE Parsers XML sem proteção.
Criptografia fraca Algoritmos obsoletos.
TLS Gerenciadores que confiam em qualquer certificado.
Redirecionamentos abertos Destinos obtidos do request.
Segredos Credenciais escritas no código ou impressas em logs.

Um modelo de contaminação (taint) por método acompanha os valores que vêm do request (getParameter, getHeader, cookies) e dos ActionForm do Struts. Quando um achado recebe dados do usuário, a sua confiança e a sua severidade aumentam.

Memória e concorrência

Vazamentos

  • Conexões JDBC ou streams não fechados.
  • ThreadLocal sem remove().
  • Caches estáticos que crescem sem limite.
  • Threads que nunca param.

Condições de corrida

  • Estado compartilhado em Servlets, Actions do Struts e singletons.
  • SimpleDateFormat estático.
  • Double-checked locking.
  • Padrões check-then-act.

Para confirmar um vazamento em execução, use o painel JVM: um histograma de memória repetido mostra quais classes crescem. Veja Executar e depurar.

Onde os relatórios são guardados

Na pasta .yuli/security/ do projeto, que o Yuli exclui do Git.

Prevenção no editor

Além da Central de segurança, o Yuli revisa cada arquivo ao vivo enquanto você escreve e depois de cada edição do agente: OWASP Top 10, CWE, desempenho, robustez e acessibilidade. Os achados aparecem sublinhados com a sua referência e como corrigi-los. Veja Medição contra N−1.

SBOM e cadeia de suprimentos

A lista de materiais (SBOM) é gerada na Central de Governança, aba Cadeia de suprimentos, com Gravar SBOM. Formatos: CycloneDX 1.5 JSON e SPDX 2.3 JSON. Veja Gate e Central de Governança.

Com o agente

O agente pode consultar a Central de segurança com as ferramentas yuli_security_center e yuli_security_scan, e propor correções que passam pela janela de alterações como qualquer outra.