Viss ir ļoti slikti vai jauna veida satiksmes pārtverŔana

13. martā RIPE ļaunprātÄ«gas izmantoÅ”anas apkaroÅ”anas darba grupai ir saņemts piedāvājums uzskata BGP nolaupÄ«Å”anu (hjjack) par RIPE politikas pārkāpumu. Ja priekÅ”likums tiktu pieņemts, interneta pakalpojumu sniedzējam, kuram uzbruka satiksmes pārtverÅ”ana, bÅ«tu iespēja nosÅ«tÄ«t Ä«paÅ”u pieprasÄ«jumu uzbrucēja atmaskoÅ”anai. Ja pārskatÄ«Å”anas grupa savāktu pietiekamus apstiprinoÅ”us pierādÄ«jumus, LIR, kas bija BGP pārtverÅ”anas avots, tiktu uzskatÄ«ts par iebrucēju un varētu tikt atņemts no tā LIR statusa. Bija arÄ« daži argumenti pret Å”o izmaiņas.

Å ajā publikācijā mēs vēlamies parādÄ«t uzbrukuma piemēru, kurā bija runa ne tikai par patieso uzbrucēju, bet arÄ« visu ietekmēto prefiksu sarakstu. Turklāt Ŕāds uzbrukums atkal rada jautājumus par Ŕāda veida satiksmes pārtverÅ”anas motÄ«viem nākotnē.

Pēdējo pāris gadu laikā presē kā BGP pārtverÅ”ana ir atspoguļota tikai tādi konflikti kā MOAS (vairākas izcelsmes autonomā sistēma). MOAS ir Ä«paÅ”s gadÄ«jums, kad divas dažādas autonomas sistēmas reklamē konfliktējoÅ”us prefiksus ar atbilstoÅ”iem ASN laukā AS_PATH (pirmais ASN laukā AS_PATH, turpmāk saukts par izcelsmes ASN). Tomēr mēs varam vismaz nosaukt 3 papildu veidi trafika pārtverÅ”ana, ļaujot uzbrucējam manipulēt ar AS_PATH atribÅ«tu dažādiem mērÄ·iem, tostarp apejot modernās pieejas filtrÄ“Å”anai un uzraudzÄ«bai. Zināms uzbrukuma veids Pilosova-Kapely - pēdējais Ŕādas pārtverÅ”anas veids, bet nebÅ«t ne pēc nozÄ«mes. PilnÄ«gi iespējams, ka tieÅ”i Ŕādu uzbrukumu mēs esam redzējuÅ”i pēdējo nedēļu laikā. Šādam notikumam ir saprotams raksturs un diezgan nopietnas sekas.

Tie, kas meklē TL;DR versiju, var ritināt lÄ«dz apakÅ”virsrakstam "Perfect Attack".

TÄ«kla fons

(lai palÄ«dzētu jums labāk izprast ar Å”o incidentu saistÄ«tos procesus)

Ja vēlaties nosÅ«tÄ«t paketi un marÅ”rutÄ“Å”anas tabulā ir vairāki prefiksi, kas satur galamērÄ·a IP adresi, tad marÅ”ruts tiks izmantots prefiksam ar garāko garumu. Ja marÅ”rutÄ“Å”anas tabulā vienam un tam paÅ”am prefiksam ir vairāki dažādi marÅ”ruti, jÅ«s izvēlēsities labāko (pēc labākā ceļa izvēles mehānisma).

EsoŔās filtrÄ“Å”anas un uzraudzÄ«bas pieejas mēģina analizēt marÅ”rutus un pieņemt lēmumus, analizējot AS_PATH atribÅ«tu. Reklāmas laikā marÅ”rutētājs var mainÄ«t Å”o atribÅ«tu uz jebkuru vērtÄ«bu. VienkārÅ”i pievienojot Ä«paÅ”nieka ASN AS_PATH sākumā (kā sākotnējā ASN), var pietikt, lai apietu paÅ”reizējos izcelsmes pārbaudes mehānismus. Turklāt, ja ir marÅ”ruts no uzbrukuma ASN uz jums, kļūst iespējams izvilkt un izmantot Ŕī marÅ”ruta AS_PATH citās jÅ«su reklāmās. Jebkura jÅ«su izstrādāto paziņojumu validācijas pārbaude, kas paredzēta tikai AS_PATH, tiks izturēta.

Joprojām ir daži ierobežojumi, par kuriem ir vērts pieminēt. Pirmkārt, ja prefiksu filtrē augŔējais pakalpojumu sniedzējs, jÅ«su marÅ”ruts joprojām var tikt filtrēts (pat ar pareizo AS_PATH), ja prefikss nepieder jÅ«su klienta konusam, kas konfigurēts augÅ”tecē. Otrkārt, derÄ«gs AS_PATH var kļūt nederÄ«gs, ja izveidotais marÅ”ruts tiek reklamēts nepareizos virzienos un tādējādi pārkāpj marÅ”rutÄ“Å”anas politiku. Visbeidzot, jebkurÅ” marÅ”ruts ar prefiksu, kas pārkāpj ROA garumu, var tikt uzskatÄ«ts par nederÄ«gu.

Incidents

Pirms dažām nedēļām mēs saņēmām sÅ«dzÄ«bu no viena no mÅ«su lietotājiem. Mēs redzējām marÅ”rutus ar viņa izcelsmes ASN un /25 prefiksiem, savukārt lietotājs apgalvoja, ka viņŔ tos nereklamē.

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

Paziņojumu piemēri 2019. gada aprīļa sākumam

NTT prefiksa /25 ceļā padara to Ä«paÅ”i aizdomÄ«gu. LG NTT incidenta brÄ«dÄ« nezināja par Å”o marÅ”rutu. Tātad, jā, daži operatori Å”iem prefiksiem izveido visu AS_PATH! Pārbaudot citus marÅ”rutētājus, tiek atklāts viens konkrēts ASN: AS263444. Apskatot citus marÅ”rutus ar Å”o autonomo sistēmu, mēs saskārāmies ar Ŕādu situāciju:

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

Mēģiniet uzminēt, kas Å”eit ir nepareizi

Å Ä·iet, ka kāds paņēma prefiksu no marÅ”ruta, sadalÄ«ja to divās daļās un reklamēja marÅ”rutu ar to paÅ”u AS_PATH Å”iem diviem prefiksiem.

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

MarÅ”rutu piemēri vienam no sadalÄ«tajiem prefiksu pāriem

VienlaicÄ«gi rodas vairāki jautājumi. Vai kāds tieŔām ir izmēģinājis Å”o pārtverÅ”anas veidu praksē? Vai kāds ir izgājis Å”os marÅ”rutus? Kādi prefiksi tika ietekmēti?

Å eit sākas mÅ«su neveiksmju virkne un vēl viena vilÅ”anās kārta par paÅ”reizējo interneta veselÄ«bas stāvokli.

Neveiksmes ceļŔ

Pirmās lietas vispirms. Kā mēs varam noteikt, kuri marÅ”rutētāji pieņēma Ŕādus pārtvertos marÅ”rutus un kuru satiksmi Å”odien varētu novirzÄ«t? Mēs domājām, ka sāksim ar /25 prefiksiem, jo ā€‹ā€‹tiem "vienkārÅ”i nevar bÅ«t globāla izplatÄ«Å”ana". Kā jau nojauÅ”at, mēs ļoti kļūdÄ«jāmies. Å Ä« metrika izrādÄ«jās pārāk trokŔņaina, un marÅ”ruti ar Ŕādiem prefiksiem var parādÄ«ties pat no 1. lÄ«meņa operatoriem. Piemēram, NTT ir aptuveni 50 Ŕādu prefiksu, ko tā izplata saviem klientiem. No otras puses, Ŕī metrika ir slikta, jo Ŕādus prefiksus var filtrēt, ja operators izmanto mazo prefiksu filtrÄ“Å”ana, visos virzienos. Tāpēc Ŕī metode nav piemērota, lai atrastu visus operatorus, kuru satiksme tika novirzÄ«ta Ŕāda incidenta rezultātā.

Vēl viena laba ideja, ko mēs domājām, bija apskatÄ«t POV. ÄŖpaÅ”i marÅ”rutiem, kas pārkāpj atbilstoŔā ROA noteikumu maxLength. Tādā veidā mēs varētu atrast dažādu izcelsmes ASN ar statusu Invalid skaitu, kas bija redzami konkrētai AS. Tomēr ir "maza" problēma. Å Ä« skaitļa (dažādas izcelsmes ASN skaits) vidējais (mediāna un režīms) ir aptuveni 150, un, pat ja mēs izfiltrējam mazos prefiksus, tas paliek virs 70. Å im stāvoklim ir ļoti vienkārÅ”s izskaidrojums: pastāv tikai daži operatori jau izmanto ROA filtrus ar politiku ā€œatiestatÄ«t nederÄ«gus marÅ”rutusā€ ieejas punktos, lai visur, kur reālajā pasaulē parādās marÅ”ruts ar ROA pārkāpumu, tas varētu izplatÄ«ties visos virzienos.

Pēdējās divas pieejas ļauj mums atrast operatorus, kuri redzēja mÅ«su incidentu (jo tas bija diezgan liels), taču kopumā tās nav piemērojamas. Labi, bet vai mēs varam atrast iebrucēju? Kādas ir Ŕīs AS_PATH manipulācijas vispārÄ«gās iezÄ«mes? Ir daži pamata pieņēmumi:

  • Prefikss iepriekÅ” nekur nebija redzēts;
  • Origin ASN (atgādinājums: pirmais ASN pa AS_PATH) ir derÄ«gs;
  • Pēdējais AS_PATH ASN ir uzbrucēja ASN (ja kaimiņŔ pārbauda kaimiņa ASN visos ienākoÅ”ajos marÅ”rutos);
  • Uzbrukuma avots ir viens pakalpojumu sniedzējs.

Ja visi pieņēmumi ir pareizi, tad visos nepareizajos marÅ”rutos tiks parādÄ«ts uzbrucēja ASN (izņemot sākotnējo ASN), un tādējādi tas ir "kritisks" punkts. Starp patiesajiem nolaupÄ«tājiem bija AS263444, lai gan bija arÄ« citi. Pat tad, kad mēs izmetām incidentu marÅ”rutus no izskatÄ«Å”anas. Kāpēc? Kritiskais punkts var palikt kritisks pat pareiziem marÅ”rutiem. Tas var bÅ«t vai nu slikta savienojuma rezultāts reÄ£ionā, vai mÅ«su paÅ”u redzamÄ«bas ierobežojumi.

Rezultātā ir veids, kā atklāt uzbrucēju, taču tikai tad, ja ir izpildÄ«ti visi iepriekÅ” minētie nosacÄ«jumi un tikai tad, ja pārtverÅ”ana ir pietiekami liela, lai pārsniegtu uzraudzÄ«bas sliekŔņus. Ja daži no Å”iem faktoriem nav izpildÄ«ti, vai mēs varam noteikt prefiksus, kas cieta no Ŕādas pārtverÅ”anas? AtseviŔķiem operatoriem ā€“ jā.

Kad uzbrucējs izveido konkrētāku marÅ”rutu, patiesais Ä«paÅ”nieks Ŕādu prefiksu nereklamē. Ja jums ir dinamisks visu tā prefiksu saraksts, tad kļūst iespējams veikt salÄ«dzinājumu un atrast izkropļotus, konkrētākus marÅ”rutus. Mēs apkopojam Å”o prefiksu sarakstu, izmantojot mÅ«su BGP sesijas, jo mums tiek dots ne tikai pilns operatoram Å”obrÄ«d redzamo marÅ”rutu saraksts, bet arÄ« visu to prefiksu saraksts, kurus tas vēlas reklamēt pasaulei. Diemžēl tagad ir vairāki desmiti radara lietotāju, kuri nepabeidz pareizi pēdējo daļu. Mēs viņiem drÄ«zumā paziņosim un mēģināsim atrisināt Å”o problēmu. Visi pārējie Å”obrÄ«d var pievienoties mÅ«su uzraudzÄ«bas sistēmai.

Ja atgriežamies pie sākotnējā incidenta, gan uzbrucēju, gan izplatÄ«Å”anas apgabalu mēs atklājām, meklējot kritiskos punktus. PārsteidzoÅ”i, AS263444 nesÅ«tÄ«ja izdomātus marÅ”rutus visiem saviem klientiem. Lai gan ir sveŔāks brÄ«dis.

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

Nesens piemērs mēģinājumam pārtvert mÅ«su adreÅ”u telpu

Kad mÅ«su prefiksiem tika izveidoti specifiskāki, tika izmantots Ä«paÅ”i izveidots AS_PATH. Tomēr Å”o AS_PATH nevarēja ņemt no neviena no mÅ«su iepriekŔējiem marÅ”rutiem. Mums pat nav saziņas ar AS6762. AplÅ«kojot citus incidentā iekļautos marÅ”rutus, dažiem no tiem bija Ä«sts AS_PATH, kas tika izmantots iepriekÅ”, savukārt citiem nebija, pat ja tas izskatās pēc Ä«stā. Mainot AS_PATH papildus nav nekādas praktiskas jēgas, jo satiksme tik un tā tiks novirzÄ«ta uzbrucējam, taču marÅ”rutus ar ā€œsliktuā€ AS_PATH var filtrēt ar ASPA vai jebkuru citu pārbaudes mehānismu. Å eit mēs domājam par nolaupÄ«tāja motivāciju. PaÅ”laik mums nav pietiekami daudz informācijas, lai apstiprinātu, ka Å”is incidents bija plānots uzbrukums. Tomēr tas ir iespējams. Mēģināsim iztēloties, lai arÄ« hipotētisku, bet potenciāli diezgan reālu situāciju.

Ideāls uzbrukums

Kas mums ir? Pieņemsim, ka esat sabiedriskā transporta pakalpojumu sniedzējs, kas saviem klientiem apraida marÅ”rutus. Ja jÅ«su klientiem ir vairākas klātbÅ«tnes (vairākas mājas), jÅ«s saņemsiet tikai daļu no viņu trafika. Bet jo vairāk satiksmes, jo lielāki jÅ«su ienākumi. Tātad, ja sākat reklamēt Å”o paÅ”u marÅ”rutu apakÅ”tÄ«kla prefiksus ar to paÅ”u AS_PATH, jÅ«s saņemsiet pārējo to trafiku. Rezultātā pārējā nauda.

Vai ROA Å”eit palÄ«dzēs? VarbÅ«t jā, ja nolemjat pilnÄ«bā pārtraukt tā lietoÅ”anu maxLength. Turklāt ir ļoti nevēlami ROA ieraksti ar krustojoÅ”iem prefiksiem. Dažiem operatoriem Ŕādi ierobežojumi ir nepieņemami.

Ņemot vērā citus marÅ”rutÄ“Å”anas droŔības mehānismus, ASPA arÄ« Å”ajā gadÄ«jumā nepalÄ«dzēs (jo izmanto AS_PATH no derÄ«ga marÅ”ruta). BGPSec joprojām nav optimāls risinājums zemā pieņemÅ”anas lÄ«meņa un atlikuŔās pazemināŔanas uzbrukumu iespējas dēļ.

Tātad mums ir skaidrs ieguvums uzbrucējam un droŔības trÅ«kums. Lielisks maisÄ«jums!

Ko man darīt?

AcÄ«mredzamākais un radikālākais solis ir pārskatÄ«t savu paÅ”reizējo marÅ”rutÄ“Å”anas politiku. Sadaliet savu adreses vietu mazākās daļās (bez pārklāŔanās), kuras vēlaties reklamēt. Parakstiet ROA tikai tiem, neizmantojot parametru maxLength. Å ajā gadÄ«jumā jÅ«su paÅ”reizējais POV var jÅ«s izglābt no Ŕāda uzbrukuma. Tomēr atkal dažiem operatoriem Ŕī pieeja nav saprātÄ«ga, jo tiek izmantoti tikai specifiskāki marÅ”ruti. Visas problēmas ar paÅ”reizējo ROA un marÅ”ruta objektu stāvokli tiks aprakstÄ«tas vienā no mÅ«su turpmākajiem materiāliem.

Turklāt jÅ«s varat mēģināt uzraudzÄ«t Ŕādu pārtverÅ”anu. Lai to izdarÄ«tu, mums ir nepiecieÅ”ama uzticama informācija par jÅ«su prefiksiem. Tādējādi, ja jÅ«s izveidojat BGP sesiju ar mÅ«su savācēju un sniedzat mums informāciju par jÅ«su redzamÄ«bu internetā, mēs varam atrast iespēju citiem incidentiem. Tiem, kuri vēl nav savienoti ar mÅ«su uzraudzÄ«bas sistēmu, sākumā pietiks ar marÅ”rutu sarakstu tikai ar jÅ«su prefiksiem. Ja jums ir sesija ar mums, lÅ«dzu, pārbaudiet, vai visi jÅ«su marÅ”ruti ir nosÅ«tÄ«ti. Diemžēl to ir vērts atcerēties, jo daži operatori aizmirst vienu vai divus prefiksus un tādējādi traucē mÅ«su meklÄ“Å”anas metodēm. Ja tas tiks izdarÄ«ts pareizi, mums bÅ«s uzticami dati par jÅ«su prefiksiem, kas nākotnē palÄ«dzēs mums automātiski identificēt un atklāt Å”o (un citus) trafika pārtverÅ”anas veidus jÅ«su adreÅ”u telpai.

Ja jÅ«s reāllaikā pamanāt Ŕādu trafika pārtverÅ”anu, varat mēģināt to novērst pats. Pirmā pieeja ir paÅ”am reklamēt marÅ”rutus ar Å”iem specifiskākiem prefiksiem. Ja rodas jauns uzbrukums Å”iem prefiksiem, atkārtojiet.

Otra pieeja ir sodÄ«t uzbrucēju un tos, kuriem viņŔ ir kritisks punkts (labiem marÅ”rutiem), pārtraucot piekļuvi jÅ«su marÅ”rutiem uzbrucējam. To var izdarÄ«t, pievienojot uzbrucēja ASN jÅ«su veco marÅ”rutu AS_PATH un tādējādi piespiežot viņus izvairÄ«ties no Ŕī AS, izmantojot BGP iebÅ«vēto cilpas noteikÅ”anas mehānismu. jÅ«su paÅ”u labā.

Avots: www.habr.com

Pievieno komentāru