Collecter les journaux Uptycs EDR

Compatible avec :

Ce document explique comment ingérer des journaux Uptycs EDR dans Google Security Operations à l'aide d'Amazon S3. L'analyseur transforme les journaux JSON bruts en modèle de données unifié (UDM). Il extrait d'abord les champs du fichier JSON, nettoie et enrichit les données, puis mappe les informations pertinentes aux champs UDM correspondants. Il gère différents types de données et cas extrêmes pour garantir une représentation précise et cohérente dans le schéma UDM.

Avant de commencer

Assurez-vous de remplir les conditions suivantes :

  • Une instance Google SecOps
  • Accès privilégié à Uptycs
  • Accès privilégié à AWS (S3, IAM)

Obtenir les prérequis Uptycs

  1. Connectez-vous à la console d'administration Uptycs.
  2. Accédez à Configuration > Utilisateurs.
  3. Sélectionnez votre utilisateur ou créez un utilisateur de compte de service.
  4. Cliquez sur Clé API utilisateur.
  5. Copiez et enregistrez les informations suivantes dans un emplacement sécurisé :
    • Clé API
    • SID de clé API (Code secret de l'API)
    • Numéro client
    • Domaine de l'API (dérivé de votre URL Uptycs, par exemple, mystack.uptycs.io)

Configurer un 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, uptycs-telemetry-export).
  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 Informations d'identification de sécurité.
  6. Cliquez sur Créer une clé d'accès dans la section Clés d'accès.
  7. Sélectionnez Service tiers comme Cas d'utilisation.
  8. Cliquez sur Suivant.
  9. Facultatif : Ajoutez un tag de description.
  10. Cliquez sur Créer une clé d'accès.
  11. Cliquez sur 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 OK.
  13. Sélectionnez l'onglet Autorisations.
  14. Cliquez sur Ajouter des autorisations dans la section Règles relatives aux autorisations.
  15. Sélectionnez Ajouter des autorisations.
  16. Sélectionnez Joindre directement des règles.
  17. Recherchez la règle AmazonS3FullAccess.
  18. Sélectionnez la règle.
  19. Cliquez sur Suivant.
  20. Cliquez sur Ajouter des autorisations.

Configurer la stratégie et le rôle IAM pour les importations S3

  1. Dans la console AWS, accédez à IAM > Stratégies.
  2. Cliquez sur Créer une règle> onglet "JSON".
  3. Saisissez la règle suivante :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "AllowPutObjects",
          "Effect": "Allow",
          "Action": "s3:PutObject",
          "Resource": "arn:aws:s3:::uptycs-telemetry-export/*"
        },
        {
          "Sid": "AllowListBucket",
          "Effect": "Allow",
          "Action": "s3:ListBucket",
          "Resource": "arn:aws:s3:::uptycs-telemetry-export"
        }
      ]
    }
    
    • Remplacez uptycs-telemetry-export si vous avez saisi un autre nom de bucket.
  4. Cliquez sur Suivant > Créer une règle.

  5. Nommez la règle uptycs-s3-write-policy.

  6. Accédez à IAM > Utilisateurs.

  7. Sélectionnez l'utilisateur créé pour les exportations Uptycs.

  8. Cliquez sur Ajouter des autorisations> Joindre directement des règles.

  9. Recherchez et sélectionnez uptycs-s3-write-policy.

  10. Cliquez sur Suivant > Ajouter des autorisations.

Configurer l'exportation des données de télémétrie brutes Uptycs

  1. Connectez-vous à la console Uptycs.
  2. Accédez à la section de configuration de l'exportation.
  3. Configurez la destination d'exportation S3.
  4. Fournissez les informations de configuration suivantes :
    • Type d'exportation : sélectionnez Télémétrie brute.
    • Destination : sélectionnez Amazon S3.
    • Format : sélectionnez JSON.
    • Bucket S3 : saisissez uptycs-telemetry-export.
    • Préfixe du chemin d'accès S3 : saisissez telemetry/.
    • Région AWS : sélectionnez la région de votre bucket.
    • ID de clé d'accès AWS : saisissez la clé d'accès de l'utilisateur IAM.
    • Clé d'accès secrète AWS : saisissez la clé d'accès secrète.
    • Types d'événements : sélectionnez tous les types de télémétrie requis.
  5. Testez et activez l'exportation.

Créer un utilisateur IAM en lecture seule pour Google SecOps

  1. Accédez à la console AWS > IAM > Utilisateurs.
  2. Cliquez sur Add users (Ajouter des utilisateurs).
  3. Fournissez les informations de configuration suivantes :
    • Utilisateur : saisissez secops-reader.
    • Type d'accès : sélectionnez Clé d'accès – Accès programmatique.
  4. Cliquez sur Créer un utilisateur.
  5. Associez une stratégie de lecture minimale (personnalisée) : Utilisateurs > secops-reader > Autorisations > Ajouter des autorisations > Associer des stratégies directement > Créer une stratégie.
  6. Dans l'éditeur JSON, saisissez la stratégie suivante :

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": ["s3:GetObject"],
          "Resource": "arn:aws:s3:::uptycs-telemetry-export/*"
        },
        {
          "Effect": "Allow",
          "Action": ["s3:ListBucket"],
          "Resource": "arn:aws:s3:::uptycs-telemetry-export"
        }
      ]
    }
    
  7. Définissez le nom sur secops-reader-policy.

  8. Accédez à Créer une règle > recherchez/sélectionnez > Suivant > Ajouter des autorisations.

  9. Accédez à Identifiants de sécurité> Clés d'accès> Créer une clé d'accès.

  10. Téléchargez le CSV (ces valeurs sont saisies dans le flux).

Configurer un flux dans Google SecOps pour ingérer les journaux Uptycs

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur + Ajouter un flux.
  3. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Uptycs EDR logs).
  4. Sélectionnez Amazon S3 V2 comme type de source.
  5. Sélectionnez Uptycs EDR comme type de journal.
  6. Cliquez sur Suivant.
  7. Spécifiez les valeurs des paramètres d'entrée suivants :
    • URI S3 : s3://uptycs-telemetry-export/telemetry/
    • Options de suppression de la source : sélectionnez l'option de suppression de votre choix.
    • Âge maximal des fichiers : incluez les fichiers modifiés au cours des derniers jours. La valeur par défaut est de 180 jours.
    • ID de clé d'accès : clé d'accès utilisateur ayant accès au bucket S3.
    • Clé d'accès secrète : clé secrète de l'utilisateur ayant accès au bucket S3.
    • 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.
  8. Cliquez sur Suivant.
  9. Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.

Table de mappage UDM

Champ du journal Mappage UDM Logique
osquery_raw_data.answer read_only_udm.network.dns.answers.name Valeur extraite de osquery_raw_data.answer si osquery_raw_data.answer n'est pas vide.
osquery_raw_data.container_id read_only_udm.metadata.product_log_id Valeur extraite de osquery_raw_data.container_id si osquery_raw_data.container_id n'est pas vide.
osquery_raw_data.local_address read_only_udm.principal.ip Valeur extraite de osquery_raw_data.local_address si osquery_raw_data.local_address n'est pas vide et est une adresse IP valide.
osquery_raw_data.local read_only_udm.principal.ip Sinon, la valeur est extraite de osquery_raw_data.local si osquery_raw_data.local n'est pas vide et est une adresse IP valide.
osquery_raw_data.local_port read_only_udm.principal.port Valeur extraite de osquery_raw_data.local_port et convertie en entier si osquery_raw_data.local_port n'est pas vide.
osquery_raw_data.md5 read_only_udm.target.process.file.md5 Valeur extraite de osquery_raw_data.md5 si osquery_raw_data.md5 n'est pas vide.
osquery_raw_data.port read_only_udm.target.port Valeur extraite de osquery_raw_data.port et convertie en entier si osquery_raw_data.port n'est pas vide.
osquery_raw_data.question read_only_udm.network.dns.questions.name Valeur extraite de osquery_raw_data.question si osquery_raw_data.question n'est pas vide.
osquery_raw_data.remote_address read_only_udm.intermediary.ip Valeur extraite de osquery_raw_data.remote_address si osquery_raw_data.remote_address n'est pas vide.
osquery_raw_data.remote_port read_only_udm.intermediary.port Valeur extraite de osquery_raw_data.remote_port et convertie en entier si osquery_raw_data.remote_port n'est pas vide.
osquery_raw_data.type read_only_udm.network.dns.questions.type Valeur extraite de osquery_raw_data.type et convertie en entier si osquery_raw_data.type n'est pas vide.
osquery_raw_data.uid read_only_udm.principal.user.userid Valeur extraite de osquery_raw_data.uid si osquery_raw_data.uid n'est pas vide et n'est pas égal à "0".
osquery_raw_data.worker_instance_id read_only_udm.principal.user.userid Sinon, la valeur est extraite de osquery_raw_data.worker_instance_id si osquery_raw_data.worker_instance_id n'est pas vide.
upt_asset_group_id read_only_udm.principal.user.group_identifiers Valeur extraite de upt_asset_group_id si upt_asset_group_id n'est pas vide.
upt_asset_group_name read_only_udm.principal.group.group_display_name Valeur extraite de upt_asset_group_name si upt_asset_group_name n'est pas vide.
upt_asset_id read_only_udm.principal.asset.asset_id Chaîne concaténée "UPT ASSET ID:" avec la valeur de upt_asset_id si upt_asset_id n'est pas vide.
upt_hash read_only_udm.target.file.md5 Toutes les occurrences de "-" sont remplacées par "" dans upt_hash. La valeur est ensuite attribuée à read_only_udm.target.file.md5 si upt_hash n'est pas vide.
upt_hostname read_only_udm.principal.hostname Valeur extraite de upt_hostname si upt_hostname n'est pas vide.
upt_resource_type read_only_udm.target.resource.type Valeur extraite de upt_resource_type si upt_resource_type n'est pas vide.
upt_time read_only_udm.metadata.event_timestamp.seconds Valeur extraite de upt_time si upt_time n'est pas vide.
read_only_udm.metadata.event_type La valeur est définie sur "PROCESS_LAUNCH" si osquery_raw_data.pid n'est pas vide. La valeur est définie sur "NETWORK_DNS" si osquery_raw_data.question n'est pas vide. La valeur est définie sur "GENERIC_EVENT" si event_type est vide.
read_only_udm.metadata.log_type La valeur est définie sur "UPTYCS_EDR".
read_only_udm.metadata.product_name La valeur est définie sur "UPTYCS_EDR".
read_only_udm.metadata.vendor_name La valeur est définie sur "UPTYCS".
read_only_udm.network.application_protocol La valeur est définie sur "DNS" si osquery_raw_data.question n'est pas vide.
read_only_udm.security_result.action La valeur est définie sur "ALLOW" (AUTORISER) si osquery_raw_data.return_code est égal à "SUCCESS" (SUCCÈS) ou si osquery_raw_data.success est égal à "1".
read_only_udm.target.process.command_line Valeur extraite de osquery_raw_data.cmdline si osquery_raw_data.cmdline n'est pas vide.
read_only_udm.target.process.file.full_path Valeur extraite de osquery_raw_data.path si osquery_raw_data.path n'est pas vide.
read_only_udm.target.process.parent_process La valeur est construite en itérant sur le tableau ancestor_list dans osquery_raw_data.ancestor_list. Pour chaque élément du tableau, la ligne de commande, le chemin d'accès complet au fichier et le PID sont extraits et mis en forme dans une structure JSON représentant la chaîne de processus.
read_only_udm.target.process.pid Valeur extraite de osquery_raw_data.pid si osquery_raw_data.pid n'est pas vide.

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