Config. de SA : Définir un modèle pour les notifications d'alerte ESA

Document created by RSA Information Design and Development on Feb 6, 2017
Version 1Show Document
  • View in full screen mode
  

Cette rubrique décrit comment définir un modèle pour les notifications d'alerte. Event Stream Analysis (ESA) vous permet de définir des modèles utiles pour les alertes. Vous devez avoir une bonne compréhension de FreeMarker et le modèle de données ESA pour définir un modèle. Pour plus d'informations sur FreeMarker, reportez-vous au FreeMarker Template Author's Guide

Modèle de données ESA

Une règle d'alerte ESA se présente comme suit :

@Name('module_144d43f5_f0b4_4cd0_8c6c_5ce65c37e624_Alert')
@Description('Brute Force Login To Same Destination')
@RSAAlert(oneInSeconds=0, identifiers={"ip_dst"})
SELECT * FROM Event (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)
GROUP BY ip_dst HAVING COUNT(*) = 2;

Lorsqu'une règle comme celle précitée est déclenchée, l'alerte générée comportera deux événements constitutifs, chacun s'apparentant à une session NextGen avec plusieurs métavaleurs. L'objet associé aux données de l'alerte transmis à l'évaluateur du modèle FreeMarker se présente comme suit :

 

(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"

Il existe deux types de variables de modèle disponibles dans le modèle de données :

  • Les métadonnées d'alerte : Elles contiennent les détails des niveaux d'alerte, comme le nom de l'instruction, le nom du module, l'ID d'alerte, l'heure de l'alerte, sa gravité, etc. Dans la terminologie FreeMarker, il s'agit des variables de niveau supérieur associées à l'instance d'alerte elle-même et peuvent être référencées simplement par leurs noms, comme suit ${moduleName}. Le méta time timeDate est spécial car il est du type Date et doit être un suffixe de ?datetime pour pouvoir s'afficher correctement.
  • Les métadonnées d'événements constitutifs : Il s'agit des champs de sessions méta provenant de chaque événement qui constitue l'alerte. Une alerte peut avoir plusieurs événements constitutifs, donc il peut y avoir plusieurs mappages de ce type dans la même alerte. Elles s'affichent sous la forme d'une séquence de hachages dans l'évaluateur de modèles FreeMarker et doivent être référencées. Par exemple, l'alerte comporte deux événements constitutifs, qu'event_source_id pour le premier est disponible en tant que ${events[0].event_source_id} et la même pour le deuxième est accessible en tant que ${events[1].event_source_id.}  Vous devez également connaître les champs méta qui sont à valeurs multiples, car ils doivent être traités en tant queséquences, par exemple ${events[0].alias_host}ne fonctionne pas, car il s'agit d'une séquence.

Remarque : Les métadonnées disponibles dans les événements constitutifs pour une alerte donnée sont déterminés par la clause EPL SELECT. Par exemple, les alertes issues de SELECT sessionid, time FROM ... auront seulement deux métavaleurs disponibles (sessionid, time). Les événements constitutifs dans SELECT * FROM Event ... porteront tous les champs de métadonnées du type Event avec des valeurs qui ne sont pas nulles.

Si votre modèle utilise les métaclés qui ne sont pas présentes dans toutes les sorties d'alerte, vous devez envisager d'utiliser les provisions de FreeMarker pour les valeurs par défaut.

Par exemple, si un modèle avec le texte Id=${id},ec_outcome=${ec_outcomeest évalué pour une alerte qui ninclut pas la métaclé ec_outcome, alors l'évaluation du modèle échouera. Dans de tels cas, vous pouvez utiliser l'espace réservé à la valeur manquante ${ec_outcome!”default”}.

You are here
Table of Contents > Procédures standard > Configurer des modèles pour les notifications > Définir un modèle pour les notifications d'alerte ESA

Attachments

    Outcomes