====== WAF: Web Application Firewall ====== Un WAF o Web Application Firewall és un tipus particular de //firewall// que monitoritza el contingut del servei web HTTP, permetent bloquejar l'accés en cas que es detectin atacs com [[SQL injection]], cross-site-scripting (XSS), i similars. {{ waf.png?550 }} Referencies * [[Proxy Invers]] * [[https://dementium2.com/administrador-neto/12-mejores-firewalls-de-aplicaciones-web-waf/|12 mejores aplicaciones WAF]] incloent versions //hardware// i //software//. * [[https://diegooo.com/aws-athena-consulta-de-registro-cloudfront-y-waf/|WAF en AWS Cloud]] {{tag> #FpInfor #Ciber #Ceti #CiberMp03 #CetiMp03 #Asix #AsixMp17 web server mod_security waf firewall }} \\ ===== mod_security en Apache ===== Farem una pràctica amb Apache2 en Ubuntu LTS i amb el clàssic mod_security. Referències: * [[https://adalmau.notion.site/LAB-3-9-WAF-Web-Application-Firewall-19d81908114e4af79327e44ee799d1a1#5ceb0c600d794b039cbb217a985fc061|LAB mod_security amb Nginx i Docker d'Anton Dalmau]] * [[https://owasp.org/www-project-modsecurity-core-rule-set/|OWASP CRS - Code Rule Set]] * [[https://resources.infosecinstitute.com/topic/analyzing-mod-security-logs/|Com analitzar els logs de mod_security]] * [[https://www.linuxbabe.com/security/modsecurity-apache-debian-ubuntu|mod_security en Ubuntu]] un tutorial més complert. ==== Instal·lació ==== * Crea una màquina Ubuntu LTS. Pots utilitzar [[Vagrant]]. * Instal·la Apache2 i **libapache2-mod-security2** * Activa mod_security amb$ sudo a2enmod security2 * Activa la configuració estàndard de OWASP a la carpeta ''/etc/modsecurity'':# cp modsecurity.conf-recommended modsecurity.conf * Reinicia Apache ==== Monitoritzant el trànsit ==== * Visita la pàgina principal via IP (no amb nom de domini). * Mira els logs d'Apache. Veus algun arxiu especial? Què hi ha? (a grans trets) * Quanta informació hi ha aparegut amb una sola request? * De què se'ns informa a ''errors.log''? * Si apareix algun advertiment, quina severitat té? * Fes una pàgina amb un formulari (només cal el HTML, sense PHP ni processament) a /var/www/html * Intenta un atac de [[SQL injection]] com per exemple:dades' OR 1=1; -- * De moment hauria de permetre enviar les dades igualment (està en mode //DectectionOnly//). * Mira els logs d'Apache. Quina severitat té ara l'avís? ==== Bloqueig d'atacs ==== * Activem la política de bloqueig enlloc de només monitorització. Anem a ''/etc/modsecurity/modsecurity.conf'' i canviem:SecRuleEngine DetectionOnly per SecRuleEngine On * Reinicia Apache * Comprova ara què passa si intentes diversos atacs de SQL injection. Com et bloqueja l'atac? \\ ===== Exercici ===== Si has fet el 1r exerici de [[SQL injection]], pots modificar el Dockerfile que apareix al repositori per tal que l'Apache inclogui el ''mod_security''. Seguint les passes d'aquest tutorial hauria de ser molt similar. Modifica-ho en el teu repositori on has fet el //fork// del projecte. \\