EN
en direct

GuardDuty laisse désormais écrire des règles de détection personnalisées et les déployer sur toute l’organisation

Le 1er septembre 2026, AWS ouvre GuardDuty à des règles de détection personnalisées, associables par compte et pilotables à l’échelle de l’organisation avec un mode dry run et une date d’expiration. Les équipes sécurité peuvent coder leurs propres scénarios de détection au lieu d’attendre les findings du constructeur.

Une rangée de loupes identiques sur un établi sombre, une seule lentille au-dessus d’une lueur ambre.

1er septembre 2026. 12 nouvelles méthodes d’API. Amazon GuardDuty ouvre son moteur de détection aux règles personnalisées, associables par compte et déployables à l’échelle de l’organisation par le compte administrateur délégué. DRY_RUN. C’est le mode dans lequel une règle peut d’abord être testée avant de passer en LIVE. Pourquoi c’est important : pendant des années, GuardDuty a été une boîte noire qui produit des findings à partir d’un catalogue fermé. Il devient une plateforme de détection programmable — et le SOC passe de la consommation de findings à l’écriture de détections.

Une boîte noire qui s’ouvre

GuardDuty surveille en continu l’activité des comptes, des charges de travail et des données AWS pour détecter un comportement malveillant ou anormal. Sa force historique a toujours été le zéro-tunage : on active le service, on lui laisse ingérer VPC Flow Logs, les événements CloudTrail et les journaux DNS, et on reçoit des findings typés — credential exfiltration, crypto mining, anomalous behavior. Sa limite aussi : le catalogue de détections est défini par AWS, et un scénario qui n’y figure pas n’existe tout simplement pas.

Avec l’annonce du 1er septembre 2026, la frontière bouge. Les règles de détection personnalisées permettent d’encoder la connaissance d’un environnement précis — un parc de comptes legacy qui ne devrait jamais accéder à telle API, un motif d’exfiltration propre à un métier, un indicateur issu d’une investigation passée. La règle devient un artefact de code, versionnable, testable et auditable, et non plus une intuition glissée dans un ticket.

Le modèle : association, organisation, expiration

Les 12 méthodes livrées dessinent un modèle en trois couches, qu’il faut lire ensemble.

La couche compte gère l’association d’une règle à un compte. CreateCustomDetectionRuleAssociation active une règle en précisant son modeLIVE ou DRY_RUN — et renvoie un identifiant d’association. UpdateCustomDetectionRuleAssociation bascule ce mode sans recréer l’association, DeleteCustomDetectionRuleAssociation la désactive de façon idempotente, et ListCustomDetectionRuleAssociations l’inventorie en filtrant par règle ou par mode. Chaque association porte une date d’expiration (ExpiresAt), ce qui rend la chasse limitée dans le temps triviale à borner.

La couche organisation réplique ce mécanisme à l’échelle du parc. CreateCustomDetectionRuleOrgConfiguration n’est accessible qu’au compte administrateur délégué et active une règle sur l’organisation entière, avec deux listes mutuellement exclusives : IncludeAccountIds pour cibler des comptes précis, ou ExcludeAccountIds pour tout couvrir sauf une liste d’exceptions. UpdateCustomDetectionRuleOrgConfiguration, DeleteCustomDetectionRuleOrgConfiguration, GetCustomDetectionRuleOrgConfiguration et ListCustomDetectionRuleOrgConfigurations complètent le cycle de vie.

La couche état est la plus instructive : une configuration renvoie un Status qui vaut ACTIVE, PROCESSING ou FAILED, accompagné d’un StatusReason. La propagation d’une règle sur des centaines de comptes n’est pas instantanée, et l’API l’assume au lieu de faire semblant.

Pourquoi le mode DRY_RUN change la pratique

Le DRY_RUN est la décision de conception la plus importante de cette annonce. Écrire une détection, c’est accepter le risque du faux positif : une règle trop large inonde le SOC, une règle trop étroite rate l’incident. Historiquement, on ne découvre ce réglage qu’en production, après le premier faux positif massif.

Avec DRY_RUN, la règle s’exécute et observe sans émettre de findings bloquants : on mesure son taux de déclenchement sur du trafic réel avant de basculer en LIVE. Le schéma de validation devient celui du développement logiciel — un environnement de test avant la mise en production — appliqué à la détection. Combiné à l’expiration automatique, il rend viables des chasses ponctuelles : on déploie une règle en DRY_RUN, on la laisse mûrir quelques jours, on la promeut si le signal est propre, on la laisse expirer si elle ne l’est pas.

python
import boto3

gd = boto3.client("guardduty")

# 1. Tester une règle sans émettre de findings bloquants
association = gd.create_custom_detection_rule_association(
    RuleId="arn:aws:guardduty:eu-west-1:123456789012:custom-rule/exfil-legacy-iam",
    Mode="DRY_RUN",
)
print(association["RuleAssociation"]["AssociationId"])

# 2. La promouvoir en production une fois le signal validé
gd.update_custom_detection_rule_association(
    RuleId="arn:aws:guardduty:eu-west-1:123456789012:custom-rule/exfil-legacy-iam",
    AssociationId=association["RuleAssociation"]["AssociationId"],
    Mode="LIVE",
)

La promotion d’une règle devient alors un acte de gouvernance, pas un réflexe : elle se décide sur la base de métriques, avec un chemin de retour explicite vers DRY_RUN en cas de dérive.

Ce que ça ne remplace pas

Il faut poser la limite. GuardDuty reste un moteur de détection, pas de réponse. Écrire une règle qui détecte un motif d’exfiltration ne fait que produire un finding ; l’automatisation qui suit — isoler une instance, révoquer des clés, ouvrir un ticket — relève toujours de EventBridge, de Lambda ou d’un SOAR. La valeur de l’annonce est de déplacer la frontière de ce qui est détectable, pas de ce qui est traité.

La seconde limite est opérationnelle : une règle personnalisée hérite de la même dépendance aux sources que les findings natifs. Si CloudTrail ou les VPC Flow Logs ne couvrent pas la zone observée, la règle la plus fine du monde ne verra rien. La programmabilité de la détection ne dispense pas de la couverture des journaux — elle la rend seulement plus rentable.

La détection comme code, enfin

L’annonce s’inscrit dans une tendance plus large : la détection comme code. Tout comme l’infrastructure a cessé d’être cliquée dans une console pour être écrite en Terraform ou en Pulumi, la détection cesse d’être un réglage de console pour devenir un artefact versionné dans un dépôt, relu en pull request et déployé par un pipeline. Le bénéfice n’est pas cosmétique : une règle dans Git est auditable, rejouable et réversible, là où un réglage dans la console GuardDuty n’existe qu’à l’état de capture d’écran.

Concrètement, le flux de travail devient : une règle écrite dans un fichier, une revue par l’équipe sécurité, un déploiement en DRY_RUN sur un sous-ensemble de comptes, une mesure du taux de déclenchement, puis une promotion en LIVE — le tout déclenché par la même CI que le reste de la plateforme. Pour une équipe qui gère des dizaines de comptes, c’est le seul moyen de maintenir une cohérence de détection sans multiplication des réglages manuels.

Verdict

Si vous êtes déjà sur GuardDuty, exploitez la nouveauté par paliers : encodez d’abord vos deux ou trois scénarios maison les plus douloureux (comptes legacy, motifs d’exfiltration connus, indicateurs d’investigations passées), déployez-les en DRY_RUN, mesurez le taux de déclenchement, puis promeuvez-les en LIVE avec une date d’expiration pour les chasses ponctuelles. La couche organisation est la bonne échelle pour un déploiement homogène — utilisez ExcludeAccountIds pour les comptes de test plutôt que de multiplier les associations manuelles.

Si vous n’êtes pas sur GuardDuty, la combinaison règles personnalisées + configuration organisationnelle abaisse nettement le seuil d’adoption : vous n’héritez plus seulement des findings génériques, vous pouvez viser vos risques précis dès le départ.

Si vous pilotez un SOC multi-cloud, lisez cette annonce comme un signal de marché : la détection managée converge vers l’ouverture. Le différenciateur ne sera bientôt plus la capacité de détecter, mais la qualité des règles qu’une équipe sait écrire et maintenir.

Références

Le brief cyber, chaque mardi

Les failles qui comptent, les correctifs à appliquer, en dix minutes de lecture.

Pas de spam. Désinscription en un clic.
à lire ensuite

Sur le même sujet

AWS rachète DuckLabs, l’éditeur de DuckDB, et laisse le projet sous licence MIT et gouvernance indépendante

Annoncée le 26 août 2026 et confirmée dans le roundup AWS du 31 août, l’acquisition de DuckLabs par AWS intègre l’éditeur de DuckDB comme filiale, sans toucher à la licence MIT ni à la gouvernance de la DuckDB Foundation. Pour les équipes data, DuckDB reste un pari sûr ; reste à surveiller si la feuille de route serveur penche vers AWS.

Lambda supporte les politiques IAM complètes, et une seule API efface tous les triggers

Le 25 août 2026, AWS a ouvert les politiques IAM complètes aux fonctions Lambda : un document JSON unique, des clés de condition complètes et des Deny explicites. Les équipes plateforme gagnent en précision, mais PutResourcePolicy écrase toute la politique en un appel — à adopter avec un read-modify-write et un audit préalable des triggers.

← Retour au fil

Tapez au moins deux caractères.

naviguer ouvrir esc fermer