Collecter les journaux Aqua Security
Présentation
Cet analyseur extrait des champs des journaux Aqua Security et les transforme en Unified Data Model (UDM). Il analyse le champ message
au format JSON, extrait l'utilisateur, l'adresse IP source et d'autres champs pertinents, les met en correspondance avec des champs UDM et catégorise les événements en fonction du champ action
, enrichissant les données avec un contexte de sécurité tel que les noms de règles, les descriptions et les détails des failles CVE.
Avant de commencer
- Assurez-vous de disposer d'une instance Google SecOps.
- Assurez-vous d'avoir un accès privilégié à la console de gestion Aqua Security.
Configurer un flux dans Google SecOps pour ingérer les journaux Aqua Security
- Accédez à Paramètres du SIEM > Flux.
- Cliquez sur Ajouter.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux de sécurité Aqua).
- Sélectionnez Webhook comme type de source.
- Sélectionnez Aqua Security comme Type de journal.
- Cliquez sur Suivant.
- Facultatif: spécifiez des valeurs pour les paramètres d'entrée suivants :
- Délimiteur de fractionnement: délimiteur utilisé pour séparer les lignes de journal, par exemple
\n
. - Espace de noms des éléments: espace de noms des éléments.
- 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 journal, par exemple
- Cliquez sur Suivant.
- Vérifiez la configuration du flux dans 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 cette action rend l'ancienne clé secrète obsolète.
- Dans l'onglet Détails, copiez l'URL du point de terminaison du flux dans le champ Informations sur le point de terminaison. Vous devez spécifier cette URL de point de terminaison dans votre application cliente.
- Cliquez sur OK.
Créer une clé API pour le flux webhook
Accédez à Google Cloud Console > Identifiants.
Cliquez sur Créer des identifiants, puis sélectionnez Clé API.
Limitez l'accès de 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 plutôt que dans l'URL.
Si votre client webhook n'est pas compatible avec 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 permettant de s'authentifier 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 de l'analyse des images.
- Cochez la case Activer l'envoi des résultats de l'analyse des images.
- Saisissez
<ENDPOINT_URL>
, suivi de<API_KEY>
et de<SECRET>
. - Cliquez sur Enregistrer.
Tableau de mappage UDM
Champ de journal (ordre croissant) | Mappage UDM | Logique |
---|---|---|
jsonPayload.action | metadata.event_type | Mappage basé sur la valeur de "jsonPayload.action". Consultez le code de l'analyseur pour connaître les mappages spécifiques. |
jsonPayload.action | security_result.summary | Mappage direct. |
jsonPayload.adjective | target.file.full_path | Mappage direct si "jsonPayload.container" est vide. |
jsonPayload.category | target.asset.category | Mappage direct. |
jsonPayload.cfappname | target.application | Mappage direct. |
jsonPayload.cfspace | principal.user.userid | Mappage direct 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 | Mappage direct. |
jsonPayload.data | security_result.detection_fields | Analysé sous forme de paires clé-valeur et mappé sur des champs individuels dans "security_result.detection_fields". |
jsonPayload.description | security_result.description | Mappage direct si "jsonPayload.reason" est vide. |
jsonPayload.host | principal.hostname | Mappage direct. |
jsonPayload.hostgroup | target.group.group_display_name | Mappage direct. |
jsonPayload.hostid | target.asset_id | Mappé en tant que "id de l'hôte: %{jsonPayload.hostid}". |
jsonPayload.hostip | target.ip | Mappage direct. |
jsonPayload.image | target.file.full_path | Mappage direct. |
jsonPayload.level | security_result.action | Définissez la valeur sur "ALLOW" si "jsonPayload.level" est défini sur "success". |
jsonPayload.reason | security_result.description | Mappage direct. |
jsonPayload.rule | security_result.rule_name | Mappage direct. |
jsonPayload.user | principal.user.userid | Mappage direct. |
jsonPayload.vm_location | target.asset.location.name | Mappage direct. |
jsonPayload.vm_name | target.resource.name | Mappage direct. |
resource.labels.instance_id | target.resource.id | Mappage direct. |
resource.labels.project_id | target.asset.attribute.cloud.project.id | Mappage direct. |
resource.labels.zone | target.asset.attribute.cloud.availability_zone | Mappage direct. |
timestamp | metadata.event_timestamp | Mappé directement après conversion au format ISO 8601. |
extensions.auth.type | Définissez-le sur "SSO" si "jsonPayload.description" contient "SAML", sinon 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éfinir sur "GOOGLE_CLOUD_PLATFORM". | |
target.resource.type | Définissez-le sur "VIRTUAL_MACHINE". |
Modifications
2024-10-10
- Amélioration:
- Prise en charge des nouveaux journaux".