Kõik on väga halvasti või uut tüüpi liikluse pealtkuulamine

13. märtsil RIPE kuritarvitamise vastasele töörühmale pakkumine on saadud pidada BGP kaaperdamist (hjjack) RIPE poliitika rikkumiseks. Kui ettepanek vastu võetaks, oleks liikluse pealtkuulamisega rünnatud Interneti-teenuse pakkujal võimalus saata eritaotlus ründaja paljastamiseks. Kui ülevaatusmeeskond kogub piisavalt tõendeid, loetakse BGP pealtkuulamise allikaks olnud LIR-i sissetungijaks ja temalt võidakse võtta LIR-staatus. Oli ka mõningaid argumente selle vastu muudatusi.

Selles väljaandes tahame näidata näidet rünnakust, kus kõne all ei olnud mitte ainult tegelik ründaja, vaid ka kogu mõjutatud eesliidete loend. Pealegi tekitab selline rünnak taas küsimusi seda tüüpi liikluse tulevaste pealtkuulamise motiivide kohta.

Viimase paari aasta jooksul on ajakirjanduses BGP pealtkuulamisena käsitletud ainult selliseid konflikte nagu MOAS (mitme päritolu autonoomne süsteem). MOAS on erijuhtum, kus kaks erinevat autonoomset süsteemi reklaamivad vastuolulisi eesliiteid vastavate ASN-idega asukohas AS_PATH (esimene ASN asukohas AS_PATH, edaspidi lähte-ASN). Siiski võime vähemalt nimetada 3 lisatüüpi liikluse pealtkuulamine, mis võimaldab ründajal manipuleerida atribuudiga AS_PATH erinevatel eesmärkidel, sealhulgas mööda hiilida kaasaegsetest filtreerimis- ja jälgimisviisidest. Tuntud rünnaku tüüp Pilosova-Kapely - viimane selline pealtkuulamise tüüp, kuid üldse mitte tähtsusega. On täiesti võimalik, et just sellist rünnakut oleme viimastel nädalatel näinud. Sellisel sündmusel on arusaadav iseloom ja üsna tõsised tagajärjed.

Need, kes otsivad TL;DR versiooni, saavad kerida alapealkirjani "Perfect Attack".

Võrgu taust

(et aidata teil paremini mõista selle juhtumiga seotud protsesse)

Kui soovite saata paketti ja teil on sihtkoha IP-aadressi sisaldavas marsruutimistabelis mitu eesliidet, siis kasutate marsruuti pikima eesliite jaoks. Kui marsruutimistabelis on sama eesliite jaoks mitu erinevat marsruuti, valite neist parima (vastavalt parima tee valiku mehhanismile).

Olemasolevad filtreerimis- ja jälgimismeetodid püüavad analüüsida marsruute ja teha otsuseid, analüüsides atribuuti AS_PATH. Ruuter võib reklaami ajal muuta selle atribuudi mis tahes väärtuseks. Lihtsalt omaniku ASN-i lisamisest AS_PATH algusesse (kui lähte-ASN-i) võib piisata, et praegusest päritolu kontrollimise mehhanismidest mööda minna. Veelgi enam, kui rünnatud ASN-ist teieni on marsruut, on võimalik selle marsruudi AS_PATH välja võtta ja kasutada teie teistes reklaamides. Kõik teie koostatud teadaannete AS_PATH-valideerimiskontrollid läbivad lõpuks.

Mainimist väärivad veel mõned piirangud. Esiteks võidakse ülesvoolu teenusepakkuja eesliidete filtreerimise korral teie marsruuti siiski filtreerida (isegi õige AS_PATH-ga), kui eesliide ei kuulu teie ülesvoolu konfigureeritud kliendikoonusse. Teiseks võib kehtiv AS_PATH muutuda kehtetuks, kui loodud marsruuti reklaamitakse valedes suundades ja see rikub seega marsruutimiseeskirju. Lõpuks võib iga marsruuti, mille eesliide rikub ROA pikkust, lugeda kehtetuks.

Juhtum

Mõni nädal tagasi saime ühelt meie kasutajalt kaebuse. Nägime marsruute tema päritolu ASN-i ja /25 eesliidetega, samas kui kasutaja väitis, et ta ei reklaaminud neid.

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

Näited 2019. aasta aprilli alguse teadaannetest

NTT eesliite /25 teele muudab selle eriti kahtlaseks. LG NTT ei teadnud juhtunu ajal sellest marsruudist. Nii et jah, mõni operaator loob nende eesliidete jaoks terve AS_PATH! Teiste ruuterite kontrollimisel ilmneb üks konkreetne ASN: AS263444. Pärast selle autonoomse süsteemiga muude marsruutide vaatamist tekkis järgmine olukord:

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

Proovige arvata, mis siin valesti on

Näib, et keegi võttis marsruudilt eesliite, jagas selle kaheks osaks ja reklaamis marsruuti nende kahe eesliitega sama AS_PATH-ga.

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

Näidismarsruudid ühe jagatud eesliidete paari jaoks

Tekib mitu küsimust korraga. Kas keegi on seda tüüpi pealtkuulamist praktikas proovinud? Kas keegi on nendel marsruutidel käinud? Milliseid eesliiteid see mõjutas?

Siit algab meie ebaõnnestumiste jada ja järjekordne pettumus Interneti praeguses seisukorras.

Ebaõnnestumise tee

Esimesed asjad kõigepealt. Kuidas saame kindlaks teha, millised ruuterid aktsepteerisid selliseid pealtkuulatud marsruute ja kelle liiklust võiks täna ümber suunata? Arvasime, et alustame /25 eesliitega, sest neil "lihtsalt ei saa olla globaalset levikut". Nagu arvata võis, eksisime väga. See mõõdik osutus liiga lärmakaks ja selliste eesliidetega marsruute võib ilmuda isegi Tier-1 operaatoritelt. Näiteks NTT-l on umbes 50 sellist eesliidet, mida ta jagab oma klientidele. Teisest küljest on see mõõdik halb, sest operaatori kasutamisel saab selliseid eesliiteid välja filtreerida väikeste eesliidete filtreerimine, igas suunas. Seetõttu ei sobi see meetod kõigi operaatorite leidmiseks, kelle liiklus sellise juhtumi tõttu ümber suunati.

Veel üks hea idee, mida mõtlesime, oli vaadata POV. Eriti marsruutide puhul, mis rikuvad vastava ROA maxLength reeglit. Nii saime leida erineva päritoluga ASN-ide arvu olekuga Invalid, mis olid antud AS-ile nähtavad. Siiski on "väike" probleem. Selle arvu (erineva päritoluga ASN-ide arv) keskmine (mediaan ja moodus) on umbes 150 ja isegi kui väikesed prefiksid välja filtreerida, jääb see üle 70. Asjade sellisel olukorral on väga lihtne seletus: on ainult vähesed operaatorid, kes juba kasutavad sisenemispunktides ROA-filtreid poliitikaga "Reset Invalid routes", nii et kõikjal, kus ROA rikkumisega marsruut reaalses maailmas ilmub, saab see levida igas suunas.

Kaks viimast lähenemist võimaldavad meil leida operaatoreid, kes nägid meie intsidenti (kuna see oli üsna suur), kuid üldiselt need ei ole rakendatavad. Olgu, aga kas leiame sissetungija üles? Millised on selle AS_PATH manipuleerimise üldised omadused? On mõned põhieeldused:

  • Eesliidet polnud varem kusagil nähtud;
  • Origin ASN (meeldetuletus: esimene ASN asukohas AS_PATH) on kehtiv;
  • AS_PATH viimane ASN on ründaja ASN (juhul, kui tema naaber kontrollib naabri ASN-i kõigil sissetulevatel marsruutidel);
  • Rünnak pärineb ühelt pakkujalt.

Kui kõik eeldused on õiged, esitavad kõik valed marsruudid ründaja ASN-i (välja arvatud algne ASN) ja seega on see "kriitiline" punkt. Tõeliste kaaperdajate hulgas oli AS263444, kuigi oli ka teisi. Isegi siis, kui jätsime vahejuhtumite marsruudid arvesse võtmata. Miks? Kriitiline punkt võib jääda kriitiliseks isegi õigete marsruutide puhul. Selle põhjuseks võib olla piirkonna halb ühenduvus või meie enda nähtavuse piirangud.

Selle tulemusena on olemas viis ründaja tuvastamiseks, kuid ainult siis, kui kõik ülaltoodud tingimused on täidetud ja ainult siis, kui pealtkuulamine on piisavalt suur, et ületada jälgimislävi. Kui mõned neist teguritest ei ole täidetud, siis kas saame tuvastada eesliited, mis sellise pealtkuulamise tõttu kannatasid? Teatud operaatorite puhul – jah.

Kui ründaja loob konkreetsema marsruudi, siis tegelik omanik sellist eesliidet ei reklaami. Kui teil on selle kõigi eesliidete dünaamiline loend, on võimalik teha võrdlust ja leida moonutatud konkreetsemaid marsruute. Kogume selle eesliidete loendi oma BGP-seansside abil, sest meile ei anta mitte ainult operaatorile praegu nähtavate marsruutide täielikku loendit, vaid ka kõigi eesliidete loendit, mida ta soovib maailmale reklaamida. Kahjuks on nüüd mitukümmend Radari kasutajat, kes ei täida viimast osa õigesti. Anname neile peagi teada ja püüame selle probleemi lahendada. Kõik teised saavad praegu meie seiresüsteemiga liituda.

Kui naasta algse intsidendi juurde, tuvastasime kriitiliste punktide otsimise teel nii ründaja kui ka leviala. Üllataval kombel ei saatnud AS263444 kõigile oma klientidele väljamõeldud marsruute. Kuigi on võõras hetk.

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

Hiljutine näide meie aadressiruumi pealtkuulamise katsest

Kui meie eesliidete jaoks loodi täpsemad, kasutati spetsiaalselt loodud AS_PATH-i. Seda AS_PATH-i ei saanud aga võtta üheltki meie varasemalt marsruudilt. Meil pole isegi AS6762-ga sidet. Intsidendi teisi marsruute vaadates oli mõnel neist tõeline AS_PATH, mida varem kasutati, teistel aga mitte, isegi kui see näeb välja nagu päris. Lisaks pole AS_PATH muutmine praktiliselt mõttekas, kuna liiklus suunatakse niikuinii ründajale, kuid "halva" AS_PATH-ga marsruute saab filtreerida ASPA või muu kontrollimehhanismi abil. Siinkohal mõtleme kaaperdaja motivatsioonile. Meil ei ole praegu piisavalt teavet, et kinnitada, et see juhtum oli kavandatud rünnak. Sellest hoolimata on see võimalik. Proovime ette kujutada, kuigi veel hüpoteetilist, kuid potentsiaalselt üsna reaalset olukorda.

Täiuslik rünnak

Mis meil on? Oletame, et olete ühistransporditeenuse pakkuja, kes edastab oma klientidele marsruute. Kui teie klientidel on mitu kohalolekut (mitmekodu), saate ainult osa nende liiklusest. Kuid mida rohkem liiklust, seda suurem on teie sissetulek. Nii et kui hakkate reklaamima samade marsruutide alamvõrgu eesliiteid sama AS_PATH-ga, saate nende ülejäänud liikluse. Selle tulemusena ülejäänud raha.

Kas ROA aitab siin? Võib-olla jah, kui otsustate selle kasutamise täielikult lõpetada maxPikkus. Lisaks on väga ebasoovitav ROA-kirjete olemasolu, millel on ristuvad eesliited. Mõnede operaatorite jaoks on sellised piirangud vastuvõetamatud.

Arvestades muid marsruutimise turvamehhanisme, ei aita sel juhul ka ASPA (kuna see kasutab kehtiva marsruudi AS_PATH-i). BGPSec ei ole endiselt optimaalne valik madala kasutuselevõtu määra ja allesjäänud alandamise rünnakute võimaluse tõttu.

Seega on meil ründaja jaoks selge kasu ja turvalisuse puudumine. Suurepärane segu!

Mida ma peaksin tegema?

Ilmselge ja kõige drastilisem samm on vaadata üle oma praegune marsruutimispoliitika. Jagage oma aadressiruum väikseimateks tükkideks (ilma kattumisteta), mida soovite reklaamida. Allkirjastage ROA ainult nende jaoks, ilma parameetrit maxLength kasutamata. Sel juhul võib teie praegune POV teid sellisest rünnakust päästa. Kuid jällegi ei ole see lähenemine mõne operaatori jaoks mõistlik konkreetsemate marsruutide kasutamise tõttu. Kõiki probleeme ROA ja marsruudiobjektide hetkeseisuga kirjeldatakse ühes meie tulevastest materjalidest.

Lisaks võite proovida selliseid pealtkuulamisi jälgida. Selleks vajame usaldusväärset teavet teie eesliidete kohta. Seega, kui loote meie kogujaga BGP-seansi ja annate meile teavet oma Interneti-nähtavuse kohta, saame leida võimalusi muudeks juhtumiteks. Neile, kes pole veel meie seiresüsteemiga ühendatud, piisab alustuseks ainult teie eesliidetega marsruutide loendist. Kui teil on meiega seanss, kontrollige, kas kõik teie marsruudid on saadetud. Kahjuks tasub seda meeles pidada, sest mõned operaatorid unustavad eesliite või kaks ja segavad seega meie otsingumeetodeid. Kui teete õigesti, on meil teie eesliidete kohta usaldusväärsed andmed, mis aitavad meil tulevikus seda (ja muud) teie aadressiruumi liikluse pealtkuulamist automaatselt tuvastada ja tuvastada.

Kui märkate oma liikluse sellisest pealtkuulamisest reaalajas, võite proovida sellele ise vastu seista. Esimene võimalus on reklaamida marsruute nende täpsemate eesliidetega ise. Nende eesliidete uue rünnaku korral korrake.

Teine lähenemine on karistada ründajat ja neid, kelle jaoks ta on kriitiline punkt (heade marsruutide puhul), katkestades ründajale juurdepääsu oma marsruutidele. Seda saab teha, lisades ründaja ASN-i teie vanade marsruutide AS_PATH-i ja sundides neid seega seda AS-i vältima, kasutades BGP-s sisseehitatud silmuse tuvastamise mehhanismi. teie enda heaks.

Allikas: www.habr.com

Lisa kommentaar