Hlavní navigace

Protokol BGP pod útokem

1. 9. 2008
Doba čtení: 7 minut

Sdílet

 Autor: 29
Poslední dobou si internetová infrastruktura vybírá pořádnou porci smůly. Není to tak dávno, co se objevil poměrně zásadní útok na systém DNS, a než jsme se stačili vzpamatovat, už je tu nový útok, jehož dopad je možná ještě závažnější.

Útok byl prezentován na konferenci DEFCON pány Antonym Kapelou a Alexem Pilosovem [PDF, 393 kB]. Jejich prezentace ukázala, že je možné poměrně snadno odposlouchávat příchozí data libovolné vzdálené sítě, a ještě k tomu téměř skrytě. Hned bylo zjevné, že tentokrát, na rozdíl od toho prvního problému, na který existuje odpověď v podobě DNSSEC, nalézt správné řešení pro ten druhý jistě nějaký čas zabere. Abychom si mohli princip útoku vysvětlit, musíme si nejdříve povědět něco o fungování velkých sítí. Všem odborníkům se předem omlouváme, pro jednoduchost se dopustíme jistě trestuhodných zjednodušení.

Protokol BGP

protokol BGP 1

Celý velký Internet se skládá z velkého množství sítí jednotlivých poskytovatelů Internetu (ISP). Každé takové síti se říká autonomní systém (AS) a každý AS má své číslo. Tyto sítě jsou mezi sebou poměrně chaoticky propojené. Zařízení uvnitř každého autonomního systému mají IP čísla alespoň z jednoho IP rozsahu, například rozsah (též prefix) 217.31.204.0/22 (což je zkratka pro rozsah 217.31.204.0 – 217.31.207.255) je určen pro všechny zařízení v AS25192, což je síť CZ.NICu. Routery, které jsou na okraji sítí a propojují AS s jinými AS, mají na starost informovat okolí, že právě v jejich AS jsou k dosažení zařízení s IP čísly z daného rozsahu. Tyto informace se šíří pomocí protokolu BGP (Border Gateway Procol). Routery okolních AS zase šíří informaci o existenci AS a IP rozsahu dále, pouze u ní poznamenají, že tato síť je dosažitelná přes jejich AS. A tak se tato informace postupně šíří dál, až se postupně dostane ke všem BGP znalým routerům v celém Internetu. Celé to ilustruje následující obrázek. Modré šipky ukazují možný směr propagace informace a červená šipka ukazuje, kam by routery posílaly paket 192.168.0.1.

Vzhledem k tomu, že informace o sítích se šíří po Internetu volně, časem se stane, že se opět vrátí k původnímu routeru, který ji vyslal. Pokud ten zjistí, že v cestě, kterou „zaslechne“, je jeho číslo AS, vyhodnotí, že tato cesta je smyčka a dál už si ji do paměti neukládá ani ji dál nešíří. BGP routery v určité zjednodušené podobě znají topologii celého Internetu a pokud mají poslat paket do nějaké sítě, podívají se na seznam možných cest, které se dozvěděli a pošlou paket kratší cestou z hlediska počtu AS po cestě (tedy to nemá nic společného s fyzickou ani časovou vzdáleností). Další důležitou vlastností je, že pokud mají informaci o podsítích (menších IP rozsazích nebo delších neboli specifičtějších prefixech), berou prioritně v úvahu o směrování právě tyto cesty. Tedy jako příklad, pokud nějaký router chce poslat paket k zařízení s IP číslem 217.31.204.35 a ví, že síť 217.31.204.0/22 ( 217.31.204.0 – 217.31.207.255) je dostupná přes 3 AS a ví, že přes více specifický prefix 217.31.204.0/24 ( 217.31.204.0 – 217.31.204.255) je dostupná přes 5 AS, stejně pošle paket na delší cestu. Bohužel si BGP routery při vyměňování směrovacích informací poměrně hodně důvěřují; na této slabině je i založen nově objevený útok.

Princip útoku

Základním principem je tento útok velmi podobný BGP hijackingu, který nedávnou způsobil zablokování serveru YouTube. Tehdy byly všechny pakety určené pro YouTube přesměrovány do sítě Pákistánského Telecomu. Významná odlišnost nyní je v tom, že útočník umí sestavit i zpětnou cestu a pakety posílá zpět na místo určení. Vše funguje dál jak má, kromě toho, že útočník má možnost cizí data odposlouchávat a napadená síť (a nejen ona) nemá téměř šanci útok a odposlouchávání pozorovat. Jak to tedy celé funguje? Útočník se nejprve podívá, jaká je jeho nejkratší cesta k cíli útoku.

protokol BGP 2

Potom tuto cestu propaguje dále, ale jako specifičtější prefixy. Tato operace způsobí, že veškerá data, která byla původně určená pro cílovou síť, jsou přesměrována do sítě útočníka. Ten je pochopitelně chytrý a data přeposílá dále po správné cestě do cíle po původní cestě.

protokol BGP 3

Díky mechanismu pro detekci smyček routery po cestě odmítají cesty šířené útočníkem, protože jejich číslo AS je v těchto cestách obsažené. Pakety tedy odesílají jako dříve přímo k cíli a přitom je celý provoz přesměrován přes síť útočníka. Cíl o tom vůbec neví, BGP informace šířená útočníkem se k němu vůbec nedostane, vše funguje jak má – snad až na trochu delší výpisy traceroute směrem k cíli (nicméně traceroute od cílové sítě vypadají zcela normálně!). Výpis by vypadal například takto (jako příklad používáme výpisy z prezentace pánů Pilosova a Kapely):

2 12.87.94.9 [AS 7018] 4 msec 4 msec 8 msec
3 tbr1.cgcil.ip.att.net (12.122.99.38) [AS 7018] 4 msec 8 msec 4 msec
4 ggr2.cgcil.ip.att.net (12.123.6.29) [AS 7018] 8 msec 4 msec 8 msec
5 192.205.35.42 [AS 7018] 4 msec 8 msec 4 msec
6 cr2-loopback.chd.savvis.net (208.172.2.71) [AS 3561] 24 msec 16 msec 28 msec
7 cr2-pos-0-0-5-0.NewYork.savvis.net (204.70.192.110) [AS 3561] 28 msec 28 msec 28 msec
8 204.70.196.70 [AS 3561] 28 msec 32 msec 32 msec
9 208.175.194.10 [AS 3561] 28 msec 32 msec 32 msec
10 colo-69-31-40-107.pilosoft.com (69.31.40.107) [AS 26627] 32 msec 28 msec 28 msec
11 tge2-3-103.ar1.nyc3.us.nlayer.net (69.31.95.97) [AS 4436] 32 msec 32 msec 32 msec
12 * * * (missing from trace, 198.32.160.134 – exchange point)
13 tge1-2.fr4.ord.llnw.net (69.28.171.193) [AS 22822] 32 msec 32 msec 40 msec
14 ve6.fr3.ord.llnw.net (69.28.172.41) [AS 22822] 36 msec 32 msec 40 msec
15 tge1-3.fr4.sjc.llnw.net (69.28.171.66) [AS 22822] 84 msec 84 msec 84 msec
16 ve5.fr3.sjc.llnw.net (69.28.171.209) [AS 22822] 96 msec 96 msec 80 msec
17 tge1-1.fr4.lax.llnw.net (69.28.171.117) [AS 22822] 88 msec 92 msec 92 msec
18 tge2-4.fr3.las.llnw.net (69.28.172.85) [AS 22822] 96 msec 96 msec 100 msec
19 switch.ge3-1.fr3.las.llnw.net (208.111.176.2) [AS 22822] 84 msec 88 msec 88 msec
20 gig5-1.esw03.las.switchcommgroup.com (66.209.64.186) [AS 23005] 84 msec 88 msec 88 msec
21 66.209.64.85 [AS 23005] 88 msec 88 msec 88 msec
22 gig0-2.esw07.las.switchcommgroup.com (66.209.64.178) [AS 23005] 88 msec 88 msec 88 msec
23 acs-wireless.demarc.switchcommgroup.com (66.209.64.70) [AS 23005] 88 msec 84 msec 84 msec

Ovšem i ty umí útočník zaretušovat. Pokud při průchodu paketů svou sítí modifikuje parametr TTL v hlavičce IP paketu, může výpis vypadat takto:

2 12.87.94.9 [AS 7018] 8 msec 8 msec 4 msec
3 tbr1.cgcil.ip.att.net (12.122.99.38) [AS 7018] 4 msec 8 msec 8 msec
4 ggr2.cgcil.ip.att.net (12.123.6.29) [AS 7018] 4 msec 8 msec 4 msec
5 192.205.35.42 [AS 7018] 8 msec 4 msec 8 msec
6 cr2-loopback.chd.savvis.net (208.172.2.71) [AS 3561] 16 msec 12 msec *
7 cr2-pos-0-0-5-0.NewYork.savvis.net (204.70.192.110) [AS 3561] 28 msec 32 msec 32 msec
8 204.70.196.70 [AS 3561] 28 msec 32 msec 32 msec
9 208.175.194.10 [AS 3561] 32 msec 32 msec 32 msec
10 gig5-1.esw03.las.switchcommgroup.com (66.209.64.186) [AS 23005] 88 msec 88 msec 84 msec
11 66.209.64.85 [AS 23005] 88 msec 88 msec 88 msec
12 gig0-2.esw07.las.switchcommgroup.com (66.209.64.178) [AS 23005] 84 msec 84 msec 88 msec
13 acs-wireless.demarc.switchcommgroup.com (66.209.64.70) [AS 23005] 88 msec 88 msec 88 msec

a pro srovnání původní výpis před útokem:

2 12.87.94.9 [AS 7018] 8 msec 8 msec 4 msec
3 tbr1.cgcil.ip.att.net (12.122.99.38) [AS 7018] 8 msec 8 msec 8 msec
4 12.122.99.17 [AS 7018] 8 msec 4 msec 8 msec
5 12.86.156.10 [AS 7018] 12 msec 8 msec 4 msec
6 tge1-3.fr4.sjc.llnw.net (69.28.171.66) [AS 22822] 68 msec 56 msec 68 msec
7 ve5.fr3.sjc.llnw.net (69.28.171.209) [AS 22822] 56 msec 68 msec 56 msec
8 tge1-1.fr4.lax.llnw.net (69.28.171.117) [AS 22822] 64 msec 64 msec 72 msec
9 tge2-4.fr3.las.llnw.net (69.28.172.85) [AS 22822] 68 msec 72 msec 72 msec
10 switch.ge3-1.fr3.las.llnw.net (208.111.176.2) [AS 22822] 60 msec 60 msec 60 msec
11 gig5-1.esw03.las.switchcommgroup.com (66.209.64.186) [AS 23005] 60 msec 60 msec 60 msec
12 66.209.64.85 [AS 23005] 64 msec 60 msec 60 msec
13 gig0-2.esw07.las.switchcommgroup.com (66.209.64.178) [AS 23005] 60 msec 64 msec 60 msec
14 acs-wireless.demarc.switchcommgroup.com (66.209.64.70) [AS 23005] 60 msec 60 msec 60 msec

Jak vidíte, šance detekovat útok je poměrně malá, vše se tváří normálně a přitom se útočník bez problémů podívá třeba na veškerou příchozí poštu do napadené sítě nebo na všechny www stránky, které si uživatelé v cílové síti stahují. To je přímo děsivé.

Řešení

Asi si teď kladete otázku, co s tím? Bohužel v současné době příliš mnoho řešení není. Nejlepší by bylo, kdyby všichni ISP měli přísné filtry pro své zákazníky a nedovolili jim šířit prefixy, které jim nepatří. Bohužel v takto ideálním světě nežijeme. Projděme si tedy ostatní alternativy. Již v roce 1996 vznikl první návrh protokolu Secure BGP (S-BGP), který BGP infrastrukturu rozšiřuje o infrastrukturu veřejných klíčů (PKI) a samotný BGP protokol pak rozšiřuje o digitální podpisy aktualizačních zpráv (UPDATE). Poslední aktualizace protokolu S-BGP pak pochází z července 2003.

V červnu 2003 vzniká alternativní návrh Secure Origin BGP (soBGP) podporovaný firmou Cisco a některými ISP. Oproti S-BGP rozšiřuje BGP protokol o nový typ zprávy SECURITY a umožňuje akceptaci pouze některých prefixů. Bohužel ani soBGP se nezdá být příliš úspěšné – poslední aktualizace proběhla v listopadu 2005.

V současné době je nejaktivnější skupina SIDR (Secure Inter-Domain Routing) při IETF, která navrhla systém ROA (Route Origin Authorization), tento systém si klade za cíl, aby příliš nezatížil páteřní infrastrukturu Internetu a zároveň přidal do BGP protokolu možnosti ověření zdroje přijímaných dat. Základní architektura tohoto systému se skládá z infrastruktury veřejných klíčů, digitálně podepsaných routovacích objektů a decentralizované architektury pro distribuci těchto dat. Celá tato architektura je stále ve stádiu návrhů, nicméně pozitivní je, že se na těchto návrzích aktivně pracuje – poslední aktualizace jsou ze srpna tohoto roku.

BRAND24

Souběžně s touto iniciativou byla na půdě organizace RIPE, která sdružuje internetové subjekty evropského regionu, založena pracovní skupina, která má za úkol navrhnout certifikaci internetových zdrojů (jako jsou například IP adresy nebo čísla Autonomních systémů), tak aby bylo jasné, komu patří jaký zdroj. Tento systém bude do budoucna použitelný pro více účelů, kdy bude zapotřebí ověřit oprávněného uživatele konkrétního internetového zdroje, ale z pohledu BGP bude možné jej využít pro ověřování platnosti směrovacích informací.

Z výše uvedeného výčtu je tedy zřejmé, že na nějaké globální řešení si rozhodně ještě počkáme, do té doby musí správci za pomocí různých nástrojů na sledování BGP v ostatních sítích (looking glass) hlídat, zda jejich IP rozsah nepropaguje do světa někdo jiný.

Podaří se skupině SIDR navrhnout certifikaci internetových zdrojů do konce roku 2008?

Byl pro vás článek přínosný?

Autor článku

Autor je výkonným ředitelem CZ.NIC a členem představenstva NIX.CZ. Ve volném čase se věnuje vývoji routovacího démona BIRD.

Autor je technickým ředitelem CZ.NIC, z.s.p.o. a studentem FSS MU. Zajímá se o DNS, DNSSEC, Linux. Jeho nepočítačový blog najdete na adrese blog.rfc1925.org.
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).