Sunteți pe pagina 1din 8

Asignatura Datos del alumno Fecha

Seguridad en Apellidos:
Aplicaciones en
Línea Nombre:

Actividades

Trabajo: Instalación y pruebas del firewall de aplicaciones web


open source: MODSECURITY

Modsecurity es un WAF instalable embebido en HOST o como reverse proxy:

Figura 5. Modesecurity as reverse proxy http://adolfomaltez.wordpress.com/2011/05/29/apache-


reverse-proxy-modsecurity/

ModSecurity puede instalarse de forma embebida protegiendo un único servidor


Apache o como proxy inverso protegiendo varios servidores web. La instalación de
ModSecurity es la misma para estos dos tipos de despliegue, únicamente variará la
configuración de Apache que en el caso de querer proteger varios servidores se deberá
instalar en una máquina dedicada el servidor.

Apache con el módulo ModSecurity, configurando el servidor Apache para que actúe
como proxy inverso. ModSecurity realiza un filtrado de los datos de entrada y salida al
servidor web bloqueando todo el tráfico que considere malicioso según unas reglas
definidas.

Cada una de las peticiones realizadas al servidor web son inspeccionadas por
ModSecurity para comprobar que no llegue al servidor web ningún contenido no
autorizado. En este ejercicio se va a instalar, configurar y probar
ModSecurity protegiendo la aplicación web Mutiliidae.

1. Instalación del entorno

TEMA 2 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos:
Aplicaciones en
Línea Nombre:

Descarga e instala Oracle VM VirtualBox desde:


http://www.oracle.com/technetwork/es/server-storage/virtualbox/downloads/index.html

Descarga Máquina Virtual lamp que contiene: Linux Ubuntu server + Apache + Mysql
+ Php (LAMP) y aplicación web php MUTILLIDAE desde:
https://drive.google.com/open?id=0Bz7Tp_tMynwpTVJSZWxYS3RXOHc

La máquina virtual tiene dos dispositivos de red ya configurados:


» Eth0: NAT
» Eth1: 192.168.2.3

Configura el adaptador de red virtual de la máquina local anfitriona (adaptador de


red ORACLE VM VIRTTUALBOX) con la dirección 192.168.2.4, para tener
conectividad con el servidor Ubuntu de la MV.

Se recomienda realizar una copia instantánea (snapshot) o clonar la MV lamp a otra


que nombraréis fwmodsecurity. De esta última forma se tendrán dos máquinas: una
sin modsecurity y otra con modsecurity instalado. Las pruebas se realizarán contra
las dos máquinas por separado o en la misma máquina (opción sanpshot) activando-
desactivando el firewall modsecurity.

Instala el firewall de aplicaciones web modsecurity+modevasive en la MV


fwmodsecurity:

sudo apt-get update (actualizar repositories de software)


sudo apt-get install libapache2-mod-security2 libapache2-modsecurity
libapache2-mod-evasive

Para habilitar las reglas mod_security, copier el fichero de configuración


mod_security, editarlo y establecer el parámetro ‘SecRuleEngine’ a On:

sudo cp /etc/modsecurity/modsecurity.conf{-recommended,}

TEMA 2 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos:
Aplicaciones en
Línea Nombre:

sudo nano /etc/modsecurity/modsecurity.conf


SecRuleEngine On

SecRequestBodyLimit 32768000
SecRequestBodyInMemoryLimit 32768000

SecResponseBodyAccess Off

Las reglas modsecurity están en:

/usr/share/modsecurity-crs/base_rules
/usr/share/modsecurity-crs/optional_rules
/usr/share/modsecurity-crs/experimental_rules

Descargar OWASP modsecurity Core Rule Set:

sudo git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git


sudo mv /usr/share/modsecurity-crs /usr/share/modsecurity-crs.bak
sudo mv owasp-modsecurity-crs /usr/share/modsecurity-crs
sudo mv /usr/share/modsecurity-crs/modsecurity_crs_10_setup.conf.example
/usr/share/modsecurity-crs/modsecurity_crs_10_setup.conf
sudo ln -s /usr/share/modsecurity-crs/base_rules/*.conf
/usr/share/modsecurity-crs/activated_rules/

Comentar líneas (carácter # al comienzo de línea) 20, 27, 29 del fichero


modsecurity_crs_35_bad_robots.conf (esto ocurre porque la versión de reglas es
posterior a la de modsecurity y este no está preparado para unas pocas acciones, se
podría instalar una versión de reglas más antigua o mejor comentar las directivas
siguientes. Si en el momento de la instalación de modsecurity, su versión ha
cambiado con respecto a esta, es posible que sean otras reglas las que haya que
comentar, la información de reglas a comentar aparece en pantalla al reiniciar el
servicio apache2):

#SecRule REQUEST_HEADERS:User-Agent "@pmFromFile


modsecurity_35_scanners.data" \
#SecRule REQUEST_HEADERS:User-Agent "@pmFromFile
modsecurity_35_bad_robots.data" \
#SecRule REQUEST_HEADERS:User-Agent “(?i:?:c … \

Comentar línea: buscar la cadena dentro del fichero:


“modsecurity_40_generic_attacks.conf” y comentar esa línea:

TEMA 2 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos:
Aplicaciones en
Línea Nombre:

sudo nano /usr/share/modsecurity-


crs/activated_rules/modsecurity_crs_40_generic_attacks.conf
#SecRule REQUEST_COOKIES|!REQUEST_COOKIES:/__utm/|!REQUEST_COOKIES:/_pk_ref/|
REQUEST_COOKIES_NAMES|ARGS_NAMES|ARGS|XML:/* "@pmFromFile
modsecurity_40_generic_attacks.data" \

Comentar línea: buscar la cadena dentro del fichero:


“modsecurity_50_outbound.conf” y comentar esa línea:

sudo nano /usr/share/modsecurity-


crs/activated_rules/modsecurity_crs_50_outbound.conf
#SecRule RESPONSE_BODY "!@pmFromFile modsecurity_50_outbound.data" \

Editar /etc/apache2/mods-enabled/security2.conf:

sudo nano /etc/apache2/mods-enabled/security2.conf

Añadir al final de security2.conf:

<ifmodule security2_module>
IncludeOptional /etc/modsecurity/*.conf
IncludeOptional "/usr/share/modsecurity-crs/*.conf"
IncludeOptional "/usr/share/modsecurity-crs/activated_rules/*.conf"
</IfModule>

Configurar módulo mod_evasive:

Sudo nano /etc/apache2/mod-enabled/mod-evasive.conf

<ifmodule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 10
DOSSiteCount 30
DOSPageInterval 1
DOSSiteInterval 3
DOSBlockingPeriod 3600

TEMA 2 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos:
Aplicaciones en
Línea Nombre:

DOSLogDir /var/log/apache2/mod_evasive.log
</ifmodule>

Crear fichero de log para mod_evasive:

touch /var/log/apache2/mod_evasive.log
sudo chown www-data:www-data /var/log/apache2/mod_evasive.log

Cargar módulos en Apache:

sudo a2enmod headers


sudo a2enmod evasive
sudo a2enmod security2

Reinicio de Apache2 web server:

sudo service apache2 restart

Comprobar si están actives:


sudo apachectl -M | grep security2
security2_module (shared)

sudo apachectl -M | grep evasive


evasive20_module (shared)

Instalar las herramientas HOIC, LOIC en la máquina anfitriona para realizar ataques
de denegación de servicio distribuidos DDOS contra la aplicación web MUTILLIDAE
situada en la MV:

HOIC: http://sourceforge.net/projects/highorbitioncannon/?source=typ_redirect
LOIC: http://sourceforge.net/projects/loic/

PD: los antivirus dan alerta cuando se descargan, no pasa nada, se obvia la alerta.

Más información sobre ataques y herramientas DDOS en:


Ataques DDOS:

TEMA 2 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos:
Aplicaciones en
Línea Nombre:

http://resources.infosecinstitute.com/dangerous-ddos-distributed-denial-of-service-
on-the-rise/
Herramientas DDOS:
http://resources.infosecinstitute.com/dos-attacks-free-dos-attaking-tools

2. Pruebas de funcionamiento de modsecurity:

Con el objetivo de comparar los efectos conseguidos mediante ataques a la aplicación


mutillidae, hay que llevar a cabo las siguientes pruebas en cada una de las dos
máquinas por separado (lamp, fwmodsecurity). Debido a que tienen la misma
dirección IP, hay que realizar las pruebas con una sola máquina virtual arrancada.

Se arranca una máquina, se pasan todas las pruebas, se monitorizan y se recogen


resultados; y, posteriormente, se realiza la misma operación con la otra máquina. También
se puede utilizar solo la máquina fwmodsecurity habilitando y deshabilitando el firewall
mediante el parámetro SecRuleEngine On/Off en /etc/modsecurity/modsecurity.conf

Comprobar:

» Accede al servidor Apache desde el navegador de la máquina local mediante la


dirección IP de la máquina Ubuntu server donde está instalado el servidor Apache.
Si está correctamente instalado MODSECURITY prohibirá el acceso, ya que existe
una regla que impide acceder mediante dirección IP. Solo se permite por defecto
acceso mediante nombres de dominio con DNS configurado. Para permitir el acceso
mediante dirección IP el alumno deberá deshabilitar la regla que impide tal acceso y
comprobar posteriormente que ya se permite acceder mediante dirección IP.

» Después de deshabilitar la regla anterior, comprobar el acceso a


http://192.168.2.3/../../../etc/passwd mediante la herramienta ncat
(https://nmap.org/ncat/, o también disponible en Kali linux) para evitar que el
navegador pueda suprimir los caracteres../. Se debería prohibir el acceso. Localizar
el mensaje de LOG donde se especifica la regla que impide el acceso y mostrarlo en
la memoria.
TEMA 2 – Actividades © Universidad Internacional de La Rioja (UNIR)
Asignatura Datos del alumno Fecha
Seguridad en Apellidos:
Aplicaciones en
Línea Nombre:

Ataques

» Explota al menos 5 vulnerabilidades OWASP 2013-2010-2007 manualmente o con


ayuda de una herramienta como ZAP o similar (DAST): SQLI, XSS, OPEN
REDIRECT, LFI…

» Mediante las herramientas HOIC y LOIC realiza ataques de denegación de


servicio distribuidos DDOS desde la máquina anfitriona a la aplicación
mutillidae instalada en las máquinas virtuales. Para realizar los ataques de DDOS y
que tengan éxito, es conveniente dirigirlos a aquellas partes de la aplicación que sean
más vulnerables a ataques DDOS por consumir más recursos al ser requeridas por el
usuario. Por ello, se debe investigar un poco la aplicación para configurar las URLs
más vulnerables y dirigir los ataques hacia ellas. Además, hay que estudiar como
parametrizar los ataques con cada herramienta.

Mediante distintos métodos como aplicados en todas las capas de la aplicación:


» Comando TOP de Linux.
» Log de la aplicación de mutillidae:
 http://192.168.2.3/mutillidae/index.php?page=show-log.php
» Log de S.O. Linux  /var/log/…
» Log de apache/modsecurity/modevasive  /var/log/apache2…
» Phpmyadmin: http://192.168.2.3/mutillidae/phpmyadmin/  mysql estado actual.
» Aplicación wireshark instalada en la máquina anfitrión para grabar estadísticas de
tráfico durante los ataques. Para uso de wireshark consultar: 
https://www.incibe.es/CERT/guias_estudios/guias/guia_wireshark
» …

Entregable

Se debe confeccionar una memoria explicando lo realizado, resaltando el análisis


comparativo de los ataques realizados contra cada una de las máquinas.

Se referenciarán pantallas, logs, capturas, etc. que irán en un anexo al final. Por tanto,
se debe aportar en un anexo aparte copias de pantallas con resultado de comandos,

TEMA 2 – Actividades © Universidad Internacional de La Rioja (UNIR)


Asignatura Datos del alumno Fecha
Seguridad en Apellidos:
Aplicaciones en
Línea Nombre:

logs, capturas de wireshark, navegador, herramientas DDOS, etc. que demuestren la


realización correcta del ejercicio.

Extensión máxima: (sin contar anexos) 15 páginas (fuente Georgia 11 e interlineado


1,5).

Debe contener: índice, apartados con contenido principal, conclusiones y referencias.

Entrega un fichero en formato Zip o Rar, con la memoria + anexo.

TEMA 2 – Actividades © Universidad Internacional de La Rioja (UNIR)

S-ar putea să vă placă și