Collecter les journaux Synology

Compatible avec :

Présentation

Cet analyseur extrait les champs des messages SYSLOG Synology à l'aide de modèles Grok et les mappe à l'UDM. Il gère différents formats de journaux, identifie les connexions utilisateur et l'accès aux ressources, et catégorise les événements en fonction de mots clés, en enrichissant les données avec des informations sur les fournisseurs et les produits.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

  • Instance Google SecOps.
  • Accès privilégié à Synology DSM.

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 :

  1. Accédez à Paramètres SIEM > Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Synology).
  5. Sélectionnez Webhook comme type de source.
  6. Sélectionnez Synology comme type de journal.
  7. Cliquez sur Suivant.
  8. 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.
  9. Cliquez sur Suivant.
  10. Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.
  11. Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
  12. 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.
  13. 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.
  14. 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

  1. Accédez à la consoleGoogle Cloud > Identifiants.

    Accéder à "Identifiants"

  2. Cliquez sur Créer des identifiants, puis sélectionnez Clé API.

  3. Restreignez l'accès à la clé API à l'API Google Security Operations.

Spécifier l'URL du point de terminaison

  1. Dans votre application cliente, spécifiez l'URL du point de terminaison HTTPS fournie dans le flux de webhook.
  2. 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.

  3. 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 s'authentifier auprès de Google Security Operations.
    • SECRET : clé secrète que vous avez générée pour authentifier le flux.

Créer un webhook dans Synology pour Google SecOps

  1. Connectez-vous à DiskStation Manager (DSM) sur votre Synology NAS.
  2. Accédez à Panneau de configuration > Notifications > Webhook.
  3. Cliquez sur Ajouter.
  4. Spécifiez les valeurs des paramètres suivants :

    • Fournisseur : sélectionnez Personnalisé.
    • Règle : sélectionnez le type de messages que vous souhaitez envoyer dans votre webhook.

    • Cliquez sur Suivant.

    • Nom du fournisseur : donnez un nom distinctif au webhook (par exemple, Google SecOps).

    • Objet : sera ajouté en tant que préfixe du message de notification.

    • URL du webhook : saisissez ENDPOINT_URL.

    • Sélectionnez Envoyer les messages de notification en anglais.

    • Cliquez sur Suivant.

    • Méthode HTTP : sélectionnez POST.

    • Ajoutez l'en-tête X-Webhook-Access-Key avec la valeur SECRET.

    • Ajoutez l'en-tête X-goog-api-key avec la valeur API_KEY.

    • Cliquez sur Appliquer.

  5. Cliquez sur Appliquer pour enregistrer le webhook.

Table de mappage UDM

Champ du journal Mappage UDM Logique
app target.application La valeur du champ app extraite par le filtre grok est attribuée à target.application.
desc metadata.description La valeur du champ desc extraite par le filtre grok est attribuée à metadata.description.
desc target.file.names Si le champ desc contient "Closed)", le chemin d'accès au fichier entre parenthèses est extrait et attribué à target.file.names. Si le champ desc contient "accessed shared folder" (a accédé au dossier partagé), le chemin d'accès au dossier entre crochets est extrait et attribué à target.file.names.
host principal.hostname La valeur du champ host extraite par le filtre grok du champ host_and_ip est attribuée à principal.hostname.
host_and_ip principal.ip Le champ host_and_ip est analysé. Si une adresse IP (ip1) est trouvée, elle est attribuée à principal.ip. Si une deuxième adresse IP (ip2) est trouvée, elle est également ajoutée à principal.ip.
intermediary_host intermediary.hostname La valeur du champ intermediary_host extraite par le filtre grok est attribuée à intermediary.hostname. Un objet auth vide est créé dans extensions si le message contient "connecté" ou "se connecter". L'horodatage du champ collection_time du journal brut est utilisé. Si le message contient "connecté" ou "se connecter", la valeur est définie sur USER_LOGIN. Si le message contient "a accédé au dossier partagé", la valeur est définie sur USER_RESOURCE_ACCESS. Sinon, la valeur par défaut est GENERIC_EVENT. La valeur du champ type extraite par le filtre grok est attribuée à metadata.product_event_type. La valeur est définie de manière statique sur "SYNOLOGY". La valeur est définie de manière statique sur "SYNOLOGY". Si le message contient "failed to sign" (Échec de la signature), la valeur est définie sur BLOCK. Si le message contient "success" (réussite), la valeur est définie sur ALLOW. Si le champ severity (extrait par grok) est "INFO", la valeur est définie sur INFORMATIONAL.
severity security_result.severity La valeur du champ severity extraite par le filtre grok est utilisée pour déterminer security_result.severity. Si la valeur est "INFO", elle est mappée sur "INFORMATIONAL".
time metadata.event_timestamp Le champ time, extrait par le filtre grok, est analysé et converti en code temporel. Cet horodatage est ensuite attribué à metadata.event_timestamp.
type metadata.product_event_type La valeur du champ type extraite par le filtre grok est attribuée à metadata.product_event_type.
user target.administrative_domain Si un domaine est extrait du champ user, il est attribué à target.administrative_domain.
user target.user.userid La partie nom d'utilisateur du champ user (avant le "\", le cas échéant) est extraite et attribuée à target.user.userid. L'horodatage du champ collection_time du journal brut est utilisé.

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