Até recentemente, em nossos artigos, posicionamos o PVS-Studio como uma ferramenta para detectar erros no código. Ao mesmo tempo, quase não consideramos o PVS-Studio no contexto de segurança. Vamos tentar corrigir um pouco essa situação e dar uma olhada na ferramenta em termos de teste de segurança de aplicativos e práticas do DevSecOps.
O PVS-Studio é uma ferramenta para testes de segurança de aplicativos estáticos (Static Application Security Testing, SAST). Em outras palavras, o analisador PVS-Studio detecta não apenas erros de digitação, código morto e outros erros, mas também possíveis vulnerabilidades.
A ferramenta é executada no Windows, Linux, macOS e analisa o código dos programas em C, C ++ e C #. Até o final de 2018, o suporte à linguagem Java está planejado.
Para conveniência dos especialistas que usarão o PVS-Studio como ferramenta SAST, o analisador exibe seus avisos sobre
Enumeração de fraqueza comum ,
padrões de codificação SEI CERT e também suporta o padrão
MISRA (atualmente em implementação).
Tabelas de conformidade dos
diagnósticos do PVS-Studio
para vários padrões:
- Conformidade com a CWE
- Conformidade SEI CERT
- Suporte MISRA (planejamos implementá-lo antes do final de 2018)
A classificação mais comum dos alertas da ferramenta SAST é a Enumeração de fraqueza comum (CWE). Vamos ver, eu uso a linguagem CWE como o analisador PVS-Studio ajuda a evitar vulnerabilidades.
Se nos voltarmos para o banco de dados de vulnerabilidades conhecidas de segurança da informação (
CVE ), acontece que muitas vezes a causa das vulnerabilidades nos programas não são algumas falhas de segurança, mas erros comuns de software. O Instituto Nacional de Padrões e Tecnologia (NIST) confirma isso afirmando que 64% das vulnerabilidades de software são devido a erros de código.
São esses erros que podem levar a vulnerabilidades descritas no CWE. Portanto, se o erro puder ser classificado como CWE, há uma chance de que ele possa ser explorado como uma vulnerabilidade e, eventualmente, preencher a lista do CVE. Para maior clareza, você pode usar a imagem do funil:
Existem muitos erros. Alguns deles são perigosos do ponto de vista da segurança e, portanto, são classificados de acordo com a CWE. Alguns erros do CWE podem ser explorados e são vulnerabilidades.
Sim, na prática, apenas uma fração muito pequena dos erros CWE encontrados são perigosos e são vulnerabilidades. No entanto, se você estiver desenvolvendo aplicativos críticos para a segurança e se preocupar com a segurança do usuário, leve esses erros muito a sério. Ao eliminar erros do CWE, você protege seu aplicativo de muitas vulnerabilidades.
Agora, a relação entre erros, PVS-Studio e vulnerabilidades se torna aparente. O analisador PVS-Studio encontra erros e classifica muitos deles como CWE. Ao corrigir esses erros, você torna seu aplicativo mais confiável. Encontrar uma vulnerabilidade em um produto pode afetar seriamente sua reputação. Ao corrigir os erros do analisador, você reduz significativamente esse risco no estágio inicial do desenvolvimento - escrevendo código.
O analisador PVS-Studio, como qualquer outra ferramenta, não garante que não haja vulnerabilidades no código. No entanto, se o PVS-Studio impedir, por exemplo, 50% de possíveis vulnerabilidades, isso já é maravilhoso.
Além disso, sugerimos que você leia o artigo “
Como o PVS-Studio pode ajudar na busca de vulnerabilidades? ”, Que mostra os erros que levaram às vulnerabilidades, que poderiam ter sido evitados se a ferramenta PVS-Studio fosse usada no processo de desenvolvimento.
Comece a usar o PVS-Studio como uma solução SAST: faça o
download do PVS-Studio .