Všetko je veľmi zlé alebo nový typ dopravných záchytov

13. marca pracovnej skupine RIPE proti zneužívaniu bola prijatá ponuka považovať BGP hijacking (hjjack) za porušenie pravidiel RIPE. Ak by bol návrh prijatý, poskytovateľ internetu napadnutý odpočúvaním premávky by mal možnosť zaslať špeciálnu požiadavku na odhalenie útočníka. Ak kontrolný tím zozbieral dostatočné podporné dôkazy, LIR, ktorý bol zdrojom zachytenia BGP, by sa považoval za narušiteľa a mohol by byť zbavený svojho statusu LIR. Boli aj nejaké hádky proti tomuto zmeny.

V tejto publikácii chceme ukázať príklad útoku, pri ktorom išlo nielen o skutočného útočníka, ale aj o celý zoznam postihnutých prefixov. Navyše takýto útok opäť vyvoláva otázky o motívoch budúcich odpočúvaní tohto druhu dopravy.

Za posledných pár rokov sa v tlači ako odpočúvania BGP zaoberali iba konflikty ako MOAS (Multiple Origin Autonomous System). MOAS je špeciálny prípad, keď dva rôzne autonómne systémy propagujú konfliktné prefixy so zodpovedajúcimi ASN v AS_PATH (prvé ASN v AS_PATH, ďalej označované ako pôvodná ASN). Môžeme však menovať aspoň 3 ďalšie typy odpočúvanie premávky, čo umožňuje útočníkovi manipulovať s atribútom AS_PATH na rôzne účely, vrátane obchádzania moderných prístupov k filtrovaniu a monitorovaniu. Známy typ útoku Pilosová-Kapely - posledný typ takéhoto odpočúvania, ktorý však vôbec nie je dôležitý. Je dosť možné, že presne tento druh útoku sme videli v posledných týždňoch. Takáto udalosť má pochopiteľnú povahu a dosť vážne následky.

Tí, ktorí hľadajú verziu TL;DR, môžu prejsť na podtitul „Perfect Attack“.

Pozadie siete

(aby vám pomohol lepšie pochopiť procesy súvisiace s týmto incidentom)

Ak chcete poslať paket a v smerovacej tabuľke obsahujúcej cieľovú IP adresu máte viacero prefixov, potom použijete cestu pre prefix s najdlhšou dĺžkou. Ak je v smerovacej tabuľke niekoľko rôznych ciest pre rovnaký prefix, vyberiete si tú najlepšiu (podľa mechanizmu výberu najlepšej cesty).

Existujúce prístupy filtrovania a monitorovania sa pokúšajú analyzovať trasy a robiť rozhodnutia analýzou atribútu AS_PATH. Router môže počas reklamy zmeniť tento atribút na ľubovoľnú hodnotu. Jednoduché pridanie ASN vlastníka na začiatok AS_PATH (ako pôvodného ASN) môže stačiť na obídenie súčasných mechanizmov kontroly pôvodu. Okrem toho, ak existuje cesta z napadnutého ASN k vám, bude možné extrahovať a použiť AS_PATH tejto cesty vo vašich ďalších reklamách. Akákoľvek overovacia kontrola vašich vytvorených oznámení iba pre AS_PATH nakoniec prejde.

Stále je tu niekoľko obmedzení, ktoré stojí za zmienku. Po prvé, v prípade filtrovania prefixov poskytovateľom upstream môže byť vaša trasa stále filtrovaná (dokonca aj so správnou AS_PATH), ak prefix nepatrí do vášho klientskeho kužeľa nakonfigurovaného na upstreame. Po druhé, platná cesta AS_PATH sa môže stať neplatnou, ak je vytvorená trasa inzerovaná v nesprávnych smeroch, a teda porušuje pravidlá smerovania. A napokon, každá trasa s predponou, ktorá porušuje dĺžku ROA, môže byť považovaná za neplatnú.

Incident

Pred niekoľkými týždňami sme dostali sťažnosť od jedného z našich používateľov. Videli sme trasy s jeho pôvodnou ASN a /25 predponami, pričom používateľ tvrdil, že ich neinzeroval.

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||

Príklady oznámení na začiatok apríla 2019

NTT v ceste pre predponu /25 to robí obzvlášť podozrivým. Spoločnosť LG NTT o tejto trase v čase incidentu nevedela. Takže áno, nejaký operátor vytvorí pre tieto predpony celú AS_PATH! Kontrola na iných smerovačoch odhalí jedno konkrétne ASN: AS263444. Po pohľade na iné trasy s týmto autonómnym systémom sme narazili na nasledujúcu situáciu:

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||

Skúste hádať, čo sa tu deje

Zdá sa, že niekto vzal predponu z trasy, rozdelil ju na dve časti a inzeroval trasu s rovnakou AS_PATH pre tieto dve predpony.

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||

Príklad trás pre jeden z rozdelených párov prefixov

Vyvstáva niekoľko otázok naraz. Skúšal niekto skutočne tento typ odpočúvania v praxi? Išiel niekto týmito cestami? Aké predpony boli ovplyvnené?

Tu sa začína naša séria zlyhaní a ďalšie kolo sklamania zo súčasného stavu zdravia internetu.

Cesta neúspechu

Najprv veci. Ako môžeme určiť, ktoré smerovače akceptovali takéto zachytené trasy a ktorých prevádzka by mohla byť dnes presmerovaná? Mysleli sme si, že začneme s predponami /25, pretože „jednoducho nemôžu mať globálnu distribúciu“. Ako tušíte, veľmi sme sa mýlili. Ukázalo sa, že táto metrika je príliš hlučná a trasy s takýmito predponami sa môžu objaviť aj od operátorov úrovne 1. Napríklad NTT má asi 50 takýchto prefixov, ktoré distribuuje vlastným klientom. Na druhej strane je táto metrika zlá, pretože takéto predpony je možné odfiltrovať, ak ich operátor používa filtrovanie malých predpôn, vo všetkých smeroch. Preto táto metóda nie je vhodná na vyhľadávanie všetkých operátorov, ktorých prevádzka bola v dôsledku takéhoto incidentu presmerovaná.

Ďalší dobrý nápad, ktorý sme si mysleli, bolo pozrieť sa POV. Najmä pre trasy, ktoré porušujú pravidlo maxLength zodpovedajúcej ROA. Týmto spôsobom by sme mohli nájsť počet rôznych pôvodných ASN so stavom Neplatné, ktoré boli viditeľné pre daný AS. Je tu však „malý“ problém. Priemer (medián a modus) tohto čísla (počet rôznych pôvodných ASN) je asi 150 a aj keď odfiltrujeme malé predpony, zostane nad 70. Tento stav má veľmi jednoduché vysvetlenie: existujú len len málo operátorov, ktorí už používajú filtre ROA s politikou „resetovať neplatné trasy“ na vstupných bodoch, takže kdekoľvek sa v reálnom svete objaví trasa s porušením ROA, môže sa šíriť všetkými smermi.

Posledné dva prístupy nám umožňujú nájsť operátorov, ktorí videli náš incident (keďže bol dosť veľký), ale vo všeobecnosti nie sú použiteľné. Dobre, ale môžeme nájsť votrelca? Aké sú všeobecné vlastnosti tejto manipulácie AS_PATH? Existuje niekoľko základných predpokladov:

  • Predponu nebolo predtým nikde vidieť;
  • Pôvodné ASN (pripomenutie: prvé ASN v AS_PATH) je platné;
  • Posledné ASN v AS_PATH je ASN útočníka (v prípade, že jeho sused kontroluje susedove ASN na všetkých prichádzajúcich trasách);
  • Útok pochádza od jedného poskytovateľa.

Ak sú všetky predpoklady správne, potom všetky nesprávne cesty budú prezentovať útočníkovo ASN (okrem pôvodného ASN), a teda ide o „kritický“ bod. Medzi skutočnými únoscami bol AS263444, aj keď boli aj iní. Dokonca aj vtedy, keď sme nehodové trasy vyradili z úvahy. prečo? Kritický bod môže zostať kritickým aj pre správne trasy. Môže to byť buď výsledkom slabej konektivity v regióne alebo obmedzení našej vlastnej viditeľnosti.

Výsledkom je, že existuje spôsob, ako odhaliť útočníka, ale iba vtedy, ak sú splnené všetky vyššie uvedené podmienky a len vtedy, keď je odpočúvanie dostatočne veľké na to, aby prekročilo monitorovacie prahy. Ak niektoré z týchto faktorov nie sú splnené, môžeme identifikovať predpony, ktoré trpeli takýmto zachytením? Pre určitých operátorov - áno.

Keď útočník vytvorí špecifickejšiu trasu, skutočný vlastník takúto predponu neinzeruje. Ak z neho máte dynamický zoznam všetkých jeho prefixov, potom je možné vykonať porovnanie a nájsť skreslené konkrétnejšie trasy. Tento zoznam prefixov zhromažďujeme pomocou našich relácií BGP, pretože máme k dispozícii nielen úplný zoznam trás, ktoré operátor práve vidí, ale aj zoznam všetkých prefixov, ktoré chce propagovať svetu. Žiaľ, v súčasnosti existuje niekoľko desiatok používateľov Radaru, ktorí poslednú časť nedokončia správne. Čoskoro ich upozorníme a pokúsime sa tento problém vyriešiť. Všetci ostatní sa môžu pripojiť k nášmu monitorovaciemu systému práve teraz.

Ak sa vrátime k pôvodnému incidentu, našli sme útočníka aj distribučnú oblasť hľadaním kritických bodov. Prekvapivo, AS263444 neposlal vymyslené trasy všetkým svojim klientom. Aj keď je tu ešte zvláštnejšia chvíľa.

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||

Nedávny príklad pokusu zachytiť náš adresný priestor

Keď boli pre naše predpony vytvorené konkrétnejšie, použila sa špeciálne vytvorená AS_PATH. Túto AS_PATH však nebolo možné prevziať zo žiadnej z našich predchádzajúcich trás. Nemáme ani komunikáciu s AS6762. Pri pohľade na ostatné cesty v incidente niektoré z nich mali skutočnú AS_PATH, ktorá sa predtým používala, zatiaľ čo iné nie, aj keď to vyzerá ako skutočná cesta. Zmena AS_PATH dodatočne nedáva žiadny praktický zmysel, pretože prevádzka bude aj tak presmerovaná na útočníka, ale cesty so „zlou“ AS_PATH môžu byť filtrované pomocou ASPA alebo iného kontrolného mechanizmu. Tu premýšľame o motivácii únoscu. V súčasnosti nemáme dostatok informácií, aby sme potvrdili, že tento incident bol plánovaný útok. Napriek tomu je to možné. Skúsme si predstaviť, aj keď stále hypotetickú, ale potenciálne celkom reálnu situáciu.

Perfektný útok

čo máme? Povedzme, že ste poskytovateľom tranzitných vysielacích trás pre svojich klientov. Ak majú vaši klienti viacnásobnú prítomnosť (multihome), budete dostávať iba časť ich návštevnosti. Ale čím väčšia návštevnosť, tým väčší príjem. Ak teda začnete inzerovať predpony podsiete tých istých trás s rovnakou AS_PATH, budete dostávať zvyšok ich prevádzky. V dôsledku toho zvyšok peňazí.

Pomôže tu ROA? Možno áno, ak sa ho rozhodnete úplne prestať používať maximálna dĺžka. Okrem toho je veľmi nežiaduce mať záznamy ROA s pretínajúcimi sa predponami. Pre niektorých operátorov sú takéto obmedzenia neprijateľné.

Vzhľadom na iné bezpečnostné mechanizmy smerovania ani v tomto prípade ASPA nepomôže (pretože používa AS_PATH z platnej cesty). BGPSec stále nie je optimálnou možnosťou kvôli nízkej miere prijatia a zostávajúcej možnosti útokov na nižšiu verziu.

Máme teda jasný zisk pre útočníka a nedostatok bezpečnosti. Skvelý mix!

Čo mám robiť?

Zrejmým a najdrastickejším krokom je preskúmať vašu aktuálnu politiku smerovania. Rozdeľte svoj adresný priestor na najmenšie časti (bez prekrývania), ktoré chcete inzerovať. Podpíšte ROA iba pre nich, bez použitia parametra maxLength. V tomto prípade vás pred takýmto útokom môže zachrániť vaše aktuálne POV. Pre niektorých operátorov však tento prístup opäť nie je primeraný z dôvodu výhradného využívania špecifickejších trás. Všetky problémy so súčasným stavom ROA a objektmi trasy budú popísané v jednom z našich budúcich materiálov.

Okrem toho sa môžete pokúsiť sledovať takéto odpočúvania. Na to potrebujeme spoľahlivé informácie o vašich predponách. Ak teda vytvoríte reláciu BGP s naším zberateľom a poskytnete nám informácie o vašej viditeľnosti na internete, môžeme nájsť priestor pre ďalšie incidenty. Pre tých, ktorí ešte nie sú pripojení k nášmu monitorovaciemu systému, bude na začiatok stačiť zoznam trás len s vašimi prefixmi. Ak máte s nami stretnutie, skontrolujte, či boli odoslané všetky vaše trasy. Žiaľ, stojí za to si to zapamätať, pretože niektoré operátory zabúdajú na predponu alebo dve, a tak zasahujú do našich metód vyhľadávania. Ak to urobíte správne, budeme mať spoľahlivé údaje o vašich predvoľbách, ktoré nám v budúcnosti pomôžu automaticky identifikovať a odhaliť tento (a iné) typy zachytenia prevádzky pre váš adresný priestor.

Ak sa o takomto zachytení vašej premávky dozviete v reálnom čase, môžete sa mu pokúsiť čeliť sami. Prvým prístupom je inzerovať trasy s týmito špecifickejšími predponami sami. V prípade nového útoku na tieto predpony zopakujte.

Druhým prístupom je potrestať útočníka a tých, pre ktorých je kritickým bodom (pre dobré trasy), odrezaním prístupu z vašich ciest k útočníkovi. Dá sa to dosiahnuť pridaním ASN útočníka do AS_PATH vašich starých trás a tým ich prinútite vyhnúť sa tomuto AS pomocou vstavaného mechanizmu detekcie slučky v BGP. pre tvoje dobro.

Zdroj: hab.com

Pridať komentár