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.

21 noviembre, 2007

Usando Google para encontrar los passwords

Al parecer un blog del viernes Steven J. Murdoch del grupo del grupo de seguridad de la Universidad de Cambridge ha estado creando preocupación entre los desarrolladores de sitios de internet.

Básicamente, comenta que un hacker abrió una cuenta en uno de los sitios que Steven administra y logró obtener acceso administrativo. Siendo investigador, una de las cosas que le vino a la mente era buscar el password que el hacker había usado. Para esto uso algunas herramientas que tenia a la mano y desarrollo un programa en python para encontrar el password del hacker en base al md5 (hash) que tenía en la base de datos. Ningúno de estos funcionó, así que recurrio a Google y para su sorpresa al buscar el hash, google regresó varias páginas con el nombre Anthony.

Para aquellos que estén pensando que Google tiene algún algoritmo para descifrar el hash de md5, dejénme decirles que esto no es así para nuestra suerte. Lo que sucede es que muchas páginas usan los hash de los nombres de usuarios o similares en el url para ese usuario, así que al buscar Google regresa esa página por el URL y no es por que sabe que el nombre Anthony es el descifrado del hash de 20f1aeb7819d7858684c898d1e98c1bb. Así que no esperen encontrar muchas inversiones de hashes usando Google.

Hay dos buenos sitios web que pueden usar en lugar de Google para estos propósitos. Uno es md5(); que tiene cerca de 50 millones de hashes tanto en md5 como en sha1 en su base de datos. Otro es passcracking que a diferencia de md5(); lo que hace es utilizar rainbow tables clásicas e híbridas junto con diccionarios para descifrar el hash.

La lección de todo esto no es tanto lo que se puede hacer con Google, sino que hay que hacer un salt los passwords antes de cifrarlos o cifrarlos, luego hacer el salt y volver a cifrar para que no pueden encontrar los passwords de esta manera.

13 noviembre, 2007

Hacker y AntiHacker al mismo tiempo?

El ex encargado de seguridad de redes de una compañía telefónica de Los Angeles admitió haber adminsitrado una botnet de 250,000 máquinas. Conocido como "acid" o "acidstorm" en el mundo subterraneo del IRC, este encargado de seguridad de sistemas era el administrador de dos de los canales mas activos del IRC sobre botnets y junto con "pr1me" y "dynamic" tenían un botnet el cual utilizaban para robar cuentas de paypal y así comprar más web hosts para distribuir su troyano.

Al parecer el era parte de un grupo conocido como Defonic que entre otras cosas son famosos por infiltrarse a la cuenta del celular de Paris Hilton y robarse datos de mas de 310,00 personas de la base de datos de LexisNexis, incluyendo varias celebridades de Hollywood.

Hoy en día es difícil encontrar un buen asesor de seguridad de sistemas y menos con la experiencia de correr su propio botnet. ¿alguién está interesado en contratar un experto? ¿no? eso pense!