Publier des intégrations personnalisées

Compatible avec :
Ce document décrit les exigences à respecter pour publier des intégrations dans Google Security Operations SOAR. Il répertorie les prérequis, les normes de codage, les consignes de développement d'actions, les règles de mise en forme JSON, les bonnes pratiques d'enrichissement des entités et la procédure à suivre pour envoyer une intégration au Content Hub. Le respect de ces exigences permet de s'assurer que les intégrations sont fiables, faciles à gérer et détectables par d'autres utilisateurs.

Exigences concernant l'intégration

  • Python 3.7 : développez toutes les intégrations dans Python 3.7.
  • Description de l'intégration : incluez une description claire du produit avec lequel vous effectuez l'intégration.
  • Icons
    • Icône SVG : cette icône est appliquée à toutes les instances de l'intégration dans la plate-forme.
    • Icône PNG : cette image s'affiche dans Google SecOps Marketplace.
  • Catégorie d'intégration : définissez une catégorie pour permettre aux autres utilisateurs de filtrer votre intégration dans Google SecOps Marketplace. Sélectionnez une catégorie dans la liste prédéfinie de Google SecOps Marketplace.
  • Dépendances : si votre intégration nécessite des bibliothèques externes, répertoriez-les dans les paramètres d'intégration.
  • Paramètres d'intégration : incluez tous les paramètres nécessaires pour une connexion réussie au produit, ainsi que des descriptions claires.
  • Gestionnaire : pour éviter la duplication de code, créez un gestionnaire, c'est-à-dire un fichier Python auquel d'autres scripts de l'intégration peuvent faire référence.
  • Action Ping : incluez une action Ping pour vérifier la connectivité. Le résultat doit renvoyer true si la connexion est établie. Cette action doit être désactivée par défaut. Elle n'est pas destinée à être utilisée dans un playbook.
  • Linux : l'intégration doit être compatible avec CentOS 7 ou une version ultérieure.

Exigences concernant les actions

  • Description de l'action : décrivez clairement ce que fait l'action.
  • Structure de l'action : suivez le modèle d'action par défaut de l'environnement de développement intégré (IDE).
  • Paramètres de l'action : définissez tous les paramètres pertinents pour l'action, y compris les descriptions. Faites correspondre les types de paramètres aux exigences de l'action.
  • Exécution d'une action dans le contexte d'une alerte : le cas échéant, concevez l'action pour qu'elle s'exécute dans le contexte d'une alerte. Par exemple, limitez la logique à des types d'entités spécifiques (par exemple, des URL) à l'aide de siemplify.target_entities. Pour obtenir un exemple, consultez la section Créer des actions personnalisées.
  • Journalisation : ajoutez des journaux pour les actions complexes et enregistrez toutes les exceptions ou erreurs avec le niveau de gravité approprié (`info`, `warn`, `error`, et `exception`).

Exigences concernant le format JSON

  • Résultat JSON : pour les actions qui renvoient des données, utilisez add_result_json pour renvoyer un résultat JSON.
  • Ajouter un exemple JSON : ajoutez un exemple de fichier JSON que vous pouvez importer dans le Générateur d'expressions pour créer un playbook. Cette recommandation permet aux valeurs de résultat JSON de représenter des espaces réservés dans un playbook.

Enrichir des entités

Lorsque vous enrichissez des entités avec des données provenant d'un produit intégré, suivez ces bonnes pratiques :

  • Ajouter une étape d'enrichissement : incluez les données pertinentes du produit dans le résultat de l'action.
  • Utiliser un préfixe : ajoutez un préfixe (généralement le nom du produit) aux clés de champ d'enrichissement pour éviter les conflits.
    • Exemple : pour enrichir une entité avec le nom et le prénom d'un utilisateur, ajoutez Zoom comme préfixe aux nouveaux champs.
      entity_enrichment = {"first_name":"First Name", "last_name":"Last Name"}
      entity_enrichment = add_prefix_to_dict(entity_enrichment, "Zoom")
  • Mettre à jour l'entité : utilisez entity.additional_properties.update() pour ajouter les données enrichies aux propriétés de l'entité.
  • Mettre à jour l'alerte : utilisez siemplify.update_entities(enriched_entities) pour ajouter les entités mises à jour à l'alerte. Cliquez sur l'entité pour afficher tous les détails.

Publier l'intégration

Pour que votre intégration soit disponible pour tous les utilisateurs de Google SecOps Marketplace, contactez l'assistance client pour l'envoyer à l'équipe Marketplace afin qu'elle l'examine.

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