Øvelse 34 – Detektering af SQL-injection-forsøg med Wazuh¶
Information¶
I denne øvelse arbejder du med logbaseret detektion af angreb.
Du vil konfigurere Wazuh til at analysere webserver-logs og identificere mønstre i logdata, der indikerer et muligt angreb.
Formålet er at forstå:
- hvordan logdata bliver til detections
- hvordan regler identificerer mistænkelig adfærd
- hvordan webangreb kan opdages uden direkte adgang til applikationen
log → analyse → detection → alarm
En tilsvarende Proof of Concept findes i Wazuhs officielle dokumentation: Wazuh - detecting sql injection
SQL-injection er en angrebsteknik, hvor en angriber indsætter SQL-kommandoer i inputfelter (fx URL-parametre), som derefter bliver udført af backend-databasen.
Dette kan føre til:
- læk af data
- manipulation af data
- bypass af login-mekanismer
Hvis du ikke er bekendt med SQL-injection, anbefales følgende interaktive introduktion: Hackersplain - SQL injection
Forudsætninger¶
Øvelsen udføres på to maskiner i proxmox miljøet:
-
Overvåget host
- Ubuntu
- Apache2 installeret
- Wazuh-agent installeret og forbundet til Wazuh-server
-
Angribende host
- En Linux-maskine (fx Kali)
- Bruges til at simulere SQL-injection-forsøg
Instruktioner¶
1️⃣ Opsætning af Apache og Wazuh-agent (På overvåget host, hvis dette ikke allerede er konfigureret)¶
- Opdater pakkelisten:
apt update - Installer Apache2:
apt install apache2 - Verificér at Apache kører:
systemctl status apache2 - Test at websiden svarer fra en anden host:
curl http://<OVERVÅGET_HOST_IP> - Konfigurér Wazuh-agenten til at overvåge Apache access-loggen:
/var/ossec/etc/ossec.conf
Tilføj følgende indenfor <ossec_config> blokken:
<localfile>
<log_format>apache</log_format>
<location>/var/log/apache2/access.log</location>
</localfile>
- Genindlæs konfigurationen ved at genstarte Wazuh-agenten:
systemctl restart wazuh-agent
Denne konfiguration fortæller Wazuh-agenten at:
- Apache access-loggen skal læses
- Loglinjerne skal parses som Apache-format
- Loglinjerne sendes til Wazuh-serveren for analyse
2️⃣ Simulér et SQL-injection-forsøg (angribende host)¶
Udfør følgende forespørgsel mod den overvågede host: curl -XGET "http://<OVERVÅGET_HOST_IP>/users/?id=SELECT+*+FROM+users"
Denne forespørgsel simulerer et SQL-injection-forsøg via URL-parametre.
3️⃣ Analyse i Wazuh Dashboard¶
- Log ind i Wazuh Dashboard
- Navigér til Threat hunting → Events
- Søg efter hændelser relateret til webangreb, fx ved at:
- filtrere på
rule.groups: web - eller søge efter SQL-relaterede mønstre
💡 Hint: Du kan også søge direkte på et specifikt rule-id, fx:rule.id:31103
- filtrere på
- Identificér en relevant detection (fx SQL-injection)
- Undersøg hændelsens detaljer:
- Hvilken logfil blev anvendt?
- Hvilken regel blev udløst?
- Hvilket input blev detekteret?
👉 Dette er et eksempel på signaturbaseret detektion, hvor Wazuh matcher logdata mod kendte angrebsmønstre.
👉 Overvej om inputtet i loggen ligner legitim brugeradfærd eller et angrebsmønster.
👉 Bemærk at detektionen er baseret på webserverens access-log – ikke direkte på applikationen eller databasen.
Refleksion¶
Overvej følgende spørgsmål:
- Hvordan adskiller logbaseret detektion sig fra f.eks. File Integrity Monitoring?
- Hvilke begrænsninger har detektion baseret på access-logs?
- Hvordan bør en organisation reagere på denne type hændelse i et produktionsmiljø?
- Hvilke andre webangreb kunne potentielt detekteres via Apache-logs?
- Hvordan kan man skelne mellem falske positiver og reelle angreb?
- Hvad ser Wazuh ikke i dette scenarie?
CIS Controls – Relevans¶
| CIS Control | Titel | Relevans |
|---|---|---|
| 8 | Audit Log Management | Overvågning og analyse af Apache access-logs |
| 16 | Application Software Security | Identifikation af angreb mod webapplikationer |
| 17 | Incident Response Management | Detektion af hændelser som grundlag for respons |