Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Erkennungsregeln für Logs schreiben

Nach dieser Lektion: Ich kann eine Regel schreiben, die einen Angriff in Logzeilen findet.

Lektion, 60 Min.2 BefehleLab zu Incident Response und Forensik: einen kompromittierten Server im Browser untersuchen

Was ist eine Erkennungsregel?

Eine Erkennungsregel (Detection Rule) ist eine Bedingung, die in Logzeilen nach Spuren eines Angriffs sucht und bei einem Fund einen Alarm auslöst. So muss niemand mehr tausende Zeilen von Hand lesen.

Eine Bank will wissen, wenn jemand in einer Minute zwanzigmal ein falsches Passwort tippt. Genau das schreibt eine Regel auf.

Am Ende dieser Lektion

Notiz

Ich kann eine Regel schreiben, die einen Angriff in Logzeilen findet.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Erkennungsregeleine Bedingung, die Logzeilen prüft und Alarm auslöst
Musterein Text, nach dem die Regel in jeder Zeile suchtFailed password
Treffereine Zeile, die zum Muster passt
Schwellenwertdie Zahl von Treffern, ab der der Alarm kommt
Zeitfensterein Zeitraum, in dem die Treffer gezählt werden60 Sekunden
Falscher Trefferein Treffer, hinter dem kein Angriff steckt

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Eine Regel prüft jede Zeile gegen ein Muster

Die einfachste Regel geht alle Zeilen durch. Passt eine Zeile zum Muster, ist sie ein Treffer.

Das Muster ist ein Stück Text, etwa Failed password. In der Shell prüft grep ein solches Muster, in Python der Ausdruck muster in zeile.

Drei Arten von Regeln

ArtDie FrageBeispiel
MusterKommt dieser Text vor?Eine Zeile mit „Failed password“
ZählenWie oft kommt er vor?Mehr als 20 Treffer am Tag
ZeitfensterWie oft kommt er in kurzer Zeit vor?Mehr als 5 Treffer in 60 Sekunden

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Muster auf drei Zeilen anwenden

Befehl
printf 'Failed password for root\nAccepted password for lena\nFailed password for admin\n' | grep -c "Failed"

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Eine Regel auf das Weblog anwenden: Zugriff verweigert

Befehl
grep -c '" 403 ' case/var/log/nginx/access.log

Hier angezeigt, nicht ausgeführt. Erstellen Sie ein kostenloses Konto, um „Ausführen“ zu drücken und ihn im Terminal Ihres eigenen Labs einzugeben.

Eine Zählregel braucht einen Schwellenwert

Ein einzelner Fehlversuch ist normal. Jeder Mensch vertippt sich. Darum zählt die Regel die Treffer und meldet erst ab einer Zahl.

Diese Zahl ist der Schwellenwert. Ist er zu niedrig, melden sich viele falsche Treffer. Ist er zu hoch, übersieht die Regel den Angriff.

Eine Zählregel in Python

Code: python
zeilen = [
    "02:11:03 Failed password for root from 203.0.113.9",
    "02:11:07 Failed password for root from 203.0.113.9",
    "02:11:12 Accepted password for lena from 192.0.2.10",
    "02:11:15 Failed password for admin from 203.0.113.9",
]
schwelle = 2  # Ändern Sie die Zahl auf 3 und starten Sie neu.
treffer = 0
for zeile in zeilen:
    if "Failed password" in zeile:
        treffer = treffer + 1
if treffer > schwelle:
    print("Alarm: zu viele Fehlversuche")
else:
    print("Kein Alarm")

Ein Zeitfenster zählt nur Treffer nah beieinander

Fünf Fehlversuche über einen ganzen Tag sind Alltag. Fünf in einer Minute sind verdächtig.

Darum zählt eine Fensterregel nur Treffer, die höchstens so weit auseinanderliegen wie das Fenster. Sie startet bei einem Treffer und zählt vorwärts, so weit das Fenster reicht.

Ein Beispiel: Fenster von 15 Sekunden

Start (Sekunde)Das Fenster endet beiTreffer im Fenster
5204 (5, 9, 14, 20)
9243 (9, 14, 20)
14292 (14, 20)
20351 (20)
70851 (70)

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele glauben, eine Regel sei gut, wenn sie keinen Angriff übersieht. Doch eine Regel, die ständig falsch auslöst, wird bald überhört. Prüfen Sie jede Regel an echten Logs. Zählen Sie die falschen Treffer und stellen Sie den Schwellenwert danach ein.

Weiterführend

Schreiben Sie in Worten eine Regel, die einen Scanner im Weblog erkennt. Er fragt viele Seiten ab, die es nicht gibt.

Nennen Sie das Muster, den Schwellenwert und das Zeitfenster. Sagen Sie, welcher falsche Treffer möglich wäre.

Über dieses Lab und seinen Quellcode: Lab zu Incident Response und Forensik: einen kompromittierten Server im Browser untersuchen

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.