6.4 Intrusion Detection Systems6 - Pro-Linux">
Login
Newsletter
Werbung

Mo, 22. Januar 2001, 00:00

Firewall - Teil 4

  • Adaptive Systeme (Adaptive systems)

Diese Art von IDS benutzt fortgeschrittenere Techniken, wie z.B. Künstliche Intelligenz, um nicht nur bekannte Angriffe zu erkennen, sondern auch neue. Ihr Nachteil besteht in ihrem hohen Preis, verursacht durch die hohe Komplexität (sie verwenden höhere Mathematik und Statistik) des Systems.

Bei den regelbasierten Systemen gibt es zwei unterschiedliche Ansätze:

  • Präventiv

Beim präventiven Ansatz überwacht das IDS den Netzwerkverkehr. Wenn verdächtige Aktivitäten bemerkt werden, beispielsweise eine große Anzahl von ping-Paketen innerhalb kürzester Zeit, schlägt das System Alarm und ergreift entsprechende Maßnahmen.

  • Reaktionär

Ein reaktionäres System überwacht die Logdateien des Systems und ergreift bei ungewöhnlichen Aktivitäten Maßnahmen.

Die Unterschiede zwischen den beiden Ansätzen scheinen minimal zu sein. Trotzdem gibt es einen großen Unterschied: Der reaktionäre Ansatz ist im Grunde genommen nahe am normalen Loging anzusiedeln. Das System schlägt Alarm, wenn der Angriff in den Logdateien vermerkt wurde, auch wenn dies schon längere Zeit zurückliegt. Dagegen antwortet das präventive System sofort, wenn ein Angreifer versucht, in das System einzudringen.

Im Folgenden sollen einige Intrusion Detection Tools kurz vorgestellt sowie auf deren Funktion und Konfiguration eingegangen werden.

6.4.1 Portsentry

Portsentry7 ist Teil des Abacus-Projektes, einer Sammlung von Security-Tools. Alle Programme des Abacus-Projektes zeichnen sich durch einfache Konfiguration aus und sind wartungsfrei zu betreiben.8

Portsentry überwacht die TCP/UDP-Ports eines Systems. Es erkennt Portscans, die gegen das System gerichtet sind. Dabei spürt es mit verschiedenen Betriebsarten (Classic Mode, Enhanced Stealth Mode, Advanced Stealth Mode) unterschiedliche Arten von Stealth-Scans, wie z.B. SYN/half-open, FIN, NULL und X-MAS auf. Portsentry arbeitet sehr ressourcensparend. Es muß nur einmal gestartet werden und überwacht beliebig viele Ports. Alle Angriffsversuche werden in den Systemlogdateien mitprotokolliert.

Portsentry antwortet auf versuchte Portscans, indem es den angreifenden Computer blockt:

  • Die lokale Route der Pakete kann zurück zum Angreifer gesetzt werden
  • Der angreifende Computer wird in die Datei hosts.deny eingetragen
  • Es wird eine Regel in das Firewallskript eingefügt

Die meisten Angriffe werden so im Keim erstickt.

Portsentry sollte in eine der Startdateien (z.B. /etc/rc.d/rc.local) eingetragen werden, um nach dem Booten automatisch seinen Dienst zu verrichten.

Portsentry-Konfiguration:

Portsentry wird über die Datei /usr/local/psionic/portsentry/portsentry.conf konfiguriert.

Einige wichtige Abschnitte der Konfigurationsdatei:

  • Port Configurations

Hier werden die Ports angegeben, die überwacht werden sollen. Standardmäßig stehen drei Portbereiche zur Auswahl bereit.

  • Advanced Stealth Scan Detection Options

Hier werden die Ports für den erweiterten Modus angegeben. Standardmäßig werden alle privilegierten Ports überwacht.

  • Configuration Files

Lage der Dateien, die die geblockten Rechner enthalten.

  • Response Options

In diesem Abschnitt wird bestimmt, was bei einem entdeckten Portscan geschehen soll. Eine der folgenden Optionen kann genutzt werden:

  • Ignore Options
  • Den Portscan nicht blocken (Do not block UDP/TCP scans)
  • Den Portscan blocken (Block UDP/TCP scans)
  • Ein externes Kommando starten (Run external command only)
  • Dropping Routes

Hier lassen sich die Pakete des Angreifers durch eine Firewallregel blocken

KILL_ROUTE="/sbin/ipchains -I input -s $TARGET$ -j DENY -l"
  • Scan trigger value

Hier läßt sich die Anzahl von Verbindungen bestimmen, bevor ein Alarm ausgelöst wird. Als Standard ist 0 angegeben, dies bewirkt einen Alarm beim ersten Verbindungsversuch. Eine größere Zahl sollte die Anzahl der falschen Alarme vermindern.

6.4.2 Logcheck

Auch Logcheck ist ein Programm aus dem Abacus-Sicherheitsprojekt.9

Logcheck überprüft die Systemlogs auf ungewöhnliche Aktivitäten. Es durchsucht die verschiedenen Logdateien unter dem Verzeichnis /var/log und informiert den Systemadministrator per Mail, wenn verdächtige Einträge gefunden wurden.

Logcheck bedient sich dazu mehrerer Konfigurationsdateien, die Schlüsselwörter enthalten. Dadurch unterscheidet Logcheck, was als harmloser Eintrag gilt und ignoriert werden kann, und welche Einträge auf einen Angriff oder einen verdächtigen Vorgang hinweisen und gemeldet werden müssen.

Logcheck besteht aus den folgenden Dateien:10

  • Logcheck.sh

Dies ist das eigentliche Programm. Es kontrolliert die Logdateien mit einfachen grep-Kommandos auf die in den Konfigurationsdateien enthaltenen Schlüsselbegriffe.11 Das Programm wird in regelmäßigen Abständen von cron ausgeführt.12

  • Logtail

Logtail merkt sich die zuletzt erreichten Positionen innerhalb der Logdateien. Dadurch wird vermieden, daß bereits überprüfte, ältere Einträge der Logs erneut untersucht werden. Sollte Logtail gelöscht werden, wird Logcheck sämtliche überwachte Dateien nochmals von Beginn an überprüfen.

  • Logcheck.hacking

Diese Datei enthält Schlüsselbegriffe, die mit ziemlicher Sicherheit auf Angriffe auf das System hindeuten. Standardmäßig ist z.B. folgende Zeile enthalten:

tftpd.*: refused connect from .*

Hier wurde versucht, mit TFTP, Trivial File Transfer Protocol, auf den Computer zuzugreifen. Der Name von TFTP ist Programm: Es handelt sich um einen sehr unsicheren Netzwerkdienst. Ein blinder Versuch, mit diesem auf die Firewall zu verbinden, kann als eindeutiger Angriff gerechnet werden.13

Wird in den zu überprüfenden Logs eines dieser Schlüsselworte gefunden, erhält der Administrator eine Mail mit dem Header "ACTIVE SYSTEM ATTACK". Die Mail enthält die von Logcheck beanstandeten Logeinträge.

Logcheck.hacking sollten nur dann eigene Schlüsselbegriffe hinzugefügt werden, wenn bekannt ist, wie sich ein Angriff in den Logfiles niederschlägt. So führt z.B. ein Jolt Angriff14 zu folgendem Logeintrag:

kernel: Oversized packet received from <IP Adresse>

Ein kleiner Auszug aus logcheck.hacking:

Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung