Collecter les journaux Aqua Security
Présentation
Cet analyseur extrait les champs des journaux Aqua Security et les transforme au format UDM (Unified Data Model). Il analyse le champ message
au format JSON, extrait les champs utilisateur, adresse IP source et autres champs pertinents, les mappe aux champs UDM et catégorise les événements en fonction du champ action
, en enrichissant les données avec le contexte de sécurité, comme les noms et descriptions des règles, et les détails CVE.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes :
- Instance Google SecOps.
- Accès privilégié à la console de gestion Aqua Security.
Configurer des flux
Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :
- Paramètres SIEM> Flux
- Plate-forme de contenu > Packs de contenu
Configurer des flux à partir de Paramètres SIEM > Flux
Pour configurer un flux, procédez comme suit :
- Accédez à Paramètres SIEM > Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Aqua Security).
- Sélectionnez Webhook comme type de source.
- Sélectionnez Aqua Security comme Type de journal.
- Cliquez sur Suivant.
- Facultatif : Spécifiez les valeurs des paramètres d'entrée suivants :
- Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que
\n
. - Espace de noms de l'élément : espace de noms de l'élément.
- Libellés d'ingestion : libellé appliqué aux événements de ce flux.
- Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que
- Cliquez sur Suivant.
- Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.
- Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
- Copiez et stockez la clé secrète. Vous ne pourrez plus afficher cette clé secrète. Si nécessaire, vous pouvez générer une nouvelle clé secrète, mais l'ancienne deviendra obsolète.
- Dans l'onglet Détails, copiez l'URL du point de terminaison du flux à partir du champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
- Cliquez sur OK.
Configurer des flux depuis le Hub de contenu
Indiquez les valeurs des champs suivants :
- Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que
\n
.
Options avancées
- Nom du flux : valeur préremplie qui identifie le flux.
- Type de source : méthode utilisée pour collecter les journaux dans Google SecOps.
- Espace de noms de l'élément : espace de noms associé au flux.
Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.
Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
Copiez et stockez la clé secrète. Vous ne pourrez plus afficher cette clé secrète. Si nécessaire, vous pouvez générer une nouvelle clé secrète, mais l'ancienne deviendra obsolète.
Dans l'onglet Détails, copiez l'URL du point de terminaison du flux à partir du champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
Créer une clé API pour le flux de webhook
Accédez à la consoleGoogle Cloud > Identifiants.
Cliquez sur Créer des identifiants, puis sélectionnez Clé API.
Restreignez l'accès à la clé API à l'API Chronicle.
Spécifier l'URL du point de terminaison
- Dans votre application cliente, spécifiez l'URL du point de terminaison HTTPS fournie dans le flux de webhook.
Activez l'authentification en spécifiant la clé API et la clé secrète dans l'en-tête personnalisé au format suivant :
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
Recommandation : Spécifiez la clé API en tant qu'en-tête au lieu de la spécifier dans l'URL.
Si votre client de webhook n'accepte pas les en-têtes personnalisés, vous pouvez spécifier la clé API et la clé secrète à l'aide de paramètres de requête au format suivant :
ENDPOINT_URL?key=API_KEY&secret=SECRET
Remplacez les éléments suivants :
ENDPOINT_URL
: URL du point de terminaison du flux.API_KEY
: clé API pour l'authentification auprès de Google SecOps.SECRET
: clé secrète que vous avez générée pour authentifier le flux.
Créer un webhook dans Aqua Security pour Google SecOps
- Connectez-vous à la console Aqua Security.
- Accédez à Paramètres > Webhook des résultats d'analyse d'images.
- Cochez la case Activer l'envoi des résultats de l'analyse d'images.
- Saisissez
<ENDPOINT_URL>
, suivi de<API_KEY>
et<SECRET>
. - Cliquez sur Enregistrer.
Table de mappage UDM
Champ du journal (ordre croissant) | Mappage UDM | Logique |
---|---|---|
jsonPayload.action | metadata.event_type | Mappé en fonction de la valeur de "jsonPayload.action". Consultez le code du parseur pour connaître les mappages spécifiques. |
jsonPayload.action | security_result.summary | Mappé directement. |
jsonPayload.adjective | target.file.full_path | Mappé directement si "jsonPayload.container" est vide. |
jsonPayload.category | target.asset.category | Mappé directement. |
jsonPayload.cfappname | target.application | Mappé directement. |
jsonPayload.cfspace | principal.user.userid | Mappé directement si "jsonPayload.user" est vide. |
jsonPayload.command | principal.ip | Extrait à l'aide du modèle Grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.command | principal.user.userid | Extrait à l'aide du modèle Grok "user %{GREEDYDATA:user_id} \(%{IP:src_ip}\)". |
jsonPayload.container | target.asset.product_object_id | Mappé directement. |
jsonPayload.data | security_result.detection_fields | Analysé sous forme de paires clé/valeur et mappé à des champs individuels dans "security_result.detection_fields". |
jsonPayload.description | security_result.description | Mappé directement si "jsonPayload.reason" est vide. |
jsonPayload.host | principal.hostname | Mappé directement. |
jsonPayload.hostgroup | target.group.group_display_name | Mappé directement. |
jsonPayload.hostid | target.asset_id | Mappé en tant que "ID de l'hôte : %{jsonPayload.hostid}". |
jsonPayload.hostip | target.ip | Mappé directement. |
jsonPayload.image | target.file.full_path | Mappé directement. |
jsonPayload.level | security_result.action | Définissez-le sur "ALLOW" si "jsonPayload.level" est défini sur "success". |
jsonPayload.reason | security_result.description | Mappé directement. |
jsonPayload.rule | security_result.rule_name | Mappé directement. |
jsonPayload.user | principal.user.userid | Mappé directement. |
jsonPayload.vm_location | target.asset.location.name | Mappé directement. |
jsonPayload.vm_name | target.resource.name | Mappé directement. |
resource.labels.instance_id | target.resource.id | Mappé directement. |
resource.labels.project_id | target.asset.attribute.cloud.project.id | Mappé directement. |
resource.labels.zone | target.asset.attribute.cloud.availability_zone | Mappé directement. |
timestamp | metadata.event_timestamp | Directement mappé après conversion au format ISO8601. |
extensions.auth.type | Définissez sur "SSO" si 'jsonPayload.description' contient "SAML", sinon définissez sur "AUTHTYPE_UNSPECIFIED" si 'jsonPayload.action' est "login" ou "Login". | |
metadata.log_type | Défini sur "AQUA_SECURITY". | |
metadata.product_name | Défini sur "AQUA_SECURITY". | |
metadata.vendor_name | Défini sur "AQUA_SECURITY". | |
target.asset.attribute.cloud.environment | Définissez-le sur "GOOGLE_CLOUD_PLATFORM". | |
target.resource.type | Définissez-le sur "VIRTUAL_MACHINE". |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.