miércoles, 22 de julio de 2009

Nueva herramienta de chequeo de código fuente

Acaba de salir el "prototipo" de una nueva herramienta de escaneo de código fuente de tipo RAT (Rough Auditing Tool for Security) desarrollada en Perl para el chequeo de vulnerabilidades en el código de programación propio o ajeno. Este proyecto se llama GRaTS (Graphical RATS and Taint Scanner) y está dirigido por Dan Crowley.

La versión actual todavía no es gráfica (Graphical RAT) pero en breve lo será. Este software audita el código fuente buscando bugs de programación que puedan causar agujeros de seguridad en forma de vulnerabilidades mediante diferentes tipos de análisis como: Taint analysis (Análisis de posible corrupción de variables o funciones), Static code analysis, Manual code review, revisión del tiempo de vida de variables, etc.

Vamos algo que se debería de hacer de forma concienzuda antes de lanzar actualizaciones y nuevos programas por parte de muchos fabricantes, que posteriormente tras su lanzamiento demuestran tener vulnerabilidades importantes que afectan a desbordamientos de memoria o pila u otros más graves.

Esta herramienta se puede descargar en el siguiente link para su evaluación: GRaT

Este es un ejemplo de la salida del comando actualmente:

H:\grats_prototype>rats source.c

Entries in c database: 310
Analyzing source.c

source.c:10: High: fixed size local buffer
source.c:335: High: fixed size local buffer
Extra care should be taken to ensure that character arrays that are allocatedon the stack are used safely. They are prime targets for buffer overflowattacks.

source.c:49: High: gets
source.c:83: High: gets
Gets is unsafe!! No bounds checking is performed, buffer is easily overflowableby user. Use fgets(buf, size, stdin) instead.

source.c:199: High: strcpy
source.c:342: High: strcpy
Check to be sure that argument 2 passed to this function call will not copymore data than can be handled, resulting in a buffer overflow.

Total lines analyzed: 371
Total time 0.015000 seconds
24733 lines per second

No hay comentarios: