Um pacote pode aparecer no seu grafo de dependências, ser importado e, ainda
assim, não ser explorável na prática: a função vulnerável pode nunca ser chamada,
ou nada que um atacante controla pode alcançá-la. A alcançabilidade é um dos
sinais mais fortes para reduzir ruído. Combinada com a severidade do advisory e
com os sinais de exploit KEV e EPSS abaixo, ela indica quais achados priorizar.
A análise de alcançabilidade vai além de verificar se um pacote é importado. Para
cada dependência vulnerável, o ZeroPath avalia se o caminho de código vulnerável
é de fato invocado a partir da sua aplicação e pondera se entrada influenciada
por um atacante pode alcançá-lo.
Alcançabilidade e explorabilidade são relacionadas, mas distintas. Alcançabilidade
é se o código vulnerável é invocado a partir do seu código. Explorabilidade é se
um atacante consegue acioná-lo, considerando entradas, configuração e fronteiras
de confiança. Alcançabilidade é condição necessária para a explorabilidade, não
prova dela.
Alcançabilidade de pacotes
Todo pacote vulnerável recebe um status de alcançabilidade:
- Reachable — o caminho de código vulnerável é invocado na sua aplicação.
- Not reachable — o pacote está presente, mas o caminho vulnerável não é
invocado. Dependências que rodam apenas em tempo de build ou de desenvolvimento
tendem a ser classificadas neste estado.
- Not tested — a análise ainda não foi executada para este pacote.
Um pacote permanece not tested até que a análise seja executada para ele; o
ZeroPath não presume alcançabilidade. Cada resultado inclui um breve resumo, e
você pode filtrar as visualizações de inventário e de achados pela alcançabilidade
do pacote.
Um resultado not reachable reduz a prioridade, mas não é prova de segurança.
A análise de alcançabilidade estática e assistida por IA pode não detectar
reflection, dispatch dinâmico, desserialização e invocação dirigida por
configuração. Não trate “not reachable” como motivo para deixar sem correção um
advisory crítico ou listado no KEV.
Explorabilidade nos achados
No nível do achado, o ZeroPath consolida o veredito de alcançabilidade de cada
achado nos buckets de explorabilidade pelos quais você pode filtrar a visualização
de achados:
- Likely exploitable — alcançável.
- Needs review — a alcançabilidade é ambígua.
- Likely not exploitable — não alcançável.
- Not yet analyzed — a análise ainda não foi concluída para este achado.
Os achados no bucket likely-exploitable são a prioridade máxima. Achados
alcançáveis podem ser tratados com a auto-remediação, que
abre PRs de upgrade. As pré-condições de um achado indicam o que
ainda precisa ser verdadeiro para que um problema alcançável se concretize.
Inteligência de exploits: KEV e EPSS
A alcançabilidade diz se uma vulnerabilidade é explorável no seu código. Dois
feeds do setor dizem se ela está sendo explorada no mundo real, e o ZeroPath
enriquece todo achado com CVE usando ambos, atualizados diariamente:
- CISA KEV (Known Exploited Vulnerabilities) marca um achado como Known
exploited quando seu CVE está no catálogo da CISA de vulnerabilidades sob
exploração ativa, com a data em que a CISA o adicionou e um indicador de
campanha de ransomware conhecida. Uma listagem de exploração ativa é o sinal de
prioridade mais forte para um achado.
- FIRST EPSS (Exploit Prediction Scoring System) é a probabilidade de que um
CVE seja explorado nos próximos 30 dias, exibida como um score EPSS com seu
percentil, para que você possa classificar por probabilidade os CVEs ainda não
explorados.
Um achado que é alcançável, listado no KEV e com EPSS alto é sua prioridade
máxima. Um achado não alcançável, com score EPSS baixo e sem listagem no KEV,
geralmente pode esperar.
Se um CVE não está no KEV ou o EPSS não o pontua, nenhum badge é exibido. Quando
um feed não pode ser acessado durante um scan, o ZeroPath registra um aviso de
cobertura Exploit intelligence unavailable.
Pré-condições
Quando uma vulnerabilidade é alcançável, mas sua exploração depende de condições
que não podem ser confirmadas apenas pelo código, o ZeroPath exibe
pré-condições, por exemplo “O método vulnerável só é chamado com entrada
controlada pelo servidor” ou “Requer uma configuração de runtime específica para
ser acionado”. As pré-condições permitem julgar a explorabilidade no mundo real
de cada achado alcançável.
Triagem de transitivas
A maioria das dependências é transitiva, e investigar indiscriminadamente todo
CVE transitivo soterra os achados que importam. Antes de gastar esforço de
análise em uma vulnerabilidade transitiva, o ZeroPath avalia se a cadeia de
dependências realmente a expõe. Cadeias profundas e opacas e dependências
exclusivas de desenvolvimento são despriorizadas, para que a investigação se
concentre onde um caminho real e alcançável é plausível.
Modelo de ameaças e contexto da aplicação
Se você configurou um modelo de ameaças ou contexto
de aplicação para um repositório, a análise de alcançabilidade e a triagem de
transitivas os incorporam. Áreas fora de escopo, fronteiras de zonas de confiança
e premissas que você define entram nos vereditos de alcançabilidade, de modo que
dependências em subárvores que você marcou como fora de escopo geram muito menos
ruído.
Alcançabilidade e explorabilidade são avaliações probabilísticas assistidas por
IA. Trate-as como sinais de priorização e confirme achados críticos de supply
chain com revisão humana antes de usá-las para despriorizar um achado ou fazer
merge automático de uma correção.