26 noviembre, 2007

Nueva certificación sobre seguridad para programadores

Mantener una red libre de intrusos es todo un reto, esto se debe en gran parte a la cantidad de vulnerabilidades en los programas instalados. La mayoría de estas vulnerabilidades tienen que ver con código mal diseñado. Es por esta razón que el SANS, CERT, agencias del gobierno de USA y las empresas de USA, Japón, India y Alemania han creado la certificación GIAC Secure Software Programmer.

El 5 de diciembre empiezan a aplicar los primeros exámenes en Londres y después en USA. No hay todavía nada programado para Latino América. Originalmente estos exámenes sólo van a estar disponibles para Java y C, más adelante piensan incluir C++, .Net, Pear y PHP.

Han desarrollado 3 versiones del examen. La primera es para certificarse, la cuál va a ser administrada 2 veces al mes y los resultados van a estar disponibles vía web con una clave. Hay una segunda versión para empresas que una vez registradas con SANS pueden utilizar para probar a sus programadores, a los candidatos y consultores. Esta versión no sirve para certificarse, sólo para probar el nivel de experiencia. Una tercera versión, la de acceso abierto, dirigido a estudiantes, pequeñas empresas y similares. Las preguntas de este último no se usarán en ninguna otra versión para que no tengan ventaja sobre los que hagan los exámenes de prueba. El banco actual de preguntas es de cerca de 1,200.

Estas son excelentes noticas para la mayoría de los que programamos, ya que en las universidades o en los cursos o libros comunes no enseñan a crear código seguro. Aquí en México el problema es mayor pues es casi imposible encontrar libros sobre como programar código seguro, y siempre he tenido que recurrir a Amazon para conseguirlos, mientras que conocidos han querido tomar cursos pero no han encontrado ninguno. Con este nuevo examen se van a facilitar las cosas.

Por un lado gracias al material que ya han puesto en línea para estos exámenes, podemos empezar a conocer los diferentes tipos de vulnerabilidades, como el handbook de Java y el de C, las pruebas de práctica de C y de Java, y el sitio de CERT para código seguro que tiene varios recursos para C++. En un futuro veremos libros y cursos creados por diferentes empresas para entrenarse para la certificación lo cual facilitará más el acceso a este material.

He notado que muchas empresas no le dan importancia al hecho de que sus programadores tienen que aprender a crear código más seguro y rara vez incluyen esto en sus lista de requerimientos a la hora de reclutar. No sólo eso, sino que, varios programadores en nuestro país enfrentados al hecho de que no hay mucho material fácil de digerir, prefieren darle la espalda al tema y dejárselo a los “expertos”. Esperemos que esta nueva certificación empiece a cambiar las cosas.

Cómo mínimo, si programan hay 3 cosas que deben de evitar siempre. Aceptar datos ingresados por parte del usuario sin revisarlos y limpiarlos, por ejemplo unas “” en SQL pueden crear graves problemas. Esta vulnerabilidad es la base de XSS, inyecciones de SQL, ejecución de remota de comandos e inclusión remota de archivos. La segunda es dejar que se ingresen datos al buffer mayores al tamaño del mismo. Cerca de la mitad de los ataques más importantes el año pasado se basaron en esta vulnerabilidad para crear un “buffer overflow”. Finalmente, otra cosas que deben cuidar es sus variables de números enteros (integers). Al hacer conversiones de tipo (type) o al no revisar los rangos de la variable se puede crear una vulnerabilidad de “integer overflow” las cuales han plagado a IE, Java RE, Quicktime y otros.

Si quieren saber más sobre estos exámenes y revisar los recursos disponibles visiten el sitio de SANS-SSI.

No hay comentarios.: