Alles is baie sleg of 'n nuwe soort verkeersonderskepping

13 Maart aan die RIPE werkgroep teen misbruik 'n aanbod is ontvang beskou BGP-kaping (hjjack) as 'n oortreding van RIPE-beleid. Indien die voorstel aanvaar word, sal die internetverskaffer wat deur verkeersonderskepping aangeval word die geleentheid kry om 'n spesiale versoek te stuur om die aanvaller aan die kaak te stel. As die hersieningspan voldoende stawende bewyse ingesamel het, sal die LIR wat die bron van die BGP-onderskepping was, as 'n indringer beskou word en kan dit van sy LIR-status gestroop word. Daar was ook 'n paar argumente hierteen veranderinge.

In hierdie publikasie wil ons 'n voorbeeld wys van 'n aanval waar nie net die werklike aanvaller ter sprake was nie, maar ook die hele lys geaffekteerde voorvoegsels. Boonop laat so 'n aanval weer vrae ontstaan ​​oor die motiewe vir toekomstige onderskeppings van hierdie soort verkeer.

Oor die afgelope paar jaar is slegs konflikte soos MOAS (Multiple Origin Autonomous System) in die pers gedek as BGP-onderskeppings. MOAS is 'n spesiale geval waar twee verskillende outonome stelsels botsende voorvoegsels adverteer met ooreenstemmende ASN'e in AS_PATH (die eerste ASN in AS_PATH, hierna verwys as oorsprong ASN). Ons kan egter ten minste noem 3 bykomende tipes verkeersonderskepping, wat 'n aanvaller toelaat om die AS_PATH-kenmerk vir verskeie doeleindes te manipuleer, insluitend om moderne benaderings tot filtering en monitering te omseil. Bekende tipe aanval Pilosova-Kapely - die laaste tipe van sodanige onderskepping, maar glad nie in belangrikheid nie. Dit is heel moontlik dat dit presies die soort aanval is wat ons die afgelope weke gesien het. So 'n gebeurtenis het 'n verstaanbare aard en redelik ernstige gevolge.

Diegene wat op soek is na die TL;DR-weergawe kan na die "Perfect Attack"-onderskrif blaai.

Netwerk agtergrond

(om jou te help om die prosesse betrokke by hierdie voorval beter te verstaan)

As jy 'n pakkie wil stuur en jy het verskeie voorvoegsels in die roeteringtabel wat die bestemming IP-adres bevat, dan sal jy die roete gebruik vir die voorvoegsel met die langste lengte. As daar verskeie verskillende roetes vir dieselfde voorvoegsel in die roeteringtabel is, sal jy die beste een kies (volgens die beste padkeusemeganisme).

Bestaande filter- en moniteringsbenaderings poog om roetes te ontleed en besluite te neem deur die AS_PATH-kenmerk te ontleed. Die roeteerder kan hierdie kenmerk verander na enige waarde tydens advertensie. Om bloot die eienaar se ASN aan die begin van AS_PATH (as die oorsprong-ASN) by te voeg, kan genoeg wees om huidige oorsprongkontrolemeganismes te omseil. Verder, as daar 'n roete van die aangeval ASN na jou toe is, word dit moontlik om die AS_PATH van hierdie roete in jou ander advertensies te onttrek en te gebruik. Enige AS_PATH-alleen-bekragtigingstjek vir jou vervaardigde aankondigings sal uiteindelik slaag.

Daar is nog 'n paar beperkings wat die moeite werd is om te noem. Eerstens, in die geval van voorvoegselfiltrering deur die stroomop-verskaffer, kan jou roete steeds gefiltreer word (selfs met die korrekte AS_PATH) as die voorvoegsel nie aan jou kliëntkegel behoort wat by die stroomop gekonfigureer is nie. Tweedens kan 'n geldige AS_PATH ongeldig word as die geskepte roete in verkeerde rigtings geadverteer word en dus die roetebeleid oortree. Laastens, enige roete met 'n voorvoegsel wat die ROA-lengte oortree, kan as ongeldig beskou word.

voorval

'n Paar weke gelede het ons 'n klagte van een van ons gebruikers ontvang. Ons het roetes gesien met sy oorsprong ASN en /25 voorvoegsels, terwyl die gebruiker beweer het dat hy dit nie geadverteer het nie.

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

Voorbeelde van aankondigings vir die begin van April 2019

NTT in die pad vir die /25-voorvoegsel maak dit veral verdag. LG NTT was onbewus van hierdie roete ten tyde van die voorval. So ja, een of ander operateur skep 'n hele AS_PATH vir hierdie voorvoegsels! As u ander routers nagaan, word een spesifieke ASN onthul: AS263444. Nadat ons na ander roetes met hierdie outonome stelsel gekyk het, het ons die volgende situasie teëgekom:

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

Probeer raai wat hier fout is

Dit blyk dat iemand die voorvoegsel van die roete geneem het, dit in twee dele verdeel het en die roete met dieselfde AS_PATH vir daardie twee voorvoegsels geadverteer het.

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

Voorbeeldroetes vir een van die gesplete voorvoegselpare

Verskeie vrae ontstaan ​​gelyktydig. Het iemand werklik hierdie tipe onderskepping in die praktyk probeer? Het iemand al hierdie roetes geneem? Watter voorvoegsels is geraak?

Dit is waar ons reeks mislukkings begin en nog 'n rondte van teleurstelling met die huidige toestand van die internet se gesondheid.

Die pad van mislukking

Eerste dinge eerste. Hoe kan ons bepaal watter routers sulke onderskepte roetes aanvaar het en wie se verkeer vandag herlei kan word? Ons het gedink ons ​​sal begin met /25 voorvoegsels omdat hulle "eenvoudig nie globale verspreiding kan hê nie." Soos jy kan raai, was ons baie verkeerd. Hierdie maatstaf blyk te raserig te wees en roetes met sulke voorvoegsels kan selfs van vlak-1-operateurs verskyn. NTT het byvoorbeeld ongeveer 50 sulke voorvoegsels, wat dit aan sy eie kliënte versprei. Aan die ander kant is hierdie maatstaf sleg omdat sulke voorvoegsels uitgefiltreer kan word as die operateur dit gebruik klein voorvoegsels te filter, in alle rigtings. Daarom is hierdie metode nie geskik om alle operateurs te vind wie se verkeer herlei is as gevolg van so 'n voorval nie.

Nog 'n goeie idee wat ons gedink het, was om na te kyk POV. Veral vir roetes wat die maxLength-reël van die ooreenstemmende ROA oortree. Op hierdie manier kon ons die aantal verskillende oorsprong-ASN'e met status Ongeldig vind wat vir 'n gegewe AS sigbaar was. Daar is egter 'n "klein" probleem. Die gemiddelde (mediaan en modus) van hierdie getal (die aantal verskillende oorsprong-ASN'e) is ongeveer 150 en, selfs al filtreer ons klein voorvoegsels uit, bly dit bo 70. Hierdie toedrag van sake het 'n baie eenvoudige verduideliking: daar is slegs 'n min operateurs wat reeds ROA-filters gebruik met 'n "herstel Ongeldige roetes"-beleid by toegangspunte, sodat waar 'n roete met 'n ROA-oortreding ook al in die regte wêreld verskyn, dit in alle rigtings kan voortplant.

Die laaste twee benaderings stel ons in staat om operateurs te vind wat ons voorval gesien het (aangesien dit redelik groot was), maar oor die algemeen is dit nie van toepassing nie. Goed, maar kan ons die indringer vind? Wat is die algemene kenmerke van hierdie AS_PATH-manipulasie? Daar is 'n paar basiese aannames:

  • Die voorvoegsel was nêrens voorheen gesien nie;
  • Oorsprong ASN (herinnering: eerste ASN in AS_PATH) is geldig;
  • Die laaste ASN in AS_PATH is die aanvaller se ASN (indien sy buurman die buurman se ASN op alle inkomende roetes nagaan);
  • Die aanval kom van 'n enkele verskaffer af.

As alle aannames korrek is, sal alle verkeerde roetes die aanvaller se ASN aanbied (behalwe die oorsprong-ASN) en dus is dit 'n "kritieke" punt. Onder die ware kapers was AS263444, hoewel daar ander was. Selfs toe ons die voorvalroetes uit oorweging weggegooi het. Hoekom? 'n Kritieke punt kan selfs vir korrekte roetes krities bly. Dit kan óf die gevolg wees van swak konnektiwiteit in 'n streek óf beperkings in ons eie sigbaarheid.

As gevolg hiervan is daar 'n manier om 'n aanvaller op te spoor, maar slegs as aan al die bogenoemde voorwaardes voldoen word en slegs wanneer die onderskepping groot genoeg is om die moniteringsdrempels te slaag. As daar nie aan sommige van hierdie faktore voldoen word nie, kan ons dan die voorvoegsels identifiseer wat onder sulke onderskepping gely het? Vir sekere operateurs - ja.

Wanneer 'n aanvaller 'n meer spesifieke roete skep, word so 'n voorvoegsel nie deur die ware eienaar geadverteer nie. As jy 'n dinamiese lys van al sy voorvoegsels daaruit het, word dit moontlik om 'n vergelyking te tref en verwronge meer spesifieke roetes te vind. Ons versamel hierdie lys voorvoegsels deur ons BGP-sessies te gebruik, want ons kry nie net die volledige lys van roetes wat tans vir die operateur sigbaar is nie, maar ook 'n lys van al die voorvoegsels wat hy aan die wêreld wil adverteer. Ongelukkig is daar nou 'n paar dosyn Radar-gebruikers wat nie die laaste deel korrek voltooi nie. Ons sal hulle binnekort in kennis stel en probeer om hierdie probleem op te los. Almal anders kan nou by ons moniteringstelsel aansluit.

As ons terugkeer na die oorspronklike voorval, is beide die aanvaller en die verspreidingsgebied deur ons opgespoor deur na kritieke punte te soek. Verbasend genoeg het AS263444 nie vervaardigde roetes na al sy kliënte gestuur nie. Alhoewel daar 'n vreemde oomblik is.

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

'n Onlangse voorbeeld van 'n poging om ons adresruimte te onderskep

Toe meer spesifiekes vir ons voorvoegsels geskep is, is 'n spesiaal geskepte AS_PATH gebruik. Hierdie AS_PATH kon egter nie van enige van ons vorige roetes geneem word nie. Ons het nie eers kommunikasie met AS6762 nie. As ons na die ander roetes in die voorval kyk, het sommige van hulle 'n regte AS_PATH gehad wat voorheen gebruik is, terwyl ander nie het nie, al lyk dit soos die regte een. Om AS_PATH bykomend te verander, maak nie praktiese sin nie, aangesien die verkeer in elk geval na die aanvaller herlei sal word, maar roetes met 'n "slegte" AS_PATH kan deur ASPA of enige ander inspeksiemeganisme gefiltreer word. Hier dink ons ​​oor die motivering van die kaper. Ons het tans nie genoeg inligting om te bevestig dat hierdie voorval 'n beplande aanval was nie. Nietemin, dit is moontlik. Kom ons probeer ons 'n situasie voorstel, hoewel dit steeds hipoteties is, maar moontlik redelik werklik.

Perfekte aanval

Wat het ons? Kom ons sê jy is 'n publieke vervoerverskaffer wat roetes vir jou kliënte uitsaai. As u kliënte veelvuldige teenwoordigheid (multihome) het, sal u slegs 'n deel van hul verkeer ontvang. Maar hoe meer verkeer, hoe meer inkomste. As jy dus subnet-voorvoegsels van dieselfde roetes met dieselfde AS_PATH begin adverteer, sal jy die res van hul verkeer ontvang. As gevolg hiervan, die res van die geld.

Sal ROA hier help? Miskien ja, as jy besluit om heeltemal op te hou om dit te gebruik maxLengte. Daarbenewens is dit hoogs ongewens om ROA-rekords te hê met kruisende voorvoegsels. Vir sommige operateurs is sulke beperkings onaanvaarbaar.

As ander roeteveiligheidsmeganismes in ag geneem word, sal ASPA ook nie in hierdie geval help nie (omdat dit AS_PATH vanaf 'n geldige roete gebruik). BGPSec is steeds nie 'n optimale opsie nie as gevolg van lae aanvaardingsyfers en die oorblywende moontlikheid van afgraderingaanvalle.

Ons het dus 'n duidelike wins vir die aanvaller en 'n gebrek aan sekuriteit. Puik mengsel!

Wat moet ek doen?

Die ooglopende en mees drastiese stap is om jou huidige roetebeleid te hersien. Breek jou adresspasie in die kleinste stukke (geen oorvleuelings) wat jy wil adverteer. Teken ROA slegs vir hulle, sonder om die maxLength-parameter te gebruik. In hierdie geval kan jou huidige POV jou van so 'n aanval red. Weereens, vir sommige operateurs is hierdie benadering egter nie redelik nie as gevolg van die eksklusiewe gebruik van meer spesifieke roetes. Alle probleme met die huidige toestand van ROA en roete-voorwerpe sal in een van ons toekomstige materiaal beskryf word.

Daarbenewens kan jy probeer om sulke onderskeppings te monitor. Om dit te doen, benodig ons betroubare inligting oor jou voorvoegsels. Dus, as jy 'n BGP-sessie met ons versamelaar vestig en ons van inligting oor jou internetsigbaarheid voorsien, kan ons die omvang vir ander voorvalle vind. Vir diegene wat nog nie aan ons moniteringstelsel gekoppel is nie, om mee te begin, sal 'n lys roetes net met jou voorvoegsels genoeg wees. As jy 'n sessie by ons het, maak asseblief seker dat al jou roetes gestuur is. Ongelukkig is dit die moeite werd om dit te onthou omdat sommige operateurs 'n voorvoegsel of twee vergeet en sodoende met ons soekmetodes inmeng. As dit korrek gedoen word, sal ons betroubare data oor jou voorvoegsels hê, wat ons in die toekoms sal help om outomaties hierdie (en ander) tipe verkeersonderskepping vir jou adresruimte te identifiseer en op te spoor.

As jy bewus word van so 'n onderskepping van jou verkeer in reële tyd, kan jy self probeer om dit teë te werk. Die eerste benadering is om self roetes met hierdie meer spesifieke voorvoegsels te adverteer. In die geval van 'n nuwe aanval op hierdie voorvoegsels, herhaal.

Die tweede benadering is om die aanvaller en diegene vir wie hy 'n kritieke punt is (vir goeie roetes) te straf deur die toegang van jou roetes na die aanvaller af te sny. Dit kan gedoen word deur die aanvaller se ASN by die AS_PATH van jou ou roetes te voeg en hulle dus te dwing om daardie AS te vermy deur die ingeboude lusdetectiemeganisme in BGP te gebruik vir jou eie beswil.

Bron: will.com

Voeg 'n opmerking