mod security

12

Click here to load reader

Upload: manuel-carrasco-monino

Post on 21-Jun-2015

1.816 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Mod security

Manuel Carrasco Moñino

HotelSearch.comEnero-2010

Seguridad de Aplicaciones Web

[email protected]

Page 2: Mod security

Servidores Web

Servidores Web son los principales objetivos Porque es el servicio mas utilizado Porque los FW no bloquean el puerto 80/443

Vulnerabilidades Servidor: bugs, configuracion, exploits Aplicaciones: mal desarrolladas, con prisas,

desarrolladores sin conocimientos de sistemas.

Normalmente la seguridad se delega a: FW + Detect. Intrusos (nivel 3, logs ...) SSL

Page 3: Mod security

Peligro: El Servidor Web

Bugs y agujeros configuracion Punto de entrada para ataque interno Permisos usuario web

Prevencion Minimos privilegios Chroot Monitorizacion (quien, cuando) Actualización frecuente (no suficiente)

Page 4: Mod security

Peligro: Aplicaciones

Defectos de aplicacion XSS, html incrustado Inyección SQL Buffer overflow DOS

Prevencion Concienciar desarrolladores Validaciones en aplicacion Detectores HA, monitorización

Page 5: Mod security

Peligro: Usuario

Robar informacion sensible Passwords Tarjetas Cookies

Prevencion Https Concienciar al usuario

Page 6: Mod security

Filtro: mod_security

Opensource, Sourceforge (no apache) Nivel de aplicacion:

http/ftp/https GET, POST … Request, Response

Deteccion y prevencion Reglas y patrones Sin intervención de desarrolladores Actualizacion de reglas: modsecurity.org

Page 7: Mod security

Funcionalidades: mod_security

Peticiones Expresiones regulares en Query String Análisis de la petición POST

Respuestas Analiza y modifica mensajes de servidor

Normalización (anti evasion) Parámetros Url, nulos, //, ..,

Page 8: Mod security

Configuracion: mod_security

<IfModule mod_security.c>  SecRuleEngine On  SecAuditEngine RelevantOnly  SecAuditLog /var/log/apache2/audit_log  SecDebugLog /var/log/apache2/modsec_debug_log  SecDebugLogLevel 3  SecRequestBodyAccess On  SecDefaultAction "phase:2,pass,log,auditlog"  SecRule REQUEST_METHOD "!^(?:GET|POST|HEAD)$" \     "phase:1,t:none,deny,status:500"  SecRule REQUEST_URI "login_failed\.php" \      log,exec:/usr/bin/manolo_mod_security.sh  SecRule ARGS:mypar !whatever deny  SecRule ARGS:mynum ^[^\d]+$ deny</IfModule>

Page 9: Mod security

Reglas: mod_security Patron SecRule VARIABLES OPERATOR [ACTIONS]

SecRule REQUEST_URI "attack" \   "phase:1,t:none,t:urlDecode,t:lowercase,t:normalisePath"

SecRule ARGS "drop[[:space:]]table" deny,log

Elementos Headers, ENV, Cookies, QS, Variables html, Xpath ...

Acciones Deny, status:nnn, allow, redirect:url, log, nolog,

exec:cmd, pass, pause:n Bloques

Directorios/Virtualhosts

Page 10: Mod security

Fases: mod_security

Page 11: Mod security

Recomendacion: mod_security

Politica recomendada: Accept por defecto, denegar lo peligroso Utilizar reglas de modsecurity.org (actualizables)

Arquitectura FW Proxy: mod_security + mod_proxy Frontends

Page 12: Mod security

Appliances

ModSecurity Console Comercial (Breach) Consola gráfica Alto rendimiento Alta disponibilidad

Version trial / organizaciones