Knotenreferenz (Pro)

Hinweis: Rules Engine 2.0 ist eine Funktion, die nur in DefectDojo Pro verfügbar ist.

Rules Engine 2.0 bringt 25 Knoten in vier Kategorien mit. Diese Seite dokumentiert sie alle.

Sofern nicht anders angegeben, nimmt ein Knoten eine Eingabe entgegen, erzeugt eine Ausgabe namens out und gibt jedes empfangene Element an diese Ausgabe weiter. Das ist wichtig, wenn Sie Knoten verketten: Ein Befunde-Knoten verändert den Befund und reicht das Element dann weiter, sodass mehrere davon hintereinander alle wirksam werden.

Trigger

Jeder Graph hat genau einen Trigger, und nur ein Trigger kann eine Ausführung starten. Alle drei erzeugen Befund-Elemente, und alle drei verwenden einen Geltungsbereich, der eingrenzt, welche Befunde sie erzeugen. Wie der Geltungsbereich funktioniert, erfahren Sie unter Regeln erstellen.

Bei einem Befund-Ereignis

trigger.finding

Läuft, wenn Befunde erstellt, aktualisiert, geschlossen oder wieder geöffnet werden.

EinstellungStandardHinweise
EreigniscreatedWelche Befund-Änderung diese Regel weckt: created, updated, closed, reopened, oder any für alle vier.
GeltungsbereichleerWelche Befunde diese Regel berücksichtigt. Leer bedeutet jeden Befund, den der Regel-Eigentümer sehen kann.

Von dem Ereignis benannte Befunde werden vor dem Eintritt in den Graphen mit dem Geltungsbereich abgeglichen, sodass das Ereignis entscheidet, wann, und der Geltungsbereich entscheidet, welche.

Nach Zeitplan

trigger.schedule

Durchsucht nach einem Zeitplan alle Befunde im Geltungsbereich. Der Zeitplan wird an der Regel konfiguriert und ist auf Viertelstundenmarken beschränkt.

EinstellungStandardHinweise
GeltungsbereichleerWelche Befunde diese Regel berücksichtigt.

Manuelle Ausführung

trigger.manual

Durchsucht alle Befunde im Geltungsbereich, wenn Sie bei der Regel auf Ausführen klicken.

EinstellungStandardHinweise
GeltungsbereichleerWelche Befunde diese Regel berücksichtigt.

Logik

Wenn / Filter

filter.if

Leitet jedes Element anhand von Bedingungen in den true- oder den false-Zweig. Das ist der einzige Knoten mit zwei Ausgängen, und so verzweigt sich ein Graph.

EinstellungStandardHinweise
BedingungenleerJede Zeile besteht aus einem Pfad, einem Operator und einem Wert. Siehe Bedingungen.
ÜbereinstimmungallOb jede Bedingung erfüllt sein muss (all) oder nur eine davon (any).

Eine leere Bedingungsliste lässt alles in den true-Zweig durch. Beide Zweige sind optional: Wird der false-Zweig nicht verbunden, werden die nicht zutreffenden Elemente einfach verworfen.

Begrenzung

flow.limit

Lässt die ersten N Elemente durch und verwirft den Rest. Nützlich als Sicherheitsventil beim Testen einer Regel und um zu begrenzen, wie viele Tickets oder Nachrichten eine einzelne Ausführung erzeugen kann.

EinstellungStandardHinweise
Erste behalten100Wie viele Elemente weitergegeben werden.

Innerhalb der Ausführung deduplizieren

flow.dedupe_batch

Behält das erste Element pro Schlüssel und verwirft spätere Elemente mit demselben Schlüssel. Auf die Ausführung beschränkt, sodass innerhalb einer Ausführung dedupliziert wird, nicht über mehrere Ausführungen hinweg.

EinstellungStandardHinweise
Schlüsselpfadfinding.hash_codeDer Element-Pfad, dessen Wert ein Duplikat identifiziert.

Ein gängiger Anwendungsfall ist finding.component_name, um einmal pro betroffener Komponente statt einmal pro Befund zu benachrichtigen.

Befunde

Diese Knoten verändern Befunde. Jede Änderung wird der Regel, der Ausführung und dem Knoten zugeordnet, die sie vorgenommen haben, und erscheint in der Herkunfts-Zeitleiste des Befunds.

Schweregrad festlegen

finding.set_severity

Legt den Schweregrad fest und berechnet dabei das SLA-Datum und die Priorität neu.

EinstellungOptionen
SchweregradCritical, High, Medium, Low, Info

Ein Feld festlegen

finding.set_field

Legt ein Textfeld fest, hängt daran an oder stellt ihm etwas voran.

EinstellungStandardHinweise
FeldkeinerEines von component_name, component_version, cvssv3, cwe, description, file_path, impact, mitigation, service, title.
Modussetset, append oder prepend. Ein CVSSv3-Vektor kann nur ersetzt werden.
WertkeinerDer zu schreibende Text. Unterstützt Platzhalter im Stil von {{finding.title}}.

Status festlegen

finding.set_status

Versetzt den Befund in einen Status.

EinstellungStandardHinweise
Statuskeineractive, inactive, verified, unverified, false_positive, mitigated, reopen.
NotizleerEine optionale Notiz, die zusammen mit der Statusänderung erfasst wird.

Tags hinzufügen

finding.add_tags

Fügt dem Befund Tags hinzu. Vorhandene Tags bleiben erhalten.

EinstellungHinweise
TagsDurch Kommas getrennt. Unterstützt Platzhalter im Stil von {{product.name}}, sodass Sie mit Daten aus dem Befund taggen können.

Eine Notiz hinzufügen

finding.add_note

Fügt dem Befund eine Notiz hinzu.

EinstellungHinweise
NotizDer Notiztext. Unterstützt Platzhalter.

Eigentümer festlegen

finding.set_owners

Macht eine Gruppe für den Befund verantwortlich.

EinstellungHinweise
GruppeDie Gruppe, der diese Befunde gehören.

Prüfer festlegen

finding.set_reviewers

Stellt den Befund zur Prüfung durch die ausgewählten Benutzer.

EinstellungHinweise
PrüferEin oder mehrere Benutzer, die diese Befunde prüfen sollen.

Risiko akzeptieren

finding.risk_accept

Akzeptiert den Befund per einfacher Risikoakzeptanz oder fügt ihn einem Risikoakzeptanz-Datensatz hinzu.

EinstellungStandardHinweise
Wiesimplesimple setzt eine einfache Risikoakzeptanz auf den Befund. acceptance fügt ihn einem Risikoakzeptanz-Datensatz hinzu.
AkzeptierteinWird bei simple angezeigt. Ausschalten, um die Risikoakzeptanz rückgängig zu machen.
RisikoakzeptanzkeineWird bei acceptance angezeigt. Zu welcher Risikoakzeptanz diese Befunde hinzugefügt werden.

Behebungsrichtlinie festlegen

finding.set_mitigation_policy

Legt die Behebungsrichtlinie fest, unter der der Befund behoben wird.

EinstellungHinweise
BehebungsrichtlinieDie anzuwendende Richtlinie.

Priorität ändern

finding.set_priority

Legt die Priorität fest oder passt sie rechnerisch an. Das überschreibt die berechnete Priorität.

EinstellungStandardHinweise
Operationsetset, add, subtract, multiply, divide.
WertkeinerDie zu setzende Priorität, oder der Betrag, um den angepasst wird.

Risiko festlegen

finding.set_risk

Legt das Risiko fest und überschreibt damit das berechnete.

EinstellungOptionen
RisikoLow, Medium, Needs Action, Urgent

Egress

Egress-Knoten sind die Knoten, die DefectDojo verlassen. Jeder von ihnen erfasst eine Zustellung, bevor irgendetwas gesendet wird, und jeder von ihnen beachtet den Simulate- oder Live-Modus der Regel.

Mehrere von ihnen bieten dieselbe Option Eine Nachricht pro Befund. Ausgeschaltet sendet der Knoten eine Nachricht, die den gesamten Batch beschreibt, mit einer Aufschlüsselung nach Schweregrad und einer begrenzten Liste von Befunden. Eingeschaltet sendet er eine Nachricht pro Befund.

Ein Knoten, der eine Nachricht pro Befund sendet, stoppt standardmäßig nach 1.000 Versänden in einer einzelnen Ausführung und erfasst ein sichtbares Überspringen, das angibt, für wie viele Befunde nichts gesendet wurde. Siehe Konfiguration.

Wenn ein Kanal nicht verfügbar ist

Ein Egress-Knoten hängt von etwas außerhalb der Regel ab: einem Slack-Token, einem Microsoft-Teams-Webhook, einer JIRA-Konfiguration, einem lizenzierten Connector. Fehlt das oder ist es abgeschaltet, kann der Knoten nicht arbeiten, und Rules Engine 2.0 macht das an drei verschiedenen Stellen deutlich, statt still zu scheitern:

  • In der Palette wird ein nicht verfügbarer Knoten als solcher markiert, mit Angabe des Grundes, bevor Sie ihn auf die Zeichenfläche ziehen.
  • Beim Speichern wird ein Graph, der einen nicht verfügbaren Knoten enthält, abgelehnt. Das ist der Moment, in dem jemand anwesend ist, um einen anderen auszuwählen.
  • Zur Laufzeit wird die Zustellung mit angehängtem Grund übersprungen, nicht als fehlgeschlagen markiert. Eine Regel, die gespeichert wurde, während Slack aktiv war, soll nicht plötzlich Fehler werfen, sobald jemand Slack abschaltet. Der ehrliche Eintrag ist eine übersprungene Zustellung, die besagt, dass Slack abgeschaltet ist.

Ein JIRA-Issue erstellen

ticket.jira

Erstellt oder aktualisiert das JIRA-Issue für den Befund.

EinstellungStandardHinweise
Befunde überspringen, die bereits ein Issue habeneinLässt Befunde unangetastet, die bereits ein JIRA-Issue haben.
Vorhandenes Issue aktualisierenausWird angezeigt, wenn die obige Option ausgeschaltet ist. Übermittelt Befunde, die bereits ein Issue haben, sodass JIRA aktualisiert wird.

Zusammenfassung, Beschreibung und Priorität stammen aus der JIRA-Konfiguration des Produkts, nicht aus diesem Knoten. Ein von einer Regel erstelltes Ticket ist daher identisch mit einem, das durch „Alle Issues übermitteln" erstellt wurde.

Ein Downstream-Ticket erstellen

ticket.downstream

Erstellt oder aktualisiert ein Ticket über einen Downstream-Connector.

EinstellungStandardHinweise
Issue-Trackerautoauto verwendet die Issue-Tracker, die dem Engagement oder Produkt zugewiesen sind. mapping zielt auf ein bestimmtes Mapping.
Issue-Tracker-MappingkeinesWird bei mapping angezeigt. An welches Mapping übermittelt wird.
Operationcreatecreate erzeugt ein Ticket, oder update aktualisiert das vorhandene. Ein Update ohne vorhandenes Ticket erstellt es.
Befunde überspringen, die bereits ein Ticket habeneinLässt Befunde unangetastet, die im Ziel-Mapping bereits ein Ticket haben.

Die Regel ersetzt die automatischen Übermittlungseinstellungen der Zuweisung: Schweregrad- und „nur aktiv"-Filter werden hier nicht ein zweites Mal angewendet. Ein Befund, dessen Ticket bereits existiert, wird übersprungen, unabhängig davon, wie dieses Ticket erstellt wurde.

Eine Slack-Nachricht senden

notify.slack

Postet über einen Messaging-Connector in einen Slack-Kanal. Die Verbindung führt das Bot-Token; die instanzweiten Slack-Einstellungen unter Systemeinstellungen werden nicht verwendet und dienen nicht als Fallback.

EinstellungStandardHinweise
VerbindungkeineEin Messaging-Connector dieses Typs. Erforderlich.
ZielleerWird angezeigt, sobald eine Connection ausgewählt ist. Die Felder hängen vom Anbieter der Connection ab.
Eine Nachricht pro BefundausAusgeschaltet sendet eine Nachricht über den gesamten Batch.
Nachricht{{finding.severity}}: {{finding.title}} ({{product.name}})Wird pro Befund gerendert.
In der Zusammenfassung aufgeführte Befunde10Wird bei Sammelnachrichten angezeigt. Wie viele Befunde die Nachricht auflistet, bevor sie angibt, wie viele weitere es gab.

Eine Microsoft-Teams-Nachricht senden

notify.msteams

Postet eine Karte über einen Messaging-Connector. Die Verbindung führt die Power-Automate-Workflow-URL; der instanzweite Teams-Webhook unter Systemeinstellungen wird nicht verwendet und dient nicht als Fallback.

EinstellungStandardHinweise
VerbindungkeineEin Messaging-Connector dieses Typs. Erforderlich.
ZielleerWird angezeigt, sobald eine Connection ausgewählt ist. Die Felder hängen vom Anbieter der Connection ab.
Eine Nachricht pro BefundausAusgeschaltet sendet eine Karte über den gesamten Batch.
Nachricht{{finding.severity}}: {{finding.title}} ({{product.name}})Wird pro Befund gerendert.
In der Zusammenfassung aufgeführte Befunde10Wird bei Sammelnachrichten angezeigt.

Eine E-Mail senden

notify.email

Verschickt E-Mails an eine feste Liste von Adressen über einen Messaging-Connector. Die Empfänger sind das Ziel der Connection.

EinstellungStandardHinweise
VerbindungkeineEin Messaging-Connector dieses Typs. Erforderlich.
ZielleerWird angezeigt, sobald eine Connection ausgewählt ist. Die Felder hängen vom Anbieter der Connection ab.

| Betreff | [DefectDojo] {{ctx.count}} finding(s) from rule {{ctx.rule_name}} | Wird einmal pro Nachricht gerendert. | | Inhalt | ein HTML-Body, der {{ctx.findings_html}} enthält | HTML. {{ctx.findings_html}} rendert die Befundliste. | | Eine Nachricht pro Befund | aus | Ausgeschaltet sendet eine E-Mail über den gesamten Batch. | | Im Inhalt aufgeführte Befunde | 25 | Wie viele Befunde {{ctx.findings_html}} auflistet, bevor angegeben wird, wie viele weitere es gab. |

Einen Webhook aufrufen

notify.webhook

Sendet JSON per POST an einen Webhook-Endpunkt.

EinstellungStandardHinweise
Webhook-EndpunktkeinerEin konfigurierter Benachrichtigungs-Webhook. Sein benutzerdefinierter Header wird mit der Anfrage gesendet.
URLleerWird angezeigt, wenn kein Endpunkt ausgewählt ist. Wohin per POST gesendet wird.
Eine der beiden oben genannten Optionen ist erforderlich.
SignaturschlüsselleerSigniert den Body als X-DefectDojo-Signature: sha256=HMAC.
Eine Nachricht pro BefundausAusgeschaltet postet den gesamten Batch in einer einzigen Anfrage.

Zwei Dinge sind wichtig zu wissen. Ein hier eingegebenes Signing Secret wird zusammen mit der Regel gespeichert. Bevorzugen Sie daher für alles Sensible einen konfigurierten Endpunkt mit eigenem Header. Und ein von einer Regel aufgerufener Webhook ändert niemals den eigenen Health-Status dieses Endpunkts, sodass eine Regel Ihre Benachrichtigungs-Webhooks nicht durch Fehlschlagen deaktivieren kann.

Frei eingegebene URLs werden beim Speichern validiert. Siehe Konfiguration für Informationen dazu, was abgelehnt wird und wie private Adressen zugelassen werden können.

Eine In-App-Benachrichtigung auslösen

notify.alert

Erstellt eine In-App-Benachrichtigung über den Batch.

EinstellungStandardHinweise
TitelRules Engine 2.0: {{ctx.rule_name}}Wird einmal für den gesamten Batch gerendert.
Beschreibung{{ctx.count}} finding(s) matched the rule {{ctx.rule_name}}.Wird einmal für den gesamten Batch gerendert.
EmpfängerleerBenutzernamen, durch Kommas getrennt. Leer benachrichtigt die Administratoren.

Empfänger steuern dies weiterhin über ihre eigene Benachrichtigungseinstellung Rules Engine Match, sodass eine Benachrichtigung die Benachrichtigungspräferenzen eines Benutzers nicht umgehen kann.

Einen Bericht erstellen

report.generate

Erzeugt einen Bericht aus einer Vorlage, beschränkt auf die Befunde, die diesen Knoten erreicht haben, und kann den Download-Link ankündigen.

EinstellungStandardHinweise
BerichtsvorlagekeineAus welcher Vorlage erzeugt wird. Erforderlich.
Formatpdfpdf oder html.
Enthaltene Befundebatch_findingsbatch_findings beschränkt den Bericht auf die Befunde, die diesen Knoten erreicht haben. template_default lässt die Vorlage ihre eigenen Filter verwenden.
Ankündigen überkeineEin Messaging-Connector, über den der Download-Link gepostet wird, sobald der Bericht erzeugt wurde. Leer lassen, um nicht anzukündigen.
Ankündigen anleerWird angezeigt, sobald eine Connection ausgewählt ist. Wohin diese Connection sendet: eine Slack-Kanal-ID, E-Mail-Adressen und so weiter.
AnkündigungReport ready: {{ctx.report_url}}Wird bei einer Ankündigung angezeigt. {{ctx.report_url}} ist der Download-Link.

batch_findings ist das, was eine Regel kann und ein geplanter Bericht nicht: genau über die Befunde berichten, die gerade zugetroffen haben.

Die Ankündigung wird als eigene Zustellung erfasst, getrennt von der Berichtserstellung, sodass Sie sehen können, dass der Bericht erfolgreich war, während die Ankündigung unabhängig davon fehlschlägt.