Integrität und Lieferkette
Worum geht es?
Alle anderen Schutzmaßnahmen setzen voraus, dass der laufende Code dem geprüften Stand entspricht. Deshalb erkennen wir nachträgliche Änderungen am Code, trennen Rechte und liefern nur aus, was die Prüfstrecke bestanden hat. Ein Teil der Auslieferungs-Härtung ist noch offen, das steht im Monatsbericht.
Schutzziel
Niemand soll unbemerkt Code verändern oder am Prüfablauf vorbei ausliefern können, weder durch einen Angriff noch durch ein manipuliertes Paket.
Funktionsprinzip
- Vergleichsverzeichnis: Bei der Auslieferung wird von allen Programmdateien eine Prüfsumme festgehalten. Ein Befehl kann den laufenden Stand damit vergleichen. Geänderte, neue oder entfernte Dateien gelten als Verstoß und werden protokolliert. Fehlt das Vergleichsverzeichnis, ist das selbst ein Fehler.
- Getrennte Rechte: Die Anwendung arbeitet in der Datenbank mit den Rechten, die sie braucht, und mit getrennten Rollen für unterschiedliche Aufgaben.
- Geprüfte Auslieferung: Änderungen gelangen nur über die Prüfstrecke in den Hauptstand. Auf die Beta wird nur ausgeliefert, was die Prüfstrecke bestanden hat.
- Abhängigkeiten: Die verwendeten Bibliotheken werden auf bekannte Schwachstellen und Lizenzen geprüft.
Maßnahmen
- Wir halten Prüfsummen der Programmdateien fest, damit sich nachträgliche Änderungen erkennen lassen.
- Wir trennen Datenbankrollen, damit ein Teil der Anwendung nicht mehr sehen kann als nötig.
- Der Hauptstand ist geschützt: Änderungen brauchen die Pflicht-Checks, bevor sie übernommen werden.
- Der Abhängigkeits-Check läuft bei jeder Änderung. Wir suchen außerdem nach versehentlich eingecheckten Zugangsdaten, prüfen Lizenzen und erzeugen bei einem Release eine Stückliste der verwendeten Bibliotheken.
Was wir nicht versprechen
- Die Prüfsummen bemerken eine Änderung, sie verhindern sie nicht.
- Die weitergehende Härtung der Auslieferung ist offen. Einzelheiten nennt der Monatsbericht.
- Die Abhängigkeitsprüfung kennt nur Schwachstellen, die schon bekannt sind.
Wie wir das prüfen
Die Erkennung von Dateiänderungen hat automatisierte Tests, die die Tabelle unten nennt. Das Szenario „Deployment Integrity“ ist im Monatsbericht als bekannte verbleibende Maßnahme geführt.
Nachweis-Tests
| Test | Das belegt der Test |
|---|---|
IntegrityVerifyCommandTest |
Geänderte, neue und entfernte Dateien werden erkannt, und ein fehlendes Vergleichsverzeichnis gilt als Fehler. |
SecurityTestManifestCoverageTest |
Jede als Pflicht benannte Sicherheitstestklasse existiert wirklich als Datei. |
Änderungsverlauf
- : Erste Fassung.