¿Tú sitio está bien programado o es potencialmente peligroso?

La empresa Cenzic ha elaborado un completo informe detallando las amenazas y los números relacionados con la seguridad Web en 2009. Puedes descargar todo el documento en PDF desde aquí.

Voy a intentar hacer un pequeño resúmen con lo más interesante de este fantástico artículo de Smashing Magazine. Voy a mantener en inglés el nombre de los ataques para evitar confusiones, ya que es su terminología habitual.

Lo primero es saber que significa URI: Uniform Resource Identifier. Es la forma en la que introduces la ruta de un fichero en una URL en tu navegador.

ESQUEMA DE URI : PARTE JERARQUICA ? SOLICITUD # FRAGMENTO

Todas estas rutas son potencialmente accesibles, aunque algunas se bloquean para que no puedas acceder. Cada URI puede tener también parámetros, que son instrucciones que puedes enviar al script localizado en la URI colocando un símbolo de ? y separados por &.  Por ejemplo, si quieres buscar en Google “cachorros” puedes usar la siguiente URI:

http://www.google.com/search?q=cachorros

Y siquieres que busque por ejemplo a partir de los primeros 50 resultados:

http://www.google.com/search?q=cachorros&start=50

Mirando el código fuente de las páginas web puedes encontrar información sobre los parámetros que puedes insertar en estas URIs. Tienes que tener especial cuidado con tu página web y con estos parámetros que se pueden ejecutar.

Tipos de ataques:

SQL Injection: un atacante accede a tu base de datos enviando unos comandos SQL a tu servidor vía URI o un formulario. Uno de los que más sabe sobre este tema es Chema Alonso, aquí puedes ver una charla en la Defcon sobre este tipo de ataque.

Cross-Site Scripting (XSS): posiblemente este sea el más común de todos. Un atacante inyecta código Javascript dentro de tus documentos web (código) añadiendose al final de la URI como si fuera un parámetro o un formulario. En el artículo original puedes ver un ejemplo práctico de este tipo de ataques. En la web XSSED.org puedes ver un  listado de las webs vulnerables a este tipo de ataque.

Path Traversal: permitir path o directory traversal en tu servidor es realmente una mala idea. Si no asignas bien los permisos de acceso a toda la estructura de tu página web, un usuario podría acceder y navegar por todas las carpetas. Un ejemplo práctico en el artículo original.

Cross-Site Request Forgery (CSRF): es un exploit que permite acceder a ciertas funcionalidades sin comprobar ni saber qué usuario la ha iniciado. Aquí tienes un completo FAQ sobre este tipo de ataque.

Remote File Inclusion (RFI): un atacante se aprovecha de un fallo en tu web para inyectar código desde otro servidor para ejecutarlo en el tuyo. Es parecido al XSS pero más problemático porque tienes acceso completo a tu servidor por lo que cualquier código inyectado podría ejecutar comandos del servidor, bajar y subir ficheros, ver las contraseñas, etc …

Phishing: es una técnica para engañar a un usuario para que introduzca datos en un sitio web falso que aparenta ser seguro. El más usado es el típico correo que parece un banco solicitando tus datos de acceso al mismo.

ClickJacking: es una forma de usar CSS y frames para engañar de nuevo a los usuarios para que hagan click sin saber que lo están haciendo. Uno de los más famosos ha sido el “dont click me” de Twitter.

Todo el documento con más información y consejos en: Smashing magazine.

En BrainLabs, brindamos servicios de auditoria web, para que no tenga estos problemas. Consultenos en webmaster@brainlabs.com.

About The Author