AWS - GuardDuty Enum
GuardDuty
Selon la documentation: GuardDuty combine apprentissage automatique, détection d'anomalies, surveillance du réseau et découverte de fichiers malveillants, en utilisant à la fois des sources AWS et tierces de premier plan pour aider à protéger les charges de travail et les données sur AWS. GuardDuty est capable d'analyser des dizaines de milliards d'événements à travers plusieurs sources de données AWS, telles que les journaux d'événements AWS CloudTrail, les journaux de flux Amazon Virtual Private Cloud (VPC), les journaux d'audit et de niveau système Amazon Elastic Kubernetes Service (EKS), et les journaux de requêtes DNS.
Amazon GuardDuty identifie les activités inhabituelles au sein de vos comptes, analyse la pertinence en matière de sécurité de l'activité, et fournit le contexte dans lequel elle a été invoquée. Cela permet à un intervenant de déterminer s'il doit consacrer du temps à une enquête plus approfondie.
Les alertes apparaissent dans la console GuardDuty (90 jours) et les événements CloudWatch.
Lorsqu'un utilisateur désactive GuardDuty, il cesse de surveiller votre environnement AWS et ne génère plus de nouvelles découvertes, et les découvertes existantes seront perdues. Si vous le désactivez simplement, les découvertes existantes resteront.
Exemple de découvertes
Reconnaissance: Activité suggérant une reconnaissance par un attaquant, telle qu'une activité API inhabituelle, des tentatives de connexion suspectes à la base de données, un balayage de ports intra-VPC, des modèles inhabituels de demandes de connexion échouées, ou une exploration de ports non bloquée à partir d'une IP malveillante connue.
Compromission d'instance: Activité indiquant une compromission d'instance, telle que du minage de cryptomonnaie, des commandes de contrôle à distance (C&C), des logiciels malveillants utilisant des algorithmes de génération de domaines (DGA), une activité de déni de service sortant, un volume de trafic réseau anormalement élevé, des protocoles réseau inhabituels, une communication sortante de l'instance avec une IP malveillante connue, des informations d'identification temporaires Amazon EC2 utilisées par une adresse IP externe, et une exfiltration de données utilisant DNS.
Compromission de compte: Les modèles courants indiquant une compromission de compte incluent des appels API à partir d'une géolocalisation inhabituelle ou d'un proxy d'anonymisation, des tentatives de désactivation de la journalisation AWS CloudTrail, des modifications affaiblissant la politique de mot de passe du compte, des lancements d'instances ou d'infrastructures inhabituels, des déploiements d'infrastructures dans une région inhabituelle, un vol d'informations d'identification, une activité de connexion suspecte à la base de données, et des appels API à partir d'adresses IP malveillantes connues.
Compromission de bucket: Activité indiquant une compromission de bucket, telle que des modèles d'accès aux données suspects indiquant une utilisation abusive des informations d'identification, une activité API Amazon S3 inhabituelle à partir d'un hôte distant, un accès S3 non autorisé à partir d'adresses IP malveillantes connues, et des appels API pour récupérer des données dans des buckets S3 à partir d'un utilisateur n'ayant pas d'historique d'accès au bucket ou invoqué à partir d'un emplacement inhabituel. Amazon GuardDuty surveille et analyse en continu les événements de données S3 AWS CloudTrail (par ex. GetObject, ListObjects, DeleteObject) pour détecter une activité suspecte sur l'ensemble de vos buckets Amazon S3.
Toutes les découvertes
Accédez à une liste de toutes les découvertes GuardDuty sur: https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html
Multi Comptes
Par Invitation
Vous pouvez inviter d'autres comptes à un compte AWS GuardDuty différent afin que chaque compte soit surveillé depuis le même GuardDuty. Le compte principal doit inviter les comptes membres, puis le représentant du compte membre doit accepter l'invitation.
Via l'Organisation
Vous pouvez désigner n'importe quel compte au sein de l'organisation comme administrateur délégué de GuardDuty. Seul le compte de gestion de l'organisation peut désigner un administrateur délégué.
Un compte désigné comme administrateur délégué devient un compte administrateur GuardDuty, a GuardDuty activé automatiquement dans la région AWS désignée, et a également l'autorisation d'activer et de gérer GuardDuty pour tous les comptes de l'organisation dans cette région. Les autres comptes de l'organisation peuvent être consultés et ajoutés en tant que comptes membres GuardDuty associés à ce compte administrateur délégué.
Énumération
Contournement de GuardDuty
Conseils généraux
Essayez de découvrir autant que possible le comportement des informations d'identification que vous allez utiliser :
Heures d'utilisation
Emplacements
Agents utilisateurs / Services (il pourrait être utilisé à partir d'awscli, de la console web, de lambda...)
Autorisations régulièrement utilisées
Avec ces informations, recréez autant que possible le même scénario pour utiliser l'accès :
S'il s'agit d'un utilisateur ou d'un rôle accédé par un utilisateur, essayez de l'utiliser aux mêmes heures, depuis la même géolocalisation (même le même FAI et IP si possible)
S'il s'agit d'un rôle utilisé par un service, créez le même service dans la même région et utilisez-le à partir de là dans les mêmes plages horaires
Essayez toujours d'utiliser les mêmes autorisations que ce principal a utilisées
Si vous avez besoin d'utiliser d'autres autorisations ou d'abuser d'une autorisation (par exemple, télécharger 1 000 000 de fichiers journaux cloudtrail), faites-le ** lentement ** et avec le minimum d'interactions avec AWS (awscli appelle parfois plusieurs API de lecture avant celle d'écriture)
Contournement de GuardDuty
guardduty:UpdateDetector
guardduty:UpdateDetector
Avec cette autorisation, vous pourriez désactiver GuardDuty pour éviter de déclencher des alertes.
guardduty:CreateFilter
guardduty:CreateFilter
Les attaquants avec cette permission ont la capacité de utiliser des filtres pour l'archivage automatique des découvertes :
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)
iam:PutRolePolicy
, (guardduty:CreateIPSet
|guardduty:UpdateIPSet
)Les attaquants ayant les privilèges précédents pourraient modifier la liste d'IP de confiance de GuardDuty en ajoutant leur adresse IP et éviter de déclencher des alertes.
guardduty:DeletePublishingDestination
guardduty:DeletePublishingDestination
Les attaquants pourraient supprimer la destination pour éviter d'être alertés :
La suppression de cette destination de publication ne affectera pas la génération ou la visibilité des résultats dans la console GuardDuty. GuardDuty continuera d'analyser les événements dans votre environnement AWS, d'identifier les comportements suspects ou inattendus et de générer des résultats.
Exemples de contournement de résultats spécifiques
Notez qu'il existe des dizaines de résultats GuardDuty, cependant, en tant que Red Teamer, tous ne vous affecteront pas, et mieux encore, vous avez la documentation complète de chacun d'eux dans https://docs.aws.amazon.com/guardduty/latest/ug/guardduty_finding-types-active.html donc jetez-y un œil avant d'agir pour ne pas vous faire prendre.
Voici quelques exemples de contournement de résultats spécifiques de GuardDuty :
GuardDuty détecte les requêtes d'API AWS à partir d'outils courants de test de pénétration et déclenche un résultat PenTest. Il est détecté par le nom de l'agent utilisateur qui est transmis dans la requête API. Par conséquent, modifier l'agent utilisateur permet de prévenir GuardDuty de détecter l'attaque.
Pour prévenir cela, vous pouvez rechercher le script session.py
dans le package botocore
et modifier l'agent utilisateur, ou définir Burp Suite comme proxy AWS CLI et changer l'agent utilisateur avec le MitM ou simplement utiliser un système d'exploitation comme Ubuntu, Mac ou Windows pour éviter que cette alerte ne se déclenche.
UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration
Extraire les informations d'identification EC2 du service de métadonnées et les utiliser en dehors de l'environnement AWS active l'alerte UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.OutsideAWS
. En revanche, utiliser ces informations d'identification depuis votre instance EC2 déclenche l'alerte UnauthorizedAccess:IAMUser/InstanceCredentialExfiltration.InsideAWS
. Cependant, utiliser les informations d'identification sur une autre instance EC2 compromise dans le même compte passe inaperçu, sans déclencher d'alerte.
Par conséquent, utilisez les informations d'identification extraites depuis l'intérieur de la machine où vous les avez trouvées pour ne pas déclencher cette alerte.
Références
Dernière mise à jour