12 listopada, przez 74 minuty część serwerów Google była niedostępna dla sporej części internautów. Ruch do nich skierowany, miał trafić do Rosji, Chin i Nigerii – ale odbijał się na Wielkim Chińskim Murze (cyfrowym). Wszystko przez mały błąd w konfiguracji pewnego nigeryjskiego operatora, który poinformował cały świat, że sieć 216.58.192.0/19 należy do niego.
Jak działa BGP?
W czasach analogowej telefonii było prosto. Wykręcaliśmy numer 0-22-694-25-00 i od razu było wiadomo, że dzwonimy poza swój region (0), w okolice Warszawy (22), do centrali w centrum (694), a konkretnie na centralę Sejmu (25 00). Centrala stosunkowo rzadko zmieniała lokalizację, Sejm też – więc taki „statyczny routing” działał idealnie.
W internecie też wszystko było fajnie i prosto, dopóki podsieci było na tyle mało, że pełna tabela routingu mieściła się w każdym routerze. Czasy się zmieniły, mamy przydzielone praktycznie wszystkie adresy IPv4 (blisko 4 miliardy hostów!), serwerownie migrują, niezależnych sieci (ASów) są tysiące, a statyczny routing można znaleźć właściwie już tylko w sieciach z pojedynczym routerem. Skąd więc ten biedny router wie, gdzie posłać nasz pakiet?
Z odsieczą nadciągają protokoły takie jak BGP. Za ich pomocą, Systemy Autonomiczne mogą poinformować cały świat, jakie adresy IP są w ich posiadaniu. Wystarczy mały błąd w konfiguracji – na przykład AS-1 omyłkowo wyśle informację, że adres zarządzany przez AS-2 należy do niego, i część światowego ruchu do AS-2 będzie zamiast tego szła do routerów AS-1.
BGP hijacking
Teraz wyobraźmy sobie, że atakujący chce przejąć konta w popularnym kantorze kryptowalut. Może albo zaatakować kantor (trudne technicznie), albo jego klientów (nieefektywne), albo stworzyć serwis wyglądający jak ten kantor i w jakiś sposób przekierować jego klientów na fałszywą stronę wyłudzającą hasła. Sposoby są dwa – albo zaatakować serwer DNS wykorzystywany przez dany kantor (może być trudne technicznie), albo w jakiś sposób przekonać dużą część internetu, że serwer DNS o konkretnym adresie IP znajduje się w AS-1, a nie w AS-2. I przez kilka godzin, dopóki błąd nie zostanie zauważony, spora część użytkowników danego kantoru nieświadomie spróbuje się zalogować na serwerze przygotowanym przez włamywacza.
Oczywiście nikt czegoś takiego nie przeprowadził. No, prawie nikt – 24 kwietnia 2018 roku ktoś za pomocą BGP hijackingu przekierował do siebie ruch kierowany do części DNSów Amazonu i zwracał fałszywą informację na zapytania o serwis myetherwallet.com, kierując klientów do maszyny ulokowanej gdzieś w Rosji.
Jak często jesteśmy świadkami tego typu zachowań? Kilka najciekawszych przykładów z ostatnich lat:
- w 2008 Pakistan przypadkowo przyznał sobie adresy IP należące do Youtube, próbując ocenzurować ten serwis na swoim terenie;
- w 2016 Chiny przejęły część ruchu między Kanadą a Południową Koreą (na sześć miesięcy!) oraz kilka połączeń między USA a dużym bankiem w Mediolanie;
- w 2017 Chiny przejęły część ruchu między Skandynawią a Japonią, przez sześć tygodni przesyłając przez swoją sieć ruch dużej amerykańskiej firmy medialnej;
- w 2017 rosyjski ISP przekierował do siebie ruch należący do 36 operatorów usług płatniczych – Mastercarda, Visy i paru większych banków.
Do czego przydaje się ten atak?
Najprostszym zastosowaniem BGP Hijackingu jest wykorzystanie go do podsłuchiwania ruchu, który normalnie nie przechodziłby przez sieć przez nas kontrolowaną. W takich sytuacjach wszystkie ataki MITM (man-in-the-middle) są do dyspozycji atakującego. Podkładając fałszywe certyfikaty SSL (jak pokazały problemy z firmą Symantec, nie wszyscy przestrzegają reguł ich wystawiania), możemy zmusić nawet bardzo uważnego użytkownika sieci do zalogowania się na fałszywy serwer.
Co się stało w listopadzie?
Wszystko wskazuje na to, że przyznanie sobie części puli adresowej Google przez nigeryjskiego ISP (i przetransferowanie skierowanego do siebie ruchu przez Rosję i Chiny) było przypadkowe. Wskazuje na to przede wszystkim fakt, że ruch skierowany do Google odbijał się od chińskich firewalli i nie był przekazywany dalej – by atak był udany, użytkownik musi być w stanie dotrzeć do serwera docelowego (lub maszyny, która go udaje).
Co dalej?
Ataki typu BGP Hijacking są znane już od ponad dekady. Od pewnego czasu promowane są rozwiązania utrudniające nieautoryzowane przejmowanie cudzych klas adresowych – takie jak RPKI (Resource Public Key Infrastructure) czy MANRS (inicjatywa mająca na celu przekonanie operatorów sieci do stosowania zabezpieczeń). Dopóki jednak nie zostaną one powszechnie wdrożone przez głównych operatorów internetu, BGP Hijacking będzie skutecznym sposobem przejmowania ruchu do serwerów, które w innym przypadku leżałyby poza zasięgiem atakującego.
Źródła:
- Cyber, cyber… – odcinek podkastu Cyber, cyber…, w którym rozmawiamy na ten temat
- listopadowe przekierowanie ruchu w wersji obrazkowej
- Google goes down after major BGP mishap routes traffic through China
- Oracle confirms China Telecom BGP hijacking claims
- China’s Maxim – Leave No Access Point Unexploited: The Hidden Story of China Telecom’s BGP Hijacking (pdf)
- MANRS – Mutually Agreed Norms for Routing Security
- BGP leaks and cryptocurrencies
- BGP (Wikipedia PL)