Collecter les journaux de proxy Web Cisco Umbrella

Compatible avec :

Ce document explique comment ingérer les journaux de proxy Web Cisco Umbrella dans Google Security Operations à l'aide d'Amazon S3. Le proxy Web Cisco Umbrella offre une visibilité et un contrôle complets des URL pour le trafic Web, en agissant comme une passerelle Web sécurisée (SWG) basée sur le cloud. Les journaux de proxy Web capturent les détails du trafic HTTP et HTTPS, y compris les URL complètes, les identités des utilisateurs, les types de contenu et les verdicts de sécurité pour les requêtes transmises par proxy via le proxy intelligent Umbrella.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Instance Google SecOps
  • Accès privilégié au tableau de bord Cisco Umbrella avec le rôle Administrateur complet ou Administrateur en lecture seule.
  • Accès privilégié à AWS (S3, IAM).
  • Licence Cisco Umbrella Secure Internet Gateway (SIG) ou DNS Security Advantage avec le proxy intelligent activé.

Configurer l'exportation des journaux Cisco Umbrella vers Amazon S3

Cisco Umbrella est compatible en mode natif avec l'exportation des journaux de proxy Web vers un bucket Amazon S3 que vous gérez. Si vous avez déjà configuré l'exportation des journaux S3 pour les journaux DNS Umbrella, vous pouvez réutiliser le même bucket S3 et la même configuration IAM. Umbrella stocke les journaux de proxy dans un préfixe distinct.

  1. Connectez-vous au tableau de bord Cisco Umbrella à l'adresse https://dashboard.umbrella.com.
  2. Accédez à Admin > Log Management (Admin > Gestion des journaux).
  3. Si l'exportation des journaux S3 n'est pas encore configurée, cliquez sur Use your company-managed Amazon S3 bucket (Utiliser le bucket Amazon S3 géré par votre entreprise).
  4. Fournissez les informations de configuration suivantes :
    • Bucket Name (Nom du bucket) : saisissez le nom du bucket S3 (par exemple, umbrella-logs).
    • Region (Région) : sélectionnez la région AWS dans laquelle se trouve votre bucket.
  5. Copiez l'ID de compte AWS et l'ID externe affichés par Umbrella s'ils ne sont pas déjà enregistrés.
  6. Cliquez sur Save (Enregistrer).

Configurer le bucket AWS S3 et IAM pour Google SecOps

  1. Créez un bucket Amazon S3 en suivant ce guide de l'utilisateur : Créer un bucket
  2. Enregistrez le nom et la région du bucket pour référence ultérieure (par exemple, umbrella-logs).
  3. Créez un utilisateur en suivant ce guide de l'utilisateur : Créer un utilisateur IAM.
  4. Sélectionnez l'utilisateur créé.
  5. Sélectionnez l'onglet Security credentials (Identifiants de sécurité).
  6. Cliquez sur Create Access Key (Créer une clé d'accès) dans la section Access Keys (Clés d'accès).
  7. Sélectionnez Third-party service (Service tiers) comme Use case (Cas d'utilisation).
  8. Cliquez sur Next (Suivant).
  9. Facultatif : ajoutez un tag de description.
  10. Cliquez sur Create access key (Créer une clé d'accès).
  11. Cliquez sur Download CSV file (Télécharger le fichier CSV) pour enregistrer la clé d'accès et la clé d'accès secrète pour référence ultérieure.
  12. Cliquez sur Done (OK).
  13. Sélectionnez l'onglet Permissions (Autorisations).
  14. Cliquez sur Add permissions (Ajouter des autorisations) dans la section Permissions policies (Règles d'autorisation).
  15. Sélectionnez Add permissions (Ajouter des autorisations).
  16. Sélectionnez Attach policies directly (Joindre directement des règles).
  17. Recherchez la règle AmazonS3FullAccess.
  18. Sélectionnez la règle.
  19. Cliquez sur Next (Suivant).
  20. Cliquez sur Add permissions (Ajouter des autorisations).

Configurer la règle et le rôle IAM pour l'accès S3 Cisco Umbrella

Cisco Umbrella nécessite un rôle IAM intercompte pour écrire des journaux dans votre bucket S3.

  1. Dans la console AWS, accédez à IAM > Policies > Create policy > JSON tab (IAM > Règles > Créer une règle > Onglet JSON).
  2. Copiez et collez la règle suivante (remplacez umbrella-logs si vous avez saisi un autre nom de bucket) :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowUmbrellaPutObjects",
          "Effect": "Allow",
          "Action": [
            "s3:PutObject",
            "s3:GetBucketLocation"
          ],
          "Resource": [
            "arn:aws:s3:::umbrella-logs",
            "arn:aws:s3:::umbrella-logs/*"
          ]
        }
      ]
    }
    
  3. Cliquez sur Next > Create policy (Suivant > Créer une règle). Nommez-la UmbrellaS3WritePolicy.

  4. Accédez à IAM > Roles > Create role > Custom trust policy (IAM > Rôles > Créer un rôle > Règle d'approbation personnalisée).

  5. Collez la règle d'approbation suivante en remplaçant UMBRELLA_AWS_ACCOUNT_ID et UMBRELLA_EXTERNAL_ID par les valeurs copiées à partir du tableau de bord Umbrella :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "AWS": "arn:aws:iam::UMBRELLA_AWS_ACCOUNT_ID:root"
          },
          "Action": "sts:AssumeRole",
          "Condition": {
            "StringEquals": {
              "sts:ExternalId": "UMBRELLA_EXTERNAL_ID"
            }
          }
        }
      ]
    }
    
  6. Cliquez sur Next (Suivant).

  7. Associez la règle UmbrellaS3WritePolicy.

  8. Nommez le rôle UmbrellaS3Role, puis cliquez sur Create role (Créer un rôle).

  9. Copiez l'ARN du rôle pour l'utiliser dans le tableau de bord Umbrella.

Vérifier l'exportation des journaux Cisco Umbrella

  1. Revenez au tableau de bord Cisco Umbrella.
  2. Accédez à Admin > Log Management (Admin > Gestion des journaux).
  3. Saisissez l'ARN du rôle à partir du rôle IAM que vous avez créé (s'il n'est pas déjà configuré).
  4. Cliquez sur Verify (Vérifier) pour confirmer qu'Umbrella peut écrire dans le bucket S3.
  5. Une fois la vérification effectuée, Umbrella commence à exporter les journaux de proxy vers le bucket S3.

Configurer un flux dans Google SecOps pour ingérer les journaux de proxy Web Cisco Umbrella

  1. Accédez à Paramètres SIEM > Flux.
  2. Cliquez sur + Add New Feed (+ Ajouter un flux).
  3. Dans le champ Feed name (Nom du flux), saisissez un nom pour le flux (par exemple, Cisco Umbrella Web Proxy logs).
  4. Sélectionnez Amazon S3 V2 comme Source type (Type de source).
  5. Sélectionnez Cisco Umbrella Web Proxy comme Log type (Type de journal).
  6. Cliquez sur Next (Suivant).
  7. Spécifiez les valeurs des paramètres d'entrée suivants :

    • URI S3: s3://umbrella-logs/proxylogs/
    • Source deletion options (Options de suppression de la source) : sélectionnez l'option de suppression de votre choix.
    • Maximum File Age (Âge maximal des fichiers) : incluez les fichiers modifiés au cours des derniers jours. La valeur par défaut est de 180 jours.
    • Access Key ID (ID de clé d'accès) : clé d'accès utilisateur avec accès au bucket S3.
    • Secret Access Key (Clé d'accès secrète) : clé secrète utilisateur avec accès au bucket S3.
    • Asset namespace (Espace de noms de l'élément) : l'espace de noms de l'élément.
    • Ingestion labels (Libellés d'ingestion) : libellé appliqué aux événements de ce flux.
  8. Cliquez sur Next (Suivant).

  9. Vérifiez la configuration de votre nouveau flux dans l'écran Finalize (Finaliser), puis cliquez sur Submit (Envoyer).

Table de mappage UDM

Champ du journal Mappage UDM Logique
ampDisposition security_result.detection_fields[].value Valeur de ampDisposition à partir du journal brut.
ampMalware security_result.detection_fields[].value Valeur de ampMalware à partir du journal brut.
ampScore security_result.detection_fields[].value Valeur de ampScore à partir du journal brut.
avDetections security_result.detection_fields[].value Valeur de avDetections à partir du journal brut.
blockedCategories security_result.threat_name Valeur de blockedCategories à partir du journal brut.
certificateErrors security_result.detection_fields[].value Valeur de certificateErrors à partir du journal brut.
contentType security_result.detection_fields[].value Valeur de contentType à partir du journal brut.
destinationIp target.ip Valeur de destinationIp à partir du journal brut.
destinationListID security_result.detection_fields[].value Valeur de destinationListID à partir du journal brut.
dlpstatus security_result.detection_fields[].value Valeur de dlpstatus à partir du journal brut.
externalIp principal.ip Valeur de externalIp à partir du journal brut.
fileAction security_result.detection_fields[].value Valeur de fileAction à partir du journal brut.
fileName target.file.names Valeur de fileName à partir du journal brut.
identitiesV8 principal.hostname Valeur de identitiesV8 à partir du journal brut.
identity principal.location.name Valeur de identity à partir du journal brut.
internalIp principal.ip Valeur de internalIp à partir du journal brut.
isolateAction security_result.detection_fields[].value Valeur de isolateAction à partir du journal brut.
referer network.http.referral_url Valeur de referer à partir du journal brut.
requestMethod network.http.method Valeur de requestMethod à partir du journal brut.
requestSize security_result.detection_fields[].value Valeur de requestSize à partir du journal brut.
responseBodySize security_result.detection_fields[].value Valeur de responseBodySize à partir du journal brut.
responseSize security_result.detection_fields[].value Valeur de responseSize à partir du journal brut.
ruleID security_result.rule_id Valeur de ruleID à partir du journal brut.
rulesetID security_result.detection_fields[].value Valeur de rulesetID à partir du journal brut.
sha security_result.about.file.sha256 Valeur de sha à partir du journal brut.
statusCode network.http.response_code Valeur de statusCode à partir du journal brut.
ts timestamp Valeur de ts à partir du journal brut, analysée dans un code temporel.
url target.url Valeur de url à partir du journal brut.
userAgent network.http.user_agent Valeur de userAgent à partir du journal brut.
verdict security_result.detection_fields[].value Valeur de verdict à partir du journal brut.
warnstatus security_result.detection_fields[].value Valeur de warnstatus à partir du journal brut. Valeur de collection_time à partir du journal brut. Codé en dur sur NETWORK_HTTP. Codé en dur sur Cisco. Codé en dur sur Umbrella. Codé en dur sur UMBRELLA_WEBPROXY. Dérivé du schéma du champ d'URL (http ou https). Analysé à partir du champ userAgent à l'aide d'une bibliothèque d'analyse de l'agent utilisateur. Valeur de requestSize à partir du journal brut, convertie en entier. Valeur de responseSize à partir du journal brut, convertie en entier. Dérivé du champ identity lorsque identityType (ou identityTypeV8 avec identitiesV8) indique un utilisateur. Analyse plus poussée pour extraire les informations sur l'utilisateur, telles que le nom à afficher, le prénom, le nom et l'adresse e-mail. Mappé à partir du champ verdict : allowed ou allowed -> ALLOW, autres valeurs -> BLOCK. Si categories n'est pas vide, définissez la valeur sur NETWORK_CATEGORIZED_CONTENT. Valeur de categories à partir du journal brut. Basé sur verdict et potentiellement d'autres champs. Généralement Traffic allowed ou Traffic blocked. Si verdict n'est pas allowed ou blocked et que statusCode est présent, le résumé est Traffic %{statusCode}.

Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.