
CQ, un escáner de seguridad de código
Code Query, una herramienta universal de escaneo de seguridad de código.
CQ escanea código en busca de vulnerabilidades de seguridad y otros elementos de interés para revisores de código centrados en seguridad. Genera archivos de texto que contienen referencias a los problemas encontrados, en un directorio de salida. Estos archivos de salida pueden luego revisarse, filtrarse con herramientas de línea de comandos Unix como grep, o usarse como medio para 'saltar' al código fuente en la referencia archivo:línea especificada.
Un modo de uso popular es considerar los archivos de salida como una lista de 'tareas pendientes', eliminando referencias a medida que se revisan y se consideran falsos positivos, o copiando las referencias a algún archivo de informe para revisarlas en detalle o para proporcionar la base de un informe de errores.
La herramienta es extremadamente básica, en gran medida manual, y asume un conocimiento profundo de las vulnerabilidades de seguridad de aplicaciones y de la revisión de código. Sin embargo, tiene las ventajas de ser relativamente rápida y fiable, y de funcionar incluso cuando solo se dispone de código parcial.
CQ es Code Query, o Sécurité, o CQD, o "Seek You".
CQ está pensado para ser utilizado en un contexto de revisión de seguridad de código por expertos humanos. No está pensado para su uso en escenarios automatizados, aunque podría aplicarse en ese contexto.
CQ genera archivos de texto plano, normalmente con un hallazgo por línea, utilizando la convención ruta completa:número de línea para representar ubicaciones en el código fuente. Este formato se utiliza para permitir una fácil manipulación con las utilidades estándar de línea de comandos Unix, como grep, wc, sed y similares, y con las funciones basadas en líneas de muchos editores como vi, Sublime Text, Atom y Visual Studio Code.
El enfoque en reportar todos los elementos de interés da como resultado una herramienta que encontrará muchos puntos de interés en casi cualquier código fuente, pero que también reportará un gran número de 'falsos positivos'. Estos falsos positivos pueden eliminarse de los resultados ya sea mediante inspección o de forma automatizada, gracias al método de reporte basado en líneas.
Se proporciona poca o ninguna explicación de los problemas; se asume que eres consciente del contexto, impacto y características de los problemas reportados.