Einleitung
Microsoft hat mit Microsoft Sentinel eine cloudnative SIEM-Lösung im Angebot. In einem SIEM will man aber auch Logs und Meldungen von Nicht-MS-Geräten haben (z.B. von Ubiquiti-Accesspoints oder Linux-Servern). Microsoft bietet hierzu div. Connectoren an um andere Formate anzunehmen. Unter anderem einen Connector im Common Event Log Format (CEF).
Ein Überblick des Setups mit einer Linux-VM mit syslog-ng zum Einsammeln und Weiterleiten der Meldungen an Microsoft Sentinel findet sich unter Overview
Das Vorgehen zur Installation findet sich unter Connector im Common Event Log Format.
Das CEF-Format selbst ist unter 1 und 2 gut dokumentiert.
Konfiguration
Die Konfiguration um die im Syslog-Format ankommenden Logs in CEF zu konvertieren und dann an den Azure Monitor Agent (AMA) weiterzugeben kann in /etc/syslog-ng/conf.d/ unter Debian oder Ubuntu abgelegt werden.
Hier ein funktionales Beispiel mit teilweise noch fixen Werten in manchen Feldern.
template CEF {
template("$DATE $SOURCEIP CEF:0|Ubiquiti|Networkstuff|1.0|DeviceCLassID|$MSG|1|msg=$MSG\n");
template_escape(no);
};
destination d_azure_mdsd {
network("127.0.0.1"
template(CEF)
port(28330)
flags(no_multi_line)
log-fifo-size(25000));
};
log {
source(s_src); # will be automatically parsed from /etc/syslog-ng/syslog-ng.conf
destination(d_azure_mdsd);
flags(flow-control);
};
Danach muss der syslog-ng einmalig neu gestartet werden:
systemctl restart syslog-ng
Die möglichen Variablen im Template sind unter Macros dokumentiert und die Verwendung von Template-Funktionen unter using template functions
Debugging
Um zu prüfen in welchem Format der syslog-ng die Daten an den AMA weitergibt, kann der unverschlüsselte lokale Netzwerktraffic mitgelesen werden:
tcpdump -i any port 28330 -A -l -s 65535