Optimiser le volume d'ingestion
Ce guide explique comment optimiser le volume d'ingestion en configurant les pipelines de traitement des données Google Security Operations. Cette fonctionnalité offre un moyen unifié de filtrer, de transformer et de masquer les données avant leur ingestion complète, quelle que soit la source. Cette méthode améliore la qualité des données et l'efficacité de la détection des menaces.
Ce guide est destiné aux ingénieurs en sécurité, aux analystes Google SecOps et aux administrateurs cloud qui gèrent l'ingestion de journaux dans Google SecOps.
L'ingestion de volumes massifs de journaux non filtrés peut mettre à rude épreuve votre budget et vos ressources. Elle entraîne une augmentation des coûts, des capacités de recherche et d'analyse plus lentes, et un risque plus élevé que les analystes de sécurité manquent des alertes critiques au milieu d'un déluge de données non pertinentes. Un filtrage efficace est essentiel pour un déploiement Google SecOps rentable et efficace.
Avant de commencer
Assurez-vous de disposer des éléments suivants ou d'effectuer les actions suivantes :
- Un rôle Identity and Access Management (IAM) : soit le rôle prédéfini de l'API Chronicle
Admin(roles/chronicle.admin), soit un rôle personnalisé contenant l'une des autorisations suivantes :chronicle.logProcessingPipelines.*chronicle.logTypes.getchronicle.logTypes.listchronicle.feeds.getchronicle.feeds.listchronicle.logs.list
- Version de Bindplane : vous devez disposer de la version 1.96.4 ou ultérieure de la console Bindplane Server.
- Pour Bindplane Cloud, la fédération d'identité de charge de travail (WIF) est compatible avec l'authentification. Les déploiements Bindplane auto-hébergés nécessitent des identifiants de clé JSON de compte de service.
- Accès à la console de gestion Bindplane ou aux API de pipeline de données Google SecOps pour configurer les nœuds de processeur.
- Identifiez les champs, les types de journaux et les conditions précis nécessaires pour configurer les processeurs Filter, Transform et Redact afin de réduire le volume.
- Définissez les entrées de flux de pipeline en faisant correspondre les types de journaux spécifiques, les ID de collecteur (pour les sources Bindplane) ou les noms de flux (pour les flux de données) associés à vos méthodes d'ingestion.
- Si vous ingérez des journaux Google Cloud , définissez les filtres d'exportation Logging requis pour implémenter le filtrage en amont afin de maximiser les économies avant que les données n'atteignent le pipeline SecOps.
- Comprenez vos données de journal :
- Identifiez les journaux à volume élevé ou à faible valeur : analysez vos métriques d'ingestion actuelles pour identifier les types de journaux et les sources qui contribuent le plus au volume et au coût. Pour en savoir plus, consultez la présentation des métriques d'ingestion.
- Déterminez les critères de filtrage : déterminez les champs, valeurs, modèles (regex) ou conditions spécifiques qui identifient de manière fiable les journaux à supprimer, à transformer ou à masquer.
- Connaissez vos méthodes d'ingestion : comprenez comment chaque source de journal cible est ingérée (Direct, Bindplane, Feed, API), car cela affecte la façon dont vous configurez le flux de pipeline.
Terminologie clé
- Pipelines de traitement des données : fonctionnalité utilisée pour filtrer, transformer et masquer les données de journal à leur arrivée, avant qu'elles ne soient stockées et indexées.
- Filtrer/Filtrage : fonctionnalité principale d'optimisation du volume, qui définit des conditions permettant de supprimer de manière sélective les événements qui ne sont pas nécessaires à l'analyse de sécurité.
- Transformer : fonctionnalité utilisée pour modifier les formats de journaux afin d'améliorer leur convivialité, par exemple en supprimant les noms de domaine complets (FQDN) ou en supprimant les champs détaillés dans les événements.
- Redact : fonctionnalité permettant de masquer ou de supprimer complètement les informations sensibles des journaux avant leur stockage, ce qui contribue à la conformité et à la confidentialité.
- Agent Bindplane : méthode d'ingestion pour les journaux collectés à partir de systèmes sur site ou d'autres systèmes cloud.
- Flux : méthode d'ingestion pour les données provenant de sources telles que Cloud Storage, Amazon S3 ou des API tierces.
- API d'ingestion : méthode d'envoi de données de journal personnalisées, qui permet le filtrage côté serveur à l'aide de pipelines de traitement des données.
- Filtrage en amont : bonne pratique recommandée pour le filtrage Google Cloud des journaux à la source à l'aide des filtres d'exportation Logging afin d'optimiser les économies.
- Flux : flux de données spécifique, défini par le type de journal et la source d'ingestion (comme un flux ou une API), qui sert d'entrée à un pipeline de traitement des données.
- Nœud de processeur : composant d'un pipeline qui contient un ou plusieurs processeurs (actions de filtrage, de transformation ou de masquage) qui manipulent les données de manière séquentielle.
- Destination : point de terminaison du pipeline de traitement des données, généralement l'instance Google SecOps où les données traitées sont envoyées pour ingestion et analyse finales.
Utiliser des pipelines de traitement des données pour l'optimisation
Les pipelines de traitement des données dans Google SecOps offrent un contrôle robuste et pré-analytique sur votre processus d'ingestion de données. Ils vous permettent de définir des règles et des actions qui sont appliquées aux journaux à leur arrivée, avant qu'ils ne soient stockés et indexés. Pour en savoir plus, consultez Configurer et gérer des pipelines de traitement des données.
Fonctionnalités clés
- Filtrer : il s'agit de l'objectif principal de l'optimisation du volume. Vous pouvez définir des conditions, à l'aide du contenu brut du journal, des attributs ou d'une expression régulière, pour supprimer de manière sélective les événements qui ne sont pas nécessaires à l'analyse de sécurité. Cela est essentiel pour réduire le bruit et les coûts.
- Transformer : modifiez les formats de journaux pour améliorer leur convivialité ou supprimer les données inutiles dans les événements. Par exemple, vous pouvez supprimer les FQDN des noms d'hôte, analyser et restructurer les charges utiles JSON, ou supprimer les champs détaillés, mais non pertinents.
- Masquer : masquez ou supprimez complètement les informations sensibles, telles que les informations permettant d'identifier personnellement l'utilisateur, des journaux avant leur stockage, ce qui contribue à la conformité et aux exigences de confidentialité.
Applicabilité universelle
L'un des principaux avantages des pipelines de traitement des données est qu'ils peuvent être appliqués aux données provenant de n'importe quelle méthode d'ingestion. Cela fournit une couche de filtrage cohérente pour :
- Google Cloud les journaux intégrés
- les journaux collectés à l'aide de l'agent Bindplane
- les données importées via des flux
- les journaux personnalisés envoyés via les API d'ingestion
Pour en savoir plus, consultez la section Stratégies de filtrage spécifiques à la méthode de ce guide.
Implémenter le filtrage avec des pipelines de traitement des données
Étape 1 : Configurez votre pipeline
Vous pouvez configurer et gérer des pipelines de traitement des données via la console de gestion Bindplane ou à l'aide des API publiques de pipeline de données Google SecOps. Ils vous permettent de définir des flux (entrées), de configurer des nœuds de processeur (Filter, Transform, Redact) et de gérer le déploiement du pipeline.
Pour obtenir des instructions de configuration complètes, consultez Configurer et gérer des pipelines de traitement des données.
Étape 2 : Configurez les processeurs pour le filtrage
Dans un pipeline, vous pouvez ajouter des processeurs à un nœud. Pour réduire le volume, vous devez principalement utiliser des processeurs Filter. Vous pouvez configurer ces processeurs pour qu'ils suppriment les journaux en fonction de conditions ou d'expressions régulières. Vous configurez des conditions et des instructions de pipeline personnalisées à l'aide de la syntaxe OTTL (OpenTelemetry Transformation Language).
- Conditions : évaluation des champs ou des attributs dans les données de journal.
- Expressions régulières : correspondance des modèles dans le message de journal brut.
- Exemple OTTL : une instruction d'exemple serait
set(attributes["labels.myLabel.value"], "myValue").
Bien que le filtrage soit essentiel, vous pouvez également envisager d'utiliser des processeurs Transform pour supprimer les champs volumineux et inutiles des journaux que vous conservez, et utiliser des processeurs Redact pour annuler les données sensibles.
Étape 3 : Stratégies de filtrage spécifiques à la méthode
Les sections suivantes expliquent comment aborder le filtrage avec des pipelines de traitement des données pour chaque type d'ingestion principal.
Google Cloud Journaux
Filtrage en amont (bonne pratique recommandée) : pour optimiser les économies, Google recommande de filtrer les Google Cloud journaux à la source à l'aide des filtres d'exportation Cloud Logging. Cela empêche les journaux indésirables d'être envoyés à Google SecOps en premier lieu. Si nécessaire, vous pouvez utiliser des pipelines de traitement des données pour un filtrage supplémentaire. Pour en savoir plus, consultez le guide Ingest Google Cloud data, en particulier la section Personnaliser les paramètres du filtre d'exportation.
Application de pipeline : configurez un pipeline de traitement des données, en sélectionnant le type de journal et la méthode d'ingestion appropriés Google Cloud soit Direct, soit Cloud Native. Définissez des processeurs de filtre pour supprimer les journaux indésirables en fonction de leur contenu.
Agent Bindplane
Les journaux collectés par l'agent Bindplane, à partir de systèmes sur site ou d'autres systèmes cloud, peuvent être filtrés à l'aide d'un pipeline de traitement des données. Configurez le flux pour qu'il corresponde aux types de journaux et aux ID de collecteur associés à vos sources Bindplane. Pour en savoir plus, consultez Utiliser Bindplane avec Google SecOps.
Flux de données
Pour les données ingérées à l'aide de flux (par exemple, à partir de Cloud Storage, d'Amazon S3 ou d'API tierces), vous pouvez appliquer des filtres de pipeline de traitement des données en sélectionnant le nom du flux et le type de journal lors de la configuration du flux de pipeline. Pour en savoir plus, consultez le guide Utiliser des flux.
API d'ingestion
Si vous envoyez des données à l'aide de l'API d'ingestion, vous pouvez toujours utiliser des pipelines de traitement des données. Configurez le flux de pipeline pour qu'il corresponde au type de journal que vous utilisez dans vos appels d'API. Cela permet le filtrage côté serveur de vos flux de journaux personnalisés. Pour en savoir plus, consultez le guide de l'API d'ingestion.
Bonnes pratiques
- Filtrer en amont lorsque cela est possible : comme mentionné pour Google Cloud, filtrez toujours les journaux aussi près que possible de la source. Il s'agit de l'approche la plus rentable, car elle réduit le transfert de données et les frais généraux de traitement.
- Soyez précis : commencez par des filtres étroits et bien définis pour exclure les journaux connus à volume élevé et à faible valeur. Évitez les filtres trop larges qui pourraient supprimer accidentellement des données utiles.
- Itérer et affiner : examinez régulièrement l'efficacité de vos filtres. Capturent-ils les bons événements ? Y a-t-il de nouveaux bruits à filtrer ?
- Documentez vos filtres : conservez un enregistrement des filtres en place et de leur raison d'être, en particulier pour les expressions régulières complexes ou la logique conditionnelle.
Vérification et tests
- Tests : vous devez d'abord tester vos filtres dans un environnement hors production ou avec un petit sous-ensemble de données.
- Valider les filtres : utilisez les fonctionnalités de test de l'éditeur de pipeline de la console Bindplane. Cela vous permet de saisir des exemples de journaux et de voir le résultat après l'application de vos processeurs, ce qui confirme que vos filtres fonctionnent comme prévu.
- Surveiller l'ingestion : après avoir déployé des pipelines, surveillez vos tableaux de bord d'ingestion dans Google SecOps pour observer l'impact sur le volume de données et les coûts. Pour en savoir plus, consultez la présentation des métriques d'ingestion.
- Afficher les configurations : vous pouvez afficher toutes les configurations dans l'interface utilisateur Google SecOps sous Paramètres SIEM > Traitement des données.
- Gestion externe : vous pouvez rechercher des configurations et cliquer sur "Ouvrir dans Bindplane" pour accéder directement à la console Bindplane pour une gestion avancée.
Limites
- Limites de service : des expressions régulières trop complexes ou un grand nombre de processeurs par pipeline peuvent avoir un impact sur les performances ou être soumis à des limites. Consultez les limites de Google SecOps dans Limites de service.
- Packages Google SecOps : assurez-vous de connaître les fonctionnalités de votre package Google SecOps. Pour en savoir plus, consultez Packages Google SecOps.
- Réutilisabilité : bien qu'elle soit puissante, une configuration de pipeline pour un type ou une source de journal peut ne pas être directement réutilisable pour un autre sans ajustement.
- Nombre maximal de processeurs : définissez un maximum de 10 processeurs par pipeline.
- Performances des expressions régulières : évitez les correspondances excessives d'expressions régulières, car cela peut entraîner l'échec de la création ou du déploiement du pipeline en raison de délais d'attente. Préférez l'analyse des données au format JSON et le filtrage par champs spécifiques.
- Contrainte d'association de flux : bien que différents pipelines puissent être créés pour différents flux du même type de journal, la même définition de flux (par exemple, le même flux ou le même type de journal générique) ne peut pas être associée à plusieurs pipelines actifs. Définir un type de journal sur Toutes les méthodes d'ingestion agit comme un générique et empêche la configuration d'autres pipelines pour des flux spécifiques de ce type de journal.
Vous avez encore besoin d'aide ? Obtenez des réponses auprès des membres de la communauté et des professionnels Google SecOps.