Einrichtung der Audit-Trails

Ab dem print2forms-Server Build 3.1.0.884 besitzt dieser eine interne Schnitt­stelle, über die ein externes Programm zum Schreiben von Audit-Trails angebunden werden kann. An dieser Schnittstelle werden alle Kommandos an den Server, die eine Modifikation an der Datenbasis veranlassen, zur Protokollierung angeliefert.

Mit dem von uns speziell für diese Anforderungen geschriebenen Programm LogIt.exe wird ein Werkzeug zur Verfügung gestellt, welches eine ganz besondere Form der Log-Datei schreibt:

Um die Grösse dieser Datei nicht unnötig aufzublähen, werden die einzelnen Log-Meldungen in einem internen, sehr kompakten Format geschrieben und zudem noch unleserlich gemacht 1). Das heist, die Lesbarkeit für Menschen ist nicht nur stark eingeschränkt, auch das Manipulieren wird dadurch noch ein bischen aufwändiger.

Einrichtung

Die interne Schnittstelle des print2forms-Servers wird über die Registry konfiguriert. Unter dem Schlüssel

key.txt
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\SPE Systemhaus GmbH\print2forms\p2fServer\Parameters\AuthCmd

(bei 32-Bit ohne 'Wow6432Node') wird eine Kommandozeile konfiguriert, die die Erstellung der Audit-Trails steuert:

cmd.txt
"C:\Program Files (x86)\print2forms\logit" "C:\Users\Public\Documents\SPE Systemhaus GmbH\print2forms\Logs\auth.log"

(bei 32-Bit ohne ' (x86)'). Die Kommandozeile benötigt den absoluten (!) Pfad zum Programm LogIt.exe, das sinnvollerweise in das Installationsverzeichnis von print2forms kopiert werden sollte, sowie den absoluten (!) Pfad zur Audit-Trails-Datei, die sinnvollerweise im gleichen Verzeichnis liegen kann, wie die anderen Log-Dateien. Es ist darauf zu achten, dass zwischen dem Programmaufruf und dem Parameter genau eine Leerstelle steht.

Wenn konkrete Sicherheitsaspekte dafür sprechen, können die Audit-Trails aber auch in jedem anderen lokalen Verzeichnis abgelegt werden. Von der Nutzung von Netzwerkfreigaben wird ausdrücklich abgeraten.

Das Laufwerk für die Ablage der Audit-Trails muss in jedem Fall mit dem Dateisystem NTFS formatiert worden sein. Laufwerke mit FAT32 sind prinzipiell nicht nutzbar.

Die Schnittstelle des Servers wird allerdings erst nach einem Neustart des print2forms-Server-Dienstes auch tatsächlich bedient.

Erste Funktionskontrolle

Wird im print2forms-Administrationsprogramm eine Änderung an einem der Objekte durchgeführt, entsteht die eigentliche Log-Datei mit den Audit-Trails. Der Pfad und der Name der Datei ist der im Parameter für das Programm LogIt angegebene.

In jeder Zeile ist als erstes ein Zeitstempel in UTC (koordinierte Weltzeit) enthalten. Dieser Zeitstempel ist für jede Zeile des Audit-Trails eineindeutig, weil das Programm LogIt dies durch eine interner Serialisierung garantiert. Die Verwendung der UTC macht print2forms unabhängig von Problemen mit den Wechseln von Sommer- auf Winter­zeit und umgekehrt.

Nachfolgend steht ein 22 Zeichen langer Hash-Code, der zur Kontrolle der Integrität der Audit-Trails benötigt wird. Die Hash-Codes bilden eine Kette, die es erlaubt, den Ort der Manipulation genau zu bestimmen.

Die allererste Zeile hat ein besonderes Format und definiert lediglich den zufälligen Initialwert der Kette von Hash-Codes.

Alle weiteren Zeilen enthalten die Änderungsmeldungen des print2forms-Servers in einer unleserlich gemachten Form.

Es ergibt sich ein Bild ähnlich dem nachfolgenden Ausschnitt aus einem realen Audit-Trail:

2018-10-10 12:25:40,465Z lcfF-COo5CrQ4wfWYkLpVW LogIt (c)2018 by SPE Systemhaus GmbH
2018-10-10 12:25:40,474Z QOaTh9XSFThzjufllUtsyG #"<#<#%<'+('""& 2NGA@NSV_[\2BGFT2=B@F=S6]&W@2}px2#$&"2]
2018-10-10 12:25:42,451Z HZqGlUlSVA-EYIlFD34Y0W #"<#<#%<'+('""& 2NGA@NSV_[\2SQFT2=B@F=S6]&W@2}px2M2
2018-10-10 12:27:27,800Z oRjEm9oJZ_2VSYbCqI2RUG #"<#<#%<'+('""& 2NGA@NSV_[\2BGFT2=B@F=Q&UQ !+2}px2#$"!2]
2018-10-10 12:27:43,042Z N5uFaeL48U0RH0qbmAk6GW #"<#<#%<'+('""& 2NGA@NSV_[\2SQFT2=B@F=Q&UQ !+2}px2M2
2018-10-10 12:28:02,613Z I6pnY8Wq2N2Yx66mREyVgq #"<#<#%<'+('""& 2NGA@NSV_[\2BGFT2=]D^=A&WU AE2}px2 !*%#2]
2018-10-10 12:28:05,402Z 8sWh2sYMAkAZjhu0ql3d2a #"<#<#%<'+('""& 2NGA@NSV_[\2SQFT2=]D^=A&WU AE2}px2M2
2018-10-10 12:28:34,054Z 6Q64KVHkAMHcbOt07EMq2q #"<#<#%<'+('""& 2NGA@NSV_[\2SQFT2=]D^=CCXCG+]2}px2M2
2018-10-10 12:28:36,750Z zuqSf4GYjZb2L-X6R5YhrW #"<#<#%<'+('""& 2NGA@NSV_[\2SQFT2=]D^=_\["MH*2}px2M2
2018-10-10 12:28:59,427Z 3MdKPo0UuU4blTk1GOB-_a #"<#<#%<'+('""& 2NGA@NSV_[\2BGFT2=]D^=_R]G!J@2}px2 %&&2]
2018-10-10 12:29:01,491Z bdpTSjtWAbio1jwFypgZQq #"<#<#%<'+('""& 2NGA@NSV_[\2SQFT2=]D^=_R]G!J@2}px2M2
2018-10-10 12:37:43,093Z Rf67EryTeZBIH-fs-bJfpq #"<#<#%<'+('"#"#2???2GAWD2B@F=S6]&W@2B2[BSv`>#"<#<#%<'+2_SQ>WQ?S*?$P?! ?V%?!W
...


Die Audit-Trails können mit einem normalen Text-Editor zumindest angesehen werden. Es ist peinlichst darauf zu achten, dass der Editor an der Log-Datei keinerlei Änderung zurückschreibt, weil dadurch die Datei mit den Audit-Trails sofort korrumpiert wird.

Deshalb sollte erst einmal eine Kopie der Log-Datei angelegt und diese dann betrachtet werden. Dies ist in diesem Stadium der Installation noch möglich, wenn garantiert ist, dass zeitgleich keine Änderungen an der Datei stattfinden. Später im Produktivbetrieb darf die Log-Datei nicht einfach im Windows-Explorer kopiert werden!

1)
keine wirkliche Verschlüsselung