L'article est divisé en trois parties. Le premier contient des informations générales sur le piratage BGP et sa version traditionnelle. Pour ceux qui connaissent ce phénomÚne, il est recommandé de passer directement à la deuxiÚme partie. La deuxiÚme partie décrira la méthode d'annonce des préfixes étrangers en ajoutant un AS étranger à votre AS-SET. Dans la troisiÚme partie, une évaluation sera faite de la complexité de l'utilisation de la méthode décrite dans la deuxiÚme partie pour capturer l'adresse IP de la ressource torproject.org et émettre un certificat pour celle-ci. Il est supposé que le lecteur connaßt les principes du BGPv4.
Détournement BGP simple
En bref, le détournement BGP capture les adresses IP de quelqu'un d'autre (aléatoire ou intentionnel).
Habituellement, le dĂ©tournement BGP ressemble Ă ceci: un AS qui ne possĂšde pas de prĂ©fixe commence Ă l'annoncer (prĂ©fixe de quelqu'un d'autre), les liaisons montantes / pairs l'acceptent et il commence Ă se rĂ©pandre sur Internet. Ils l'acceptent pour la raison qu'il n'y a pas de filtrage des prĂ©fixes Ă la jonction (soit c'est une erreur de configuration, soit conçu de la sorte (car il est trĂšs difficile de construire un filtre de prĂ©fixe Ă la jonction avec de trĂšs gros opĂ©rateurs pour diverses raisons, ce n'est pas important pour cet article) ) L'un des exemples les plus en vue des derniers temps oĂč Rostelecom (
AS12389 ) a
commencé à annoncer les préfixes Mastercard (
AS26380 ), Visa et certaines autres organisations financiĂšres (selon la
version officielle , Ă la suite d'une panne de logiciel). Vous pouvez voir Ă quoi ressemblaient ces annonces dans l'historique bgplay (
affichage via le web ,
json (
archive )), en voici une sur l'un des collecteurs RIPE (le préfixe 216.119.216.0/24 appartient à Mastercard (AS26380)):
"source_id": "05-193.203.0.185", "path": [ 6939, 12389 ], "community": [], "target_prefix": 216.119.216.0/24
Et voici à quoi ressemblait l'annonce réelle:
"source_id": "05-193.203.0.63", "path": [ 6720, 8447, 32787, 26380, 26380, 26380 ], "community": [ "1120:1" ], "target_prefix": 216.119.216.0/24
C'est-Ă -dire dans ce cas, Rostelecom a annoncĂ© un prĂ©fixe directement depuis son AS (le dernier AS dans AS-PATH est 12389). Des problĂšmes pourraient ĂȘtre Ă©vitĂ©s si les liaisons montantes et les fĂȘtes des prĂ©fixes filtrĂ©s par Rostelecom de Rostelecom en
construisant des listes de préfixes selon AS-SET et / ou en
validant les préfixes selon ROA RPKI . La construction de listes de préfixes entre les grands opérateurs n'est souvent pas effectuée, et tous n'ont pas implémenté RPKI (mais il y a des
progrĂšs ). Un tel dĂ©tournement, en thĂ©orie, peut ĂȘtre fait par n'importe qui, mais seulement si le prĂ©fixe annoncĂ© "fuit" Ă travers au moins une liaison montante / fĂȘte. Habituellement, les grands opĂ©rateurs russes configurent des filtres de prĂ©fixe vers leurs clients et, par consĂ©quent, les petits AS (petits / moyens opĂ©rateurs, certains hĂ©bergeurs et certaines entreprises), presque toujours, ne peuvent pas effectuer une telle attaque (mais encore une fois, tout dĂ©pend de la rĂ©gion / pays / opĂ©rateur spĂ©cifique).
Cependant, les attaquants trouvent toujours des endroits (liaisons montantes) oĂč le filtrage n'est pas configurĂ© (en 2017, le BrĂ©sil Ă©tait le
leader du dĂ©tournement ) et mĂšnent une attaque en saisissant les adresses IP (souvent, de tels Ă©vĂ©nements tombent dans les fils de nouvelles), pour une attaque plus efficace, annoncer des prĂ©fixes plus spĂ©cifiques (avec un masque plus long) qu'un vĂ©ritable crĂ©ateur. Passons maintenant Ă la version d'attaque, oĂč ni la validation ROA RPKI ni les listes de prĂ©fixes AS-SET ne sont enregistrĂ©es.
Détournement BGP avec l'ajout d'une victime AS dans son AS-SET
Considérez le scénario suivant:
- Un attaquant obtient des adresses AS et IP (en fait, techniquement, il n'a pas besoin d'adresses IP, elles sont plus susceptibles de ne pas poser de questions).
- Un attaquant se connecte Ă divers grands opĂ©rateurs et IXs (au moins un opĂ©rateur ou IX), indiquant non seulement son AS, mais son AS-SET comme source de donnĂ©es sur les prĂ©fixes annoncĂ©s (c'est une pratique normale pour l'interaction inter-opĂ©rateurs (y compris y compris dans une relation client-liaison montante) ou Ă inclure sur IX-ah)). Dans le cas normal, AS-SET est spĂ©cifiĂ©, et pas seulement AS, quand on suppose que le client n'est pas une impasse, mais qu'il a lui-mĂȘme (ou aura) des clients avec bgp et leurs propres rĂ©seaux.
- AprĂšs un certain temps, l'attaquant ajoute l'AS de la victime Ă son AS-SET et commence Ă annoncer son prĂ©fixe par lui-mĂȘme, c'est-Ă -dire L'AS-PATH annoncĂ© ressemble Ă ceci: "AS_ attaquant AS_ victimes". Du point de vue des listes de prĂ©fixes construites automatiquement et du point de vue de RPKI, c'est une annonce tout Ă fait valable, donc les deux mĂ©canismes de protection ne fonctionneront pas ici.
- Le prĂ©fixe annoncĂ© commence Ă rivaliser avec l'annonce rĂ©elle (l'annonce de la victime), quelque part oĂč il gagne et entre dans la table de routage, quelque part oĂč il perd et ne gagne pas (l'annonce de la victime restera lĂ ). Cela dĂ©pend du nombre de liaisons montantes et du nombre d'IX utilisĂ©s par un attaquant. Lorsqu'un attaquant se connecte Ă un AS en tant que client, Ă l'intĂ©rieur (le plus souvent), il gagnera la victime en raison d'une prĂ©fĂ©rence locale plus grande (si la victime n'est pas un client de la mĂȘme liaison montante, alors la victime gagnera par AS-PATH s'il ne le fait pas). prĂ©-ajouter), c'est-Ă -dire un attaquant doit se connecter Ă autant de liaisons montantes que possible avec son AS-SET afin de maximiser l'efficacitĂ© de son attaque.
De plus, l'attaquant doit se connecter au nombre maximum de IXs, comme Habituellement, les AS de blocage définissent le préfixe local le plus élevé sur IX et si le préfixe victime n'est pas impliqué dans IX, il perdra l'annonce de l'attaquant dans les tables de routage des AS de blocage.
En théorie, il s'agit d'une attaque assez forte, mais heureusement, dans la pratique, les limitations suivantes se présenteront:
- Vous devez créer une entité juridique, au moins une, mais en fait, elle sera probablement requise dans différents pays.
- Il est nécessaire de conclure des accords avec les opérateurs, les IX, font presque toujours des frais de connexion, avec le LIR / RIR.
- Certains opérateurs ne construisent toujours pas de listes de préfixes AS-SET automatiquement, ils doivent écrire des lettres pour cela. Un administrateur expérimenté soupçonnera quelque chose si l'AS-ka d'une entreprise bien connue apparaßt soudainement dans l'AS-SET d'une entreprise inconnue.
- AprÚs l'attaque, l'équipement utilisé (s'il se trouve dans une sorte de centre de données) sera trÚs probablement saisi en cas d'ouverture d'une affaire pénale.
- Les listes de préfixes pour différents opérateurs / IX sont mises à jour à différents moments, vous devrez donc analyser qui met à jour lorsque ce n'est pas non plus la tùche la plus simple.
Mesures de protection possibles:
- ThĂ©oriquement, pour se dĂ©fendre contre une telle attaque, vous devez avoir autant d'interfaces que possible avec les opĂ©rateurs (mieux, les clients, car ils ont une prĂ©fĂ©rence locale plus Ă©levĂ©e) et des IX. C'est-Ă -dire faire la mĂȘme chose qu'un attaquant fera. Bien sĂ»r, dans la pratique, cela est extrĂȘmement difficile Ă mettre en Ćuvre et nĂ©cessitera des ressources importantes. Cette mĂ©thode n'est pertinente que pour les services qui fournissent des services de sĂ©curitĂ© de l'information Ă titre professionnel.
- Si vous avez un site Web, utilisez un enregistrement CAA avec la tùche de compte (si votre fournisseur de certificat SSL le prend en charge. Letsencrypt le prend en charge) (voir RFC6844 ). Dans ce cas, l'attaquant ne pourra pas émettre de certificat (sauf s'il peut modifier l'enregistrement CAA)
- ThĂ©oriquement, la mise en Ćuvre gĂ©nĂ©ralisĂ©e de BGPsec devrait Ă©liminer une telle attaque, mais son sort n'est pas encore clair (en pratique, il n'est pas encore appliquĂ© ou trĂšs rarement).
- Implémentation de la vérification alternative AS_PATH (sans BGPsec) (jusqu'à présent, c'est un brouillon qui résout le problÚme décrit en cas d'implémentation généralisée).
- L'interdiction de l'ajout incontrĂŽlĂ© d'un AS Ă©tranger Ă votre AS-SET (sans l'autorisation du propriĂ©taire de l'AS) pourrait rĂ©duire la possibilitĂ© de mener de telles attaques dans les rĂ©gions oĂč des AS-SET sont utilisĂ©s pour filtrer les joints. Maintenant, il n'y a pas une telle interdiction.
En fait, pour la plupart des lecteurs, le seul conseil qui s'applique Ă eux est le n ° 2 (concernant l'utilisation du compte dans un enregistrement CAA) et partiellement n ° 1 dans le contexte du choix d'un hĂŽte avec une bonne connectivitĂ©. Dans le mĂȘme temps, vous devez vous rappeler des attaques possibles contre le service DNS dans lequel vous hĂ©bergez vos enregistrements (mais il s'agit d'un problĂšme distinct et il y a beaucoup de documents)
Est-il difficile de capturer torproject.org
Un attaquant doit résoudre deux problÚmes:
- Rediriger le trafic vers le public cible (public cible - qui recevra le faux site)
- Générer un certificat
Introduction:
$ dig torproject.org CAA +short 128 issuewild "\;" 0 iodef "mailto:torproject-admin@torproject.org" 128 issue "globalsign.com" 128 issue "letsencrypt.org" $ dig torproject.org +short 95.216.163.36 138.201.14.197
Comme vous pouvez le voir, il existe un enregistrement CAA, vous pouvez obtenir un certificat de letsencrypt, il n'y a pas de liaison au compte dans l'enregistrement CAA, ce qui signifie que le problÚme est théoriquement résolu par l'attaquant. Les adresses IP de torproject.org sont la propriété du célÚbre hébergeur Hezner.
Supposons que le public cible d'un attaquant soit les clients d'un opĂ©rateur russe. Hezner n'est pas un client des opĂ©rateurs russes (mais a le peering avec les grands - directement ou via des IXs). Le moyen le plus simple pour un attaquant de rediriger le trafic CA vers lui-mĂȘme est de devenir client de cet opĂ©rateur et de simplement gagner aux dĂ©pens d'un prĂ©fet local plus Ă©levĂ©. Tout ici est particuliĂšrement simple et clair.
Pour obtenir un certificat dans letsencrypt, vous avez besoin du fournisseur sur lequel letsencrypt héberge pour diriger le trafic vers l'attaquant, et non vers Hezner (AS24940). letsencrypt se résout à différentes adresses pour l'IP américaine et européenne, mais voyons à quel point il sera difficile d'influencer le trafic de acme-v02.api.letsencrypt.org/2.19.125.202 vers l'hÎte de l'attaquant. Ici, nous sommes confrontés au fait que letsencrypt est hébergé sur Akamai CDN, qui a une trÚs bonne connectivité dans le monde (il est présent sur la plupart des IXs majeurs, a des liens directs avec un grand nombre de grands joueurs). Akamai n'a pas de LG public, en principe, il existe une
API pour les clients avec laquelle vous pouvez faire du traceroute / ping, mais mĂȘme sans LG public, vous pouvez jeter un Ćil au
peering db pour Ă©valuer l'ampleur de leur prĂ©sence. De mĂȘme, vous pouvez regarder
hezner . Il est facile de voir que les deux AS ont la prĂ©sence des mĂȘmes IX, d'oĂč nous pouvons conclure qu'avec une probabilitĂ© proche de l'unitĂ©, les prĂ©fixes AS Hezner (AS24940) dans la table Akamai (AS20940) sont visibles avec AS_PATH 24940. Cela signifie que si un attaquant S'il essaie d'annoncer les prĂ©fixes de Hezner via un IX, ils perdront selon AS_PATH les vraies annonces de Hezner (puisque AS_PATH contiendra l'AS de l'attaquant). Une solution possible serait d'organiser un peering «direct» entre l'attaquant et Akamai (si Akamai est d'accord avec cela et si sa prĂ©fĂ©rence locale est supĂ©rieure Ă celle des jonctions avec les IX).
Pour résumer, en ajoutant l'AS de quelqu'un d'autre à votre AS-SET, vous pouvez provoquer une dégradation importante du site torproject.org (pour un grand nombre de clients, mais pas pour tout le monde dans le cas général), mais obtenez le certificat SSL torproject.org dans letsencrypt, trÚs probablement, cela ne fonctionnera pas en raison de la bonne connectivité entre le véritable créateur (Hezner) et le CDN utilisé par letsencrypt (Akamai). Cependant, dans d'autres cas, lorsqu'il existe des AS de transit entre l'hébergement du site victime et l'autorité de certification et qu'ils sont présents dans AS_PATH, le risque d'obtenir un certificat en utilisant la méthode décrite est considérablement accru.