Mod security

8,342 views

Published on

  • Be the first to comment

  • Be the first to like this

Mod security

  1. 1. Manuel Carrasco Moñino Seguridad de Aplicaciones Web HotelSearch.com Enero-2010 manolo@apache.org
  2. 2. 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
  3. 3. 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)
  4. 4. Peligro: Aplicaciones  Defectos de aplicacion  XSS, html incrustado  Inyección SQL  Buffer overflow  DOS  Prevencion  Concienciar desarrolladores  Validaciones en aplicacion  Detectores  HA, monitorización
  5. 5. Peligro: Usuario  Robar informacion sensible  Passwords  Tarjetas  Cookies  Prevencion  Https  Concienciar al usuario
  6. 6. 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
  7. 7. 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, //, ..,
  8. 8. 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>
  9. 9. 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
  10. 10. Fases: mod_security
  11. 11. 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
  12. 12. Appliances  ModSecurity Console  Comercial (Breach)  Consola gráfica  Alto rendimiento  Alta disponibilidad  Version trial / organizaciones

×