Logging
Als Logging bezeichnet man in der Informatik die automatische Erstellung eines Protokolls (englisch log) von Softwareprozessen.
Logging dient der Aufzeichnung und Nachvollziehbarkeit von Fehlerzuständen des Softwareprozesses. Da eine Auswertung durch Administratoren und Softwareentwickler vorgesehen ist und der Inhalt gesetzlichen Einschränkungen unterliegt, darf keine vertrauliche Information enthalten sein. Zudem sollte die Softwareanwendung auch dann störungsfrei weiterarbeiten können, wenn das Logging fehlschlägt.
Die Aufzeichnung kann hierbei beispielsweise auf der Kommandozeile, in einer Logdatei, dem Ereignisprotokoll unter Windows bzw. syslogd[1] und klogd[2] unter Linux, einer spezialisierten Datenbank oder einem Webservice erfolgen. Im Server-Umfeld ist insbesondere die Aufzeichnung in einer Logdatei üblich. Diese können mittels eines Log-Scrapers[3] gesammelt und zentral ausgewertet werden. Bei verteilten, sowie mobil genutzten, Anwendungen ist es hingegen üblich, einen zentralen Webservice anzusprechen.
Einige Logging-Frameworks unterstützen zudem die Aufzeichnung in mehreren Zielen (englisch: sinks) gleichzeitig. Zudem unterstützen einige Logging-Frameworks optional auch das Auditing, indem Schreibgarantien getätigt werden.
Abgrenzung
[Bearbeiten | Quelltext bearbeiten]- Auditing
- Dient für sicherheitskritische Informationen, etwa An- und Abmeldungen von Benutzern, Rechteausweitungen, sowie den Zugriff auf und Änderungen an sensiblen Daten.
- Service-Monitoring[4]
- Dient der Analyse des Anwendungsverhaltens, insbesondere der Performance, in Echtzeit. (z. B. Performance Counters und collected (system statistics collection daemon) unter Linux)
- Tracing
- Dient der Nachvollziehbarkeit des Programmflusses. Da hier sehr viele Informationen in kurzer Zeit aufgezeichnet werden, eignet sich Tracing nicht für die dauerhafte Aufzeichnung in einer Datei oder Datenbank, sondern dient der Beobachtung des Prozesses in Echtzeit. (z. B. Event Tracing for Windows (ETW) unter Windows)
- Operations-Monitoring[4]
- Dient für die Analyse von anwendungsübergreifenden Geschäftsprozessen.
Logging als Auditing
[Bearbeiten | Quelltext bearbeiten]Beim Auditing geht es um das automatische Protokollieren von Datensätzen durch Dienste, die angeben, welcher Benutzer bzw. welche Person in Computersystemen zu welchem Zeitpunkt was getan hat. Die zu speichernden Datensätze beziehen sich auf sicherheitsrelevante Ereignisse in IT-Systemen. Die Protokollierung kann durch einen Audit Monitor oder durch die Geschäftslogik implementiert werden. Die Sicherung der Audit-Daten muss aber auf einem externen und geeignet gesicherten System erfolgen.
Sicherheitsaspekte
[Bearbeiten | Quelltext bearbeiten]Da Auditing sicherheitskritische Operationen von Softwareprozessen aufzeichnet, muss die Operation abgebrochen werden, falls das Auditing fehlschlägt.
Zudem muss das Audit, mittels Verschlüsselung, elektronischer Signierung und ggf. kryptographischer Verkettung, kryptographisch abgesichert werden, falls vertrauliche Daten enthalten sind. Einzelne Einträge können beispielsweise als Security Event Token (SET) übermittelt und gesichert werden. Wenn die Daten kryptographisch verkettet sind, können sie nicht gelöscht werden. Stattdessen kann jedoch der kryptographische Schlüssel gelöscht werden, damit die Daten nicht mehr entschlüsselt werden können.
Da die Daten für das Auditing teilweise über Jahre hinweg aufbewahrt werden müssen, müssen diese im Gegensatz zu Logdateien sicher verwahrt werden.
Nutzen
[Bearbeiten | Quelltext bearbeiten]- Ermöglicht Recherche der historischen Versionen eines Datensatzes, die bei jeder Änderung abgespeichert wurden (Sonderform der Logdatei)
- Ermöglicht die Aufarbeitung von Sicherheitsvorfällen im Rahmen der IT-Forensik.
- Durch aus dem Auditing gewonnene Kenntnissen können Sicherheitsvorfälle präventiv verhindert werden.
- Monitoring (d. H. Überwachung in Echtzeit) von Zugriffen auf sicherheitsrelevante Funktionen bzw. Daten, sofern ein entsprechendes Monitoring vorgesehen wird.
Beispiele
[Bearbeiten | Quelltext bearbeiten]- Anlegen oder Löschen eines Users in einem Directory
- Änderungen der Bankverbindung eines Kunden in einer Anwendung
Siehe auch
[Bearbeiten | Quelltext bearbeiten]- Informationstechnik-Auditing
- Logging und Recovery bei Datenbanken
Quellenangaben
[Bearbeiten | Quelltext bearbeiten]- ↑ syslogd Daemon. In: IBM Knowledge Center. Abgerufen am 2. Mai 2017 (englisch).
- ↑ M. Jones: Kernel logging: APIs and implementation. 30. Oktober 2010, abgerufen am 2. Mai 2017 (englisch).
- ↑ Logstash. Centralize, Transform & Stash Your Data. elastic, abgerufen am 2. Mai 2017 (englisch).
- ↑ a b Michael T. Nygard: Release It! Design and Deploy Production-Ready Software. O’Reilly, 2007, ISBN 978-0-9787392-1-8 (englisch, 326 S.).