Willkommen zurück zum zweiten Teil unserer Blogserie, in dem wir tiefer in die leistungsstarken Funktionen von Valint eintauchen. In diesem Artikel konzentrieren wir uns auf die Richtlinien-Engine von Valint und ihre zentrale Rolle bei der Gewährleistung der Compliance in Ihrer gesamten Lieferkette.
In unserem vorherigen Blogbeitrag haben wir einen Überblick darüber gegeben Valints Designprinzipien.
So funktioniert die Policy Engine
Die Richtlinien-Engine von Valint basiert auf einer Reihe von Regeln, die in Richtlinien organisiert sind, die anhand von in der Lieferkette gesammelten Beweisen überprüft werden. Lassen Sie uns die wichtigsten Komponenten aufschlüsseln:
Beweisbar: Unveränderliche Objekte, die automatisch von den Richtlinien genutzt werden sollen. Diese Objekte enthalten Metadaten, die zur Durchsetzung von Richtlinien und zur Erfüllung von Compliance-Anforderungen erforderlich sind. Beweisinhalte umfassen Metadaten zu Artefakten, Ereignissen und Einstellungen, können aber auch tatsächliche Berichte, Konfigurationen oder Scans erfassen. Der Nachweis kann sowohl in unterzeichneter als auch in nicht unterzeichneter Form vorliegen. Wir empfehlen, dem Intoto zu folgen Bescheinigung spez Verwendung der unterzeichneten Bescheinigung bzw. vorzeichenlose Formate.
- Bescheinigungen (auch bekannt als überprüfbare, unterschriebene Beweise): Überprüfbare Beweise, die mit einer bestimmten Person verknüpft sind Umweltkontext, Vermittlung von Vertrauen mithilfe irgendeiner Form von PKI-Signaturen.
Richtlinien: Diese definieren die Anforderungen, die Ihre Lieferkette erfüllen muss, und decken verschiedene Aspekte wie Validierung, Compliance-Details und die endgültige Beurteilung der Beweise ab. Beispielsweise könnte die Organisation eine „Container-Image-Richtlinie“ haben.
Richtlinienregeln: Richtlinien bestehen aus Regeln, die jeweils eine bestimmte Konformitätsprüfung darstellen. Beispiele hierfür sind die Überprüfung von Signaturen und Identitäten, die Überprüfung von SBOM-Komponenten und die Überprüfung der Abwesenheit kritischer Schwachstellen. In Anlehnung an das vorherige Beispiel könnte die „Container-Image-Richtlinie“ aus folgenden Regeln bestehen:
- Bildsignierung erzwingen.
- Warnen Sie auf dem Bild und beschweren Sie sich nicht mit bestimmten Etiketten.
Bündel: Sammlungen von Richtlinien und Regeln, die bequem als Ganzes referenziert werden können. Bundles bieten eine modulare und organisierte Möglichkeit, Richtliniensätze als Code zu verwalten und anzuwenden. Das Scribe-Standardrichtlinienpaket wird unter veröffentlicht https://github.com/scribe-public/sample-policies, zögern Sie nicht, darauf zu verweisen.
Verwenden von Richtlinien mit Valint
Valint ermöglicht Benutzern die Nutzung von Richtlinien als Code aus öffentlichen oder privaten Repositorys und bietet Flexibilität und Anpassungsoptionen. Um zu beginnen, installieren Sie einfach Valint und definieren Sie Ihre Richtlinien entsprechend Ihren Compliance-Anforderungen.
Installation: Beginnen Sie mit der Installation von Valint mithilfe des bereitgestellten Skripts. Führen Sie den folgenden Befehl in Ihrem Terminal aus:
curl -sSfL https://get.scribesecurity.com/install.sh | sh -s — -t valint
Richtliniendefinition: Definieren Sie als Nächstes Ihre Richtlinien entsprechend den Compliance-Anforderungen Ihres Unternehmens. Erstellen Sie eine YAML-Datei, z my_policy.yaml
, und strukturieren Sie es, um Ihre gewünschten Regeln zu kapseln. Hier ist ein Beispiel dafür, wie Ihre Richtliniendatei aussehen könnte:
Name: my_image_policy Standardeinstellungen: Beweis: signiert: wahr Regeln: - Verwendungen: images/fresh-image@v1 mit: max_days: 100 - Verwendungen: images/verify-labels-exist@v1 Ebene: Warnung mit: Etiketten: # Bild erforderlich für belabelt werden (Dockerfile LABEL-Befehl) - maintainer # Erfordert ein Maintainer-Label. - org.opencontainers.image.source # Erforderliche Bilder sind mit ihren Quellen gekennzeichnet
In diesem Beispiel haben wir eine Richtlinie mit dem Namen definiert my_image_policy
, die vorschreibt, dass Beweisartefakte signiert und Bilder innerhalb der letzten 100 Tage erstellt werden müssen. Darüber hinaus wird eine Warnung ausgegeben, wenn Bildern bestimmte Beschriftungen fehlen.
Fühlen Sie sich frei zu überprüfen andere Regeln Wir unterstützen out of the box.
Beweiserstellung: Bevor Sie Ihre Policen bewerten, müssen Sie die erforderlichen Nachweise erstellen. Verwenden Sie Valint, um Beweise für Ihr Zielbild zu erstellen:
valint bom nginx:latest -o attest
Dieser Befehl generiert Beweise für die nginx:latest
Bild und stellen Sie sicher, dass es Metadaten wie Bildidentität und Erstellungszeit enthält. Standardmäßig verwendet Valint die signstore Dienst als Unterzeichner für die Beweisgenerierung, der eine OIDC-Identität an ein Zertifikat bindet. Valint unterstützt jedoch auch die Verwendung Ihrer eigenen x509 PKI-Schlüssel und CA-Ketten zum Signieren.
Wählen Sie einfach die OIDC-Kennung Ihrer Wahl aus, mit der Sie signieren möchten.
Schließlich können Sie den Erfolg des Beweiserstellungsprozesses sowie seine Identität überprüfen, um seine Integrität und Vertrauenswürdigkeit sicherzustellen.
[2024 03:26:12] INFO-Attest: [VERTRAUENSWÜRDIG] signieren erfolgreich, CA: fulcio-signer, CN: sigstore-intermediate, E-Mails: [your_identity@gmail.com], URIs: [] ... [41 55:2024:03] INFO-Attest: Nachweis erfolgreich generiert
Richtlinienbewertung: Nachdem Ihre Richtlinie definiert und Beweise generiert wurden, ist es an der Zeit, sie anhand Ihrer Lieferkettenkomponenten zu bewerten. Nutzen Sie die valint verify
Befehl gefolgt vom Zielbild und Ihrer Richtliniendatei:
valint verify nginx:latest --policy my_policy.yaml
Zusammenfassung der Bewertung:
Sobald die Auswertung abgeschlossen ist, überprüfen Sie die Übersichtstabelle, die in den Valint-Protokollen bereitgestellt wird.
In diesem speziellen Fall zeigt die Valint-Analyse, dass die nginx:latest
Das Bild erfüllt erfolgreich die Frischeanforderung, erfüllt jedoch erwartungsgemäß nicht die Kennzeichnungskriterien. Die bereitgestellte Tabelle gibt einen kurzen Überblick über den Bewertungsstatus jeder Regel und gibt an, ob die Beweise ordnungsgemäß unterzeichnet wurden.
SARIF-formatierte Ergebnisse:
Darüber hinaus können Sie die von Valint erstellten SARIF-formatierten Ergebnisse als weitere Beweismittel untersuchen, um die Bewertung, Verstöße, Ebenen und Beweisreferenzen detailliert darzustellen.
Unterstützte Verwaltungsplattformen:
Dieses standardisierte Format wird von verschiedenen Sicherheitsmanagementsystemen wie GitHub, Azure und Scribe SAAS unterstützt. Scribe-Plattformen verarbeiten nicht nur Richtlinienergebnisse, sondern erleichtern auch das Beweismanagement und bieten umfangreiche Funktionen für das Schwachstellenmanagement, die Metrikverfolgung und mehr.
Informationsvorschau:
So geben Sie einen Einblick in die in den Richtlinienergebnissen verfügbaren Informationen:
{ „version“: „2.1.0“, „$schema“: „https://raw.githubusercontent.com/oasis-tcs/sarif-spec/master/Schemata/sarif-schema-2.1.0.json“, „runs“: [ { „tool“: { „driver“: { „informationUri“: „https://scribesecurity.com“, „name“: „valint“, „rules“: [ { „id“: „fresh -image", "name": "Fresh Image", "shortDescription": { "text": "Eine Regel, um zu überprüfen, ob das Bild nicht älter als ein Schwellenwert ist" }, }, { "id": "labels", „name“: „Labels“, „shortDescription“: { „text“: „Eine Regel, um zu überprüfen, ob das Bild über alle erforderlichen Labels verfügt“ }, }, „results“: [ { „ruleId“: „fresh-image“ , „ruleIndex“: 0, „kind“: „pass“, }, { „ruleId“: „labels“, „ruleIndex“: 1, „kind“: „fail“, „level“: „warning“, „policy .violation": { "type": "Missing Labels", "details": [ { "label": "not_found" }, { "label": "org.opencontainers.image.source" } }, ... ] }
Richtlinienpakete
Ein Bundle in Valint ist eine Richtlinie als Codepaket, im Wesentlichen ein Git-Repository Hosten einer Reihe von Richtlinien und Regeln. Benutzer können ihr eigenes Bundle einrichten, indem sie das von Valint bereitgestellte Beispiel-Repository forken und es entsprechend ihren Anforderungen anpassen.
Gabeln und anpassen: Beginnen Sie mit der Gabelung von Valint's Beispiel-Repository. Passen Sie Richtlinien und Regeln an die Bedürfnisse Ihres Unternehmens an.
Bereitstellung für Valint: Liefern Sie Ihr individuelles Paket an Valint:
valint verify --bundle https://github.com/my_org/my_bundle.git \ --policy my_policy.yaml
Benutzerdefinierte Regeln
Beim Anpassen von Regeln besteht die grundlegende Verantwortung darin, die Beweisnutzlast zu analysieren und Verstöße auf der Grundlage der definierten Compliance-Kriterien zu melden. Egal, ob Sie bestehende Regeln ändern oder neue erstellen.
Konformitätskriterien definieren: Definieren Sie die Compliance-Kriterien basierend auf Organisationsrichtlinien, Sicherheitsstandards oder Vorschriften.
Definieren der Beweiskriterien: Definieren Sie die Beweise, die die Einhaltung belegen sollen.
Bewertung der Compliance und Meldung von Verstößen: Verwenden Sie die Beweisnutzlast, um die Einhaltung der definierten Kriterien zu bewerten. Melden Sie Verstöße, wenn die Komponente die Anforderungen nicht erfüllt.
Valint stellt sicher, dass die Signatur- und Nachweisursprungsanforderungen für jede benutzerdefinierte Regel jederzeit verfügbar sind.
Während Valint derzeit beschäftigt ist OPA Rego Für die Regelformulierung erwartet Sie ein spannender Horizont, da Python-Regeln in naher Zukunft integriert werden sollen.
Was kommt als nächstes?
Die Integration mit Gatekeeper ist jetzt möglich! Beachten Sie unsere Dokumentation für Details. Seien Sie gespannt auf einen kommenden Blogbeitrag, in dem wir uns mit dieser aufregenden Entwicklung befassen.
Halten Sie Ausschau nach zukünftigen Blogbeiträgen, in denen wir uns mit Richtlinieninitiativen befassen, einschließlich hochrangiger Richtlinien, die Sicherheitsframeworks wie SLSA und SSDF implementieren.
Spannende Neuigkeiten für Python-Enthusiasten! Unser neuestes Update umfasst umfassende Python-Unterstützung und sorgt so für eine deutliche Kompatibilitätssteigerung. Dies ermöglicht es Richtlinienautoren, Regeln mithilfe von Python anzupassen und die große Auswahl an Bibliotheken zu nutzen.
Fazit
Zusammenfassend bietet die Richtlinien-Engine von Valint eine robuste Lösung zur Sicherstellung der Compliance innerhalb Ihrer Lieferkette. Durch die Nutzung seiner Komponenten wie Nachweise, Richtlinien und Pakete können Unternehmen ihre Compliance-Bemühungen rationalisieren und Risiken effektiv mindern.
Diese Inhalte werden Ihnen von Scribe Security zur Verfügung gestellt, einem führenden Anbieter von End-to-End-Sicherheitslösungen für die Software-Lieferkette, der modernste Sicherheit für Code-Artefakte sowie Code-Entwicklungs- und Bereitstellungsprozesse in der gesamten Software-Lieferkette bietet. Weitere Informationen.