Playbooks sind eine leistungsstarke Funktion, die es uns ermöglicht, benutzerdefinierte Workflows für reale Ereignisse zu erstellen. In dieser Übung verwenden wir eine Drittanbieter-Intelligenzquelle – VirusTotal – um zu entscheiden, ob eine verdächtige Dateierkennung wahrscheinlich eine Bedrohung darstellt. Basierend auf den Ergebnissen passen wir das Urteil bei Bedarf an und senden eine Benachrichtigung. Wenn Sie mit der Benutzeroberfläche von Playbooks nicht vertraut sind, finden Sie hier eine Einführung.
Hinweis: Der Abschnitt am Ende behandelt das Debuggen Ihres Playbooks. Diese Funktion bietet eine sehr nützliche Ansicht des Verhaltens Ihres Playbooks und kann dabei helfen, Probleme mit dem Workflow oder der Syntax zu identifizieren und zu beheben.
Erste Schritte
Dieses Playbook ist arbeitsbereichsspezifisch. Klicken Sie also oben rechts auf der Playbooks-Seite des Arbeitsbereichs auf Neues Playbook. Da dies eine Überprüfung einer Erkennung mit VirusTotal sein wird, nennen wir es VirusTotal Lookup, verwenden den Standard-Bedrohungstyp Datei und wählen Erstellen, um zu starten.
Unser Playbook hat nun sein erstes Element, und wir benötigen einen Auslöser, um den Workflow zu starten. Klicken Sie also auf WS VirusTotal Lookup, um den Inspektor-Tab zu öffnen und seine Eigenschaften zu bearbeiten. Wenn das Eigenschaftenfeld angezeigt wird, möchten Sie möglicherweise das Rechteckelement WS VirusTotal Lookup nach rechts ziehen, falls es teilweise verdeckt ist. Um den Auslöser zu definieren, der das Playbook starten soll, wählen Sie + Bedingungsgruppe hinzufügen.
Legen Sie die Bedingung des Triggers auf Schweregrad fest, ändern Sie den Test in Größer oder Gleich und setzen Sie den Wert des Triggers auf Verdächtig. Achten Sie darauf, Speichern auszuwählen, wenn Sie fertig sind.
Bedrohungs-Intelligenzquelle
Hinweis: Um fortzufahren, benötigen Sie ein VirusTotal-Konto: Sie können sich unter www.virustotal.com registrieren. Mit einem Konto haben Sie Zugriff auf die VirusTotal-API, die wir für unsere Abfrage verwenden werden (weitere Informationen zur VT-API finden Sie hier).
Als Nächstes konfigurieren wir, wie wir VirusTotal nutzen werden, um unsere Bewertung der potenziellen Bedrohung zu unterstützen. Wählen Sie aus der Liste der verfügbaren Elemente Bedrohungs-Intelligenzquelle aus und ziehen Sie es unter unser Element WS VirusTotal Lookup.
Wählen Sie Ihr neues Element Bedrohungs-Intelligenzquelle aus und geben Sie einen neuen Namen ein, z. B. VirusTotal Lookup.
API-Aufruf erstellen
Die Methode, die wir verwenden werden, ist standardmäßig GET, und wir übergeben VirusTotal den Hash der Datei, die wir untersuchen, wie in deren API-Dokumentation angegeben. Konkret wird der Aufruf, den wir erstellen, wie in der VirusTotal-API-Dokumentation gezeigt, folgendermaßen aussehen:
Um zu beginnen, geben wir die Quell-URL ein als:https://virustotal.com/api/v3/files/{{Incident: Sha1}}
Beachten Sie, dass beim Eingeben der obigen URL, sobald die ersten geschweiften Klammern {{
eingegeben werden, ein Dialogfeld erscheint, in dem wir die Variable auswählen können, die wir verwenden möchten. In diesem Fall: Incident: SHA-1.
Stellen Sie den Auth-Typ auf HTTP-Header, geben Sie x-apikey als Auth-Header ein, und verwenden Sie für den Header-Wert den API-Schlüssel Ihres VirusTotal-Kontos:
Der letzte Teil unserer Abfrage gibt das gewünschte Format für die Antwort an. Wir verwenden JSON, also wählen Sie unter Headers + Header hinzufügen und geben den Header-Namen accept sowie den Header-Wert application/json ein.
Antwort formatieren
Im Abschnitt Datenzuordnung definieren wir aus der Antwort auf unsere Abfrage zwei Variablen, die wir im Playbook-Workflow verwenden werden:
-
Um die Ergebnisse der Antiviren-Anbieter (engine_name) zu filtern, die die Datei als bösartig markieren, definieren wir die Variable vt_engines und erstellen eine Liste mit Zu Array hinzufügen (String), wobei die Werte über JsonPath mit der Abfrage gezogen werden:
$.data.attributes.last_analysis_results..[?(@.category == 'malicious')].engine_name
-
Wir definieren vt_id mit der JsonPath-Abfrage
$.data.id
; diese wird verwendet, um festzustellen, ob VirusTotal einen Datensatz für diesen Datei-Hash hat.
Die oben beschriebene Datenzuordnung wird wie folgt eingegeben:
Wählen Sie Speichern, um das VirusTotal-Lookup-Element abzuschließen, und klicken Sie zurück auf den Hauptbereich des Workflows. Wir verbinden nun das Playbook-Element VirusTotal Lookup (Start) mit dem Element VirusTotal Query (Threat intelligence source), indem Sie auf VirusTotal Lookup klicken und den rechten Pfeil zum VirusTotal Query-Element ziehen. Möglicherweise müssen Sie beide Elemente nach rechts verschieben, um genügend Platz für diesen Schritt zu schaffen.
Klicken Sie auf den rechten Pfeil, um die Verbindung zum nächsten Element herzustellen und den Workflow zu starten.
Die Playbook-Elemente wurden miteinander verbunden, um einen Workflow zu erstellen.
Bedingungstests
Mit der Antwort von VirusTotal können wir anhand einiger Bedingungselemente bestimmen, ob die Datei als bösartig behandelt werden soll.
Die Bedingungen, die wir basierend auf der formatierten Antwort testen können, sind:
-
Ob VirusTotal einen Datensatz dieser Datei hat. Dies haben wir getestet, indem wir eine lokale Variable (vt_id) erstellt haben, die auf
VirusTotal $.data.id
abgebildet ist. Wenn sie existiert, hat VirusTotal die Datei bereits gesehen. -
Welche Anbieter (vt_engines) die Datei als bösartig markiert haben. Dies kann nützlich sein, um das Risiko von Dateien zu bestimmen, die nur von wenigen Anbietern als bösartig eingestuft wurden, da wir auswählen können, wessen Meinung wir am meisten wertschätzen. Beachten Sie, dass eine hohe Zahl ein guter Hinweis auf eine bösartige Datei ist, während eine niedrige Zahl darauf hindeutet, aber nicht garantiert, dass eine Datei nicht bösartig ist. Natürlich hat Emsisoft die Datei bereits erkannt.
Der erste Test wird erstellt, indem das Bedingungselement unter unserem VirusTotal Lookup platziert wird, und wir prüfen, ob VirusTotal einen Datensatz der Datei hat, indem wir testen, ob vt.id > 0
.
Unsere nächste Bedingung wird prüfen, welche Anbieter (vt_engines) die Datei als bösartig markiert haben.
Beispiel: Die Liste der Anbieter, die die Datei als bösartig markieren, enthält unsere drei wichtigsten (nicht-Emsisoft) vertrauenswürdigen Anbieter, d. h. vt_engines enthält (vendorA UND vendorB UND vendorC).
Erstellen wir eine zweite Bedingung unterhalb der ersten, indem wir erneut das Bedingungselement unter der ersten Bedingung platzieren. Wir testen gegen bestimmte Anbieter und geben 3 Tests wie unten gezeigt ein, wobei die Werte für vendorA/vendorB/vendorC aus der VirusTotal-Anbietertabelle stammen. Beachten Sie, dass sich die Liste ändern kann, wenn neue Antivirenlösungen hinzugefügt oder bestehende umbenannt werden. Playbooks mit Anbieterreferenzen müssen daher möglicherweise in Zukunft aktualisiert werden.
Vorfall-Update
Wenn eine der von uns erstellten Bedingungen falsch ist, werden wir den Vorfall als False Positive aktualisieren, um dies widerzuspiegeln. Ziehen Sie ein neues Incident Update-Element unterhalb und links vom niedrigsten Bedingungstest, nennen Sie es False Positive, wählen Sie + Feld hinzufügen und weisen Sie ein Verdict von False Positive zu.
Erstellen Sie ein zweites Incident Update-Element unterhalb und rechts vom niedrigsten Bedingungstest, nennen Sie es Confirmed Malicious, und wählen Sie + Feld hinzufügen wie oben beschrieben, diesmal mit einem Verdict von Confirmed Malicious.
Benachrichtigung
Zum Schluss erstellen wir eine E-Mail-Benachrichtigung bezüglich der bösartigen Erkennung. Ziehen Sie das Notification-Element rechts neben das vorherige Incident Update-Element, geben Sie eine E-Mail-Benachrichtigung an und benennen Sie sie z. B. “VT Positive Detection”. Geben Sie einen Betreff und die Empfänger an.
Für den E-Mail-Text können wir Variablen verwenden, um Teile des Inhalts dynamisch zu gestalten. Probieren Sie zunächst Folgendes aus, wobei die letzte Zeile exakt so stehen muss, damit die Variable korrekt referenziert wird. Beispiel:
Alles zusammenfügen
Um den Workflow abzuschließen, klicken Sie auf das VirusTotal Query-Element und verbinden Sie mit dem Pfeil rechts am Rechteck das erste Condition-Element. Wiederholen Sie diesen Vorgang, bis Sie den unten gezeigten Workflow haben. Beachten Sie, dass Bedingungselemente sowohl TRUE– als auch FALSE-Workflows unterstützen.
Debugging Ihres Playbooks
Zum Schluss testen Sie den Workflow mit dem eingebauten Debugger. Rufen Sie den Debugger über das Symbol oben rechts im Workflow-Diagramm auf, wie im Screenshot oben gezeigt. Die Debugger-Seitenleiste öffnet sich auf der rechten Seite des Fensters. Sie möchten möglicherweise die Breite Ihres Fensters erhöhen, um ausreichend Platz zu haben.
Wählen Sie einen Testvorfall aus, z. B. eine frühere Erkennung aus diesem Workspace. Falls keiner vorhanden ist, können Sie eine EICAR-Testdatei herunterladen und einen Scan damit durchführen; seien Sie jedoch vorsichtig beim Herunterladen jeglicher Dateien!
Sobald Sie einen Vorfall ausgewählt haben, klicken Sie auf Run debug, um das Ergebnis Ihres Workflows zu sehen. Beachten Sie, dass Sie die Anzeige erweitern und die Context– oder Log-Seiten aufrufen können, um die Details des Ergebnisses zu sehen. Die Schaltfläche ändert sich während der Ausführung des Workflows zu Stop debug und kehrt nach Abschluss wieder zu Run debug zurück.
Das Ergebnis des Debuggings dieses Workflows wird unten angezeigt, wo Sie die von uns erstellten benutzerdefinierten Variablen (vt_engines und vt_id) sehen können.
Ausführung
Playbooks werden in der Reihenfolge ausgeführt, in der sie auf Ihrer Playbooks-Seite angezeigt werden. Es wird nur das erste Playbook ausgeführt, das den Ausführungskriterien entspricht. Sie können Ihre Playbooks anklicken und ziehen, um sie nach Ihren Prioritäten neu zu ordnen. Sobald Sie mit der Ausführung des Playbooks zufrieden sind, vergessen Sie nicht, Autorun einzuschalten!