NW Cfg: Definieren einer Vorlage für ESA-Warnmeldungsbenachrichtigungen

Document created by RSA Information Design and Development on May 11, 2018
Version 1Show Document
  • View in full screen mode
 

In diesem Thema wird beschrieben, wie Sie eine Vorlage für Warnmeldungsbenachrichtigungen festlegen können. Mit ESA (Event Stream Analysis) können Sie nützliche Vorlagen für Warnmeldungen erstellen. Um eine Vorlage erstellen zu können, sollten Sie mit FreeMarker und dem ESA-Datenmodell vertraut sein. Weitere Informationen zu FreeMarker können Sie dem Leitfaden zum Verfassen von Vorlagen in FreeMarker entnehmen.

ESA-Datenmodell

Nachstehend ist eine Regel für eine ESA-Warnmeldung aufgeführt:

@Name('module_144d43f5_f0b4_4cd0_8c6c_5ce65c37e624_Alert')
@Description('Brute Force Login To Same Destination')
@RSAAlert(oneInSeconds=0, identifiers={"ip_dst"})
SELECT* FROMEvent (ec_activity = 'Logon',ec_theme = 'Authentication',ec
outcome =
'Failure',ip_dst IS NOT NULL)

.std:groupwin(ip_dst)
.win:time_length_batch(60 seconds, 2)
GROUPBYip_dst HAVING COUNT(*) = 2;

Wenn eine Regel wie die oben stehende ausgelöst wird, besteht die erzeugte Warnmeldung aus zwei Ereigniskomponenten, die jeweils einer NextGen-Sitzung mit mehreren Metawerten ähneln. Das als Warnmeldung an den Freemarker-Vorlagenevaluator versandte Datenobjekt lautet wie folgt:

 

(root)   |   +- id = "4e67012f-9c53-4f0b-ac44-753e2c982b79"                    // Unique identifier for each alert   |   +- severity = 1                                                    // The severity of the alert   +- time = 2013-12-31T11:02Z                                        // The alert time (needs a ?datetime for proper rendering)   |  +- moduleType = "ootb"                                          // The module type   |   +- moduleName = "Brute Force Login To Same Destination"            // A description of the module   |   +- statement = "module_144d43f5_f0b4_4cd0_8c6c_5ce65c37e624_Alert" // The name of the EPL statement   |  +- events                                                       // The constituent events - as a sequence of event maps        |   +- [0]                                                    // offset 0 (i.e. the first constituent event)        |   |       |   |        |   +- event_cat_name = "User.Activity.Failed Logins"        |   +- device_class = "Firewall"                              // event meta (accessible as ${events[0].device_class}$)        |   |       |   +- event_source_id = "uttam:50002:1703395"    // Investigation URI to the individual session (used by SA)        |   |        |   +- ...                                                    // Other meta        |   |        |   +- sessionid = 1703395                                    // NextGen sessionid        |   |        |   +- time = 1388487764                                      // event/session time at NextGen source (as a long Unix timestamp)        |   |        |   +- user_dst = "user5"        |        +- [1]                                                        // offset 1 (i.e. the second consituent event)            |            +- device_class = "Firewall"            |            +- event_cat_name = "User.Activity.Failed Logins"            |            +- event_source_id = "uttam:50002:1703405"            |            +- ...                                                               |            +- sessionid = 1703405            |            +- time = 1388487766            |            +- user_dst = "user5"

Das Datenmodell hält zwei Typen von Vorlagenvariablen bereit:

  • Warnmeldungsmetadaten: Diese enthalten Details zur Warnmeldungsebene, darunter Anweisungsname, Modulname, Warnmeldungs-ID, Warnmeldungszeit, Schweregrad usw. In der FreeMarker-Terminologie sind dies Variablen der obersten Ebene, die der Warnmeldungsinstanz selbst zugeordnet sind und einfach über ihren Namen referenziert werden können, z. B. ${moduleName}. Dem Metawert time kommt eine besondere Stellung zu, da er vom Typ Date ist mit einem Suffix ?datetime versehen sein muss, um korrekt wiedergegeben zu werden.
  • Metadaten der beteiligten Ereignisse: Dazu zählen die Sitzungs-Metafelder der einzelnen Ereignisse, die in die Warnmeldung eingehen. Eine Warnmeldung kann mehrere beteiligte Ereignisse enthalten, weshalb in ein und derselben Warnmeldung mehr als eine derartige Zuordnung vorhanden sein kann. Diese sind für den FreeMarker-Vorlagenevaluator als Abfolge von Hashes erkennbar und müssen referenziert werden. Beispielsweise enthält die Warnmeldung zwei beteiligte Ereignisse, von denen die event_source_id für das erste als ${events[0].event_source_id} und die gleiche für das zweite Ereignis als ${events[1].event_source_id} verfügbar ist. Sie müssen außerdem darauf achten, welche Metadatenfelder mehrwertig sind, da diese als Sequenzen behandelt werden müssen, z. B. ist ${events[0].alias_host} nicht möglich, da es eine Sequenz darstellt.

Hinweis: Die in den beteiligten Ereignissen verfügbaren Metadaten für eine bestimmte Warnmeldung ergeben sich aus der EPL SELECT-Klausel. Beispiel: Warnmeldungen aus SELECT sessionid, time FROM ... haben nur zwei verfügbare Metadatenwerte (sessionid, time). Die beteiligten Ereignisse in SELECT * FROM Event ... enthalten alle Metadatenfelder aus dem Typ Event mit Werten ungleich null.

Wenn in Ihren Vorlagen Metaschlüssel verwendet werden, die nicht in allen ausgegebenen Warnmeldungen vorhanden sind, sollten Sie möglichst die von FreeMarker bereitgestellten Standardwerte verwenden.

Beispiel: Wenn eine Vorlage mit TextId=${id},ec_outcome=${ec_outcomefüreine Warnmeldung bewertet wird, die den Metadatenschlüssel ec_outcome nicht enthält, schlägt die Vorlagenbewertung fehl. Verwenden Sie in solchen Fällen den Platzhalter für fehlende Werte ${ec_outcome!”default”}.

You are here
Table of Contents > Standardverfahren > Konfigurieren von Vorlagen für Benachrichtigungen > Definieren einer Vorlage für ESA-Warnmeldungsbenachrichtigungen

Attachments

    Outcomes