Comment utiliser GuardDuty pour identifier les attaques par force brute sur des instances Linux ?

Date de la dernière mise à jour : 16/12/2020

Mes instances Linux Amazon Elastic Compute Cloud (Amazon EC2) font l'objet d'une attaque par force brute SSH. Comment puis-je utiliser Amazon GuardDuty pour bloquer ces attaques ?

Brève description

Les attaques peuvent avoir lieu, car une règle avec le Type SSH autorise les connexions provenant de toutes les sources (0.0.0.0/0) via la plage de ports 22. Le fait d'autoriser 0.0.0.0/0 via la plage de ports 22 provoque un risque pour la sécurité.

En règle générale, ces attaques sont issues de robots qui recherchent des cibles afin de pénétrer dans des instances EC2. Vous pouvez limiter le risque d'intrusion en limitant l'accès SSH. Il est recommandé de configurer les groupes de sécurité de façon à autoriser l'accès SSH uniquement depuis des sources spécifiques que vous possédez, par exemple depuis les hôtes bastion.

Résolution

Vous pouvez utiliser GuardDuty pour surveiller et détecter tout comportement suspect dans votre environnement AWS. L'exemple suivant utilise GuardDuty pour résoudre un problème d'instance EC2 qui subit une attaque par force brute SSH avec un groupe de sécurité permettant un accès SSH depuis des sources via Internet.

  1. Ouvrez la console EC2.
  2. Ouvrez la console GuardDuty dans un nouvel onglet.
  3. À partir de la console EC2, choisissez Security Groups (Groupes de sécurité) ; choisissez un groupe de sécurité, puis choisissez l'onglet Inbound (Entrant).
  4. Dans le volet de navigation, choisissez Instances, puis ouvrez le volet des instances dans un nouvel onglet.
  5. Sélectionnez votre instance, puis copiez l'ID de l'instance.
  6. À partir de la console GuardDuty, choisissez Add filter criteria (Ajouter les critères de filtre), puis choisissez Instance ID (ID de l'instance).
  7. Copiez l'ID de l'instance dans la zone de recherche, puis choisissez Apply (Appliquer).
  8. Dans Finding Type (Type de résultat), choisissez les résultats les plus récents, tel qu'indiqué dans la colonne Last seen (Dernier affichage).
  9. Faites défiler la section Actor (Acteur), puis copiez l'adresse IP source de l'attaque.
  10. Ouvrez le terminal sur l'instance Linux EC2, ouvrez le répertoire /var/log/secure, puis ouvrez le fichier secure.
    Remarque :
    le fichier secure contient la connexion SSH.
  11. Saisissez l'adresse IP source de l'étape 9.
    Remarque : les journaux SSH des AMI Amazon Linux contiennent toutes les tentatives d'authentification pour se connecter à l'instance.
  12. Ouvrez la console AWS Config, choisissez Rules (Règles), puis Add rule (Ajouter une règle) saisissez restricted (limité) dans la zone de recherche.
  13. Choisissez restricted-ssh, puis choisissez Save (Enregistrer).
    Remarque :
    la règle restricted-sh recherche les groupes de sécurité qui désactivent le trafic SSH entrant non limité.
  14. Dans Rule name (Nom de la règle), sous le champ Compliance (Conformité), attendez que la règle restricted-ssh passe de Evaluating (En cours d'évaluation) à noncompliant resource(s) [ressource(s) non conforme(s)]. Vous pouvez également choisir l'icône d'actualisation.
  15. Choisissez restricted-ssh pour afficher les groupes de sécurité non conformes.
  16. Dans Manage resource (Gérer la ressource), choisissez un groupe de sécurité non conforme, puis choisissez l'onglet Inbound (Entrant).

Dans cet exemple, le groupe de sécurité est non conforme, car il autorise les connexions SSH provenant de toutes les sources. Pour limiter le trafic SSH, consultez Ajout d'une règle applicable au trafic SSH entrant à une instance Linux.

Pour plus d'informations, consultez Correction d'une instance EC2 compromise.

Remarque : pour examiner les journaux Linux à l'aide d'Amazon CloudWatch, suivez les instructions contenues dans Démarrage rapide : Installer et configurer l'agent CloudWatch Logs sur une instance Linux EC2 en cours d'exécution.