Sichern von Pipelines mit Scribe

Angriffe auf die Softwarelieferkette nehmen zu und die Notwendigkeit, auf diesen Angriffsvektor zu reagieren, ist von entscheidender Bedeutung. Aber wo fängt man an?

Wenn Sie die Schlachtpläne des Angreifers kennen, können Sie Ihre Bemühungen entsprechend priorisieren. Wir haben keine spezifischen Angriffspläne, aber wir haben eine Blaupause typischer Angriffspläne für Angreifer – die darauf basierende CI\CD-Bedrohungsmatrix MITRE-Angriffsframework.

Das Lesen der folgenden Tabelle von links nach rechts führt uns durch den Angriffszyklus: Der Angreifer muss sich ersten Zugriff verschaffen, dann den Code ausführen, Persistenz erreichen, Fähigkeiten durch Rechteausweitung, Umgehung der Verteidigung und Zugang zu Anmeldeinformationen aufbauen. Auf diese Weise können Angreifer eine seitliche Bewegung ausführen, um ihre Beute zu erreichen, und dann angreifen – entweder fliehen oder andere Einschläge verursachen.

Jede Spalte der Tabelle listet Techniken auf, die der Angreifer verwenden kann. Die erste Spalte legt beispielsweise nahe, dass der Erstzugriff entweder durch eine vorherige Kompromittierung des CI\CD oder durch schwache Zugriffskontrollen (gültiges Konto eines Git-Dienstes, gültiges Konto eines CI\CD-Dienstes oder gültiges Administratorkonto) erlangt werden könnte eines kritischen Servers).

 

Der evidenzbasierte Ansatz von Scribe zur Sicherung der Lieferkette ist im Wesentlichen einfach:

Vertrauen Sie einem Artefakt nur, wenn es mit unterstützenden Beweisen, signierten Beweisen, die als digitale Bescheinigungen definiert sind, verbunden ist.

Um diesen Ansatz umzusetzen, stellt Scribe die Softwaretools bereit, die zum Sammeln und Verwalten solcher Beweise und zur Bewertung der Vertrauenswürdigkeit des Artefakts gemäß Richtlinien und Bescheinigungen (signierte Beweise) erforderlich sind.

Lösungsübersicht erhalten

Beispiele für von Scribe unterstützte Richtlinien:

Richtlinien für Sicherheitseinstellungen

Stellen Sie sicher, dass die Sicherheitseinstellungen der während des Build-Prozesses verwendeten Dienste einem vordefinierten Standard entsprechen.

Änderungsrichtlinien für Quelle\Datei\Modul

Stellen Sie sicher, dass Quellcode, Konfigurationen, Build-Skripte und IoC-Dateien gemäß einem vordefinierten Standard geändert wurden, der die Identitäten, Prozesse, Schritte und Zustände definiert.

Integritätsrichtlinien für Quelle\Datei\Module

Stellen Sie sicher, dass Quellcode, Dateien und Module mit vorgegebenen zulässigen Versionen identisch sind.

Abhängigkeitsvertrauensrichtlinien

Stellen Sie sicher, dass die verwendeten Abhängigkeiten einem vordefinierten Standard entsprechen (z. B. OSSF-Scorecard, Versionsalter, Zulassungs-/Verbotsliste).

Richtlinien zu Sicherheitslücken

Stellen Sie sicher, dass Abhängigkeiten und andere öffentliche (geschlossene oder offene) Komponenten kein hohes Sicherheitsrisiko darstellen.

Richtlinien für den Softwareentwicklungslebenszyklus

Stellen Sie sicher, dass der Code von den Beteiligten überprüft wurde, Kommentare geklärt wurden und die Tests und Sicherheitstests erfolgreich abgeschlossen wurden.

Verhaltensrichtlinien für Pipelines

Halten Sie das Pipeline-Verhalten gemäß Plan aufrecht. Erfordern Sie beispielsweise, dass ein Bild als Ausgabe der Pipeline und nicht von einem anderen Prozess gepusht wird.

Beispiele für Beweise, die Scribe kontinuierlich und automatisiert für jeden Build sammelt:

Feinkörnige SBOMs aus dem Quell-SCM sowie endgültige Artefakte (Container)

Snapshots der Build-Umgebung

Schnappschüsse des Quell-Repos

Sicherheitseinstellung der Quellcodeverwaltung und Build-Umgebung

Relevante Ereignisse auf Betriebssystemebene, die von der Build-Maschine erfasst werden