SlideShare ist ein Scribd-Unternehmen logo
Logverarbeitung
– Status un
07 Sep07. Sep
g mit syslog-ng
nd Zukunft
pt 2010pt. 2010
BalaBit IT Security
martin.grauel@balabit.com
yslog-ng Historieyslog ng Historie
yslog-ng und syslog-”Standards”
atterndb-Framework
uo vadis syslog-ng – Neues in v3.2 un
eue Lizenzierung
nd danach
rstes Release 1998 meistverbreitete syrstes Release 1998, meistverbreitete sy
eisten Linux-Distributionen
on Anfang an auf zentrales Logging auson Anfang an auf zentrales Logging aus
ele Probleme des sylsogd Protokolls w
Erweitertes Time-Stamp Format
Zuverlässiger Logmessage Trang g g
Verschlüsselte, (gegenseitig) au
Fl t l d M B ffFlow-control und Message Buffe
…
Verfügbar in unterschiedlichen Editio
Open Source EditionOpen Source Edition
Premium Edition: seit 2007
syslog-ng Store Box: seit 2008
yslogd-Alternative und verfügbar für diyslogd Alternative und verfügbar für di
sgerichtetsgerichtet
wurden adressiert
nsport (TCP)p ( )
thentisierte Kommunikation
iering
onen (inkl. separater Roadmap)
SD-syslog RFC 3164 (Informational)SD syslog RFC 3164 (Informational)
bsoleted by RFC 5424 (Erster wirkliche
FC 5425: TLS-transport of syslog
FC 5426: UDP-transport of syslog
ternet Draft für TCP-syslog Transport v
//ftp.ietf.org/internet-drafts/draft-gerhards-syslog-
syslog-ng unterstützt IETF-syslog seit
d was ist mit zuverlässiger Nachrichtend was ist mit zuverlässiger Nachrichten
FC 3195 → Standard Track, aber nicht
FC 5848 → Standard Track bzgl. syslo
Für syslog-ng: Planungen in beide RFür syslog ng: Planungen in beide R
...
er Standard – seit März 2009)
verfügbar
-plain-tcp-05.txt
v3.0 (Dec. 2008)
nübertragung auf Applikationsebene?nübertragung auf Applikationsebene?
t wirklich akzeptiert und verbreitet
og-sign
Richtungen noch ohne konkrete RoadmRichtungen noch ohne konkrete Roadm
RFC 5424 syslog-format:
HEADER STRUCCTURED-DATA MSG
HEADER STRUC
<PRI>VERSION TIMESTAMP HOS
<165>1 2003-10-11T22:14:15.003Z m
CTURED-DATA MSG
STNAME APP-NAME PROCID MSGID
mymachine.example.com eventlog - ID47
HEADER STRUC
[ SD-ID PARAM-NAME
[exampleSDID@18372
syslog-ng kann seit v3.1 benutzerspezifis
N /V l P i d l M füName/Value-Paare sind als Macros verfü
etc.
CTURED-DATA MSG
1=”PARAM-VALUE1” … ] ...
UTF-8
system="X" eventID="123"]
sche Structured Data Daten setzen (rewritin
ü b d kö i Filt t t tügbar und können in Filtern etc. genutzt wer
HEADER STRUC
M
A
Leider immer noch keine Struktur in der e
Was nun?
→ Wir strukturieren die Nachricht selbst→ Wir strukturieren die Nachricht selbst
CTURED-DATA MSG
MSG
ASCII | UTF-8
eigentlichen Nachricht …
!!
atterndb ist ein mächtiges Framework uatterndb ist ein mächtiges Framework u
Log-Nachrichten zu klassifiziere
Log-Nachrichten zu taggen
Strukturierte Daten aus Logs zug
Zusätzliche Daten den Lognachr
U d i 3 2 E t C l tiUnd neu in 3.2: Event-Correlatio
umum
n
extrahieren
richten hinzuzufügen
!on!
nktionsweise?nktionsweise?
Der db-parser Parser lädt ein pattern
Struktur
db-parser vergleicht eingehende Log
Prinzip 'longest prefix' matchg
Pattern Parser werden verwendet, va
und bei Bedarf daraus Name/Value-P
→ Sehr gute Performance im Vergle
~O(1)!
Pattern Parser:
@NUMBER@: Matching auf dezima@NUMBER@: Matching auf dezima
@STRING@: Matching auf alphanum
@IP 4@ Matching a f IP 4 Adresse@IPv4@: Matching auf IPv4 Adresse
...
ndb.xml File und macht daraus eine Radix-
gnachrichten mit vordefinierten Pattern nach
ariable Daten in Logmessages zu analysiere
Paare zu generieren
ich zu herkömmlichen RegEx-Vergleichen …
ale und hexa-dezimale Werteale und hexa dezimale Werte
merische Zeichen (keine Leerzeichen)
enen
g-Nachrichtg
Accepted password for martin from 10.0.0.17 po
cepted @ESTRING:usracct authmethod: @for
ttern
cepted @ESTRING:usracct.authmethod: @for
Pv4:usracct.device: @port @NUMBER:: @@A
gging und Klassifizierung der Log Message
<rule provider='patterndb' id='4dd5a329-da83-4
gging und Klassifizierung der Log-Message
...
<tag>usracct</tag>
<tag>secevt</tag>
chrichten mit zusätzlichen Daten anreichern
<value name='usracct.type'>login</valu
<value name='usracct.sessionid'>$PID<
<value name='usracct.application'>$PRpp $
<value name='secevt.verdict'>ACCEPT
ort 20117 ssh2
@ESTRING:usracct username: @from@ESTRING:usracct.username: @from
ANYSTRING:usracct.service@
4876-a431-ddcb59c2858c' class='system'>
ue>
</value>
ROGRAM</value>
T</value>
d jetzt?j
Wir können nach Tags filtern und die Na
schrieben
Die folgenden Name/Value-Parre haben wir u
usracct.authmethod='pap
usracct.username='mart
usracct.device='10.0.0.1
usracct.service='ssh2'
usracct.type='login'
usracct.sessionid=$PID
usracct.application=$PR
secevt.verdict='ACCEPT
chricht in strukturierter Form in eine Datenbank
u. a. zur Verfügung:
assword'
tin'
7'
ROGRAM
T'
auf damit in die Datenbank
e("pgsql")e("pgsql")
abase("db")
e("login ${R YEAR} ${R MONTH} ${R DAY}")e( login_${R_YEAR}_${R_MONTH}_${R_DAY} )
umns("time int", "password varchar(64)", "username v
vice varchar(64)", "service varchar(64)", "type varcha
ct varchar(65)")
ues("${R_UNIXTIME}", "${usracct.authmethod}", "${
usracct.device}", "${usracct.service}", "${usracct.ty
usracct.sessionid}", "${usracct.application}", "${sec
e | method | username | device | service | type
-----+----------+----------+-----------+---------+-------+-----
694304 | password | martin | 10.0.0.17 | ssh2 |
d i d St t d D t T il IETF loder in den Structured Data Teil von IETF-syslog
varchar(64)",
r(64)", "sessionid int", "application varchar(64)",
{usracct.username}",
ype}",
cevt.verdict}")
e | app | verdict
--+--------
login | sshd | ACCEPT
g.
n Tool - Teil von syslog-ng (bin/pdbtool) – zum Ery g g ( p )
enbank Regeln.
Beispiel war mit Real-Time Message Processing
i t it b it i ti d L M dis ist mit bereits existierenden Log-Messages die
dbt l t h f / /l / filtpdbtool match -f /var/log/messages --filter=
template='$ISODATE,${usracct.username
nfaches Parsing von existierenden Logs ist dadu
...
2010-09-15T03:52:38+02:00 m2010 09 15T03:52:38 02:00,m
2010-09-15T05:10:15+02:00,m
...
rstellen, Testen und Konvertieren von Pattern-,
g (db-parser() als Teil des Message-Pfads).
i ll ? K i P bl it dbt l!e wir parsen wollen? Kein Problem mit pdbtool!
"t (" t")"="tags("usracct")" --
e},${secevt.verdict}n'
rch möglich.
martin ACCEPTmartin,ACCEPT
martin,REJECT
ttern schreiben ist einfach, aber ist doch zeitraub,
ötigt
tternize – Funktion von pdbtool - , kann sehr sch
patternize basiert auf SLCT – simple logfile c
tternize ist (noch) nicht perfekt, aber ein guter An( ) g
rtin@ubuntu:~$ pdbtool patternize -f /var/log/me@ $ p p g
atterns>
<pattern>Accepted publickey for @ESTRING
sh2</pattern>
atterns>
tterndb Projekttterndb Projekt ...
bend wenn man sie für viele unterschiedliche Ev
hnell Pattern von Logs generieren
clustering tool (entwickelt von Risto Vaarandi)
nfang:g
essagesg
G:: @from @ESTRING:: @port @ESTRING::
laBit hat eine patterndb Community Projekt ins Lp y j
hqualitativer Pattern zur Verfügung zu stellen
p://www.balabit.com/wiki/patterndb
Es existieren bereits Patterns für diverse
Pattern-Download Seite in Planungg
Jeder, der Pattern erstellt hat, kann dies
Zusammenarbeit mit anderen ProjektenZusammenarbeit mit anderen Projekten
e komme ich an die Pattern?
it-Repository:
it clone git://git balabit hu/bazsi/syslog-ng-patterit clone git://git.balabit.hu/bazsi/syslog-ng-patter
U d d i f h di P tt D t b k d t
pdate-patterndb
Und dann einfach die Pattern-Datenbank updaten
p p
Leben gerufen mit dem Ziel, eine große Anzahlg , g
e Login/Logout messages
e im Rahmen des Projekts zur Verfügung stellen
wir logcheck ossec etc möglichwir logcheck, ossec etc. möglich
ndb git /opt/syslog-ng/etc/patterndb dndb.git /opt/syslog-ng/etc/patterndb.d
n
slog-ng 3.2 OSE ermöglicht erstmalig Korrelationg g g g
ntergrund
Viele Anwendungen oder Systeme loggeViele Anwendungen oder Systeme logge
Ziel ist es, die Daten von den verschiden
haben
ispiel:
ostfix-Logostfix Log
ABF28C6DD: message-id=<30101001085250.ABF2
ABF28C6DD: from=<martin@foo>, size=332, nrcpt
ABF28C6DD t ti @b l l l d lABF28C6DD: to=<martin@bar>, relay=local, delay=
status=sent
An der Stelle wollen wir den Sender und Empfä
SQL wäre eine Möglichkeit, aber auch …g ,
n von Nachrichten
en mehrere Nachrichten für das gleiche Eventen mehrere Nachrichten für das gleiche Event
nen Log-Messages in einer korrelierten Form zu
28C6DD@ubuntu-martin.foo>
=2 (queue active)
38 d l 37/0 03/0/0 11 d 2 0 0=38, delays=37/0.03/0/0.11, dsn=2.0.0,
nger in zusammen abspeichern:
→ patterndb
r schreiben Pattern für Postfix Sender und Empfp
me/Value-Paare in einer State-Table speichern
...
<patterns>
<pattern>@ESTRING:qid::@ from=&lt;@ES
</patterns></patterns>
<store id="$qid" timeout="60"/>
...
n 'join' der Daten findet statt, wenn die Message
...
<values join="$qid">
<value name="sender">${sender}@1</value><value name sender >${sender}@1</value>
...
D it h b i S d d E fä iDamit haben wir Sender und Empfänger in e
in Datenbanken, Files, SD-Elementen ...
fänger Messages und lassen syslog-ng dieg g y g g
STRING:sender:&gt;@</pattern>
mit dem Empfänger ankommt.
i St kt d kö Si b iiner Struktur und können Sie zusammen abspei
uginsugins
Enwicklung vom monolithischen Prog
Pluginsg
Plugins werden zur Laufzeit geladen
Plugins für Sources Destinations FiPlugins für Sources, Destinations, Fi
Format, Template-Funktionen ...
Einfache Einbindung der PluginsEinfache Einbindung der Plugins
@module afsocket
@module afsql
@ d l ffil@module affile
.
Keine Änderung in der Konfig-Syntax!
gramm zu einem Core-Programm mit vielen
n
ilter Parser Rewrite Operationen Messageilter, Parser, Rewrite Operationen, Message
SCL – syslog-ng Configuration LibrarySCL syslog ng Configuration Library
Vereinfachung der syslog-ng Konfigurations-
Ziel syslog ng auf jeder Plattform mit der gleZiel, syslog-ng auf jeder Plattform mit der gle
@include 'scl.conf'
…
ource s_system {
system();
cl.conf lädt das 'confgen' plugin, dass den syste
Generell ist confgen ein neues Plugin mit deGenerell ist confgen ein neues Plugin, mit de
eingebunden werden können
Datei durch Aufteilung in einzelne Bausteine
eichen Konfiguration laufen zu lassen!eichen Konfiguration laufen zu lassen!
m() Source-Driver plattformspezifisch definiert
em Programm Outputs als Teil der Konfigurationem Programm-Outputs als Teil der Konfiguration
pport für non-syslog Message Sources/Formatepp y g g
Denkbar sind non-syslog Message Sour
SQLSQL
snmp
…
Daten von dieses Sources sind bereits s
→ Normalisierung alles Messages!
Ein experimentelles Plugin in syslog-ng
process acco nting erarbeitenprocess accounting zu verarbeiten
→ pa→ pa
rces wie
strukturiert, also verwenden wir die Struktur.
3.2 ermöglicht es, strukturierte Daten vom Linux
acct()acct()
CCT → Accounting des Kernels nach Beendigung g
cct() Plugin wird durch SCL geladen und generie
r/log/account/pacct
V Paare können z. B. in Templates verwendet we
.pacct.ac_comm
.pacct.ac_udi
.pacct.ac_btime
...
e wtmp-Datei (User Logins/Logours) ist ähnlich s
ng eines Prozesses (spezielles Binärformat)g ( p )
ert Name/Value-Paare der strukturierten Daten v
erden
strukturiert, fehlt nur das Plugin ...
ehr Infos zu sylsog-ng >=3.2y g g
http://www.balabit.com/network-security/
system/features/roadmap
http://bazsi.blogs.balabit.com/2010/08/sy
/syslog-ng/opensource-logging-
yslog-ng-3-2alpha2-released/
ulti-threated Architekturulti threated Architektur
Skalierbarkeit auf mehrere CPU/Cor
Si ifik t P f Z hSignifikanter Performance-Zuwachs
emeinsamer OSE/PE Kern
es
t terwartet
slog-ng wurde als zu wenig offen kritisiertslog ng wurde als zu wenig offen kritisiert
syslog-ng OSE lizenziert unter GPLv
C i ht T f fü C t ib tiCopyright Transfer für Contributions
Version wurde offengehalten
slog ng PE wurde 2007 als kommerzielle 'clslog-ng PE wurde 2007 als kommerzielle cl
atures wurden für syslog-ng PE entwickelt u
ch umgekehrtch umgekehrt
as funktionierte eigentlich ganz gut, war abe
mmunity akzeptierty p
syslog-ng verlor in einigen Distributionen se
v2
f d li h Mö li hk it i k i llerforderlich; Möglichkeit einer kommerzielle
osed source' Version releasedosed source Version released
und später meistens auch in OSE integriert
r nicht wirklich von der Free Software
inen Status als Standard Logging Daemon
el ist es, syslog-ng 'offener' zu machenel ist es, syslog ng offener zu machen
e technische Basis dafür bildet die neue Plu
e sieht das aus?
slog-ng Core ist unter LGPL (Lesser GPL) lislog-ng Core ist unter LGPL (Lesser GPL) li
slog-ng OSE und PE können dadurch auf de
G (OS )ugins werden unter der GPL (OSE) oder ein
ein Agreement für Contributions mehr notwe
der kann proprietäre oder freie Plugins schr
ugin-Architektur
zenziertzenziert
em gleichen Core basieren
ä ( ) öffer proprietären Lizenz (PE) veröffentlicht
ndig
reiben und mit dem syslog-ng Core nutzen
slog-ng OSE Webseiteg g
://www.balabit.com/network-security/syslog-ng/o
laBit Dokumentation
// b l bit / t/d t ti://www.balabit.com/support/documentation
tterndb-Projekt
://www balabit com/wiki/patterndb://www.balabit.com/wiki/patterndb
tterndb-Schema
://git.balabit.hu/?p=bazsi/syslog-ng-patterndb.git
laBit syslog-ng Mailing-Liste
s://lists.balabit.hu/mailman/listinfo/syslog-ng
zsi's Blog
://bazsi.blogs.balabit.com/
l 3 2 islog-ng 3.2 git repo
/git.balabit.hu/bazsi/syslog-ng-3.2.git
://git.balabit.hu/?p=bazsi/syslog-ng-3.2.git;a=sum
slog-ng Sourcen und Packages
://www.balabit.com/downloads/files?path=/syslo
opensource-logging-system
t;a=blob;f=SCHEMAS.txt;hb=HEAD
mmary
og-ng/open-source-edition
Q&Q&&A&A
BalaBit IT Security
martin.grauel@balabit.com

Weitere ähnliche Inhalte

Ähnlich wie OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin Grauel

Interprozesskommunikation mit PHP
Interprozesskommunikation mit PHPInterprozesskommunikation mit PHP
Interprozesskommunikation mit PHP
Stephan Schmidt
 
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeGo - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
Frank Müller
 
Differenzial Analyse in der Praxis (Florian Walther)
Differenzial Analyse in der Praxis (Florian Walther)Differenzial Analyse in der Praxis (Florian Walther)
Differenzial Analyse in der Praxis (Florian Walther)GEEKcon
 
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDASchulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Jörn Dinkla
 
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashXML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit Flash
Stephan Schmidt
 
Production-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 WochenProduction-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 Wochen
André Goliath
 
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
Christian Kauhaus
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Peter Löwe
 
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterDer oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerter
Gunther Pippèrr
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
Verein FM Konferenz
 
Java Streams und Lambdas
Java Streams und LambdasJava Streams und Lambdas
Java Streams und Lambdas
Nane Kratzke
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
Ulrich Krause
 
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen TalkSicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Udo Ornik
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
Nane Kratzke
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
Christian Münch
 
OSDC 2011 | Automatische Netzwerkdokumentation mit NetDot und RANCID by Jens ...
OSDC 2011 | Automatische Netzwerkdokumentation mit NetDot und RANCID by Jens ...OSDC 2011 | Automatische Netzwerkdokumentation mit NetDot und RANCID by Jens ...
OSDC 2011 | Automatische Netzwerkdokumentation mit NetDot und RANCID by Jens ...
NETWAYS
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
QAware GmbH
 
OSMC 2008 | Nagios & OTRS Integration by Jens Bothe
OSMC 2008 | Nagios & OTRS Integration by Jens BotheOSMC 2008 | Nagios & OTRS Integration by Jens Bothe
OSMC 2008 | Nagios & OTRS Integration by Jens Bothe
NETWAYS
 
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten KoebkeOSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
NETWAYS
 

Ähnlich wie OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin Grauel (20)

Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1Web Entwicklung mit PHP - Teil 1
Web Entwicklung mit PHP - Teil 1
 
Interprozesskommunikation mit PHP
Interprozesskommunikation mit PHPInterprozesskommunikation mit PHP
Interprozesskommunikation mit PHP
 
Go - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare SystemeGo - Googles Sprache für skalierbare Systeme
Go - Googles Sprache für skalierbare Systeme
 
Differenzial Analyse in der Praxis (Florian Walther)
Differenzial Analyse in der Praxis (Florian Walther)Differenzial Analyse in der Praxis (Florian Walther)
Differenzial Analyse in der Praxis (Florian Walther)
 
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDASchulung: Einführung in das GPU-Computing mit NVIDIA CUDA
Schulung: Einführung in das GPU-Computing mit NVIDIA CUDA
 
XML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit FlashXML-Socket-Server zur Kommunikation mit Flash
XML-Socket-Server zur Kommunikation mit Flash
 
Production-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 WochenProduction-ready Infrastruktur in 3 Wochen
Production-ready Infrastruktur in 3 Wochen
 
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
nagiosplugin - eine Python-Biblioth­ek für Monitoring-Plug­ins
 
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GISGeoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
Geoinformatik-Kolloquium Juni 2012: High Performance Computing Cluster GIS
 
Der oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerterDer oracle dba_und_seine_passwoerter
Der oracle dba_und_seine_passwoerter
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
Java Streams und Lambdas
Java Streams und LambdasJava Streams und Lambdas
Java Streams und Lambdas
 
Dnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbookDnug35 ak-dev.071111-cookbook
Dnug35 ak-dev.071111-cookbook
 
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen TalkSicherheitsfunktionen In Aktuellen Betriebssystemen Talk
Sicherheitsfunktionen In Aktuellen Betriebssystemen Talk
 
Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)Dart (Teil II der Tour de Dart)
Dart (Teil II der Tour de Dart)
 
Abläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisierenAbläufe mit PHP und Phing automatisieren
Abläufe mit PHP und Phing automatisieren
 
OSDC 2011 | Automatische Netzwerkdokumentation mit NetDot und RANCID by Jens ...
OSDC 2011 | Automatische Netzwerkdokumentation mit NetDot und RANCID by Jens ...OSDC 2011 | Automatische Netzwerkdokumentation mit NetDot und RANCID by Jens ...
OSDC 2011 | Automatische Netzwerkdokumentation mit NetDot und RANCID by Jens ...
 
Dataservices - Data Processing mit Microservices
Dataservices - Data Processing mit MicroservicesDataservices - Data Processing mit Microservices
Dataservices - Data Processing mit Microservices
 
OSMC 2008 | Nagios & OTRS Integration by Jens Bothe
OSMC 2008 | Nagios & OTRS Integration by Jens BotheOSMC 2008 | Nagios & OTRS Integration by Jens Bothe
OSMC 2008 | Nagios & OTRS Integration by Jens Bothe
 
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten KoebkeOSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
OSMC 2018 | Katzeninhalt mit ein wenig Einhornmagie by Carsten Koebke
 

OSMC 2010 | Logverarbeitung mit syslog-ng - Status und Zukunft by Martin Grauel

  • 1. Logverarbeitung – Status un 07 Sep07. Sep g mit syslog-ng nd Zukunft pt 2010pt. 2010 BalaBit IT Security martin.grauel@balabit.com
  • 2. yslog-ng Historieyslog ng Historie yslog-ng und syslog-”Standards” atterndb-Framework uo vadis syslog-ng – Neues in v3.2 un eue Lizenzierung nd danach
  • 3. rstes Release 1998 meistverbreitete syrstes Release 1998, meistverbreitete sy eisten Linux-Distributionen on Anfang an auf zentrales Logging auson Anfang an auf zentrales Logging aus ele Probleme des sylsogd Protokolls w Erweitertes Time-Stamp Format Zuverlässiger Logmessage Trang g g Verschlüsselte, (gegenseitig) au Fl t l d M B ffFlow-control und Message Buffe … Verfügbar in unterschiedlichen Editio Open Source EditionOpen Source Edition Premium Edition: seit 2007 syslog-ng Store Box: seit 2008 yslogd-Alternative und verfügbar für diyslogd Alternative und verfügbar für di sgerichtetsgerichtet wurden adressiert nsport (TCP)p ( ) thentisierte Kommunikation iering onen (inkl. separater Roadmap)
  • 4. SD-syslog RFC 3164 (Informational)SD syslog RFC 3164 (Informational) bsoleted by RFC 5424 (Erster wirkliche FC 5425: TLS-transport of syslog FC 5426: UDP-transport of syslog ternet Draft für TCP-syslog Transport v //ftp.ietf.org/internet-drafts/draft-gerhards-syslog- syslog-ng unterstützt IETF-syslog seit d was ist mit zuverlässiger Nachrichtend was ist mit zuverlässiger Nachrichten FC 3195 → Standard Track, aber nicht FC 5848 → Standard Track bzgl. syslo Für syslog-ng: Planungen in beide RFür syslog ng: Planungen in beide R ... er Standard – seit März 2009) verfügbar -plain-tcp-05.txt v3.0 (Dec. 2008) nübertragung auf Applikationsebene?nübertragung auf Applikationsebene? t wirklich akzeptiert und verbreitet og-sign Richtungen noch ohne konkrete RoadmRichtungen noch ohne konkrete Roadm
  • 5. RFC 5424 syslog-format: HEADER STRUCCTURED-DATA MSG
  • 6. HEADER STRUC <PRI>VERSION TIMESTAMP HOS <165>1 2003-10-11T22:14:15.003Z m CTURED-DATA MSG STNAME APP-NAME PROCID MSGID mymachine.example.com eventlog - ID47
  • 7. HEADER STRUC [ SD-ID PARAM-NAME [exampleSDID@18372 syslog-ng kann seit v3.1 benutzerspezifis N /V l P i d l M füName/Value-Paare sind als Macros verfü etc. CTURED-DATA MSG 1=”PARAM-VALUE1” … ] ... UTF-8 system="X" eventID="123"] sche Structured Data Daten setzen (rewritin ü b d kö i Filt t t tügbar und können in Filtern etc. genutzt wer
  • 8. HEADER STRUC M A Leider immer noch keine Struktur in der e Was nun? → Wir strukturieren die Nachricht selbst→ Wir strukturieren die Nachricht selbst CTURED-DATA MSG MSG ASCII | UTF-8 eigentlichen Nachricht … !!
  • 9. atterndb ist ein mächtiges Framework uatterndb ist ein mächtiges Framework u Log-Nachrichten zu klassifiziere Log-Nachrichten zu taggen Strukturierte Daten aus Logs zug Zusätzliche Daten den Lognachr U d i 3 2 E t C l tiUnd neu in 3.2: Event-Correlatio umum n extrahieren richten hinzuzufügen !on!
  • 10. nktionsweise?nktionsweise? Der db-parser Parser lädt ein pattern Struktur db-parser vergleicht eingehende Log Prinzip 'longest prefix' matchg Pattern Parser werden verwendet, va und bei Bedarf daraus Name/Value-P → Sehr gute Performance im Vergle ~O(1)! Pattern Parser: @NUMBER@: Matching auf dezima@NUMBER@: Matching auf dezima @STRING@: Matching auf alphanum @IP 4@ Matching a f IP 4 Adresse@IPv4@: Matching auf IPv4 Adresse ... ndb.xml File und macht daraus eine Radix- gnachrichten mit vordefinierten Pattern nach ariable Daten in Logmessages zu analysiere Paare zu generieren ich zu herkömmlichen RegEx-Vergleichen … ale und hexa-dezimale Werteale und hexa dezimale Werte merische Zeichen (keine Leerzeichen) enen
  • 11. g-Nachrichtg Accepted password for martin from 10.0.0.17 po cepted @ESTRING:usracct authmethod: @for ttern cepted @ESTRING:usracct.authmethod: @for Pv4:usracct.device: @port @NUMBER:: @@A gging und Klassifizierung der Log Message <rule provider='patterndb' id='4dd5a329-da83-4 gging und Klassifizierung der Log-Message ... <tag>usracct</tag> <tag>secevt</tag> chrichten mit zusätzlichen Daten anreichern <value name='usracct.type'>login</valu <value name='usracct.sessionid'>$PID< <value name='usracct.application'>$PRpp $ <value name='secevt.verdict'>ACCEPT ort 20117 ssh2 @ESTRING:usracct username: @from@ESTRING:usracct.username: @from ANYSTRING:usracct.service@ 4876-a431-ddcb59c2858c' class='system'> ue> </value> ROGRAM</value> T</value>
  • 12. d jetzt?j Wir können nach Tags filtern und die Na schrieben Die folgenden Name/Value-Parre haben wir u usracct.authmethod='pap usracct.username='mart usracct.device='10.0.0.1 usracct.service='ssh2' usracct.type='login' usracct.sessionid=$PID usracct.application=$PR secevt.verdict='ACCEPT chricht in strukturierter Form in eine Datenbank u. a. zur Verfügung: assword' tin' 7' ROGRAM T'
  • 13. auf damit in die Datenbank e("pgsql")e("pgsql") abase("db") e("login ${R YEAR} ${R MONTH} ${R DAY}")e( login_${R_YEAR}_${R_MONTH}_${R_DAY} ) umns("time int", "password varchar(64)", "username v vice varchar(64)", "service varchar(64)", "type varcha ct varchar(65)") ues("${R_UNIXTIME}", "${usracct.authmethod}", "${ usracct.device}", "${usracct.service}", "${usracct.ty usracct.sessionid}", "${usracct.application}", "${sec e | method | username | device | service | type -----+----------+----------+-----------+---------+-------+----- 694304 | password | martin | 10.0.0.17 | ssh2 | d i d St t d D t T il IETF loder in den Structured Data Teil von IETF-syslog varchar(64)", r(64)", "sessionid int", "application varchar(64)", {usracct.username}", ype}", cevt.verdict}") e | app | verdict --+-------- login | sshd | ACCEPT g.
  • 14. n Tool - Teil von syslog-ng (bin/pdbtool) – zum Ery g g ( p ) enbank Regeln. Beispiel war mit Real-Time Message Processing i t it b it i ti d L M dis ist mit bereits existierenden Log-Messages die dbt l t h f / /l / filtpdbtool match -f /var/log/messages --filter= template='$ISODATE,${usracct.username nfaches Parsing von existierenden Logs ist dadu ... 2010-09-15T03:52:38+02:00 m2010 09 15T03:52:38 02:00,m 2010-09-15T05:10:15+02:00,m ... rstellen, Testen und Konvertieren von Pattern-, g (db-parser() als Teil des Message-Pfads). i ll ? K i P bl it dbt l!e wir parsen wollen? Kein Problem mit pdbtool! "t (" t")"="tags("usracct")" -- e},${secevt.verdict}n' rch möglich. martin ACCEPTmartin,ACCEPT martin,REJECT
  • 15. ttern schreiben ist einfach, aber ist doch zeitraub, ötigt tternize – Funktion von pdbtool - , kann sehr sch patternize basiert auf SLCT – simple logfile c tternize ist (noch) nicht perfekt, aber ein guter An( ) g rtin@ubuntu:~$ pdbtool patternize -f /var/log/me@ $ p p g atterns> <pattern>Accepted publickey for @ESTRING sh2</pattern> atterns> tterndb Projekttterndb Projekt ... bend wenn man sie für viele unterschiedliche Ev hnell Pattern von Logs generieren clustering tool (entwickelt von Risto Vaarandi) nfang:g essagesg G:: @from @ESTRING:: @port @ESTRING::
  • 16. laBit hat eine patterndb Community Projekt ins Lp y j hqualitativer Pattern zur Verfügung zu stellen p://www.balabit.com/wiki/patterndb Es existieren bereits Patterns für diverse Pattern-Download Seite in Planungg Jeder, der Pattern erstellt hat, kann dies Zusammenarbeit mit anderen ProjektenZusammenarbeit mit anderen Projekten e komme ich an die Pattern? it-Repository: it clone git://git balabit hu/bazsi/syslog-ng-patterit clone git://git.balabit.hu/bazsi/syslog-ng-patter U d d i f h di P tt D t b k d t pdate-patterndb Und dann einfach die Pattern-Datenbank updaten p p Leben gerufen mit dem Ziel, eine große Anzahlg , g e Login/Logout messages e im Rahmen des Projekts zur Verfügung stellen wir logcheck ossec etc möglichwir logcheck, ossec etc. möglich ndb git /opt/syslog-ng/etc/patterndb dndb.git /opt/syslog-ng/etc/patterndb.d n
  • 17. slog-ng 3.2 OSE ermöglicht erstmalig Korrelationg g g g ntergrund Viele Anwendungen oder Systeme loggeViele Anwendungen oder Systeme logge Ziel ist es, die Daten von den verschiden haben ispiel: ostfix-Logostfix Log ABF28C6DD: message-id=<30101001085250.ABF2 ABF28C6DD: from=<martin@foo>, size=332, nrcpt ABF28C6DD t ti @b l l l d lABF28C6DD: to=<martin@bar>, relay=local, delay= status=sent An der Stelle wollen wir den Sender und Empfä SQL wäre eine Möglichkeit, aber auch …g , n von Nachrichten en mehrere Nachrichten für das gleiche Eventen mehrere Nachrichten für das gleiche Event nen Log-Messages in einer korrelierten Form zu 28C6DD@ubuntu-martin.foo> =2 (queue active) 38 d l 37/0 03/0/0 11 d 2 0 0=38, delays=37/0.03/0/0.11, dsn=2.0.0, nger in zusammen abspeichern: → patterndb
  • 18. r schreiben Pattern für Postfix Sender und Empfp me/Value-Paare in einer State-Table speichern ... <patterns> <pattern>@ESTRING:qid::@ from=&lt;@ES </patterns></patterns> <store id="$qid" timeout="60"/> ... n 'join' der Daten findet statt, wenn die Message ... <values join="$qid"> <value name="sender">${sender}@1</value><value name sender >${sender}@1</value> ... D it h b i S d d E fä iDamit haben wir Sender und Empfänger in e in Datenbanken, Files, SD-Elementen ... fänger Messages und lassen syslog-ng dieg g y g g STRING:sender:&gt;@</pattern> mit dem Empfänger ankommt. i St kt d kö Si b iiner Struktur und können Sie zusammen abspei
  • 19. uginsugins Enwicklung vom monolithischen Prog Pluginsg Plugins werden zur Laufzeit geladen Plugins für Sources Destinations FiPlugins für Sources, Destinations, Fi Format, Template-Funktionen ... Einfache Einbindung der PluginsEinfache Einbindung der Plugins @module afsocket @module afsql @ d l ffil@module affile . Keine Änderung in der Konfig-Syntax! gramm zu einem Core-Programm mit vielen n ilter Parser Rewrite Operationen Messageilter, Parser, Rewrite Operationen, Message
  • 20. SCL – syslog-ng Configuration LibrarySCL syslog ng Configuration Library Vereinfachung der syslog-ng Konfigurations- Ziel syslog ng auf jeder Plattform mit der gleZiel, syslog-ng auf jeder Plattform mit der gle @include 'scl.conf' … ource s_system { system(); cl.conf lädt das 'confgen' plugin, dass den syste Generell ist confgen ein neues Plugin mit deGenerell ist confgen ein neues Plugin, mit de eingebunden werden können Datei durch Aufteilung in einzelne Bausteine eichen Konfiguration laufen zu lassen!eichen Konfiguration laufen zu lassen! m() Source-Driver plattformspezifisch definiert em Programm Outputs als Teil der Konfigurationem Programm-Outputs als Teil der Konfiguration
  • 21. pport für non-syslog Message Sources/Formatepp y g g Denkbar sind non-syslog Message Sour SQLSQL snmp … Daten von dieses Sources sind bereits s → Normalisierung alles Messages! Ein experimentelles Plugin in syslog-ng process acco nting erarbeitenprocess accounting zu verarbeiten → pa→ pa rces wie strukturiert, also verwenden wir die Struktur. 3.2 ermöglicht es, strukturierte Daten vom Linux acct()acct()
  • 22. CCT → Accounting des Kernels nach Beendigung g cct() Plugin wird durch SCL geladen und generie r/log/account/pacct V Paare können z. B. in Templates verwendet we .pacct.ac_comm .pacct.ac_udi .pacct.ac_btime ... e wtmp-Datei (User Logins/Logours) ist ähnlich s ng eines Prozesses (spezielles Binärformat)g ( p ) ert Name/Value-Paare der strukturierten Daten v erden strukturiert, fehlt nur das Plugin ...
  • 23. ehr Infos zu sylsog-ng >=3.2y g g http://www.balabit.com/network-security/ system/features/roadmap http://bazsi.blogs.balabit.com/2010/08/sy /syslog-ng/opensource-logging- yslog-ng-3-2alpha2-released/
  • 24. ulti-threated Architekturulti threated Architektur Skalierbarkeit auf mehrere CPU/Cor Si ifik t P f Z hSignifikanter Performance-Zuwachs emeinsamer OSE/PE Kern es t terwartet
  • 25. slog-ng wurde als zu wenig offen kritisiertslog ng wurde als zu wenig offen kritisiert syslog-ng OSE lizenziert unter GPLv C i ht T f fü C t ib tiCopyright Transfer für Contributions Version wurde offengehalten slog ng PE wurde 2007 als kommerzielle 'clslog-ng PE wurde 2007 als kommerzielle cl atures wurden für syslog-ng PE entwickelt u ch umgekehrtch umgekehrt as funktionierte eigentlich ganz gut, war abe mmunity akzeptierty p syslog-ng verlor in einigen Distributionen se v2 f d li h Mö li hk it i k i llerforderlich; Möglichkeit einer kommerzielle osed source' Version releasedosed source Version released und später meistens auch in OSE integriert r nicht wirklich von der Free Software inen Status als Standard Logging Daemon
  • 26. el ist es, syslog-ng 'offener' zu machenel ist es, syslog ng offener zu machen e technische Basis dafür bildet die neue Plu e sieht das aus? slog-ng Core ist unter LGPL (Lesser GPL) lislog-ng Core ist unter LGPL (Lesser GPL) li slog-ng OSE und PE können dadurch auf de G (OS )ugins werden unter der GPL (OSE) oder ein ein Agreement für Contributions mehr notwe der kann proprietäre oder freie Plugins schr ugin-Architektur zenziertzenziert em gleichen Core basieren ä ( ) öffer proprietären Lizenz (PE) veröffentlicht ndig reiben und mit dem syslog-ng Core nutzen
  • 27. slog-ng OSE Webseiteg g ://www.balabit.com/network-security/syslog-ng/o laBit Dokumentation // b l bit / t/d t ti://www.balabit.com/support/documentation tterndb-Projekt ://www balabit com/wiki/patterndb://www.balabit.com/wiki/patterndb tterndb-Schema ://git.balabit.hu/?p=bazsi/syslog-ng-patterndb.git laBit syslog-ng Mailing-Liste s://lists.balabit.hu/mailman/listinfo/syslog-ng zsi's Blog ://bazsi.blogs.balabit.com/ l 3 2 islog-ng 3.2 git repo /git.balabit.hu/bazsi/syslog-ng-3.2.git ://git.balabit.hu/?p=bazsi/syslog-ng-3.2.git;a=sum slog-ng Sourcen und Packages ://www.balabit.com/downloads/files?path=/syslo opensource-logging-system t;a=blob;f=SCHEMAS.txt;hb=HEAD mmary og-ng/open-source-edition