Un rare représentant du type force brute: l'histoire d'une attaque



En travaillant pour protéger la boutique en ligne de l'un de nos clients, nous avons rencontré à plusieurs reprises une curieuse attaque par force brute, qui n'était pas si facile à contrer. Il était basé sur une solution simple à utiliser qui distinguait l'attaque des rangs de son espèce. Ce qu'elle était et comment nous nous défendions encore d'elle, lisez sous la coupe.

Comme vous le savez, la force brute «classique» est une attaque par force brute de données. Par exemple, des comptes bien connus sont pris et des mots de passe sont sélectionnés pour eux selon certains critères, soit générés à la volée, soit sur la base de dictionnaires volés. Il s'agit de la méthode de base pour pirater des comptes.

Et dans le cas que j'ai décrit, les assaillants ont agi un peu différemment. Tout d'abord, ils ont utilisé un grand botnet distribué entre différents pays à partir de plusieurs centaines d'ordinateurs infectés. Dans le système de surveillance, tout semblait être des ordinateurs complètement différents, ou des procurations auxquelles de vraies personnes étaient assises et accédaient au site. Une telle attaque peut passer longtemps inaperçue.

La deuxième caractéristique de l'attaque, en plus de sa forte répartition géographique, était une énumération non pas des connexions, mais des connexions. Les attaquants ont probablement utilisé des dictionnaires de mots de passe populaires et des listes de connexion volées. Et une première connexion a été effectuée sur le mot de passe connu, puis une autre, une troisième, etc. C'était très similaire à la situation où les utilisateurs ordinaires connectés via un seul fournisseur ne peuvent pas se connecter avec leurs mots de passe. Ce n'est, à première vue, rien de criminel. De plus, l'accès à la ressource était très rare - un ou deux par minute.

La troisième caractéristique de l'attaque était que le botnet avait un comportement très «humain»: les clients traitaient JavaScript, acceptaient les cookies.

En raison de ce complexe de facteurs, l'attaque est restée longtemps inaperçue. Quand on l'a quand même découvert, on s'est posé une question non triviale: comment se défendre? Tous les ordinateurs de botnet n'avaient pas de caractéristiques distinctives spéciales, à l'exception d'une certaine erreur dans l'agent utilisateur. Mais nous n'avons pas bloqué l'attaque sur la base de ce signe, car dans ce cas nous cesserions de voir les actions de l'attaquant. Il a fallu mettre en évidence d'autres anomalies. Rien de spécial ne s'est produit en termes d'adresses IP. Il est également impossible de bloquer les connexions qui effectuent un grand nombre de tentatives de connexion infructueuses, car la fréquence est très faible et la connexion n'est pas brouillée. Il n'y avait qu'une seule façon: introduire le captcha. Mais le client ne voulait vraiment pas faire cela, car il pensait que le captcha pouvait aliéner de nombreux clients. Pendant ce temps, les attaquants ont déjà réussi à choisir les bonnes combinaisons pour certains comptes.

Vous êtes sûrement perplexe: pourquoi quelqu'un pénétrerait-il dans les comptes des clients d'une boutique en ligne? Le fait est que dans votre compte, des points bonus sont accumulés, qui peuvent être utilisés pour recevoir des remises sur les marchandises. Probablement, quelqu'un voulait vraiment acheter ou vendre des points bonus sur Internet.

En conséquence, nous avons persuadé le client d'implémenter le captcha à l'aide des outils F5: il aurait dû apparaître après un nombre donné d'entrées infructueuses. Mais d'abord, il était nécessaire de configurer les critères de connexion réussie dans le système. Cela s'est avéré être un peu plus compliqué qu'il n'y paraissait, car dans certains cas, la ressource donne le même code de réponse pour toutes les tentatives de connexion. Comme critère de succès de la connexion, nous avons choisi d'envoyer les cookies du domaine client.

Dans la dernière version de F5 ASM , il est devenu possible de répondre aux tentatives de sélection en termes d'ID de périphérique - un identifiant de navigateur unique. Un code JS est ajouté à la page et lorsque la machine infectée ouvre cette page, il signale son identifiant unique. Dans le cas de nos attaquants, il s'est avéré que l'ID de périphérique du navigateur était le même pour chaque adresse IP. Il s'agit en fait d'un navigateur accessible à partir d'une seule adresse IP.



Par conséquent, vous pouvez définir le critère suivant: si plus de 5 tentatives de connexion infructueuses sont effectuées à partir d'un navigateur en 15 minutes, un captcha sera affiché pour ce client. S'il s'agit d'un utilisateur vraiment normal, il le résoudra et se connectera calmement. Dans le cas où le navigateur ne prend pas en charge JavaScript, nous avons ajouté des exceptions. Mais, afin de ne pas affaiblir la protection, nous avons utilisé un critère différent: si plus de 20 tentatives de connexion infructueuses sont effectuées à partir d'une seule adresse IP, un captcha est à nouveau proposé. Encore une fois: pour un utilisateur normal, cela ne posera pas de problème.

Mais aujourd'hui, il existe déjà des méthodes pour contourner la protection en utilisant le captcha. Par exemple, les botnets envoient des captchas à "l'externalisation" - en Chine ou en Inde, où les habitants qui travaillent dur pour une somme modique résolvent les captchas et renvoient des valeurs de texte. Mais dans ce cas, vous pouvez prendre les mesures appropriées: même si les tentatives de connexion échouent, les tentatives de connexion peuvent être bloquées à partir d'une adresse IP ou d'un ID de périphérique spécifique si le nombre spécifié de tentatives infructueuses est dépassé.

La dernière fois que la boutique en ligne a été attaquée de cette manière, nous avons géré le captcha, et cela a fonctionné. Après son introduction, l'attaque par force brute a progressivement commencé à s'estomper et a finalement cessé. Depuis, environ un an s'est écoulé - il n'y a pas eu de rechute.

Andrei Chernykh, expert au Centre de sécurité de l'information Jet Infosystems

Source: https://habr.com/ru/post/fr414487/


All Articles