Jugando con tus atacantes

61
Jugando con tus atacantes

Transcript of Jugando con tus atacantes

Page 1: Jugando con tus atacantes

Jugando con tus atacantes

Page 2: Jugando con tus atacantes

¿Quién soy?

Óscar J. PérezSeguridad en Big Data Fundador de Mad 4 Hacking

Page 3: Jugando con tus atacantes

Índice

1

2

3

Sistemas de seguridad

WAF

OWASP

4

5

ModSecurity

A practicar

Page 4: Jugando con tus atacantes

1. sistemas de seguridad

Protegiendo las máquinas

Page 5: Jugando con tus atacantes

Historia de los Firewall

...La seguridad de las redes se basan en la segmentación de las redes realizadas por los routers

1988Aparece en documentación interna de DEC las primeras referencias sobre Firewall

1990Se crea el primer Firewall de uso interno creado por DEC conocido como “DEC SEAL”

1993se presenta el primer navegador “NCSA Mosaic” para unix

1994Check Point saca al mercado el primer firewall comercial bajo el nombre de FireWall-1

2007Palo alto saca a la venta el primer Next-Generation Firewall (NGFW)

Page 6: Jugando con tus atacantes

Firewall

Estableciendo el Perímetro de seguridad

Page 7: Jugando con tus atacantes

Firewall DMZ

Perímetro de Seguridad ampliado

Page 8: Jugando con tus atacantes

Primera generación

○ Filtrado de paquetes (packet filter luego stateless)○ No verifican secuencia de trafico○ Dirección de origen/destino, el protocolo o el puerto○ Capas 1-3 OSI

– Ej. bloquear samba

Page 9: Jugando con tus atacantes

Segunda generación

○ Cortafuegos de estado (stateful inspection)○ “inspección de estado de paquetes”○ Permite el “estado” de una conexión (nueva, activa, no existente)

Page 10: Jugando con tus atacantes

Tercera generación

○ Cortafuegos de aplicación (application filtering)

○ Son mas lentos

○ Capa 7 OSI

○ Entiende el funcionamiento de varios protocolos

– EJ. Configurar para filtrar una palabra.

Page 11: Jugando con tus atacantes

Cuarta generación

○ Firewalls de nueva generación (NGFW)○ Este nivel de control permite una mayor flexibilidad.○ Con mejoras: IDS, IPS, control granular.

– EJ. aplican reglas como "LinkedIn pero no Facebook"

Page 12: Jugando con tus atacantes

“2016 Gartner cree que la adopción de firewalls virtuales

ha sido bastante lenta, prediciendo menos del 5%.

Page 13: Jugando con tus atacantes

“Futuro "Rutime Application Self-Protection” (RASP)

sustituto de la mayoría de las tareas del firewall de red

Page 14: Jugando con tus atacantes

2. WAFProtegiendo servicios HTTP

Page 15: Jugando con tus atacantes

La evolución de las app

Page 17: Jugando con tus atacantes

Securizar aplicaciones WEB

○ Ciclo de Vida de Desarrollo de Software (SDLC)○ Pruebas de aplicaciones Web○ Web Application Firewall (WAF)

Page 18: Jugando con tus atacantes

Diagrama de red clásico

El filtrado se realiza sobre los puertos de los servicios expuestos

Page 19: Jugando con tus atacantes

Diagrama de red actual

Se accede a los servicios por un front-end web

Page 20: Jugando con tus atacantes

Diagrama de red actual con WAF

Se añade una capa más de seguridad al añadir un WAF a la arquitectura de red

Page 21: Jugando con tus atacantes

WAF vs Firewall

Trabajan en capas ISO diferentes complementándose

Page 22: Jugando con tus atacantes

FuncionamientoWAF

Se controla el flujo tanto de subida como el de bajada

Page 23: Jugando con tus atacantes

Clasificación de WAF Modelos de seguridad

Negativas

Se permite todas las peticiones denegando únicamente las identificadas como amenaza

Positiva

Se deniega todas las peticiones a no ser que estén identificadas como validas.

Page 24: Jugando con tus atacantes

Características ventajas

Complementa al FWNo tiene que ser el sustituto del FW ya que se complementan uno al otro

Capa 7Analizan a nivel de capa de aplicación

Analiza, filtra y bloqueaEl tráfico del protocolo HTTP que gestionan los servicios web

ProtegeProtege de ataques como XSS, bots, SQL-injection, capture session, Trojans, session hijacking y mucho mas

Page 25: Jugando con tus atacantes

Características ventajas

EspecializadoSistema centrado en tecnologías HTTP, protegiendo los puntos mas críticos de interacción con el usuario en internet

Logs completosGenera bitácoras detalladas de las transacciones HTTP

Evolución IDS/IPSSon más bien una evolución de los IDS/IPS que de los Firewal

Rompe TLSAl poder romper TLS tiene una ventaja clara frente a los IDS/IPS

Page 26: Jugando con tus atacantes

Características desventajas

Test obligatorioRequiere de un periodo de pruebas y adecuación

Cuello de botellaPuede provocar problemas de cuello de botella

Cambio de reglasSi las aplicaciones web cambian puede que se requieraadecuar el WAF a los cambios

Latencia añadida Se añade latencia al sistema con el procesado de reglas. Por eso es muy importante solo aplicar las necesarias.

Page 27: Jugando con tus atacantes

Arquitectura WAFEmbebido

los que se basan en el servidor de aplicaciones

Page 28: Jugando con tus atacantes

Arquitectura WAFProxy

Son un elemento más de la red

Page 29: Jugando con tus atacantes

Productos en el mercado.

Privativos

Sophos Imperva Trustwave Fortinet Akamai

Open Source

ModSecurity IronBee NAXSI WebKnight Shadow Daemon

Page 30: Jugando con tus atacantes

3. OWASP

Page 31: Jugando con tus atacantes

“OWASP El proyecto abierto de seguridad en aplicaciones

Web

Page 32: Jugando con tus atacantes

Page 33: Jugando con tus atacantes

OWASP ModSecurity CRS

CRS (Core Rule Set)

Reglas gratuitas para el WAF

Page 34: Jugando con tus atacantes

OWASP ModSecurity CRS

- SQL Injection (SQLi)- Cross Site Scripting (XSS)

- Local File Inclusion (LFI)- Remote File Inclusion (RFI)- Remote Code Execution (RCE)- PHP Code Injection- HTTP Protocol Violations

- Shellshock- Session Fixation- Scanner Detection- Metadata/Error Leakages- Project Honey Pot Blacklist- GeoIP Country Blocking

Page 35: Jugando con tus atacantes

CRS 2.2.x vs CRS 3.0.0

○ @detectSQLi y @detectXSS○ Reputación IP

– ID 981140

– ID 981175

Page 36: Jugando con tus atacantes

Instalación y configuración de las máquinas con VagrantVagrant

A la consola

Page 37: Jugando con tus atacantes

Vagrant

○ Herramienta gratuita de línea de comandos

○ Para Virtual box, VMware, Amazon EC2, LXC, DigitalOcean

○ Evitar el “en mi ordenador funciona”

Page 38: Jugando con tus atacantes

Vagrant - Box

○ VM con SO instalado [paquetes extra]○ Añadir box vagrant box add {title} {url}○ Se guarda en ~/.vagrant.d/boxes○ Box descargador vagrant box list○ https://app.vagrantup.com/boxes/search

Page 39: Jugando con tus atacantes

Vagrant - Comandos○ Vagrantfile○ vagrant init○ vagrant up○ vagrant ssh○ vagrant suspend → vagrant resume○ vagrant status○ !!!vagrant destroy!!!

Nota: el directorio local es compartido con /vagrant

Page 40: Jugando con tus atacantes

Desplegar el entorno

A la consola

Page 41: Jugando con tus atacantes

4. ModSecurityFirewalling las aplicaciones Web

Page 42: Jugando con tus atacantes

“Known as the "Swiss Army Knife"

of WAFs

Page 43: Jugando con tus atacantes

Características

Open sourceLicencia Apache versión 2.0

Motor de reglasMotor de reglas basado de perl versión 5

Servidor webSe puede instalar en:- IIS- Ngix - Apache

Reglas específicas- Joomla- Wordpress- Etc

Versión 2.9.1Futura versión 3.0

AntivirusSe puede configurar con motores antivirus (Ej. ClanAV)

Page 44: Jugando con tus atacantes

Que puede hacer?

Real timeControl acceso y motorización en tiempo real, mecanismo de persistencia

Virtual patchingSistema de mitigación fuera de la capa de la aplicación

Full HTTP traffic loggingTiene la capacidad de registrar todo el flujo de datos tanto de subida como de bajada

Hardenig webPermite reducir la superficie expuesta por la app reduciendo funcionalidades HTTP sin uso request method|header ...

FlexibilidadNos permite realizar tareas más allá de ser una herramienta de seguridad

Page 45: Jugando con tus atacantes

Fases

Tiene 5 fases.

Las reglas se pueden activar en una o varias fases.

Page 46: Jugando con tus atacantes

Fases

1. Request_Header Después de leer las cabeceras de la petición

2. Request_BodySistema de mitigación fuera de la capa de la aplicación

3. Response_HeadersAntes de enviar las cabeceras de respuesta al cliente

4. Response_BodyAntes de enviar el cuerpo de la respuesta al cliente.Se pueden programar las reglas que impidan la fuga de información.

5. LoggingAntes de registrar la transacción.No se puede realizar ninguna acción, ya que la respuesta ya la tiene el cliente

Page 47: Jugando con tus atacantes

Anatomía de una regla

Secrule VARIABLES OPERADORES [Func Trans] ACCIONES

Solo la acción id es obligatoria

SecRule REQUEST_HEADERS:User-Agent "MSIE 5.0" "phase:1,deny"

Page 48: Jugando con tus atacantes

Variables

Identifica partes de una transacción HTTP para las reglas

Contienen RAW bytes de datos

Page 49: Jugando con tus atacantes

Tipos Variables

Scalar variablesCollectionsRead-only collectionsRead/Write collectionsSpecial CollectionsPersistent Collections

REMOTE_ADDRARGS

TXXML

Page 50: Jugando con tus atacantes

Operadores

Especifica como se va a analizar la variable

Solo uno por regla

Expresiones regulares es lo más habitual

@rx@contains@endsWith@streq

Page 51: Jugando con tus atacantes

Transformaciones

Puede existir mas de una por regla

Cambia al input antes de la ejecución de la regla

Page 52: Jugando con tus atacantes

Acciones

Especifica que tiene que hacer cuando una regla “matche”

allowblock (error page)deny (network errordropidmsg

Page 53: Jugando con tus atacantes

Configuraciones

- SecDataDir- SecUploadDir- SecTmpDirss

- SecRequestBodyLimit- SecResponseBodyLimit

- SecRuleEngine- SecContentInjection- SecStreamOutBodyInspection- SecResponseBodyAccess - SecDisableBackendCompression- SecRequestBodyAccess

Page 54: Jugando con tus atacantes

Audit log

A - audit log headerB - request headersC - request bodyD - intended response headerE - intended response bodyF - response headersG - response body

H - audit log trailerI - reduced multipart request body (C)

J - multipart files informationK - rules matched transaction

Z - audit log footer

Page 55: Jugando con tus atacantes

Audit log estandar

A - audit log headerB - request headers

F - response headers

H - audit log trailerK - rules matched transactionZ - audit log footer

SecAuditLogParts

Page 56: Jugando con tus atacantes

Instalación ModSecurity

- apt install apache2- apt-get install libapache2-modsecurity

- mv /etc/modsecurity/modsecurity.conf{-recommended,}- a2enmod headers- a2enmod proxy_http- systemctl restart apache2.service- a2enmod proxy_http

Page 57: Jugando con tus atacantes

Primera prueba con ModSecurityModSecurity

A la consola

Page 58: Jugando con tus atacantes

5. A practicarManos a la obra

Page 59: Jugando con tus atacantes

Jugando con DVWADVWA

A la consola

Page 60: Jugando con tus atacantes

A por los atacanteslos atacantes

A la consola