Kryptographie und IT-Sicherheit: Beschreibung: Snort Demo

Werbung
Kryptographie und IT-Sicherheit
Datum: 1. Juni 2016
Kryptographie und IT-Sicherheit: Beschreibung: Snort Demo
Zusammenfassung
Dieses Dokument beinhaltet Informationen, wie Snort installiert und konfiguiert wurde.
Die Arbeit wurde von Christian Barthel, Cornelia Mayer und Simone Oblasser erstellt.
Installation
Snort wurde einmal auf einem Internetserver installiert, um eine langfristige Aufnahme
von Netzwerkpaketen zu ermöglichen. Um Snort Regeln zu testen, wurde Snort zusätzlich
in einer virtuellen Testumgebung installiert.
Die Installation fand auf einem Ubuntu GNU/Linux Rechner statt und benutzt eine
MySQL Datenbank, um die Pakete zu speichern. Diese Datenbank wird dann von BASE (Basic Analysis and Security Engine) benutzt um eine graphische Auswertung zu
ermöglichen:
#
#
#
#
apt-get
apt-get
apt-get
apt-get
install
install
install
install
build-essentials
mysql-server
snort-mysql
acidbase
Alternativ kann Snort auch aus den Original-Quelldateien kompiliert werden:
#
#
#
#
#
#
#
wget https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
tar xfvz daq-2.0.6.tar.gz
./configure && make && make install
wget https://www.snort.org/downloads/snort/snort-2.9.8.0.tar.gz
tar xfvz snort-2.9.8.0.tar.gz
cd snort-2.9.8.0
./configure && make && make install
Um die Korrektheit der Installation zu testen ruft man snort –version auf.
Konfiguration
Je nach Installationsverfahren kann es notwendig sein, die Konfigurationsdateien manuell
zu erstellen. Die folgenden Befehle kopieren die initalen Konfigurationsdateien aus den
Originalquellen:
Revision ∶ 1.1
1 von 4
,
#
#
#
#
#
mkdir /etc/snort
mkdir /etc/snort/rules
mkdir /etc/snort/preproc_rules
cp snort-2.9.8.0/etc/*.conf* /etc/snort
cp snort-2.9.8.0/etc/*.map /etc/snort
Bei Ubuntu wurden bereits Snort Regeln mitgeliefert und in /etc/snort/rules/ installiert:
attack-responses.rules community-smtp.rules
backdoor.rules
community-sql-injection.rules
bad-traffic.rules
community-virus.rules
chat.rules
community-web-attacks.rules
[... noch weitere Regeln ...]
icmp.rules
imap.rules
info.rules
local.rules
shellcode.rules
smtp.rules
snmp.rules
sql.rules
Besitzt man keine Regeln oder möchte man diese ergänzen, dann kann man sich die
offiziellen Snort Regeln organisieren für die man ein oinkcode Code benötigt:
# ftp -o snortrules-snapshot-2973.tar.gz \
https://www.snort.org/reg-rules/snortrules-snapshot-2973.tar.gz/<oinkcode>
# tar -C /etc/snort -xzf snortrules-snapshot-2973.tar.gz rules preproc_rules
Möchte man sich nicht bei Snort anmelden, dann kann man die freien Regeln von Emerging Threat benutzen. Diese installiert man so:
# ftp http://rules.emergingthreats.net/open/snort-2.9.0/emerging.rules.tar.gz
# tar -C /etc/snort -xzf emerging.rules.tar.gz
Eigene Regeln
Interessant ist auch das Erstellen eigener Regeln. Snort beinhaltet eine eigene, umfangreiche Sprache um Signaturen zu erstellen. Dazu erstellt man die Datei local.rules in
/etc/snort/rules/ und fügt dann in der snort.conf diese Datei mittels include ein:
include $RULES/local.rules
Nun kann die Datei local.rules mit eigenen Regeln aktiviert werden. Für die Demo
wurden 2 einfache Regeln erstellt:
# file: local.rules
alert icmp any any -> $HOME_NET any \
(msg:"ICMP test"; sid:10000001; rev:001;)
alert tcp any any -> any 80 \
(msg: "http url break in "; sid:10000002; content:"/bin/ps"; http_uri;)
Revision ∶ 1.1
2 von 4
,
Ausführung
Um Snort zu starten können die Befehle
• Sniffer Modus: Zeichnet alle Pakete auf und gibt sie auf der Konsole aus:
# snort -dev
• Packet Logger Modus: Zeichnet alle Pakete auf und speichert diese in Logdateien
im Ordner log:
# snort -dev -l ./log/
• NIDS Modus: Zeigt Alerts an und informiert über potentielle Angriffe. Mit -A
console können die Warnungen auf der Konsole angezeigt werden:
# snort -dev -l ./log/ -h 192.168.1.0/24 -c /etc/snort/snort.conf
Startet man Snort im NIDS Modus mit den eigenen Regeln, dann kann man durch einen
ICMP Ping oder einen HTTP Request von einem zweiten Computer aus die Alerts testen:
# ping 10.0.0.138
^C
# telnet 10.0.0.138 80
GET /bin/ps HTTP/1.1
....
Das Snort System zeigt dann:
Commencing packet processing (pid=29596)
04/04-23:31:13.079851 [**] [1:100000001:1] ICMP test [**] [Priority:
0] {ICMP} 10.0.0.139 -> 10.0.0.138
04/04-23:31:37.000088 [**] [1:1328:6] WEB-ATTACKS /bin/ps command
attempt [**] [Classification: Web Application Attack] [Priority: 1]
{TCP} 10.0.0.139:37055 -> 10.0.0.138:80
BASE
BASE ist eine Möglichkeit, Snort Alerts abzufragen und zu stukturieren. Es hilft dabei,
Auffälligkeiten zu entdecken und Reports über den Netzwerkstatus zu erstellen.
Snort hat dabei die Alerts und Paketdaten in eine MySQL Datenbank geladen. Von dort
greift dann BASE darauf zu und ermöglicht es, mittels PHP Skripte umfangreiche Abfragen zu erstellen und graphisch aufzubereiten. Es ist weiters auch möglich, sich spezielle
Alert-Gruppen zu definieren sodass man immer gut informiert ist, was im Netzwerk passiert. Das Testsystem wurde im Internet ca. 1 Monat betrieben und konnte bis dahin 1
kleinere DoS Attacke aufnehmen und insgesamt gab es 560 Alerts.
Revision ∶ 1.1
3 von 4
,
Revision ∶ 1.1
4 von 4
,
Herunterladen