
Scanner rápido de segurança de código projetado para revisão manual de segurança por especialistas. Gera resultados com referência de linha em arquivos de texto para facilitar a filtragem e a triagem.
Code Query, uma ferramenta universal de varredura de segurança de código.
CQ varre código em busca de vulnerabilidades de segurança e outros itens de interesse para revisores de código focados em segurança. Ele gera arquivos de texto contendo referências a problemas encontrados, em um diretório de saída. Esses arquivos de saída podem ser revisados, filtrados por ferramentas de linha de comando Unix, como grep, ou usados como meio de 'saltar' para o código-fonte na referência arquivo:linha especificada.
Um modo popular de uso é considerar os arquivos de saída como uma lista de 'tarefas' (todo), excluindo referências à medida que são revisadas e consideradas falsos positivos, ou copiando as referências para algum arquivo de relatório para revisar em detalhe ou fornecer a base para um relatório de bug.
A ferramenta é extremamente básica, em grande parte manual, e pressupõe conhecimento profundo de vulnerabilidades de segurança de aplicações e revisão de código. No entanto, tem as vantagens de ser relativamente rápida e confiável, e funcionar mesmo quando apenas parte do código está disponível.
CQ é Code Query, ou Sécurité, ou CQD, ou "Seek You".
CQ destina-se a ser usada em um contexto de revisão de código de segurança por especialistas humanos. Não se destina ao uso em cenários automatizados, embora possa ser aplicada nesse contexto.
CQ gera arquivos de texto simples, normalmente com uma ocorrência por linha, usando a convenção caminho completo:número da linha para representar localizações no código-fonte. Esse formato é usado para permitir facilidade de manipulação usando os utilitários padrão de linha de comando Unix, como grep, wc, sed e similares, e os recursos baseados em linha de muitos editores como vi, Sublime Text, Atom e Visual Studio Code.
O foco em relatar todos os itens de interesse resulta em uma ferramenta que encontrará muitos pontos de interesse em quase qualquer base de código, mas que também relatará um grande número de 'falsos positivos'. Esses falsos positivos podem ser removidos dos resultados por inspeção ou de forma automatizada, devido ao método de relatório baseado em linha.
Pouca ou nenhuma explicação dos problemas é fornecida; pressupõe-se que você esteja ciente do contexto, impacto e características dos problemas relatados.