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.
ThreadLocalsemremove().- Caches estáticos que crescem sem limite.
- Threads que nunca param.
Condições de corrida
- Estado compartilhado em Servlets, Actions do Struts e singletons.
SimpleDateFormatestá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.