„Csináld magad” naplóelemzés syslog-ng-vel
Höltzl Péter, CISA
[email protected] http://www.balabit.com/
www.balabit.com
Miről lesz szó? Hogyan lesz az adatból információ? Hogyan elemez a syslog-ng futásidőben? Mire tudjuk használni a kinyert tartamat?
www.balabit.com
Bevezető Összegyűjtött naplók → Adathalmaz Elemezett napló üzenetek → Információ Cél:
• Események felismerése • Ne csak archíváljunk!
www.balabit.com
Az elemzési folyamat Minden üzenet felkutatása, begyűjtése Konverzió (protokoll és formátum) Az értékek, információk kigyűjtése Zajok szűrése Elemzés Reakció www.balabit.com
Tipikus buktatók? Felkutatás Nincs üzenet Szedett-vedett formátumok Karakterkészlet eltérések Zavaró zajok
www.balabit.com
Normalizálás Nyers üzenet → Közös, elemezhető forma:
• Azonos időpecsétek • Azonos struktúra • Azonos adatformátumok
www.balabit.com
Üzenet jellegzetességek Statikus és dinamikusan változó részek vegyesen: SSH: Accepted password for peter from 192.168.56.6 port 46627 ssh2 FTP: (
[email protected]) [INFO] peter is now logged in POP3: pop3-login: Login: user=
, method=PLAIN, rip=192.168.56.1, lip=192.168.56.6, TLS www.balabit.com
On-the-fly elemzés A syslog-ng pattern db:
• Logpathban elhelyezett, • futás időben működő, • üzenet klasszifikációs eszköz és • adat értelmező eszköz.
www.balabit.com
A pattern-db parser Radix-tree algoritmus, XML adatbázisban Példa minták:
• Accepted @STRING@ for @STRING@
from @IPv4@ port @NUMBER@ ssh2
• (?@@@IPv4@) [INFO] @STRING@ is now logged in
• pop3-login: Login: user=<@STRING@>, method=@STRING@, rip=@IPv4@, lip=@IPv4@, TLS
www.balabit.com
Parserek String parserek: @STRING@, @ESTRING::”@, @QSTRING:[]@, @ANYSTRING@ Numerikus parserek: @NUMBER@, @FLOAT@ IP parserek: @IPv4@, @IPv6@, @IPAny@
www.balabit.com
Buktatók Tartalmi ismétlődések
• pl. postfix to= orig_to= Egyetlen esemény, számos bejegyzés
• Gyakran kapcsolat nélkül „Hiányos” üzenetek
• Kezelése default értékekkel, ha van értelme
www.balabit.com
Classifikáció Üzenet osztályozása → Csoportosítás Tipikus osztályok: system, violation, error, warning, info Használata a syslog-ng-ben:
• ${.classifier.class}
www.balabit.com
Tagging Kulcsszavazás → A valódi jelentés Tipikus tag-ek: noise, login, logout, timeout, human-activity, machineactivity Használata syslog-ng-vel:
• $TAGS
www.balabit.com
Pattern db XML <patterndb version='2' pub_date='2010-09-19'> <pattern>ssh <patterns> <pattern>Accepted @STRING@ for @STRING@ from @IPv4@ port @NUMBER@ ssh2 loginuser www.balabit.com
Tag vagy Class? Mi a különbség?
• Egy üzenet → egy class • Egy üzenet → bármennyi tag
www.balabit.com
Hogyan használjuk? Class és tag használata:
• SQL mezőkben, tábla nevekben • Szűrőfeltételként • Fájl vagy path névként • /var/log/messages.$
{.classifier.class} (messages.violations) www.balabit.com
Artificial Ignorance A nem felismert üzenetek → unknown
• AI → szűrés az unknown classra AI folyamat:
• Unknown class olvasása • Reakció ;-D • Pattern db korrekció www.balabit.com
Üzenet tartalom A parserek saját makrókat definiálhatnak:
•
Accepted @STRING:.logcheck.method:@ for @STRING:.logcheck.uid:@ from @IPv4:.logcheck.ip:@ port @NUMBER:.logcheck.port:@ ssh2
(?@@@IPv4:.logcheck.ip:@) [INFO] @STRING:.logcheck.uid:@ is now • logged in
•
pop3-login: Login: user=<@STRING:.logcheck.uid:@>, method=@STRING:.logcheck.method:@, rip=@IPv4:.logcheck.ip:@, lip=@IPv4@, TLS
www.balabit.com
Üzenet tartalom A parser által „megtalált” tartalom saját makróban használható:
• ${.logcheck.uid}, ${logcheck.ip} „Hiányos üzenetek” kezelése:
• Default meghatározással: • ${.logcheck.uid:-noid} • VALUE XML tag-el • no-uid www.balabit.com
Korreláció elemzés Egy eseményhez tartozó üzenetek:
• Violations by IP • Violations by UID • Logins by UID Megvalósítás:
• Grep ;-) • SQL view tábla www.balabit.com
Ábrázolás és riasztás Pager script (program destination) Munin/RRD tool Reporting script
www.balabit.com
Miért syslog-ng? Szabad 8000 elérhető pattern Alakuló community A vázolt infrastruktúra elemei:
• Mysql, syslog-ng OSE, munin, bash, vi
www.balabit.com
Köszönöm a figyelmet!
Höltzl Péter, CISA [email protected] http://www.balabit.com/
www.balabit.com