Què és un WAF?

A web application firewall (WAF) is a specific form of application firewall that filters, monitors, and blocks HTTP traffic to and from a web service. By inspecting HTTP traffic, it can prevent attacks exploiting a web application's known vulnerabilities, such as SQL injection, cross-site scripting (XSS), file inclusion, and improper system configuration.

Wikipedia

Propòsit del laboratori

Aprendre a configurar el WAF ModSecutity en un servidor web i provar si aquest servidor és vulnerable a atacs d'injecció SQL i de XSS quan té el mòdul actiu i quan el té inactiu.

Què necessitem?

Com que l'objectiu del laboratori no és aprendre a configurar un servidor web, sinó aprendre com instal·lar i configurar el mòdul ModSecurity, utilitzarem la imatge de Docker que OWASP ha preparat per aquesta finalitat. Per tant també necessitaràs Docker i Docker Compose. La recomanació és que utilitzis la MV anomenada DVNA-OWASP creada per la UF3 de M17.

Muntar el servidor web i configurar el ModSecurity

Aprofitant la MV DVNA-OWASP, crearem un nou directori que contindrà tota l'estructura d'arxius que necessitarem per acompanyar el nostre contenidor de Docker:

cd /home/asix
mkdir nginx-waf
cd nginx-waf
sudo nano docker-compose.yaml
version: "3"
services:
  waf:
    image: owasp/modsecurity:3-nginx
    ports:
      - "8443:443"
    volumes:
      - "./etc/modsecurity:/etc/modsecurity"
      - "./etc/modsecurity.d/include.conf:/etc/modsecurity.d/include.conf"
      - "./etc/modsecurity.d/modsecurity.conf:/etc/modsecurity.d/modsecurity.conf"
      - "./etc/nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf"

Amb aquest arxiu que acabem d'editar ja tenim el manifest del contenidor llest. Com veus hi ha molts volums apuntant a ./etc/.... Aquesta és l'estructura per defecte que utilitzarem per manegar el Core Rule Set (CRS). Aquest el trobem al repositori https://github.com/SpiderLabs/owasp-modsecurity-crs.git, per tant el clonem a la ruta indicada:

git clone <https://github.com/SpiderLabs/owasp-modsecurity-crs.git> etc/modsecurity/crs