Alles is hiel min of in nij soarte fan ferkear ûnderskepping

13 maart oan de RIPE wurkgroep tsjin misbrûk in oanbod is ûntfongen beskôgje BGP kaping (hjjack) as in oertreding fan RIPE belied. As it foarstel waard akseptearre, soe de ynternetprovider oanfallen troch ferkearsûnderskepping de kâns hawwe om in spesjaal fersyk te stjoeren om de oanfaller te eksposearjen. As it beoardielingsteam genôch stypjend bewiis sammele, soe de LIR dy't de boarne wie fan 'e BGP-ûnderskepping wurde beskôge as in ynbrekker en koe wurde ûntslein fan syn LIR-status. Der wiene ek wat arguminten tsjin dit feroarings.

Yn dizze publikaasje wolle wy in foarbyld sjen litte fan in oanfal dêr't net allinnich de echte oanfaller yn kwestje wie, mar ek de hiele list mei troffen foarheaksels. Boppedat ropt sa'n oanfal wer fragen op oer de motiven foar takomstige ûnderskeppingen fan dit soarte ferkear.

Yn 'e ôfrûne pear jier binne allinich konflikten lykas MOAS (Multiple Origin Autonomous System) yn' e parse behannele as BGP-ûnderskeppingen. MOAS is in spesjaal gefal wêrby't twa ferskillende autonome systemen tsjinstridige foarheaksels advertearje mei oerienkommende ASN's yn AS_PATH (de earste ASN yn AS_PATH, hjirnei oantsjutten as oarsprong ASN). Wy kinne lykwols op syn minst neame 3 ekstra soarten ferkear ûnderskepping, wêrtroch in oanfaller it attribút AS_PATH kin manipulearje foar ferskate doelen, ynklusyf it omgean fan moderne oanpak foar filterjen en tafersjoch. Bekend oanfal type Pilosova-Kapely - it lêste type fan sa'n ûnderskepping, mar hielendal net yn belang. It is goed mooglik dat dit krekt it soarte oanfal is dat wy de ôfrûne wiken hawwe sjoen. Sa'n evenemint hat in begryplike aard en frij serieuze gefolgen.

Wa't op syk is nei de TL;DR-ferzje kin rôlje nei de "Perfect Attack" ûndertitel.

Netwurk eftergrûn

(om jo te helpen de prosessen belutsen by dit ynsidint better te begripen)

As jo ​​in pakket ferstjoere wolle en jo hawwe meardere foarheaksels yn 'e rûtetabel mei it bestimmings-IP-adres, dan sille jo de rûte brûke foar it foarheaksel mei de langste lingte. As d'r ferskate ferskillende rûtes binne foar deselde foarheaksel yn 'e rûtetabel, sille jo de bêste kieze (neffens it bêste paad seleksjemeganisme).

Besteande oanpak foar filterjen en tafersjoch besykje rûtes te analysearjen en besluten te nimmen troch it AS_PATH-attribút te analysearjen. De router kin dit attribút feroarje yn elke wearde tidens advertinsje. It gewoan tafoegjen fan de ASN fan de eigner oan it begjin fan AS_PATH (as de oarsprong ASN) kin genôch wêze om meganismen foar kontrôle fan hjoeddeistige oarsprong te omgean. Boppedat, as d'r in rûte is fan 'e oanfallen ASN nei jo, wurdt it mooglik om de AS_PATH fan dizze rûte te ekstrahearjen en te brûken yn jo oare advertinsjes. Elke AS_PATH-allinich validaasjekontrôle foar jo makke oankundigingen sil úteinlik passe.

D'r binne noch in pear beheiningen dy't it neamen wurdich binne. As earste, yn gefal fan prefix-filtering troch de streamop-oanbieder, kin jo rûte noch filtere wurde (sels mei de juste AS_PATH) as it foarheaksel net heart by jo clientkegel konfigureare by de streamop. Twad, in jildige AS_PATH kin ûnjildich wurde as de oanmakke rûte wurdt advertearre yn ferkearde rjochtings en, dus, skeint it routing belied. As lêste kin elke rûte mei in foarheaksel dat yn striid is mei de ROA-lingte wurde beskôge as ûnjildich.

Foarfal

In pear wike lyn krigen wy in klacht fan ien fan ús brûkers. Wy seagen rûtes mei syn komôf ASN en /25 foarheaksels, wylst de brûker bewearde dat er net advertearje se.

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

Foarbylden fan oankundigings foar it begjin fan april 2019

NTT yn it paad foar it foarheaksel /25 makket it foaral fertocht. LG NTT wie net bewust fan dizze rûte op it momint fan it ynsidint. Dat ja, guon operator makket in folsleine AS_PATH foar dizze foarheaksels! Kontrolearje op oare routers ûntbleatet ien bepaalde ASN: AS263444. Nei it besjen fan oare rûtes mei dit autonome systeem, kamen wy de folgjende situaasje tsjin:

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

Besykje te rieden wat hjir mis is

It docht bliken dat immen it foarheaksel fan 'e rûte naam, it yn twa dielen splitst en de rûte mei deselde AS_PATH foar dy twa foarheaksels advertearre.

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

Foarbyld rûtes foar ien fan de split prefix pearen

Ferskate fragen komme tagelyk op. Hat immen eins besocht dit soarte fan ûnderskepping yn de praktyk? Hat immen nommen dizze rûtes? Hokker foarheaksels waarden beynfloede?

Dit is wêr't ús string fan mislearrings begjint en noch in ronde fan teloarstelling mei de hjoeddeistige steat fan 'e sûnens fan it ynternet.

It paad fan mislearring

Earste dingen earst. Hoe kinne wy ​​bepale hokker routers sokke ûnderskepte rûtes akseptearren en waans ferkear hjoed omlearde wurde koe? Wy tochten dat wy begjinne mei /25 foarheaksels om't se "gewoan gjin globale distribúsje kinne hawwe." Sa't jo kinne riede, wy wiene hiel ferkeard. Dizze metrik die bliken te lawaaierich en rûtes mei sokke foarheaksels kinne sels ferskine fan Tier-1-operators. Bygelyks, NTT hat sa'n 50 sokke foarheaksels, dy't it distribearret oan har eigen kliïnten. Oan 'e oare kant is dizze metrik min, om't sokke foarheaksels kinne wurde filtere as de operator brûkt filtering lytse foarheaksels, yn alle rjochtingen. Dêrom is dizze metoade net geskikt foar it finen fan alle operators waans ferkear waard omlaat as gefolch fan sa'n ynsidint.

In oar goed idee dat wy tochten wie om te sjen POV. Benammen foar rûtes dy't yn striid binne mei de maxLength-regel fan 'e oerienkommende ROA. Dizze manier kinne wy ​​fine it oantal ferskillende oarsprong ASNs mei status Invalid dat wiene sichtber foar in opjûne AS. D'r is lykwols in "lyts" probleem. It gemiddelde (mediaan en modus) fan dit nûmer (it oantal ferskillende oarsprong ASN's) is sa'n 150 en, sels as wy lytse foarheaksels filterje, bliuwt it boppe de 70. Dizze stân fan saken hat in heul ienfâldige ferklearring: der binne mar in pear operators dy't al brûke ROA- filters mei in "weromsette ûnjildige rûtes" belied op yngong punten, sadat oeral dêr't in rûte mei in ROA oertreding ferskynt yn 'e echte wrâld, it kin propagearje yn alle rjochtingen.

De lêste twa oanpakken jouwe ús operators te finen dy't ús ynsidint seagen (sûnt it frij grut wie), mar yn 't algemien binne se net fan tapassing. Okee, mar kinne wy ​​de ynbrekker fine? Wat binne de algemiene skaaimerken fan dizze AS_PATH-manipulaasje? Der binne in pear basis oannames:

  • It foarheaksel wie noch nearne earder te sjen;
  • Oarsprong ASN (herinnering: earste ASN yn AS_PATH) is jildich;
  • De lêste ASN yn AS_PATH is de oanfaller syn ASN (yn gefal syn buorman kontrolearret de buorman syn ASN op alle ynkommende rûtes);
  • De oanfal komt fan ien provider.

As alle oannames korrekt binne, dan sille alle ferkearde rûtes de ASN fan 'e oanfaller presintearje (útsein de oarsprong ASN) en dus is dit in "kritysk" punt. Under de wiere kapers wie AS263444, hoewol d'r oaren wiene. Sels doe't wy it ynsidint rûtes út beskôging wegere. Wêrom? In kritysk punt kin kritysk bliuwe sels foar juste rûtes. It kin of it gefolch wêze fan minne ferbining yn in regio of beheiningen yn ús eigen sichtberens.

As gefolch is d'r in manier om in oanfaller te ûntdekken, mar allinich as oan alle boppesteande betingsten foldien wurdt en allinich as de ûnderskepping grut genôch is om de kontrôledrompels te passe. As guon fan dizze faktoaren net foldien wurde, kinne wy ​​dan de foarheaksels identifisearje dy't lêst hawwe fan sa'n ûnderskepping? Foar bepaalde operators - ja.

As in oanfaller in mear spesifike rûte makket, wurdt sa'n foarheaksel net advertearre troch de wiere eigner. As jo ​​in dynamyske list fan al syn foarheaksels út it, dan wurdt it mooglik om te meitsje in ferliking en fine ferfoarme mear spesifike rûtes. Wy sammelje dizze list mei foarheaksels mei ús BGP-sesjes, om't wy net allinich de folsleine list krije mei rûtes dy't op it stuit sichtber binne foar de operator, mar ek in list mei alle foarheaksels dy't it oan 'e wrâld advertearje wol. Spitigernôch binne d'r no ferskate tsientallen Radar-brûkers dy't it lêste diel net goed foltôgje. Wy sille har koart ynformearje en besykje dit probleem op te lossen. Elkenien oars kin no meidwaan oan ús tafersjochsysteem.

As wy weromgean nei it orizjinele ynsidint, waarden sawol de oanfaller as it distribúsjegebiet troch ús ûntdutsen troch te sykjen nei krityske punten. Ferrassend, AS263444 stjoerde gjin fabrisearre rûtes nei al har kliïnten. Hoewol is der in frjemder momint.

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

In resint foarbyld fan in besykjen om ús adresromte te ûnderskeppen

Doe't mear spesifike waarden makke foar ús foarheaksels, waard in spesjaal makke AS_PATH brûkt. Dizze AS_PATH koe lykwols net fan ien fan ús eardere rûtes ôfnommen wurde. Wy hawwe net iens kommunikaasje mei AS6762. Sjoch op de oare rûtes yn it ynsidint, guon fan harren hie in echte AS_PATH dat waard earder brûkt, wylst oaren net, sels as it liket op de echte. It feroarjen fan AS_PATH boppedat makket gjin praktysk sin, om't it ferkear yn elts gefal nei de oanfaller wurdt omlaat, mar rûtes mei in "minne" AS_PATH kinne wurde filtere troch ASPA of in oar ynspeksjemeganisme. Hjir tinke wy oer de motivaasje fan de kaper. Wy hawwe op it stuit net genôch ynformaasje om te befêstigjen dat dit ynsidint in plande oanfal wie. Dochs is it mooglik. Litte wy besykje in situaasje foar te stellen, hoewol noch altyd hypotetysk, mar mooglik frij reëel.

Perfekt oanfal

Wat hawwe wy? Litte wy sizze dat jo in transitprovider binne dy't rûtes útstjoert foar jo kliïnten. As jo ​​​​klanten meardere oanwêzigens hawwe (multihome), dan krije jo mar in diel fan har ferkear. Mar hoe mear ferkear, hoe mear jo ynkommen. Dus as jo begjinne mei advertearjen fan subnet-foarheaksels fan deselde rûtes mei deselde AS_PATH, krije jo de rest fan har ferkear. As gefolch, de rest fan it jild.

Sil ROA hjir helpe? Miskien ja, as jo beslute om it folslein te stopjen maxLength. Derneist is it heul net winsklik om ROA-records te hawwen mei krusende foarheaksels. Foar guon operators binne sokke beheiningen net akseptabel.

Sjoen oare rûtebefeiligingsmeganismen, sil ASPA yn dit gefal ek net helpe (om't it AS_PATH brûkt fan in jildige rûte). BGPSec is noch altyd net in optimale opsje fanwegen lege oannimmingssifers en de oerbleaune mooglikheid fan downgrade oanfallen.

Sa hawwe wy in dúdlike winst foar de oanfaller en in gebrek oan feiligens. Geweldige mix!

Wat moat ik dwaan?

De foar de hân lizzende en meast drastyske stap is om jo hjoeddeistige routingbelied te besjen. Brek jo adresromte yn 'e lytste brokken (gjin oerlappingen) dy't jo wolle advertearje. Undertekenje de ROA allinich foar dizze, sûnder de parameter maxLength te brûken. Yn dit gefal kin jo hjoeddeistige POV jo rêde fan sa'n oanfal. Foar guon operators is dizze oanpak lykwols net ridlik fanwege it eksklusive gebrûk fan mear spesifike rûtes. Alle problemen mei de hjoeddeistige steat fan ROA en rûteobjekten wurde beskreaun yn ien fan ús takomstige materialen.

Dêrneist kinne jo besykje te kontrolearjen sokke interceptions. Om dit te dwaan hawwe wy betroubere ynformaasje nedich oer jo foarheaksels. As jo ​​​​dus in BGP-sesje opstelle mei ús samler en ús ynformaasje jouwe oer jo sichtberens op it ynternet, kinne wy ​​​​de romte fine foar oare ynsidinten. Foar dyjingen dy't noch net ferbûn binne mei ús tafersjochsysteem, om te begjinnen, sil in list mei rûtes allinich mei jo foarheaksels genôch wêze. As jo ​​​​in sesje mei ús hawwe, kontrolearje dan asjebleaft dat al jo rûtes binne ferstjoerd. Spitigernôch is dit it wurdich te ûnthâlden, om't guon operators in foarheaksel of twa ferjitte en sadwaande ús sykmetoaden bemuoie. As it goed dien wurdt, sille wy betroubere gegevens hawwe oer jo foarheaksels, dy't ús yn 'e takomst sille helpe om dizze (en oare) soarten ferkearsûnderskepping foar jo adresromte automatysk te identifisearjen en te ûntdekken.

As jo ​​yn realtime bewust wurde fan sa'n ûnderskepping fan jo ferkear, kinne jo besykje it sels tsjin te gean. De earste oanpak is om sels rûtes te advertearjen mei dizze mear spesifike foarheaksels. Yn gefal fan in nije oanfal op dizze foarheaksels, werhelje.

De twadde oanpak is om de oanfaller te straffen en dejingen foar wa't hy in kritysk punt is (foar goede rûtes) troch de tagong fan jo rûtes nei de oanfaller ôf te snijen. Dit kin dien wurde troch it ASN fan 'e oanfaller ta te foegjen oan' e AS_PATH fan jo âlde rûtes en dus twinge se om te foarkommen dat AS it ynboude loopdeteksjemeganisme yn BGP brûkt. foar dyn eigen bestwil.

Boarne: www.habr.com

Add a comment