Priorize correções com mais eficiência usando Reachable Vulnerabilities para GitHub
21 de janeiro de 2021
0 minutos de leituraTemos o prazer de começar o ano com a versão beta de Reachable Vulnerabilities para GitHub, que oferece às equipes de desenvolvimento e segurança um contexto aprofundado, no nível da aplicação, sobre vulnerabilidades identificadas em aplicações hospedadas no GitHub e permite priorizar correções com mais eficiência.
Anunciado em julho do ano passado, Reachable Vulnerabilities analisa o fluxo de execução de uma aplicação para identificar se a parte vulnerável de uma dependência é realmente alcançada. Esse contexto no nível da aplicação pode então ser usado para garantir que os esforços de correção se concentrem no conjunto certo de vulnerabilidades — aquelas que representam o maior risco para a organização.
Quem usa a Snyk CLI já aproveita Reachable Vulnerabilities para priorizar correções de vulnerabilidades. Agora, temos o prazer de anunciar que essa capacidade também está disponível na integração com o GitHub, facilitando muito a priorização em repositórios gerenciados pelo GitHub.

O que é “alcançabilidade” e por que ela importa
A maioria das soluções de análise de composição de software (SCA) verifica sua aplicação para determinar quais dependências de código aberto estão sendo incluídas e, em seguida, compara esses resultados com um banco de dados de vulnerabilidades para gerar um relatório das dependências vulneráveis.
Com o tempo, esses relatórios podem chegar a centenas ou até milhares de problemas. Como as organizações não conseguem — e nem devem — corrigir todas essas vulnerabilidades, é preciso priorizá-las. A maioria das soluções disponíveis no mercado fornece níveis de gravidade com base no CVSS para ajudar nessa priorização. Mas isso não é suficiente quando há centenas de vulnerabilidades de alta gravidade ou cinco vulnerabilidades com a mesma pontuação CVSS.
É aí que entra a “alcançabilidade”, oferecendo o contexto aprofundado da aplicação necessário para avaliar riscos com rapidez e mais precisão. Assim como é possível comer as partes saudáveis de uma fruta estragada, uma vulnerabilidade em uma parte do seu código não significa necessariamente que toda a biblioteca esteja vulnerável. Em geral, vulnerabilidades que não são alcançadas não comprometem a aplicação como um todo e, por isso, representam menos risco do que as que são alcançadas.
Reachable Vulnerabilities reduz drasticamente o número de vulnerabilidades que exigem atenção urgente. Cerca de 3% das vulnerabilidades encontradas nos projetos Java Maven que testamos com Reachable Vulnerabilities são de fato “alcançáveis”. Isso significa que as demais podem ser ignoradas? Claro que não. Elas também são importantes e precisam ser avaliadas, mas é aí que está a diferença entre urgente e importante.
Como funciona Reachable Vulnerabilities?
Se você quer saber como Reachable Vulnerabilities funciona, esta publicação do blog apresenta uma análise técnica aprofundada de como a Snyk combina pesquisa de segurança proprietária com análise estática automatizada para analisar vulnerabilidades identificadas e fornecer um contexto preciso e detalhado no nível da aplicação.
A extensão dessa capacidade para a integração com o GitHub exigiu algum trabalho adicional de engenharia. O principal elemento que viabiliza a análise é a criação de um grafo de chamadas, que mapeia as diversas interações entre sua aplicação e as dependências. Para aplicações hospedadas no GitHub, a Snyk clona seu repositório, compila a aplicação e cria o grafo de chamadas necessário para determinar a alcançabilidade. Depois que o grafo é criado, todo o código-fonte é removido dos servidores da Snyk.
Como ativar Reachable Vulnerabilities nos seus projetos do GitHub
A integração da Snyk com o GitHub permite testar continuamente todos os seus repositórios de código hospedados no GitHub para encontrar vulnerabilidades nas dependências de código aberto e, em seguida, corrigi-las com fluxos de trabalho automatizados de correção e atualização. Se ainda não fez isso, siga as etapas descritas em nossa documentação para configurar sua integração inicial com o GitHub.
Reachable Vulnerabilities para GitHub NÃO é ativado por padrão. Para atender plenamente aos requisitos de segurança de dados, é necessário ativar manualmente essa funcionalidade para realizar a análise.
Para ativar Reachable Vulnerabilities nos seus projetos do GitHub, abra as configurações da organização para a integração com o GitHub e use o botão de alternância na seção Análise de vulnerabilidades alcançáveis.

Reachable Vulnerabilities será ativado para todos os novos projetos do GitHub que você importar E para os projetos do GitHub existentes, que serão analisados na próxima execução de um teste diário ou noturno.
Priorização com Reachable Vulnerabilities
Depois de ativada, várias indicações e informações sobre alcançabilidade serão exibidas nas páginas dos projetos relevantes na Snyk. Você poderá usá-las para filtrar rapidamente os diferentes problemas identificados no projeto.

Reachable Vulnerabilities também é considerado na Pontuação de prioridade (1) da Snyk — um sistema avançado de pontuação integrado, baseado em um algoritmo proprietário que processa diversos fatores, como a pontuação CVSS, a disponibilidade de uma correção, exploits conhecidos, há quanto tempo a vulnerabilidade foi descoberta e, como mencionado, se ela é alcançável. A pontuação resultante aparece no canto superior direito dos cartões de cada problema e pode ser usada para filtrar e classificar rapidamente seu backlog.
Um rótulo de alcançabilidade (2) é adicionado às vulnerabilidades relevantes. Você também pode usar filtros de alcançabilidade (3) para classificar rapidamente os problemas identificados no projeto e priorizar aqueles que representam o maior risco. A Snyk também exibe informações detalhadas (4) sobre o caminho exato pelo qual a aplicação chama a função vulnerável.
Correções com Reachable Vulnerabilities
A integração da Snyk com o GitHub permite não apenas identificar problemas, mas também corrigi-los como parte do seu fluxo de trabalho baseado em Git.
Você pode criar manualmente uma pull request diretamente a partir da vulnerabilidade na interface da Snyk. Para facilitar ainda mais, a Snyk criará pull requests automaticamente em algumas situações: quando identificar uma nova vulnerabilidade corrigível ou quando uma nova correção ficar disponível para uma vulnerabilidade existente. O Backlog Management da Snyk também criará uma pull request com base na Pontuação de prioridade (saiba mais sobre o Backlog Management aqui).
Todas essas pull requests exibem informações sobre alcançabilidade, junto com as demais recomendações de correção da Snyk, na aba Conversation da pull request. Esse contexto ajuda você a decidir com muito mais facilidade se deve mesclá-la.

Os dados de alcançabilidade também estão disponíveis na página Relatórios Problemas, para que você possa monitorar e acompanhar suas vulnerabilidades com mais facilidade ao longo do tempo.

Comece agora!
Uma avaliação de risco precisa e rápida é essencial para priorizar com eficácia. O CVSS pode ser um bom ponto de partida, mas não é abrangente o suficiente nem oferece contexto aprofundado sobre os fatores subjetivos relacionados a uma vulnerabilidade.
Ao analisar o fluxo de execução da aplicação e correlacioná-lo com os dados abrangentes de segurança da Snyk, Reachable Vulnerabilities da Snyk — agora também disponível para aplicações hospedadas no GitHub — oferece o contexto aprofundado no nível da aplicação necessário para uma priorização eficaz.
Reachable Vulnerabilities para GitHub está sendo disponibilizado gradualmente em versão beta para todos os planos da Snyk e, por enquanto, oferece suporte a projetos Java (Maven). Se não quiser esperar e quiser ter acesso antes, fale com a gente pelo: support@snyk.io. Para mais detalhes, consulte a documentação principal.



