Tout va trĂšs mal ou un nouveau type d'interception de trafic

Le 13 mars, un projet de groupe de travail RIPE sur la lutte contre les abus a reçu une proposition d’envisager l'attaque par BGP hijacking (hjjack) comme une violation de la politique RIPE. Si la proposition est adoptĂ©e, le fournisseur d'accĂšs Internet victime d'un dĂ©tournement de trafic aurait la possibilitĂ© d'envoyer une demande spĂ©ciale pour exposer l'attaquant. Si le groupe d'experts rassemble suffisamment de preuves, un LIR Ă  l'origine du BGP hijack serait considĂ©rĂ© comme un contrevenant et pourrait perdre son statut de LIR. Il y a Ă©galement eu des arguments contre cela. modifications.

Dans cette publication, nous souhaitons montrer un exemple d'attaque, oĂč non seulement le vĂ©ritable agresseur Ă©tait en question, mais aussi toute la liste des prĂ©fixes touchĂ©s. De plus, cette attaque soulĂšve de nouveau des questions sur les motifs de futurs dĂ©tournements de trafic de ce type.

Au cours des deux derniĂšres annĂ©es, la presse a couvert les BGP hijacks principalement sous forme de conflits MOAS (Multiple Origin Autonomous System). Le MOAS est un cas particulier oĂč deux systĂšmes autonomes distincts annoncent des prĂ©fixes conflictuels avec les numĂ©ros ASN appropriĂ©s dans l'AS_PATH (le premier ASN dans l'AS_PATH, ci-aprĂšs — origin ASN). Cependant, nous pouvons citer au moins 3 types supplĂ©mentaires de dĂ©tournement de trafic, permettant Ă  l'attaquant de manipuler l'attribut AS_PATH Ă  diffĂ©rentes fins, y compris pour contourner les mĂ©thodes modernes de filtrage et de surveillance. Un type d'attaque connu Pilosova-Kapela est le dernier type de ce dĂ©tournement, mais pas le moins significatif. Il est tout Ă  fait possible que nous ayons observĂ© ce type d'attaque au cours des derniĂšres semaines. Cet Ă©vĂ©nement a une portĂ©e explicative et des consĂ©quences assez graves.

Ceux qui recherchent une version TL;DR peuvent faire défiler jusqu'à la sous-titre « L'attaque parfaite ».

Contexte réseau

(pour que vous compreniez mieux les processus impliqués dans cet incident)

Si vous souhaitez envoyer un paquet et que vous avez plusieurs prĂ©fixes dans le tableau de routage contenant l'adresse IP de destination, vous utiliserez le trajet pour le prĂ©fixe de la longueur maximale. S'il existe plusieurs itinĂ©raires diffĂ©rents pour un mĂȘme prĂ©fixe dans le tableau de routage, vous choisirez le meilleur (selon le mĂ©canisme de sĂ©lection du meilleur chemin).

Les approches existantes en matiÚre de filtrage et de surveillance tentent d'analyser les routes et de prendre des décisions en examinant l'attribut AS_PATH. Le routeur peut modifier cet attribut à n'importe quelle valeur lors de l'annonce. Il peut suffire d'ajouter l'ASN du propriétaire au début de l'AS_PATH (comme ASN d'origine) pour contourner les mécanismes de vérification de source actuels. De plus, s'il existe une route depuis l'ASN ciblé jusqu'à vous, il est possible d'extraire et d'utiliser l'AS_PATH de cette route dans d'autres annonces. Toute vérification de validité de l'AS_PATH uniquement pour vos annonces fabriquées sera finalement réussie.

Il existe Ă©galement plusieurs autres limitations dignes de mention. Tout d'abord, en cas de filtrage de prĂ©fixes par un fournisseur supĂ©rieur, votre route peut toujours ĂȘtre filtrĂ©e (mĂȘme avec un AS_PATH correct) si le prĂ©fixe n'appartient pas Ă  votre cĂŽne client, rĂ©glĂ© chez l'upstream. DeuxiĂšmement, un AS_PATH valide peut devenir invalide si la route créée est annoncĂ©e dans des directions incorrectes et enfreint ainsi la politique de routage. Enfin, toute route avec un prĂ©fixe enfreignant la longueur ROA peut ĂȘtre considĂ©rĂ©e comme invalide.

Incident

Il y a quelques semaines, nous avons reçu une plainte d'un utilisateur. Nous avons vu des routes avec son ASN d'origine et des préfixes /25, alors que l'utilisateur affirmait qu'il ne les avait pas annoncés.

TABLE_DUMP2|1554076803|B|xxx|265466|78.163.7.0/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.7.128/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.18.0/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.18.128/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.226.0/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.163.226.128/25|265466 262761 263444 22356 3491 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.164.7.0/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||
TABLE_DUMP2|1554076803|B|xxx|265466|78.164.7.128/25|265466 262761 263444 6762 2914 9121|INCOMPLETE|xxx|0|0||NAG||

Exemples d'annonces au début d'avril 2019

NTT sur la route pour le préfixe /25 la rend particuliÚrement suspecte. Pendant l'incident, NTT ne savait rien de cette route. Donc oui, un certain opérateur crée un AS_PATH entier pour ces préfixes ! La vérification sur d'autres routeurs permet de mettre en évidence un ASN particulier : AS263444. En examinant d'autres routes avec ce systÚme autonome, nous avons rencontré la situation suivante :

TABLE_DUMP2|1554076800|B|xxx|265466|1.6.36.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.6.38.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.23.143.0/25|265466 262761 263444 22356 6762 9498 9730 45528|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.23.143.128/25|265466 262761 263444 22356 6762 9498 9730 45528|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.24.0.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.24.128.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.26.0.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.26.128.0/17|265466 262761 263444 6762 4837|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.64.96.0/20|265466 262761 263444 6762 3491 4760|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.64.112.0/20|265466 262761 263444 6762 3491 4760|IGP|xxx|0|0||NAG||

Essayez de deviner ce qui ne va pas ici

Il semble que quelqu'un ait pris le prĂ©fixe d'une route, l'ait divisĂ© en deux parties et annoncĂ© une route avec le mĂȘme AS_PATH pour ces deux prĂ©fixes.

TABLE_DUMP2|1554076800|B|xxx|263444|1.6.36.0/23|263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|263444|1.6.38.0/23|263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|61775|1.6.36.0/23|61775 262761 263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|61775|1.6.38.0/23|61775 262761 263444 52320 9583|IGP|xxx|0|0|32:12595 52320:21311 65444:20000|NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.6.36.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|265466|1.6.38.0/23|265466 262761 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|28172|1.6.36.0/23|28172 52531 263444 52320 9583|IGP|xxx|0|0||NAG||
TABLE_DUMP2|1554076800|B|xxx|28172|1.6.38.0/23|28172 52531 263444 52320 9583|IGP|xxx|0|0||NAG||

Exemples de routes pour l'une des paires de préfixes divisés

Plusieurs questions se posent. Quelqu'un a-t-il déjà essayé un tel type d'interception en pratique ? Quelqu'un a-t-il accepté ces routes ? Quels préfixes ont été touchés ?

C'est ici que commence notre série d'échecs et un autre tour de déceptions concernant l'état actuel de la santé d'Internet.

Le chemin des échecs

Tout d'abord, comment pouvons-nous dĂ©terminer quels routeurs ont acceptĂ© de telles routes interceptĂ©es et quel trafic peut dĂ©jĂ  ĂȘtre redirigĂ© aujourd'hui ? Nous avons pensĂ© commencer par les prĂ©fixes /25, car ils « ne peuvent tout simplement pas avoir de distribution mondiale ». Comme vous pouvez le deviner, nous avions clairement tort. Cette mĂ©trique s'est rĂ©vĂ©lĂ©e trop bruitĂ©e et les routes avec de tels prĂ©fixes peuvent apparaĂźtre mĂȘme chez des opĂ©rateurs de niveau 1. Par exemple, NTT a environ 50 de ces prĂ©fixes qu'il distribue Ă  ses propres clients. D'autre part, cette mĂ©trique est mauvaise car ces prĂ©fixes peuvent ĂȘtre filtrĂ©s si l'opĂ©rateur applique le filtrage des petits prĂ©fixes, dans toutes les directions. Par consĂ©quent, cette mĂ©thode ne convient pas pour trouver tous les opĂ©rateurs dont le trafic a Ă©tĂ© redirigĂ© Ă  la suite d'un tel incident.

Une autre bonne idĂ©e nous a semblĂ© d'examiner POV. En particulier, les routes enfreignant la rĂšgle maxLength du ROA correspondant. Ainsi, nous pourrions trouver le nombre de diffĂ©rents ASN d'origine avec un statut Invalid, qui Ă©taient visibles par ce AS. Cependant, il y a un « petit » problĂšme. La valeur moyenne (mĂ©diane et mode) de ce nombre (nombre de diffĂ©rents ASN d'origine) est d'environ 150 et, mĂȘme si nous filtrons les petits prĂ©fixes, cela restera au-dessus de 70. Cette situation s'explique assez simplement : il n'y a que quelques opĂ©rateurs qui appliquent dĂ©jĂ  des filtres ROA avec la politique « rejeter les routes Invalid » aux points d'entrĂ©e, donc, oĂč que dans le monde rĂ©el une route enfreignante le ROA apparaisse, elle peut se propager dans toutes les directions.

Les deux derniÚres approches permettent de trouver les opérateurs ayant vu notre incident (car il était suffisamment important), mais dans l'ensemble, elles ne sont pas applicables. TrÚs bien, mais pouvons-nous trouver l'attaquant ? Quelles sont les caractéristiques générales de cette manipulation AS_PATH ? Il y a quelques hypothÚses de base :

  • Le prĂ©fixe n'a jamais Ă©tĂ© vu auparavant ;
  • L'ASN d'origine (rappel : le premier ASN dans AS_PATH) est valide ;
  • Le dernier ASN dans AS_PATH est l'ASN de l'attaquant (au cas oĂč son voisin vĂ©rifierait l'ASN du voisin sur toutes les routes entrantes);
  • L'attaque provient d'un seul fournisseur.

Si toutes les hypothĂšses sont correctes, tous les itinĂ©raires incorrects prĂ©senteront l'ASN de l'attaquant (Ă  l'exception de l'ASN d'origine), et ceci est donc un point « critique ». Parmi les vĂ©ritables pirates, il y avait aussi AS263444, bien qu'il y en ait d'autres. MĂȘme lorsque nous avons Ă©cartĂ© les itinĂ©raires de l'incident de l'analyse. Pourquoi ? Un point critique peut rester critique mĂȘme pour des itinĂ©raires corrects. Il peut rĂ©sulter d'une mauvaise connectivitĂ© dans une rĂ©gion ou des limitations de notre propre visibilitĂ©.

En consĂ©quence : il existe un moyen de dĂ©tecter l'attaquant, mais seulement si toutes les conditions prĂ©citĂ©es sont remplies et seulement lorsque l'interception est suffisamment grande pour passer les seuils de surveillance. Si certains de ces facteurs ne sont pas respectĂ©s, pouvons-nous identifier les prĂ©fixes touchĂ©s par une telle interception ? Pour certains opĂ©rateurs — oui.

Lorsque l'attaquant crée un itinéraire plus spécifique, ce préfixe n'est pas annoncé par le véritable propriétaire. Si vous disposez d'une liste dynamique de tous ses préfixes, il devient possible de comparer et de trouver les itinéraires plus spécifiques déformés. Nous recueillons cette liste de préfixes grùce à nos sessions BGP, car nous recevons non seulement la liste complÚte des itinéraires que l'opérateur voit actuellement, mais aussi la liste de tous les préfixes qu'il souhaite annoncer au monde. Malheureusement, il existe actuellement plusieurs dizaines d'utilisateurs de Radar qui ne réalisent pas cette derniÚre partie correctement. Nous les informerons sous peu et tenterons de résoudre ce problÚme. Tous les autres peuvent rejoindre notre systÚme de surveillance immédiatement.

Pour revenir Ă  l'incident initial, Ă  la fois l'attaquant et la portĂ©e de la diffusion ont Ă©tĂ© identifiĂ©s par notre recherche de points critiques. Étonnamment, AS263444 n'envoyait pas de routes falsifiĂ©es Ă  tous ses clients. Bien qu'il y ait un autre point plus Ă©trange.

BGP4MP|1554905421|A|xxx|263444|178.248.236.0/24|263444 6762 197068|IGP|xxx|0|0|13106:12832 22356:6453 65444:20000|NAG||
BGP4MP|1554905421|A|xxx|263444|178.248.237.0/24|263444 6762 197068|IGP|xxx|0|0|13106:12832 22356:6453 65444:20000|NAG||

Un exemple récent de tentative d'interception de notre espace d'adresses

Lorsque des more specific ont Ă©tĂ© créés pour nos prĂ©fixes, un AS_PATH spĂ©cialement conçu a Ă©tĂ© utilisĂ©. Cependant, cet AS_PATH ne pouvait pas ĂȘtre tirĂ© d'aucun de nos itinĂ©raires prĂ©cĂ©dents. Nous n'avons mĂȘme pas de lien avec AS6762. Examinons d'autres itinĂ©raires dans l'incident : certains d'entre eux avaient un AS_PATH rĂ©el, utilisĂ© auparavant, tandis que d'autres n'en avaient pas, mĂȘme s'il semblait authentique. Un changement supplĂ©mentaire d'AS_PATH n'a pas de sens pratique, car de toute façon, le trafic sera redirigĂ© vers le malfaiteur, mais les itinĂ©raires avec un « mauvais » AS_PATH peuvent ĂȘtre filtrĂ©s par ASPA ou tout autre mĂ©canisme de vĂ©rification. Ici, nous nous sommes interrogĂ©s sur la motivation du pirate. Nous manquons actuellement de donnĂ©es pour affirmer que cet incident Ă©tait une attaque planifiĂ©e. NĂ©anmoins, c'est possible. Essayons d'imaginer une situation qui, bien que hypothĂ©tique, pourrait ĂȘtre tout Ă  fait rĂ©elle.

Attaque idéale

Qu'avons-nous ? Supposons que vous soyez un fournisseur de transit, diffusant des itinĂ©raires pour vos clients. Si vos clients ont une prĂ©sence multiple (multihome), vous n'obtiendrez qu'une partie de leur trafic. Mais plus le trafic est important, plus vos revenus augmentent. Ainsi, si vous commencez Ă  annoncer des prĂ©fixes de sous-rĂ©seaux de ces mĂȘmes itinĂ©raires avec le mĂȘme AS_PATH, vous obtiendrez le reste de leur trafic. En consĂ©quence, le reste de l'argent.

Le ROA aidera-t-il ici ? Peut-ĂȘtre, si vous dĂ©cidez de renoncer complĂštement Ă  l'utilisation maxLength. De plus, il est fortement dĂ©conseillĂ© d'avoir des enregistrements ROA avec des prĂ©fixes qui se chevauchent. Pour certains opĂ©rateurs, de telles restrictions sont inacceptables.

En considérant d'autres mécanismes de sécurité de routage, dans ce cas, l'ASPA ne sera pas non plus utile (car il utilise un AS_PATH provenant d'un itinéraire autorisé). BGPSec reste toujours une option sous-optimale en raison du faible taux d'adoption et de la possibilité persistante d'attaques de downgrade.

Ainsi, nous avons un bénéfice clair pour l'attaquant et un manque de sécurité. Un excellent mélange !

Que faut-il faire ?

Une Ă©tape Ă©vidente et radicale consiste Ă  revoir votre politique de routage actuelle. Divisez votre espace d'adresses en morceaux les plus petits possibles (sans chevauchements) que vous souhaitez annoncer. Signez une ROA uniquement pour eux, sans utiliser le paramĂštre maxLength. Dans ce cas, le POV actuel peut vous protĂ©ger contre une telle attaque. Cependant, encore une fois, cette approche peut ne pas ĂȘtre raisonnable pour certains opĂ©rateurs en raison de l'utilisation exceptionnelle de routes plus spĂ©cifiques. Tous les problĂšmes de l'Ă©tat actuel des ROA et des objets de route seront dĂ©crits dans l'un de nos futurs documents.

En outre, il est possible d'essayer de surveiller de telles interfĂ©rences. Pour cela, nous avons besoin d'informations fiables sur vos prĂ©fixes. Ainsi, si vous Ă©tablissez une session BGP avec notre collecteur et nous transmettez des informations sur votre visibilitĂ© Internet, nous pouvons identifier l'Ă©tendue de la propagation et dĂ©tecter d'autres incidents. Pour ceux qui ne sont pas encore connectĂ©s Ă  notre systĂšme de surveillance, une liste de routes avec vos prĂ©fixes sera suffisante au dĂ©part. Si vous avez dĂ©jĂ  une session en place avec nous, veuillez vĂ©rifier que tous vos routes ont Ă©tĂ© envoyĂ©es. Malheureusement, cela mĂ©rite d'ĂȘtre rappelĂ©, car certains opĂ©rateurs oublient un ou deux prĂ©fixes, ce qui perturbe nos mĂ©thodes de recherche. Si tout est bien fait, nous disposerons de donnĂ©es fiables sur vos prĂ©fixes, ce qui permettra Ă  l'avenir de dĂ©tecter automatiquement ce type (et d'autres) d'interfĂ©rences de trafic pour votre espace d'adresses.

Si vous apprenez en temps rĂ©el qu'une telle interfĂ©rence de votre trafic a eu lieu, vous pouvez essayer de rĂ©agir par vous-mĂȘme. La premiĂšre approche consiste Ă  annoncer les routes avec ces prĂ©fixes plus spĂ©cifiques vous-mĂȘme. En cas de nouvelle attaque contre ces prĂ©fixes, rĂ©pĂ©tez le processus.

La deuxiĂšme approche consiste Ă  punir l'agresseur et ceux pour qui il est un point critique (pour les bonnes routes) en coupant l'accĂšs Ă  vos routes vers l'agresseur. Cela peut ĂȘtre rĂ©alisĂ© en ajoutant l'ASN de l'agresseur dans le AS_PATH de vos anciennes routes et, ainsi, les forcer Ă  Ă©viter cet AS, en utilisant le mĂ©canisme de dĂ©tection de boucles intĂ©grĂ© dans BGP. pour votre propre bien.

Source : habr.com

Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS đŸ”„ Acheter un hĂ©bergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster