Nur lückenlose Logsammlungen erlauben zuverlässige Analyse – „Zero-Message-Loss“ mit syslog-ng PE

Autoren: Martin Grauel, Consultant bei BalaBit IT Security, Deutschland, Zoltán Pallagi senior QA engineer,  BalaBit IT Security

Eine wesentliche Anforderung an heutige Logging-Infrastrukturen: Lognachrichten müssen zentral gesammelt und ausgewertet werden. Denn für eine umfassende und aussagekräftige Auswertung ist auch die Vollständigkeit der Logs entscheidend. Geht ein Teil verloren, ist im Fehler- oder Nachweisfall ggf. keine zuverlässige Analyse mehr möglich. Das Ziel für viele Unternehmen ist daher “Zero-Message-Loss”. Das heißt, es dürfen keine Log-Nachrichten verloren gehen. Version 4.2 der syslog-ng Premium Edition von BalaBit IT Security wurde speziell zu diesem Zweck um ein neues Protokoll erweitert, das „Reliable Log Transfer Protocol“ (RLTP).

Zuerst stellt sich die Frage: Wofür ist ein solches Protokoll überhaupt nötig, wenn doch die Logs bereits über das zuverlässige, verbindungsorientierte Transportprotokoll TCP übertragen werden? Das Problem bei TCP ist, dass es maximal sicherstellt, dass zwar das Betriebssystem des Zielrechners die Pakete korrekt empfangen hat, nicht jedoch die Applikation, die die Logs auf dem Zielsystem verarbeiten soll. Wenn jedoch das System oder eine Applikation erst dann abstürzt, nachdem der Paketempfang durch das Betriebssystem bestätigt wurde, aber noch bevor die Lognachrichten von der Applikation empfangen bzw. verarbeitet wurden, kann dies einen Logverlust bedeuten, der nicht einfach ignoriert werden darf.

Logverluste dürfen nicht ignoriert werden

Um solche Logverluste zu vermeiden, hat der Sicherheitsspezialist BalaBit das neue RLT-Protokoll für seine Lösung syslog-ng PE spezifiziert und implementiert. Es handelt sich dabei um ein “Application Layer Acknowledgement Protocol“: Beim Senden der Message von einem syslog-ng PE- Client zu einem syslog-ng PE-Server wird dem Client eine Bestätigung geschickt, sobald die Nachricht auf dem Server von der syslog-ng Applikation erfolgreich verarbeitet wurde. Wenn der Sender keine Bestätigung erhält oder aus dieser erkennbar ist, dass nicht alle Lognachrichten verarbeitet wurden, schickt der Client die fehlenden Nachrichten erneut.

Wann sendet nun der syslog-ng PE-Server, d. h. der Empfänger der Nachricht, die Bestätigung an den Client? Dies geschieht, sobald er die Nachricht z. B. auf die Festplatte geschrieben hat. Oder aber, wenn im Falle einer syslog-ng Relay-Infrastruktur die Nachricht an einen weiteren syslog-ng PE-Empfänger geleitet wurde, die Bestätigung von diesem kommt. Für eine Log-Message, die über mehrere Zwischenstationen per RLTP geschickt wird, erhält der ursprüngliche Sender die Bestätigung letztendlich erst dann, wenn der finale Server die Nachricht erfolgreich verarbeitet hat und jede Instanz dazwischen ihrerseits eine Bestätigung erhalten hat.

Das „Reliable Log Transfer Protocol“ stellt folglich auf Applikationsebene sicher, dass der Client die Log-Messages so lange vorhält, bis der Zielserver diese auch zuverlässig verarbeitet hat.

Quelle: Balabit, 2012

Reliable Disk Based Buffering —  Logs sicher auf der Festplatte

Ein weiteres neues Feature, das sogenannten „Reliable Disk-Based Buffering“, sorgt zudem dafür, dass der Sender alle Log-Messages vor dem Versand sicher auf der Festplatte zwischenspeichert und an keiner Stelle ausschließlich Memory-Buffer verwendet. Ein Terminieren des syslog-ng-Clients kann daher nicht zu einem Logverlust führen. Nach einem Neustart können die Nachrichten aus dem Disk-Buffer weiterverarbeitet werden.

Sollte die Empfängerseite die Lognachrichten nicht schnell genug verarbeiten, sorgt die seit langem verfügbare Funktion „Flow-Control“ dafür, dass der Sender mit dem Einlesen neuer Nachrichten wartet, bis der Empfänger wieder für weitere Nachrichten bereit ist. Ohne diese Option würden, nachdem die Puffer des Senders voll sind, neue Nachrichten von diesem verworfen werden.

Beide neuen Funktionen, RLTP und das Reliable Disk-based Buffering, sorgen zusammen mit Flow-Control dafür, das Ziel “Zero-Message-Loss” in einer syslog-ng PE-Infrastruktur zu erreichen. Kombiniert mit weiteren Funktionen wie verschlüsseltem Message-Transfer und dem Speichern von Logdaten in verschlüsselten und signierten Logstores lassen sich bereits wesentliche Compliance-Anforderungen an heutiges Log-Management erfüllen.

Weitere Infos unter www.balabit.com.