El reciente ataque hacker a la plataforma online de Sony Playstation y Microsoft xbox ha puesto de total actualidad el tema de la seguridad en internet. En el caso de Sony, el ataque ha supuesto el cierre temporal de su plataforma de juegos online, desde hace tres semanas, con el consiguiente perjuicio económico y de reputación.

Las empresas con fuerte presencia en internet cada vez prestan más atención a la seguridad, a menudo contratando auditorías, en las que pone a prueba sus sistemas de protección y se asesora sobre cómo ser más seguros.

 

Este tipo de auditorías pueden ser de tres tipos:

  • Caja negra (solo se conoce la IP y el nombre de la organización),
  • Caja gris (se conoce algo de la infraestructura)
  • Caja blanca (se conoce totalmente el sistema a “atacar”).

Las fases de la auditoría son:

  • Obtención de información
  • Detección de vulnerabilidades
  • Explotación de vulnerabilidades
  • Solución y recomendaciones

La auditoría se realiza atendiendo a  3 capas:

  • Nivel de red.
  • Nivel de sistemas.
  • Nivel de aplicaciones.

A partir de toda esta información se realizan dos informes, un informe técnico (de cara a técnicos y desarrolladores) y un informe ejecutivo (de cada a directivos y responsables).

Los ataques realizados por los hackers suelen centrarse en dos métodos,  el SQL Injection y el XSS (Cross Site Scripting).

El primero de ellos consiste en usar los formularios sobre cuyos campos no se realice validaciones antes de realizar consulta a la base de datos. Ejemplos de ello puede ser el campo de búsqueda de un buscador o los cambios usuario/password de un formulario de login. Se suelen provocar errores para que el servidor nos devuelva más información sobre vulnerabilidades. Este tipo de vulnerabilidad es muy peligrosa ya que “permite” acceso a la base de datos.

El XSS es un tipo de vulnerabilidad que permite la ejecución de código malicioso en el navegador del cliente. Por tanto, la vulnerabilidad no va dirigida al servidor, si no que éste se usa como mecanismo para llegar hasta el usuario. De esta manera se puede obtener cualquier información que se desee de la víctima.

Para ayudar a este tipo de técnicas existe multitud de herramientas. Desde aplicaciones de escaneo de puertos y obtención de información (por ej.: NMAP, Paros proxy), pasando por extensiones para navegadores (por ej.: tamper data para firefox), hasta distribuciones completas basadas en Linux (BackTrack, WifiSlash…), que pueden ser instaladas o ejecutadas mediante LiveCD/LiveUSB.

Aunque parezca mentira, este tipo de agujeros de seguridad, que parecen triviales, son muy comunes de ver en servidores de producción. Conviene aplicar una serie de acciones:

  • Formación a desarrolladores (reducción del 70% de los fallos)
  • Seguridad en la planificación del proyecto (reducción del 10% de los fallos)
  • Herramientas de revisión de código (reducción del 10% de los fallos)
  • Metodología de desarrollo seguro (reducción del 8% de los fallos)
  • Hacking ético de la aplicación (reducción del 1% de los fallos)

A parte de las soluciones anteriores, conviene siempre la revisión del código, para buscar:

  • Control de la entrada: validar todas las entradas
  • Gestión de memoria: desbordamiento de buffers (más raro de ver)
  • Estructura interna y diseño del programa.
  • Llamadas a recursos externos: bibliotecas, scripts…
  • Control de la salida: formato, restricciones…
  • Problemas de los lenguajes de programación
  • Otros: algoritmos criptográficos, de autentificación…

Existen certificaciones relativas a la seguridad de sistemas. Tanto de temas estrictamente técnicos como en cuanto a gestión de equipos de seguridad. Algunos de los organismos que emiten estas certificaciones son OSSTMM (OPST, OPSA, OPSE), ISC2 (OSCP, CISSP), ISACA (CISA, CISM) y ECH.

Las empresas deben  invertir en formación y planificación para que al término del desarrollo de un sistema de información se obtenga un producto lo más seguro posible. Como se desprende en los datos anteriores, solo un 1% de los errores son subsanados a raíz de la realización de técnicas de hacking ético y sin embargo se puede reducir hasta un 70% los errores con una buena formación de los desarrolladores.

Autor: Jose Ignacio Honrado.