Jak skradziono ruch Googlowi?

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:

About lmj

Łukasz Jachowicz (honey). Pierwszy raz w internecie w 1991 lub 1992. Pierwszy raz z własnym serwisem (codziennie aktualizowanym!) – w 1996. Pierwszy raz z własnym serwisem oraz grupą wiernych fanów – w 2000/2001. Do dziś bez stałego łącza do internetu (choć by chciał – ale dystans ok. 90 metrów do skrzynki nie do przeskoczenia dla operatora). Przez wiele lat popularyzator idei otwartości w oprogramowaniu i standardach wykorzystywanych przez administrację publiczną. Zwolennik otwartości dostępu do możliwie szerokiego zakresu danych publicznych. Autor analiz i policy papers dotyczących otwartości danych publicznych i zarządzania internetem. Miłośnik (choć nie bezkrytyczny) Linuksa. Przez wiele lat zawodowo zajmował się analizowaniem styku polityki i technologii. Twórca 7thGuarda, Rębaczy i rosnącej liczby odcinków podkastu Cyber Cyber. Zawodowo związany z ISEC.pl, zespołem zajmującym się badaniem bezpieczeństwa systemów informatycznych.

View all posts by lmj →