Résoudre les problèmes liés aux règles de détection

Compatible avec :

Des erreurs d'exécution peuvent se produire lors de l'exécution d'une règle et l'empêcher de s'exécuter correctement. Ce document vous aide à résoudre certains problèmes d'exécution courants.

  • Vous pouvez éviter les erreurs d'exécution en testant vos règles avant le déploiement. Cliquez sur Exécuter le test dans l'éditeur de règles. Si une erreur est détectée, suivez le lien d'erreur pour en savoir plus.

  • Si une erreur se produit lors de l'exécution de la règle, suivez le lien d'erreur sur la page Détections pour en savoir plus.

Erreurs de syntaxe et de logique des requêtes

Ces erreurs se produisent lorsque la structure de la requête n'est pas valide, est trop complexe ou utilise des types de données incompatibles.

Message d'erreur Cause sous-jacente Solution
Too many `OR` and `AND` operations La requête contient des expressions ou une logique profondément imbriquées qui dépassent les limites d'espace de la pile.

Simplifiez les conditions de la règle.

Décomposez la logique complexe en parties plus petites.

Query is too long La requête nécessite trop d'espace de pile pour être traitée. Divisez la logique en plusieurs règles.
Accessing a new field that did not exist for this time range La règle fait référence à un champ récemment ajouté au schéma, mais elle s'exécute sur une période où ce champ n'existait pas.

Ajustez la période pour qu'elle commence après la présence du champ.

Modifiez la règle pour gérer les cas où le champ est nul ou manquant.

Invalid subnet CIDR Certaines fonctions ont rencontré une plage CIDR (Classless Inter-Domain Routing) impossible à analyser Vérifiez le format des plages CIDR dans la règle.
Invalid IP address Certaines fonctions ont rencontré une adresse IP incorrecte. Assurez-vous que la valeur du champ contient un format d'adresse IP valide
Map access for reading label does not support duplicate map keys Certaines fonctions ont tenté d'accéder à des éléments d'une structure de type carte (par exemple, des champs supplémentaires) où des clés en double existent (non autorisé dans l'opération).

Examinez la source de données pour identifier les clés en double.

Adaptez la logique des règles pour gérer cette caractéristique des données.

Invalid regular expression L'expression régulière utilisée dans des fonctions telles que re.regex() est incorrecte.

Corrigez la syntaxe de l'expression régulière.

Invalid re.replace() Utilisation incorrecte de re.regex(), souvent due à une incohérence entre les sous-expressions entre parenthèses et les références dans la chaîne de remplacement. Assurez-vous que le schéma de réécriture dans re.regex() correspond aux sous-expressions entre parenthèses de l'expression régulière.
Integer overflow in sum() aggregation La somme des valeurs dépasse la limite maximale pour les entiers standards. Convertissez le champ en un type à virgule flottante avant de calculer la somme (par exemple, utilisez sum(0.0 + $e.field)).
Cannot complete [arithmetic/mod] operation between unsigned and signed integer La règle tente d'effectuer des opérations arithmétiques (+, -, *) ou modulo (%) entre différents types d'entiers.

Utilisez cast.as_int() ou cast.as_uint() pour convertir un opérande afin qu'il corresponde à l'autre. Un cast explicite est requis pour l'opérateur modulo (%), qui n'accepte que les entiers. Pour les opérations +, - ou *, vous pouvez également forcer la constante entière à se comporter comme un float à l'aide d'un littéral à virgule flottante, tel que 2.0 ou 100.0, ou d'une contrainte de division, telle que (2/1), dans des expressions sans autres opérateurs / sur la même ligne.

Cette contrainte de typage se produit lorsqu'une expression combine des littéraux d'entiers signés (INT64) avec des champs de modèle de données unifié (UDM) d'entiers non signés (UINT64), tels que network.received_bytes, network.sent_bytes et principal.file.size. La contrainte s'applique aux sections events et outcome, y compris dans les agrégations sum() ou max(). Une règle avec une arithmétique d'entiers signés et non signés peut être enregistrée sans erreur de syntaxe et échouer uniquement au moment de l'exécution ou lorsque vous testez la règle. Pour en savoir plus, consultez Arithmétique avec des champs d'événement non signés.

Limites de ressources et erreurs de performances

Ces erreurs indiquent que la requête est trop lourde pour être traitée par le système.

Message d'erreur Cause sous-jacente Solution
Request was throttled, please try again later La règle nécessite plus de mémoire ou de puissance de traitement que ce qui lui est alloué (souvent en raison de jointures complexes, d'agrégations volumineuses ou d'un filtrage insuffisant). Ajoutez des filtres plus spécifiques à la section des événements.
Not enough memory for aggregation Le aggregate_memory_limit a été dépassé. Optimisez les agrégations en réduisant le nombre de clés dans la section "match".
Spilled bytes exceed limit La requête tente de traiter trop d'événements. Optimisez la requête en ajoutant des filtres, par exemple par metadata.log_type.
Your query resource usage is exceeding its allocation La requête a été annulée par le gestionnaire de ressources, car elle utilisait trop de ressources. Optimisez la requête en ajoutant des filtres, par exemple par metadata.log_type.

Accès aux données et erreurs système

Ces erreurs sont souvent temporaires ou liées au stockage des données du backend.

Message d'erreur Cause sous-jacente Solution
Error reading files Problèmes temporaires d'accès aux données sous-jacentes. Réessayez plus tard. Si l'erreur persiste, contactez l'assistance.
Error reading database Problèmes temporaires d'accès aux données sous-jacentes. Réessayez plus tard. Si l'erreur persiste, contactez l'assistance.
Internal error Un problème temporaire dans le système. Réessayez plus tard. Si l'erreur persiste, contactez l'assistance.
Unknown error Message d'erreur par défaut lorsqu'un code d'erreur interne spécifique n'est pas défini. Réessayez plus tard. Si l'erreur persiste, contactez l'assistance.
Request was throttled, please try again later Le système est soumis à une charge importante. Réessayez plus tard.

Erreurs d'exécution inconnues

Vous pouvez rencontrer des erreurs d'exécution inconnues sans description. Si cela se produit, contactez l'assistance Google SecOps.

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