image47dd1de4

Buenas,

yo no soy muy amigo de las expressiones regulares, seguramente es porque salvo las más simples, suelen ser un infierno de caractéres en una single line que pueden ahorrarte trabajo pero darte más de un dolor de cabeza. Además sumado a la cantidad de ejemplos que hay en internet de diferentes expresiones regulares para todo tipo de escenarios, pues la cosa puede ir muy mal casi sin darte cuenta.

¿Por qué puede ir mal?, pues porque por más que no lo parezca, para resolver una RegExp, hay que procesar la misma y este proceso, dependiendo del dato de entrada puede dar lugar a tiempos de proceso muy largos o inclisve memory leaks.

¿A qué ahora no te parece tan bonito eso de copiar de internet una línea y ponerla en tu código?

El artículo de la MSDN Magazine: “Regular Expression Denial of Service Attacks and Defenses” trata este tema y además nos muestra como la mala implementación de RegExp puede llevar a ataques DoS.

Además, a partir del resultado de una evaluación de una RegExp podemos crear un bug directamente en Team Foundation Server 2010. Esta herramienta es parte de SDL (Security Development Lifecycle) y si bien la integración con TFS es mínima, nos pemite crear Bugs en Team Foundation Server.

Por ejemplo si analizamos la RegExp “^(\d|\d?)+$”, con uno de los formularios más feos que he visto en mucho tiempo:

image

A partir de la misma podremos crear un Bug en nuestro Team Project

image

con los campos:

Title: Exponential execution time in regular expression pattern ^(\d|\d?)+$

Description: The regular expression pattern ^(\d|\d?)+$ can operate in a worst-case exponential execution time, potentially causing a denial of service to the application.

y dejarlo como un punto a solucionar sin que se nos escape Open-mouthed smile

Asi que ya sabes, antes de utlizar una RegExp, darle un repaso con esta herramienta para analizar vulnerabilidades.

 

Saludos @ Here

El Bruno

   

Descarga: http://www.microsoft.com/download/en/details.aspx?id=20095

Referencia: http://msdn.microsoft.com/en-us/site/ff646973

Security Development LifeCycle: http://blogs.msdn.com/b/sdl/archive/2010/10/12/new-tool-sdl-regex-fuzzer.aspx

Leave a comment

Discover more from El Bruno

Subscribe now to keep reading and get access to the full archive.

Continue reading