Segurança → Achados é a única lista de tudo que o módulo Segurança encontrou, independentemente de quem o encontrou. Toda fonte grava no mesmo repositório, e o mesmo problema reportado por duas fontes corresponde a um único achado.
Achados, ocorrências e fontes
- Um achado é um problema distinto em um único repositório: um pacote vulnerável, uma credencial vazada ou um padrão vulnerável no código.
- Suas ocorrências indicam onde ele está: um caminho de manifesto e dependência, um arquivo e linha, ou o commit e caminho onde um segredo aparece. Duas versões instaladas do mesmo pacote correspondem a duas ocorrências.
- Suas fontes indicam quem o viu, quando e com que nível de completude: OSV-Scanner, GitHub Dependabot, varredura de código do GitHub, varredura de segredos do GitHub, varredura de segredos do Coroid, regras de código do Coroid, seu próprio comando de varredura, Coroid Review e a auditoria de segurança.
A lista é agrupada por projeto. Filtre-a por projeto, tipo, gravidade, estado, fonte, divulgação e evidência. Um achado de dependência é agrupado pelo pacote, com a atualização que o corrige quando conhecida.
Gravidade e prazos
Cada achado tem um prazo definido após ser aberto:
| Gravidade | Prazo para correção |
|---|---|
| Crítico | 2 dias |
| Alto | 7 dias |
| Médio | 30 dias |
| Baixo | 90 dias |
A Visão geral conta os achados atrasados e aqueles com prazo de até três dias.
Estados
| Estado | Significado |
|---|---|
| Aberto | Presente no ramo padrão. |
| Corrigido no código | Todas as ocorrências no ramo padrão desapareceram, conforme indicado por uma varredura completa. |
| Rotação atestada | Uma credencial vazada cuja rotação ou revogação foi atestada por alguém. Veja Segredos vazados. |
| Já não se aplica | Todos os avisos relacionados ao achado foram retirados. Isso não equivale a 'corrigido'. |
| Em um pull request | Visto apenas em um pull request. Ele pertence ao pull request, e a próxima varredura do ramo padrão o detectará se a alteração for mesclada. |
Sem correção silenciosa
Uma ocorrência só deixa de existir quando uma varredura completa da versão atual do código indicar isso. Uma varredura parcial, uma varredura com falha, uma varredura sem permissão ou uma varredura de um commit que o ramo já ultrapassou não alteram nada. A cobertura mostra cada caso:
- Parcial: alguns arquivos não puderam ser lidos completamente, conforme indicado na cobertura.
- Desatualizado: o inventário não corresponde à versão atual do ramo padrão ou tem mais de um dia de idade.
- Desconhecido desde…: a fonte perdeu sua permissão ou não pôde ser lida. Os achados que só ela reportou exibem 'status desconhecido desde' esse momento.
- Atraso no feed de avisos: nenhum projeto apresenta cobertura completa enquanto durar esse atraso.
Os resultados são aplicados na ordem em que o Coroid observou as versões dos ramos, não na ordem das datas de commit. Se alguém fizer um force-push de um ramo para um commit mais antigo, a varredura desse commit será o resultado mais recente, e um resultado tardio de uma versão que o ramo já deixou de usar não altera nada.
Corrigido no código e corrigido no ambiente de execução
Mesclar uma correção não significa que ela esteja em execução. O módulo Segurança rastreia os dois casos separadamente:
- Corrigido no código: o ramo padrão não possui mais o problema.
- Por ambiente: para cada ambiente que informa o que está em execução, o Coroid varre exatamente essa revisão. O achado é considerado corrigido nesse ambiente somente quando a varredura estiver completa e não o encontrar. Uma reversão ou rollback que traga o problema de volta reabrirá o achado para esse ambiente.
Os Ambientes de um achado mostram, para cada ambiente, 'Em execução na produção', 'Apenas no código' ou 'Implantação desconhecida'. Implantação desconhecida significa que o Coroid não observou nenhuma revisão para o ambiente ou ainda não realizou uma varredura completa dele. Um projeto sem rastreamento de implantações exibe 'Apenas postura do repositório — nenhuma revisão de implantação é rastreada.' Para rastrear implantações, veja Eventos de implantação.
Visão geral → O relatório de progresso de correções indica o que ainda está em execução na produção, o que já foi corrigido no código mas ainda não foi implantado, o que ainda não pode ser determinado, os pull requests de correção aguardando revisão e o tempo médio entre a detecção da correção e sua mesclagem e implantação.
Exceções
Uma exceção oculta um achado da lista aberta sem excluí-lo. Proprietários e administradores podem adicionar uma exceção a um achado:
| Tipo | Necessidades |
|---|---|
| Aceitar risco | Um motivo, a maior severidade aceita e uma data de expiração futura. |
| Não é um problema (falso positivo) | Um motivo e a maior severidade aceita. A data de expiração é opcional. |
O achado reaparecerá quando a exceção expirar, quando alguém a revogar ou quando a severidade do achado ultrapassar o limite definido pela exceção. Um aumento na severidade invalida a exceção permanentemente. As observações ocultadas pela exceção são mantidas; nomeie-as. Todas as exceções são registradas no log de auditoria da organização.
Uma credencial vazada é diferente: ela só é fechada quando alguém atestar que ela foi rotacionada ou revogada. Veja Segredos vazados.
Agindo sobre um achado
A partir de um achado, proprietários e administradores podem:
- Corrigir: abrir o trabalho de correção correspondente. Para um achado de dependência pública, um pull request de correção ou uma tarefa de mitigação quando não houver versão corrigida disponível; para um achado de código, uma tarefa de correção; para um segredo vazado, a lista de verificação de rotação. Veja Pull requests de correção.
- Aceitar risco ou marcá-lo como Não é um problema.
- Siga sua tarefa de correção aberta e pull request.
Retenção
Os achados, suas ocorrências e suas evidências são mantidos enquanto o repositório estiver conectado. Quando um repositório é desconectado, eles são excluídos após 30 dias e restaurados se ele se reconectar dentro desse período. Os dados de orientação compartilhados não pertencem a você e são mantidos. As entradas de auditoria referentes a exceções, atestados e divulgações seguem a política de retenção do log de auditoria.