Nedávno jsme si krok za krokem a zároveň lidsky, aby to pochopila i vaše babička, vysvětlili, jak funguje protokol DNS, který se na internetu stará o překlad doménových jmen na IP adresy. Třeba www.zive.cz na 85.207.58.49.
No dobrá, tak jsme tedy proměnili líbivou webovou adresu na jakási čísla oddělená tečkou, ovšem jaký je v tom vlastně rozdíl? Jak má náš počítač vědět, kde se sakra nachází HTTP server s IP adresou 85.207.58.49?
IP adresy Twitteru krátce „patřily“ Rusku
Kéž by na to existovala jednoduchá odpověď, pomocnou ruku nám ale tentokrát dalo Rusko, respektive tamní internetový operátor RTCOMM, který během pondělního poledne na 45 minut ukradl IP adresy Twitteru.

Incident detekovaný aplikací BGPMon. Pokud vám ty řádky zatím vůbec nic neříkají, po dočtení článku budete mít zcela jasno
Bezpečnostní incident zkraje týdne je výbornou ukázkou toho, jak funguje jeden z dalších klíčových protokolů internetu. Protokol, který nám pomáhá propojovat velké sítě operátorů a dalších hráčů do jednoho navzájem informovaného celku.
Autonomní systém
Internet je ve své podstatě síť sítí. Dejme tomu, že byste svůj domácí LAN propojili s LAN souseda, pak do party přidali ostatní obyvatele domu, pak ten dům propojili s celou ulicí, pak ulice s ulicemi, města s městy, kontinenty s kontenty a máte internet. Síť, kterou tvoří vaše maličké podsítě AS – Autonomní Systémy.

Aby byl internet o něco jednodušší je topologicky rozdělený do autonomních systémů, kterým může být třeba váš poskytovatel připojení
Jelikož dnes globální internetová vesnice čítá miliardy duší, autonomním systémem ve skutečnosti není vaše koncová domácí síť LAN, ale její nadřazený systém.
Může to být síť vašeho poskytovatele internetového připojení, síť univerzity, může to být rozsáhlá státní síť pokročilého e-governmentu, anebo síť nějaké velké služby, která potřebuje pracovat s hromadou IP adres – třeba síť Twitteru.
Jaké IPv4 adresy používáme v Česku? V tomto textovém souboru najdete jejich kompletní seznam platný k dnešnímu dni
Autonomní systémy mají své jedinečné číslo
Podobně jako mají všechny body na internetu svoji IP adresu, autonomní systémy mají jedinečné ASN – AS Number. V dřevních dobách internetu si jeho tvůrci mysleli, že se ASN vejde do směšných 16 bitů (2¹⁶ – 65 536 možností), to je už ale minulost a novější verze protokolu pracuje s 32bitovým rozsahem.

Každý AS má svoje přidělené ASN
Seznam přidělených a seřazených AS čísel najdete třeba v tomto obrovském textovém souboru. Vlevo je vždy číslo a vpravo entita, která jej získala od regionální autority. V Evropě to je organizace RIPE NCC.
Pokud bychom ASN přirovnali třeba k PSČ a autonomní systémy k místním poštám, pak by byl odkazovaný texťák výše vlastně seznamem všech PSČ a pošt na celé planetě. Od New Yorku po Kozojedy.

Náhled textového seznamu s označením jednoho z českých ISP
Jak se vlastně sítě dozvědí, kdo co spravuje?
Tak, to bychom měli základní terminologii a teď k otázce, k čemu je to vlastně dobré. Jak už jsme si řekli výše, autonomní systémy jsou navzájem propojené sítě a každá z těchto sítí dostala od RIPE NCC a ostatních autorit na dalších kontinentech ASN a balíky IP adres pro své ovečky.
No jo, ale jak se třeba takový autonomní systém mého domácího operátora AS31246 (Netbox) dozví, že autonomnímu systému AS13414 (Twitter) patří balík IP adres 104.244.42.0/24 (104.244.42.0 až 104.244.42.255)?

BGPview.io je skvělý vyhledávač napříč autonomními systémy. Dozvíte se všechny klíčové síťové informace o každém z nich
Přeloženo do češtiny, jak se ta mobilní aplikace Twitteru na mém telefonu dozví, kde se vlastně nachází server s konkrétní IP adresou? Mimochodem, ten rozsah výše je jen jeden z mnoha. Americká sociální síť jich používá mnohem více.
Co to znamená 192.168.1.0/24?
Každý se s tím setkal, ale laika to jistě mate. To je rozsah podsítě – počet IP adres, se kterými pracuje. Síť 192.168.1.0/24 bychom mohli rozepsat jako 192.168.1.0 až 192.168.1.255, protože každý dílek 32bitové IPv4 adresy představuje jeden bajt (hodnota 0-255).
Část /24 označuje počet bitů masky, čili té části IP adresy (zleva), která musí zůstat tak, jak je.

Zelená část patří správci sítě. Její velikost stanovuje maska na konci
Síť 192.168.1.0/24 má tedy teoreticky 256 kombinací, ale síť 192.168.1/16 už 65 536 kombinací! U celobajtových masek /24, /16 a /8 jsou počty jednoduché, na ty složitější tu je pak zástup pomocných tabulek a specializovaných webových kalkulaček.
V operačních systémech se s maskou setkáváme zpravidla v plném rozpisu do celých bajtů v dekadickém nebo hexadecimálním formátu. Masce /24 tedy odpovídá i zápis 255.255.255.0.

Tato síť má masku 255.255.255.0, nabízí tedy nejvýše 256 kombinací IP adres 172.17.16.0 až 172.17.16.255
Kdyby byl internet úplně pitomý…
Sítě jsou navzájem propojené, takže by to mohlo fungovat třeba tak, že by paket z mého telefonu cestoval nejprve na router mého poskytovatele připojení a zeptal se jej: „Ahoj, autonomní systéme! Prosím tě, nemáš náhodou ve své síti tuto IP adresu?“
A router by odpověděl: „Hele, promiň, ale zkusím tě přeposlat na routery ostatních autonomních systémů, se kterými jsem fyzicky propojený.“

Tam někde jsou Kozojedy, aneb snaha paketu dostat se z bodu A do bodu B bez znalosti cesty
Náš nebohý paket by cestoval stejně neefektivně, jako byste se chtěli dostat autem z Brna do Kozojed a na každé křižovatce (routeru) se kolemjdoucích, kteří v životě nikdy nikde nebyli, ptali, kde jsou proboha Kozojedy.
Za čtrnáct dnů byste do nich možná dojeli, byť byste po cestě nechtěně navštívili půlku republiky včetně výčepu v Břeclavi, u kterého právě teď postává náš redakční kolega Kuba Michlovský.
Sítě se neustále představují okolí skrze BGP
Aby bylo hledání cesty pro paket napříč internetem poněkud efektivnější, autonomní systémy používají celou plejádu protokolů, které pomáhají k routování paketu z bodu A do bodu B. Jedním z těch nejdůležitějších je technologie BGP – Border Gateway Protocol.

Peers, tedy seznam dalších AS, se kterými je propojený tento autonomní systém
Protokol BGP slouží k tomu, aby si propojené autonomní systémy navzájem sdělily, které rozsahy IP adres právě spravují. Používají k tomu běžné a ručně konfigurované TCP spojení, kterým poté předávají partnerům různé typy stavových zpráv.
BGP pomáhá vytvářet mapu internetu a jeho zprávy typu UPDATE sdělují okolí aktuální stav. Třeba to, že autonomní systém XYZ nově spravuje určitý rozsah IP adres a je napojený k několika čerstvým sousedům.

Brno–Kozojedy a dvě varianty routování skrze různé uzly při znalosti jejich vzájemného propojení. Sítě na to mají BGP, Mapy.cz zase bandu kartografů
V naší paralele s křižovatkami by protokol BGP ve výsledku fungoval jako plánování trasy v běžných mapách. Na obrázku výše nám Mapy.cz analýzou uzlů sítě vypočítaly hned dvě nejefektivnější trasy do Kozojed.
Na internetu spočívá znalost propojení podobných fyzických uzlů v tom, že si autonomní systémy navzájem řeknou, kdo je propojený s kým a co kdo spravuje.
Ahoj, já teď spravuji 104.244.42.0/24
Tak, už máme všichni jasno, čili se můžeme vrátit na začátek příběhu. Jak je možné, že jakýsi ruský operátor RTCOMM (AS8342), o kterém jste v životě neslyšeli, na dobrých 45 minut zabral IP adresy Twitteru (AS13414)?
Jednoduše tak, že zřejmě kvůli ruční chybě vyslal skrze BGP do okolí zprávu typu UPDATE s tím, že je to on, kdo má na starost IP rozsah 104.244.42.0/24 (Twitter).

Haló, já jsem AS13414 a dávám světu na vědomí, že mi patří IP rozsah 104.244.42.0/24. V pondělí ale stejnou zprávu vysílal i ruský operátor RTCOMM
A to tomu všichni tak snadno uvěřili?
No počkat, a to mu jako ostatní jen tak uvěřili a vzali to za bernou minci? No, víte, internet se zrodil v poněkud naivní době, kdy se na jakési ověřování příliš nehrálo. Ostatně, není tomu tak dávno, kdy mnozí kroutili hlavou i nad tím, proč používat výpočetně náročnější HTTPS. Dnes je to naprostá norma.
Anoncování nových informací skrze BGP se prostě považovalo z principu za autoritativní (proč by to jako chtěl někdo zneužívat?) a teprve v následujících letech přibyly různé ověřovací mechanizmy na bázi digitálních klíčů. Třeba RPKI.

Zpráva o pondělním incidentu ještě jednou. Teď už ji rozumí každý z vás
Čili i během pondělního incidentu, kdy RTCOMM vyslal skrze BGP zprávu, že mu patří IP adresy Twitteru, ji mohly ostatní autonomní systémy zahodit jako nedůvěryhodnou, nicméně v některých případech se tak nestalo (1, 2).
Nachytaly se některé autonomní systémy v Německu, Velké Británii, v Kanadě nebo i v sousedním Rakousku.
Dobrý den, vítejte v síti Twit… V Moskvě
Kdokoliv, kdo skrze jejich infrastrukturu během oněch osudných 45 minut navštívil Twitter, neměl ponětí, že nebohý paket vyrazil na cestu kamsi do Ruska. Co se stalo pak, není jisté. RTCOMM takový paket mohl zahodit, anebo přesměrovat do korektní destinace. Stal se z něj ale nedůvěryhodný prostředník.
Podobné situace jsou potenciálně nebezpečné, kdyby totiž tímto způsobem na sebe přesměroval provoz nějaký pochybný hráč, mohl by se pokoušet pakety třeba analyzovat, ty šifrované rozluštit, měnit a odposlouchávat. Tomuto útoku z rodiny MITM říkáme BGP hijacking.
Nejspíše to celé souvisí s aktuální krizí
V případě RTCOMM se však podle expertů nejspíše opravdu jednalo pouze o lidskou chybu, která souvisí s aktuální situací v Rusku a na Ukrajině. Moskva se totiž snaží zablokovat západní sociální sítě a BGP je jednou z cest.
Stačí, aby podobný autonomní systém přesměroval komunikaci s cílem na autonomních systémech Twitteru, Facebooku a dalších někam do koše (třeba na Roskomnadzor), no a paket z mobilu Ivana Kozlova sedícího na lavičce kdesi v Novosibirsku nikdy nedorazí do té správné destinace.
RTCOMM nejspíše při podobné konfiguraci udělal chybu a do nicoty poslal i nějaké ty surfaře ze Západu.