Skip to main content
Voraussetzung: Sie haben einen Scan abgeschlossen und PolicyIQ ist aktiviert. Wenden Sie sich zur Aktivierung an Ihren Ansprechpartner bei Corgea.
Corgea enthält vorkonfigurierte Richtlinien für gängige Sicherheitsmuster, Frameworks und Infrastrukturkonfigurationen, die sofort verwertbare Ergebnisse liefern. Sie können diese Richtlinien anpassen und um Geschäfts-, Netzwerk- und Umgebungskontext erweitern. Dadurch verbessert sich die Genauigkeit bei der Schwachstellenerkennung, der Identifizierung von False Positives und der Generierung von Fixes. Der zusätzliche Kontext hilft Corgea, Ihre Sicherheitsanforderungen und Infrastruktur zu berücksichtigen.

Wichtiges Verhalten von Richtlinien

Beachten Sie vor der Konfiguration folgende Verhaltensweisen:
  1. Anwendung der Richtlinie: Neue Richtlinien treten nur für neue Scans in Kraft – sie wirken sich nicht rückwirkend auf bestehende Ergebnisse aus.
  2. Richtlinienvorrang:
    • Bei False-Positive-Erkennung und Fixes haben spezifische Richtlinien Vorrang vor allgemeinen Richtlinien
    • Beispielsweise überschreibt eine SSRF-spezifische False-Positive-Richtlinie eine allgemeine False-Positive-Richtlinie
    • Kundenspezifische Richtlinien haben immer Vorrang vor Corgeas integrierten Richtlinien
  3. Richtliniengruppierung: Für Scan-Richtlinien wird empfohlen, verwandte Sicherheitsaspekte zusammenzufassen, anstatt einzelne Richtlinien zu erstellen. Zum Beispiel:
    • Authentifizierung, Autorisierung und Berechtigungsverwaltung zusammenfassen
    • Verwandte Datenvalidierungsprüfungen kombinieren
    • Zusammengehörige Prüfungen von Sicherheitskontrollen bündeln Dieser Ansatz liefert bessere Ergebnisse, da sich die betreffenden Sicherheitsaspekte häufig überschneiden.

Richtlinienstruktur

Eine gut strukturierte Richtlinie sollte die folgenden Komponenten enthalten:
  1. Policy Type: Wählen Sie BLAST zur Schwachstellenerkennung, False Positive zur Identifizierung von Fehlalarmen oder Fix für Code-Fixes.
  2. Business Context: Beschreiben Sie:
    • Geschäftsbereich und Anforderungen
    • Netzwerkarchitektur und Sicherheitskontrollen
    • Umgebungsspezifische Konfigurationen
    • Anforderungen an Datenklassifizierung und -verarbeitung
    • Compliance-Anforderungen (z. B. PCI, HIPAA, DSGVO)
  3. Description: Geben Sie klare Anweisungen mit Ihrem Kontext an, darunter:
    • Spezifische Schwachstellenmuster in Ihrer Umgebung
    • Codebeispiele, die für Ihre Architektur relevant sind
    • Den Umgang mit Issues unter Berücksichtigung Ihrer Infrastruktur
  4. Schwachstellentypen (CWEs): Wählen Sie aus, welche Arten von Sicherheitslücken diese Richtlinie behandeln soll, basierend auf Ihrem Risikoprofil.
  5. Projects: Wählen Sie die Projekte aus, für die die Richtlinie gelten soll. Bei aktiviertem Project Access Control können Benutzer ohne Administratorrolle Richtlinien nur für Projekte erstellen und verwalten, auf die sie Zugriff haben. Dabei müssen sie mindestens ein zugängliches Projekt auswählen. Unternehmensadministratoren können weiterhin projektübergreifende Richtlinien erstellen.
  6. File Pattern (Glob): Beschränken Sie die Richtlinie optional auf passende Dateien, beispielsweise src/**/*.py. Ohne Wert gilt sie für alle Dateien.
  7. Guidance Notes (Optional): Ergänzen Sie statische Hinweise für Entwickler, etwa interne Behebungshinweise, Links zu Standards oder Implementierungstipps. Diese Hinweise erscheinen bei Issues, auf die die Richtlinie angewendet wurde.
  8. Instruction Type: Legen Sie fest, wie Ihre Anweisungen mit Corgeas integrierten Richtlinien interagieren:
    • Append to Corgea Default Policy: Ergänzt Corgeas integrierte Richtlinie um Ihre Anweisungen. Verwenden Sie diese Option für zusätzlichen Geschäftskontext, Sicherheitskontrollen oder Umgebungsdetails.
    • Replace Corgea Default Policy: Ersetzt Corgeas Standardverhalten vollständig durch Ihre Anweisungen. Verwenden Sie diese Option, wenn Sie die Behandlung bestimmter Szenarien vollständig steuern möchten.

Policy Playground

Policy Playground ist ein zweigeteilter Arbeitsbereich, in dem Sie Richtlinien erstellen, aktualisieren und testen, bevor diese Ihre Scans beeinflussen. Links bearbeiten Sie die Richtlinie, rechts testen Sie sie mit echtem Code.
  • Der Arbeitsbereich besteht aus einem Policy Editor links und einem Test Panel rechts. Die Breite beider Bereiche lässt sich über den Trenner ändern.
  • Mit Back to Policies in der oberen Toolbar kehren Sie zur Tabelle Policies zurück.
  • Öffnen Sie eine bestehende BLAST- oder False Positive-Richtlinie direkt in Policy Playground aus der Richtlinientabelle.
  • Durchsuchen Sie die Tabelle “Policies” nach Policy ID, Name, Typ oder Beschreibung, um eine Richtlinie schnell zu finden.
  • Das Bearbeiten und Speichern im Policy Playground aktualisiert die Richtlinie, indem eine neue Version erstellt wird.
  • Instruction Type im Editor wird als zwei klar erklärte Optionen angezeigt: Replace Corgea Default Policy oder Append to Corgea Default Policy.
  • Lassen Sie Projects, File Pattern (Glob) oder CWEs leer, wenn diese Richtlinie global angewendet werden soll.
  • Wenn die Projekt-Zugriffskontrolle aktiviert ist, können Benutzer mit eingeschränktem Zugriff Richtlinien sehen, die für sie sichtbar sind, aber nur Richtlinien bearbeiten oder löschen, die vollständig auf Projekte angewendet werden, auf die sie zugreifen können.
Im Policy Playground können Sie nur BLAST- und False Positive-Richtlinien testen. Fix-Richtlinien lassen sich weiterhin im Policy Center erstellen, erscheinen im Playground jedoch als Fix (coming soon), da Fix-Tests noch nicht unterstützt werden.

Testen einer Richtlinie

Wählen Sie zum Testen einer Richtlinie ein Project und eine file aus und klicken Sie auf Test. Während des Scans zeigt die Schaltfläche Testing… an und bleibt bis zum Abschluss deaktiviert. Fehlen Pflichtangaben, nennt ein Hinweis unter der Schaltfläche die fehlenden Werte: Projekt, Datei oder Richtlinienanweisungen. Standardmäßig zeigt die Dateiauswahl nur Dateien mit erkannten Issues an. Um eine noch nicht vorhandene Datei zu testen, aktivieren Sie New Test File, wählen ein Projekt und geben einen Dateinamen ein. Das Projekt liefert den Sprach- und Framework-Kontext; den Testcode geben Sie anschließend im Editor ein.

Ergebnisse überprüfen

Nach Abschluss des Scans erscheinen die Findings unter der Dateivorschau. Jede aufklappbare Zeile zeigt severity, CWE und line number. Klappen Sie ein Finding auf, um die Erklärung zu lesen, und wechseln Sie mit Jump to line zur betreffenden Zeile.
Findet der Scan keine Treffer, zeigt das Panel No issues found for this policy an und bestätigt damit die erfolgreiche Ausführung.

PR-Scan- und Kommentarrichtlinien

PR Scan & Comment Rules steuern, wann Corgea Pull Requests scannt und Finding-Kommentare im Pull Request veröffentlicht.
  • Scan Only scannt den Pull Request, veröffentlicht aber keine Finding-Kommentare.
  • Scan & Comment scannt und kommentiert Findings, die der Regel entsprechen.
  • Severity beschränkt die Regel auf ausgewählte Schweregrade. Ohne Auswahl gilt jeder Schweregrad.
  • Classification to comment beschränkt Kommentare auf ausgewählte CWE-Typen. Ohne Auswahl werden alle passenden CWEs kommentiert.
  • Projects und Project Tags bestimmen den Geltungsbereich. Eine Regel gilt, wenn das Projekt direkt ausgewählt ist oder eines der gewählten Tags besitzt. Sind beide Felder leer, gilt sie für alle Projekte.
  • Integrations beschränkt die Regel zusätzlich auf Pull Requests ausgewählter GitHub-, GitLab- oder Azure-DevOps-Integrationen. Ohne Auswahl bestimmen nur Projekte und Projekt-Tags den Scope.
Mit dem Projekt-Tag-Filter auf der Seite für PR-Regeln finden Sie Scan-&-Comment-Regeln für Projekte mit einem bestimmten Tag. In der Tabelle zeigt die Spalte Projects ausgewählte Projekte und Tags als Chips. Regeln ohne Projekt- oder Tag-Scope zeigen All Projects; längere Listen werden hinter dem Tooltip +N more zusammengefasst.

Best Practices für Richtlinien

Beim Schreiben von Richtlinien befolgen Sie diese bewährten Methoden, um einen effektiven Kontext zu bieten:
  1. Seien Sie spezifisch hinsichtlich Ihrer Umgebung: Detaillieren Sie Ihre Infrastruktur, Sicherheitskontrollen und kompensierende Kontrollen.
  2. Geschäftslogik einbeziehen: Erklären Sie geschäftsspezifische Validierungsregeln, Datenflüsse und Sicherheitsanforderungen.
  3. Sicherheitsarchitektur beschreiben: Dokumentieren Sie Ihre Sicherheitsebenen, Vertrauensgrenzen und Schutzmechanismen.
  4. Datenkontext definieren: Geben Sie an, wie verschiedene Datentypen in Ihrer Umgebung behandelt werden sollen.
  5. Ausnahmen dokumentieren: Notieren Sie legitime Geschäftsfälle für scheinbare Sicherheitsprobleme.

Beispiele

Beim Erstellen von Richtlinienbeispielen beachten Sie diese Tipps, um sie effektiver zu machen:
  1. Mehrere Beispiele verwenden: Fügen Sie 3-5 verschiedene Beispiele für jeden Richtlinientyp hinzu, um:
    • Verschiedene Anwendungsfälle und Szenarien zu zeigen
    • Spezifische Randfälle Ihrer Umgebung abzudecken
    • Unterschiedliche Komplexitätsstufen zu demonstrieren
    • Veranschaulichen Sie verschiedene Sicherheitskontrollen und ausgleichende Maßnahmen
  2. Beispiele relevant machen: Stellen Sie sicher, dass Ihre Beispiele:
    • Ihre tatsächliche Infrastruktur und Architektur widerspiegeln
    • Echte Sicherheitskontrollen enthalten, die Sie verwenden
    • Auf Ihre spezifischen Tools und Frameworks verweisen
    • Mit Ihren Entwicklungsmustern und -praktiken übereinstimmen
  3. Beispiele klar strukturieren: Formatieren Sie Ihre Beispiele mit:
    • Klare Abschnittsüberschriften und Bezeichnungen
    • Konsistente Formatierung und Einrückung
    • Detaillierte Kommentare, die Schlüsselpunkte erklären
    • Tags zur Trennung verschiedener Komponenten
  4. Kontext einbeziehen: Jedes Beispiel sollte bereitstellen:
    • Das spezifische Geschäftsszenario
    • Relevante Infrastrukturdaten
    • Eingesetzte Sicherheitskontrollen
    • Erwartetes Verhalten und Ergebnisse
Nachfolgend finden Sie Beispielrichtlinien, die diese Prinzipien demonstrieren:

BLAST-Richtlinienbeispiel

Richtlinientyp: BLAST

False Positive-Richtlinienbeispiel

Richtlinientyp: False Positive

Fix-Richtlinienbeispiel

Hier ist ein Beispiel für eine Fix-Richtlinie, die eine benutzerdefinierte Middleware verwendet, um vor XSS-Schwachstellen zu schützen: Richtlinientyp: Fix
Mit diesem Kontext kann Corgea Fixes generieren, die Ihre eigene Security-Middleware korrekt integrieren und Ihre Secure-Coding-Vorgaben für den XSS-Schutz einhalten. Richtlinientyp: Fix
Ausführlicher Kontext zu Geschäftsumgebung, Sicherheitskontrollen und Infrastruktur ermöglicht Corgea präzisere, auf Ihre Anforderungen zugeschnittene Sicherheitsanalysen.

Durch Prework generierte Richtlinien

Wenn Prework für Ihr Unternehmen aktiviert ist, kann Corgea bereits vor Abschluss des Hauptscans Richtlinien aus dem Projektkontext generieren.
  • Generierte Richtlinien erscheinen in der Tabelle Policies mit dem Wert Generated By Corgea Prework unter Source.
  • In den Scan-Details zeigt der Tab Policies alle auf den Scan angewendeten Richtlinien einschließlich älterer archivierter oder inaktiver Versionen. Von dort können Sie die Details öffnen.
  • Ist unter Policies > Settings die Option Policy Review aktiviert, erstellt Corgea generierte Richtlinien als Inactive, damit Ihr Team sie prüfen und manuell aktivieren kann.

Richtlinie generieren

Sie können die Richtliniengenerierung jederzeit auf der PolicyIQ-Seite manuell starten.
1

Generate Policy auswählen

Klicken Sie auf der Seite PolicyIQ oben rechts auf Generate Policy.
2

Formular ausfüllen

Wählen Sie im Dialog ein Pattern (z. B. Authentication), ein Project und einen Policy Type aus. Starten Sie mit Generate.
3

Prework abschließen lassen

Corgea analysiert Ihr Projekt im Hintergrund mit einem Corgea-Prework-Scan. Den Fortschritt können Sie unter Scans verfolgen.
4

Generierte Richtlinie prüfen

Nach Abschluss erscheint die Richtlinie in der Tabelle Policies. Öffnen Sie sie, um die Details einschließlich der Beschreibung mit realen Codemustern aus Ihrem Projekt zu prüfen.

Unterstützung für Corgea-Richtlinien in YAML

Mit einer corgea.yaml-Datei können Kunden Sicherheitsrichtlinien für ihre Projekte definieren, darunter:
  • Bestimmte CWE-IDs
  • Richtlinien für einzelne Unterverzeichnisse
  • Tests neuer Richtlinien in einem separaten Branch
Die Funktion ist in den Tarifen Scale und Enterprise verfügbar und muss zusätzlich aktiviert werden. Weitere Informationen erhalten Sie unter https://corgea.com/contact. Ein Beispiel finden Sie im Example Repository. Die Main Policies enthalten allgemeine Richtlinien. Beispiele für unterverzeichnisspezifische Richtlinien: Diese Konfigurationen berücksichtigen die Aufgabe des jeweiligen Verzeichnisses bei der Schwachstellenerkennung. Besonders in Monorepos können Entwickler dadurch den passenden Kontext festlegen.

Workflow zum Aktualisieren von corgea.yaml

1

Branch erstellen und Scan starten

Erstellen Sie einen neuen Branch mit der Datei corgea.yaml und öffnen Sie einen Pull Request. Dadurch startet automatisch ein Scan des Branches. Alternativ können Sie den Scan auf der Projektseite manuell starten.
2

Richtliniendatei prüfen

Öffnen Sie PolicyIQ und wechseln Sie zum Bereich Policy File in Repos.
3

Richtlinien aus der Datei prüfen

Öffnen Sie den Bereich, um die aus corgea.yaml generierten Richtlinien zu prüfen.
4

`Associated Issues` öffnen

Klicken Sie auf Associated Issues, um die durch diese Richtlinie ausgelösten Issues anzuzeigen.
5

Aktualisieren, testen und Pull Request mergen

Passen Sie die Konfiguration an, bis die Ergebnisse Ihren Erwartungen entsprechen. Mergen Sie anschließend den Pull Request, um corgea.yaml in den Main-Branch zu übernehmen.

Grundkonfiguration für corgea.yaml

Eine grundlegende corgea.yaml sieht wie folgt aus:
  • type: Richtlinientyp; mögliche Werte sind scan, false_positive und fix
  • description: Inhalt der Richtlinie; zusätzlicher Kontext oder interne Sicherheitsvorgaben zur Anpassung der Schwachstellen-Findings

Erweiterte Konfiguration für corgea.yaml

Optional können Sie folgende Felder ergänzen:
  • instruction_type: Legt fest, wie Ihre Anweisungen mit Corgeas integrierten Richtlinien interagieren. "append" ergänzt die integrierten Richtlinien. "overwrite" ersetzt Corgeas Standardverhalten vollständig und ist der Standardwert.
  • guidance_text: Optionale statische Hinweise, die Entwicklern bei Issues dieser Richtlinie angezeigt werden. Verwenden Sie das Feld für teamspezifische Anweisungen, interne Links oder Behebungskontext.
  • cwes: Gilt nur für fix und false_positive und beschränkt eine Richtlinie auf bestimmte CWEs. Beispiel:
  • excludes: Schließt Pfade mit Glob-Ausdrücken von einem bestimmten Richtlinien-Scan aus.
  • ignore_paths: Schließt Verzeichnisse global von allen Scans und der Erstellung neuer Issues aus. (Hinweis: Diese Pfade werden global und nicht nur für eine bestimmte Richtlinie ignoriert. Muster wie **/vendor/** stimmen in jeder Verzeichnistiefe überein.)
  • path: Ermöglicht die zentrale Verwaltung, statt separate corgea.yaml-Dateien in Unterverzeichnissen anzulegen.
Für mini-juice-shop kann beispielsweise eine zentrale corgea.yaml wie in diesem Beispiel verwendet werden:
Nachdem Sie einen Scan für einen Branch mit zentraler YAML-Konfiguration gestartet haben:
1

PolicyIQ zeigt fünf generierte Richtlinien an

2

Richtlinien und zugehörige Pfade anzeigen