Análisis de aplicación: Skipfish Este documento ha sido elaborado por el Centro de Apoyo Tecnológico a Emprendedores bilib, www.bilib.es Copyright 2011, Junta de Comunidades de Castilla La Mancha. Este documento se distribuye bajo los términos de la licencia Creative Commons by sa. http://creativecommons.org/licenses/by sa/2.5/es/ Índice de contenido Análisis de aplicación: Skipfish... 1 DATOS TÉCNICOS...2 FUNCIONALIDAD... 3 USABILIDAD... 5 PORTABILIDAD / ADAPTABILIDAD... 6 RENDIMIENTO... 7 DOCUMENTACIÓN... 8 COMUNIDAD... 9 REFERENCIAS...10 Página 1 de 10
DATOS TÉCNICOS Nombre: Skipfish Versión: 2.07 Licencia: Apache License 2.0 Plataforma: GNU/Linux, FreeBSD, Mac OS X y Windows (mediante cygwin) Idioma: Inglés Web oficial: http://code.google.com/p/skipfish/ Manual: http://code.google.com/p/skipfish/w/list?can=1 Descripción básica: Skipfish es una aplicación de Google dedicada a explorar aplicaciones y portales web con el objetivo de encontrar posibles vulnerabilidades de seguridad que puedan ocurrir. Esta herramienta es un escáner de seguridad para aplicaciones web, con el añadido de intentar disminuir las alertas falsas generadas en otras plataformas. Página 2 de 10
FUNCIONALIDAD Realización de test para detectar defectos de bajo, medio y alto riesgo. Defectos de riesgo alto. Entre los test principales se encuentran la capacidad de analizar bases de datos utilizadas por el sitio web para analizar los parámetros configurados, así como la de detectar errores de formato en el código del sito web y comprobar las conexiones http generadas. Defectos de riesgo medio. En este apartado se analizan las directivas de cookies almacenadas en caché y los scripts CSS generados por el usuario y que puedan generar conflictos con la visualización de la página. Defectos de riesgo bajo. Se realizan análisis relacionados con el almacenamiento de credenciales de usuarios en el sitio web y la validez de los certificados SSL utilizados. Detección de alertas internas. Las alertas internas se encargan de detectar errores de búsqueda de ficheros pertenecientes a recursos de la aplicación web y realizar filtros por IP en el propio sitio web. Detección de fallos en enlaces. Facilita al usuario la búsqueda de servidores o enlaces que ya no se encuentran disponibles o que han sido redireccionados a otro lugar y utilizando un protocolo desconocido para el desarrollador de la web. Análisis de seguridad de la información Analiza el sitio web para buscar vulnerabilidades en los recursos utilizados por los usuarios del portal: ficheros del sitio web que no pueden ser accedidos por los usuarios o cuya seguridad puede verse comprometida cuando es éste quien envía dichos ficheros al portal, direcciones de correo externas que podrían no pertenecer a un usuario de la propia aplicación, etc. Capacidad para evitar ataque a claves por fuerza bruta La herramienta posee la capacidad para bloquear ataques por fuerza bruta que comprometan la seguridad de las claves de los usuarios. Por ello, esta aplicación posee mecanismos para analizar los campos de entrada de contraseñas y formularios y evitar así los ataques. Página 3 de 10
Fallos y/o carencias importantes A pesar de que esta aplicación se encuentra aún en desarrollo, posee dos carencias importantes que pueden poner en duda la seguridad de un portal web. Por un lado, la herramienta deja libre al usuario la capacidad de manipular las cookies lo que puede tener como consecuencia el control de los movimientos en la red de los usuarios. Por otro lado, la herramienta aún no está preparada para buscar errores relacionados con el desbordamiento del buffer, así como los generados a causa de programas de un tercero. Página 4 de 10
USABILIDAD Diseño de la interfaz La aplicación no posee interfaz gráfica alguna, por lo que todo el trabajo del usuario necesita ser llevado a cabo desde la ventana de comandos. De este modo, el usuario debe conocer todos los comandos y opciones necesarios para realizar cualquier tarea de análisis de seguridad en su página web. Facilidad de uso Para comenzar, Skipfish debe ser compilado antes de proceder a su instalación. Este proceso necesita de una serie de librerías que no son mencionadas en la página web de la aplicación, y que resulta de una dificultad añadida para usuarios inexpertos. Para descargar e instalar la serie de librerías que nos indican debemos de ejecutar los siguientes comandos: sudo apt-get install gcc make libc6 libc6-dev sudo apt-get install libidn11-dev libssl-dev build-essential zlibc zlib-bin libidn11 Antes de proceder a compilar y seguir con la guía oficial que se nos proporciona, debemos establecer las rutas de las librerías export CFLAGS= I/usr/include/ export LDFLAGS= L/usr/lib/ssl/engines L/usr/lib/ L/usr/lib/ssl/ Una vez realizada la instalación, Skipfish se ejecuta a través de comandos introducidos por consola, lo que hace que su dificultad se vea incrementada. Accesibilidad Esta aplicación no cuenta con herramientas que ayuden a la accesibilidad de los usuarios. Tan sólo es posible utilizar las herramienta que el sistema operativo ofrece para tal fin. Página 5 de 10
PORTABILIDAD / ADAPTABILIDAD Plataformas disponibles Puesto que Skipfish debe ser compilado antes de ser ejecutado y se encuentra escrito en un lenguaje de programación como es C, la aplicación se encuentra disponible para GNU/Linux, FreeBSD, Mac OS X y Windows, por lo que los usuarios podrían utilizar este conjunto de herramientas en cualquier máquina sin ningún tipo de problemas. Plugins Esta aplicación no dispone de plugins adicionales que puedan ser instalados. Página 6 de 10
RENDIMIENTO Equipo de pruebas Sistema operativo: Ubuntu 11.10 Oneiric Ocelot Procesador: AMD Opteron 244 Memoria RAM: 1 GB Tarjeta Gráfica: nvidia Corporation NV18GL Consumo de memoria El consumo de memoria de la aplicación Skipfish es bajo por lo que permite ofrecer un buen nivel de rendimiento. En Ubuntu, se obtiene un consumo de memoria de 13.6 MB aproximadamente si atendemos a los procesos que se están ejecutando en el sistema a través de la consola. Velocidad de ejecución La velocidad de ejecución de la aplicación es adecuada y pasan pocos instantes desde que se ejecuta la aplicación hasta que muestra los primero parámetros, por lo que no compromete el rendimiento de la máquina. Página 7 de 10
DOCUMENTACIÓN La aplicación Skipfish no dispone de sitio web oficial como tal, sino que se encuentra alojado en los repositorios de código de Google [1]. En esta página se nos ofrece gran cantidad de información tanto a nivel oficial [2] como a nivel de comunidad (Wiki) [3]. Sin embargo, la documentación posee el inconveniente de que sólo se encuentra disponible en inglés. A nivel oficial puede encontrarse información sobre las características que ofrece la aplicación y las carencias encontradas hasta la fecha, así como una lista de los comandos mas utilizados para realizar un examen correctamente. Al visitar la página de comunidad[3], encontramos información sobre problemas de compilación y otros relacionados. Página 8 de 10
COMUNIDAD Número de usuarios Puesto que la herramienta tan sólo puede descargarse a través de la página de descargas [4] habilitada para ello en el sitio oficial, puede ofrecerse un conteo aproximado del número de usuarios/descargas que actualmente se encuentran utilizando la aplicación. Si atendemos a la información estadística proporcionada en la página web oficial de descargas [4], encontramos una media de usuarios a fecha de 10/07/2012 de 3857 usuarios. Foros y portales de ayuda En los menús del sitio web de la aplicación [1] puede apreciarse un apartado que permite acceder a la Wiki [3], donde los usuarios pueden compartir los errores encontrados en la herramienta. No existe foro o blog oficial para la herramienta. Contribuciones Un usuario puede colaborar en este proyecto realizando reportes de bugs encontrados en la aplicación a través del sitio establecido para tal fin [5]. Frecuencia de versiones La versión inicial de Skipfish surgió en Marzo de 2010. Tras la aparición de la primera, se han ido sucediendo diferentes versiones con una frecuencia muy alta; en los últimos seis meses ya se han publicado cuatro versiones diferentes hasta encontrarse en la versión actual Skipfish 2.07b con publicación en Mayo de este año. Página 9 de 10
REFERENCIAS [1] http://code.google.com/p/skipfish/ [2] http://code.google.com/p/skipfish/wiki/skipfishdoc [3] http://code.google.com/p/skipfish/w/list [4] http://code.google.com/p/skipfish/downloads/list [5] http://code.google.com/p/skipfish/issues/entry Página 10 de 10