SnapShoot mit den Linux-Bordmitteln

Dateien und Systeme lassen sich leider leicht manipulieren, und das wissen eigentlich die Meisten. Jetzt stehst du aber als Derjenige, der eine Systeminstallation oder Software-Konfiguration abliefern soll, dumm da, wenn es um den Nachweis geht, die Sache tatsächlich so und nur so zur Verfügung gestellt zu haben.
Irgendjemand könnte ja die Dateien verändert haben, so dass die eigentliche Funktionalität nicht mehr gegeben ist. Wie weise ich in so einem Fall nach, dass ich noch andere Datei-Inhalte hatte?

Prüfsummen aller Dateien auf dem System

Das geht mit Linux relativ einfach. Die Theorie sieht so aus, dass man sich von einer Datei, in diesem Fall einer Datei mit Konfigurationsinhalten eine Prüfsumme erstellt und diese abspeichert. Ändert sich jetzt der Inhalt dieser besagten Datei, und sei es nur 1 Bit, oder ändern sich die Dateiattribute respektive der Zeitstempel, dann wird man bei einem Vergleich der neuen Prüfsumme und der Originalprüfsumme immer Differenzen feststellen können. Die beiden Prüfsummen werden nie mehr identisch sein.

Praktische Anwendung für ein Gesamtsystem

In der Praxis möchte ich gerne von einem funktionierenden System den Status Quo nachweisbar machen, also geht meine Überlegung dahin, von allen Dateien auf der Festplatte eine Prüfsumme zu generieren.
Das erreiche ich mit folgender Befehlskette

find / -xdev -type f -print0 | xargs -0 sha256sum > /tmp/checksums

Der Befehl 'find' sucht sich beginnend auf der obersten Ebene alle Dateien, macht eine Prüfsumme von jeder Datei und schreibt jede Datei inklusive Pfad mit der Prüfsumme in je eine Zeile der Datei 'checksum'.

2e4d61a30aeea562f99ff2125ed74ec979ff1736b3389c5cc327c85b2c9f9653  /etc/dhcp3/dhclient.conf

Damit erhält man je nach System eine einige Megabyte grosse Datei, die einerseits die installierten Dateien dokumentiert und anderseits den Dateien eine Prüfsumme zum Zeitpunkt der Summenerzeugung mitgibt.

Wenn man sich jetzt auch noch wichtige Verzeichnisse wie '/etc' und '/opt', wo eventuell zusätzliche Konfigurationen liegen könnten, in ein Tar-File packt, dann hat man zusammen mit der Datei 'checksum' einen Nachweis, wie man das System respektive die Arbeit übergeben hatte.

Wenn man es ganz richtig machen will, denke ich, macht es durchaus Sinn, wenn neben dir ein ebenso fachkundiger Spezialist sitzt. Der weiss was du da machst und wenn er deine Schritte protokolliert, so könnte er auch als Zeuge dienen. Dasselbe könnte natürlich auch ein Anwalt erledigen. Da läge aber das Problem, ist er so fit mit diesem technischen Thema, dass er den Prozess nachvollziehen kann.

Juristischer Nachweis

Nachdem man hier eine einige MegaByte grosse Datei erzeugt, wird es unpraktikabel jede einzelne Datei mit Prüfsumme in ein Abnahmeprotokoll auszudrucken, dass der Kunde sie unterschreiben kann. Hier macht es mehr Sinn, über die Datei "checksum" eine Prüfsumme zu bilden und diese Prüfsumme in einem Abnahmeprotokoll sich bestätigen zu lassen.
Ein weiterer Gedanke wäre, mit Hilfe von GnuPG eine Signatur der Datei "checksum" zu erzeugen und sich diese in einem Protokoll unterschreiben zu lassen.

In jedem Fall jedoch, ist es ratsam, dieses Procedere vertraglich zu vereinbahren. Ist man doch auf die Mitwirkung seines Kundens angewiesen.