Hallo Zusammen
Ich habe seit ein paar Wochen mit Systemabstürzen meines QMail und einem starken Anstieg vom Traffic zu kämpfen. Um weiter zu kommen, habe ich begonnen die Logfiles auf ein externes System zu schicken um sie dort in aller Ruhe zu untersuchen. Ich habe den Virenscanner oder Spamassassin in Verdacht, dass sie mir meinen QMail ins Nirvana befördern. Aber das ist nicht das Thema.
Jeder weiss, dass es zig MB Logfiles gibt und wenn es dumm läuft, gibt es je Dienst eines in einem anderen Format.
Ich suche ein Werkzeug (oder auch 2-3), dass mir die Logfiles (alle) auf bekannte Probleme und Unregelmässigkeiten überpüfen. Das muss keine besonders schicke Oberfläche haben - Shell ist OK - sondern eher die Informationen so aufbereiten, dass man:
a) weiss, welcher Dienst kompromitiert ist
b) in wechem File die Anomalie auftrat (Dir, Filename, Line#)
c) Datum, Uhrzeit
und nun der Wunsch
d) Link zu Informationen über das gefundene (Foren, Gegenmittel, was-auch-immer)
Über die Gefahren bin ich mir im klaren - nur, was man kennt kann man finden - wenn es was neues ist finde ich nichts... . Aber ich muss mal irgendeinen Anfang machen. Im Moment boote ich die Kiste morgens und abends weil ich wenig Zeit habe. Damit ist der Traffic deutlich zurück und fast wieder normal.
Also - wie macht Ihr das so mit der Logfile Analyse?
Scripte, URL's, Threads, alles willkommen.
Danke und Gruss,
Axel
Logfiles Analysieren
Re: Logfiles Analysieren
Informationen aus Logfiles herauslesen ist nicht so ohne weiteres automatisierbar. OK, es gibt Intrusion Detection Systeme wie Snort und Prelude, die man darauf ansetzen kann, nach bekannten Angriffsmustern zu fahnden. Was diese Programme aber nicht leisten können, ist die typisch menschliche Fähigkeit, ein Gefühl für merkwürdiges Verhalten zu entwickeln, das sich nicht immer an harten Kriterien festmachen lässt.
Wenn Du möglichst wenige Werkzeuge für möglichst viele Formate haben möchtest, solltest Du Dich bei den größeren bekannten IDS umschauen (Stichworte siehe oben, dazu vielleicht ACID). Wenn Du lieber etwas überschaubareres haben möchtest, solltest Du Dir einen auf Deine loggenden Dienste maßgeschneiderten Spürhund selber schreiben. Je nach Gusto gibt es für viele Logformate Perl- oder Python-Module, mit denen man sich einen passenden Schnüffler schnell selber geschrieben hat.
Aber auch die Standard-Werkzeuge der Shell (grep, sed, awk) geben einen guten Standard-Baukasten ab. Da das Thema schon mehrfach aufkam, hier ein sehr simples Beispiel für ein Wrapper-Skript, das ein Logfile nach einem Regex-Pattern durchsucht und eventuelle Treffer per Mail meldet:
Mit folgendem Eintrag in der crontab würde man so z. B. über erfolgreiche Logins informiert:
Trotz aller technischen Möglichkeiten möchte ich aber noch einmal eindringlich darauf verweisen, dass Angreifer immer neue Angriffstechniken probieren, die sich eben in unterschiedlicher Weise in den jeweiligen Logfiles manifestieren. Um eine manuelle Kontrolle kommt man also nicht herum; diese Aufgabe kann einem (noch) kein IDS abnehmen.
Wenn Du möglichst wenige Werkzeuge für möglichst viele Formate haben möchtest, solltest Du Dich bei den größeren bekannten IDS umschauen (Stichworte siehe oben, dazu vielleicht ACID). Wenn Du lieber etwas überschaubareres haben möchtest, solltest Du Dir einen auf Deine loggenden Dienste maßgeschneiderten Spürhund selber schreiben. Je nach Gusto gibt es für viele Logformate Perl- oder Python-Module, mit denen man sich einen passenden Schnüffler schnell selber geschrieben hat.
Aber auch die Standard-Werkzeuge der Shell (grep, sed, awk) geben einen guten Standard-Baukasten ab. Da das Thema schon mehrfach aufkam, hier ein sehr simples Beispiel für ein Wrapper-Skript, das ein Logfile nach einem Regex-Pattern durchsucht und eventuelle Treffer per Mail meldet:
Code: Select all
cat > /usr/local/sbin/logcheck.sh << "EOF"
!#/bin/bash
x=$(grep "$2" $1)
if [ "$x" != "" ]; then
echo $x | mail -s "[Warning][$(hostname -s)] $1" deine-mailadresse@deine-domain.de
fi
EOF
chmod 0700 /usr/local/sbin/logcheck.sh
Code: Select all
*/5 * * * * root /usr/local/sbin/logcheck.sh /var/log/auth.log 'Accepted publickey'
Re: Logfiles Analysieren
Danke schonmal :-) Die Zeilen probier ich mal.
Deinen Hinweis auf die Gefahren kenne ich und ich trau mich sogar abzuschätzen, das ich das Risiko eingehen kann und werde.
In der Zwischenzeit habe ich wieder erwarten Zeit gehabt und nochmals gesucht und OSSEC gefunden.
Nach einer problemlosen installation habe ich mir die Rules angeschaut und bin recht angetan. Man hat 16 Alertlevel und es werden z.B. Brute-Fore-Angriffe erkannt.
Das sieht dann so aus:
Also schon viel besser verdaubar als das Logfile an sich. Mir geht es im Moment darum anomalien zu sehen und dann die LOG gezielt zu durchsuchen.
Was im Moment noch nervt ist das Grundrauschen in den LOGs. Also die Level 2 Nachrichten in der Art:
Aber das ist ein anderer Thread.
Gruss,
Axel
Deinen Hinweis auf die Gefahren kenne ich und ich trau mich sogar abzuschätzen, das ich das Risiko eingehen kann und werde.
In der Zwischenzeit habe ich wieder erwarten Zeit gehabt und nochmals gesucht und OSSEC gefunden.
Nach einer problemlosen installation habe ich mir die Rules angeschaut und bin recht angetan. Man hat 16 Alertlevel und es werden z.B. Brute-Fore-Angriffe erkannt.
Das sieht dann so aus:
Code: Select all
OSSEC HIDS Notification.
2008 Jul 05 20:09:31
Received From: SERVERNAME->/var/log/messages
Rule: 5712 fired (level 10) -> "SSHD brute force trying to get access to the system."
Portion of the log(s):
Jul 5 20:09:31 SERVERNAME sshd[27795]: Postponed keyboard-interactive for illegal user cyrus from ::ffff:81.169.128.xxx port 20363 ssh2
Jul 5 20:09:31 SERVERNAME sshd[27795]: input_userauth_request: illegal user cyrus
Jul 5 20:09:31 SERVERNAME sshd[27795]: Illegal user cyrus from ::ffff:81.169.128.xxx
Jul 5 20:09:30 SERVERNAME sshd[27791]: Failed password for illegal user test from ::ffff:81.169.128.114 port 20237 ssh2
Jul 5 20:09:30 SERVERNAME sshd[27791]: Failed keyboard-interactive/pam for illegal user test from ::ffff:81.169.128.xxx port 20237 ssh2
Jul 5 20:09:30 SERVERNAME sshd[27791]: Postponed keyboard-interactive for illegal user test from ::ffff:81.169.128.xxx port 20237 ssh2
Jul 5 20:09:30 SERVERNAME sshd[27791]: input_userauth_request: illegal user test
--END OF NOTIFICATION
Was im Moment noch nervt ist das Grundrauschen in den LOGs. Also die Level 2 Nachrichten in der Art:
Code: Select all
SSEC HIDS Notification.
2008 Jul 07 16:16:55
Received From: SERVERNAME ->/var/log/mail.info
Rule: 1002 fired (level 2) -> "Unknown problem somewhere in the system."
Portion of the log(s):
Jul 7 16:16:54 h3112 qmail: 12154323421341324.719071 delivery 22326: failure: Sorry,_no_mailbox_here_by_that_name._vpopmail_(#5.1.1)/
--END OF NOTIFICATION
Gruss,
Axel