
Escáner basado en expresiones regulares para detectar credenciales codificadas en bases de código, diseñado para integración en CI/CD con soporte de comentarios de supresión y bajas tasas de falsos positivos.
Este script está diseñado para escanear una base de código grande y diversa en busca de credenciales codificadas, o credenciales presentes en archivos de configuración. Estas representan un grave problema de seguridad y pueden ser extremadamente difíciles de detectar y gestionar.
El enfoque específico de este script es crear una herramienta que pueda ser utilizada directamente por los equipos de desarrollo en un pipeline de CI/CD, para gestionar el proceso de remediación de este problema alertando al equipo cuando haya credenciales presentes en el código, de modo que el equipo pueda solucionar los problemas inmediatamente a medida que surjan.
Es posible aplicar la herramienta como un escáner puntual para este problema, pero - dado que es probable que las credenciales vuelvan a aparecer en la base de código con el tiempo - recomendamos encarecidamente la integración del script en el proceso de CI/CD, el mecanismo de compilación automatizada o cualquier otro proceso de escaneo automatizado programado regularmente que el equipo realice.
El script está escrito con los siguientes objetivos en mente:
El script intenta proporcionar cierta compatibilidad con otras herramientas SAST populares.
El texto al inicio o cerca del inicio de un archivo '# noqa file' suprimirá la notificación de cualquier problema adicional en ese archivo, al igual que el texto 'flake8: noqa'.
El texto en una línea individual de '# noqa' suprimirá la notificación de problemas en esa línea. Muchos otros comentarios de supresión comunes también funcionarán; la lista actual es:
# noinspection
# noqa
#noqa
@SuppressWarnings
DevSkim
NOLINT
NOSONAR
checkmarx
coverity
fortify
noinspection
nosec
safesql
veracode
También recomendamos el uso del comentario '# noqa cred', para dejar claro a los miembros del equipo que es específicamente la presencia de una credencial la razón del falso positivo. Muchas de las herramientas referenciadas aquí (por ejemplo, devskim) utilizan códigos de error específicos relacionados con las herramientas propias del lenguaje o plataforma en uso, que sirven para el mismo propósito. Es posible que la misma línea de código tenga múltiples errores de diferentes tipos.
Advertimos que es una práctica extremadamente mala suprimir una alerta de una herramienta SAST que es un verdadero positivo. Es una buena práctica revisar periódicamente los comentarios de supresión de SAST/lint en una base de código para asegurarse de que no se hayan suprimido 'verdaderos positivos'.
El indicador de línea de comandos '-nosuppress' hace que el script ignore todos los comentarios de supresión.