
CQ, um scanner de segurança de código
Code Query, uma ferramenta universal de varredura de segurança de código.
CQ verifica 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 aos problemas encontrados, em um diretório de saída. Esses arquivos de saída podem então ser revisados, filtrados por ferramentas de linha de comando do Unix, como grep, ou usados como meio de 'saltar' para o código-fonte na referência file:line 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, seja para revisão detalhada ou como base para um relatório de bug.
A ferramenta é extremamente básica, em grande parte manual, e presume conhecimento profundo de vulnerabilidades de segurança de aplicações e revisão de código. Ela tem, no entanto, as vantagens de ser relativamente rápida e confiável, e de funcionar mesmo quando apenas parte do código está disponível.
CQ é Code Query, ou Sécurité, ou CQD, ou "Seek You".
CQ é destinado a ser usado em um contexto de revisão de segurança de código por especialistas humanos. Ele não é destinado a uso em cenários automatizados, embora possa ser aplicado nesse contexto.
CQ gera arquivos de texto simples, normalmente com um achado 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 com os utilitários padrão de linha de comando do 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 reportar todos os itens de interesse resulta em uma ferramenta que encontrará muitos pontos de interesse em quase qualquer código-fonte, mas que também reportará 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 linhas.
Pouca ou nenhuma explicação dos problemas é fornecida; presume-se que você esteja ciente do contexto, impacto e características dos problemas reportados.