Expresiones regulares SAST

A continuación se recopilan expresiones regulares para descubrimiento de vulnerabilidades. Son ideas para buscar problemas de seguridad durante la realización de pruebas SAST (Static Application Security Testing) y también como buen complemento a pruebas DAST (Dynamic Application Security Testing).

Hay que tener en cuenta que pueden interferir factores externos, por ejemplo yo suelo usar vscode (visual studio code) como IDE y su funcionalidad de búsqueda que funciona bastante bien. La opción de expresiones regulares en este caso es insensible a mayúsculas/minúsculas.

#Puntos del código relacionados con gestión de datos sensibles/secretos:
(passw|pass[^a-zA-Z]|pwd|contras|secre|clave|key[^a-zA-Z]|encr|cifra|creden|encode|ciphe|saml|iban|banca|cert|firma|cuenta|account)

#Potencial impresión de secretos a log:
([^a-zA-Z]logger\.|[^a-zA-Z]log\.).*(pass|pwd|contras|secre|clave|key|encr|cifra|creden|encode|ciphe|saml|iban|banca|cert|firma|cuenta|account|toString)

#Potencial empleo de criptografía débil:
([^a-zA-Z0-9]MD[2456]|(sha[\-1][^25])|[^a-zA-Z]DES[\/"]|[^a-zA-Z]ECB[\/"]|Base64\.)

#Buscar puntos problemáticos en Java:
(\.sendRedirect\(|jdbc:|\.exec\(|[",]dc=|\.getEngineByName\(|[ "]FROM.*".*\+|DocumentBuilderFactory|KeyPairGenerator| File[\.\(]|\.Random|byte\[.*(salt|[^a-zA-Z]iv|iv[^a-zA-Z]|key))

#Buscar puntos problemáticos en JavaScript - Angular:
(bypassSecurityTrust)


Link para pruebas/validación de regex: https://regex101.com/

Estas expresiones regulares para descubrimiento de vulnerabilidades, son ideas para buscar problemas de seguridad en código fuente. Por mucho que queramos simplificar el proceso y elegir algunas generales, como por ejemplo las que vienen incluidas en herramientas automáticas como SonarQube, Snyk, etc… Su máximo provecho se obtiene de su personalización al contexto concreto del proyecto software, ya que sus resultados pueden verse influidos por la idiosincrasia concreta de un idioma, subjetividad o estilo de un desarrollador concreto, código de terceros empleado, librerías ( frameworks, etc… ), etc…

Intentaré ir recopilando y compartiendo algunas que use, si te interesa y puedes compartirme alguna tuya, darme ideas para mejorar las existentes, no dudes en contactarme.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.

error: