Sehr wichtig ist natürlich die Erstellung von Snort-Regeln. Ein Blick in die mitgelieferte Konfiguration verrät, wo die Regeldateien liegen und wie diese übersichtlich und komfortabel in die snort.conf eingebunden werden können. Die entsprechenden Dateien finden sich im Unterverzeichnis rules. Jeder Administrator sollte diese Regeldateien analysieren, um sich mit den grundlegenden Techniken vertraut zu machen. Ideal ist es, wenn Sie sich die Inhalte anhand von Beispielen verdeutlichen.
In der Datei shellcode.rules finden Sie beispielsweise die Regeln zur Erkennung von im Netzwerk übertragenen Shellcodes für verschiedenste Plattformen. Solche Shellcodes dienen dem Angreifer zum Starten von Programmen über Netzwerkverbindungen. Jedoch ist es entgegen der weit verbreiteten Meinung nicht notwendig, eine Shell zu starten. Dem Angreifer ist es im Prinzip selbst überlassen, welchen Code er ausführen möchte.
alert ip $EXTERNAL_NET $SHELLCODE
PORTS ->
$HOME_NET any (msg:"SHELLCODE sparc
setuid 0";
content:"|82 10| |17 91 D0| |08|";
reference:arachnids,282;
classtype:system-call-detect;
sid:647; rev:6;)
alert ip $EXTERNAL_NET $SHELLCODE
PORTS ->
$HOME_NET any (msg:"SHELLCODE x86
setgid 0";
content:"|B0 B5 CD 80|"; reference
arachnids,284;
classtype:system-call-detect;
sid:649; rev:8;)
alert ip $EXTERNAL_NET $SHELLCODE
PORTS ->
$HOME_NET any (msg:"SHELLCODE x86
setuid 0";
content:"|B0 17 CD 80|"; reference
arachnids,436;
classtype:system-call-detect;
sid:650; rev:8;)
Wie das Listing zeigt, steht am Anfang stets ein Regelwort. Mit dem Kommando "alert" lassen sich Warnungen ausgeben und Pakete loggen. Der Befehl "log" ist für die Protokollierung der jeweiligen Pakete zuständig, mit "pass" weisen Sie das Tool an, bestimmte Pakete zu ignorieren. Der Befehl "activate" bewirkt im Grunde das Gleiche wie "alert", es kommt zusätzlich aber eine dynamische Regel zur Verwendung.
All diese Schlüsselwörter haben verschiedene Verhaltensweisen. Zudem können eigene Regelwörter in der Konfigurationsdatei spezifiziert werden.
In der mitgelieferten Konfigurationsdatei ist folgendes Beispiel zu finden, das die Arbeitsweise erklären hilft:
ruletype redalert
{
type alert
output alert_syslog: LOG_AUTH LOG_ALERT
output database: log, mysql,
user=snort
dbname=snort
host=localhost
}
Der Regeltyp redalert verhält sich in diesem Fall wie alert und loggt mit Hilfe des syslog-Daemons und der MySQL-Datenbank die mit ihm konfigurierten Meldungen.
Darauf folgt das Protokoll, im obigen Fall ist dies ip. Shellcodes können sowohl über TCP als auch über andere Protokolle übermittelt werden. Durch Angabe von ip spielt dies keine Rolle, da jedes IP-Paket auf einen bestimmten Content untersucht werden kann. Selbstverständlich können Sie an dieser Stelle auch andere Protokolle, beispielsweise tcp, angeben.
Lesen Sie auf der nächsten Seite:
Lesen Sie in diesem Beitrag