Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Adminie… Czy znamy Twoje grzechy? ;-) Sprawdź!
Konferencja Mega Sekurak Hacking Party w Krakowie – 26-27 października!
Adminie… Czy znamy Twoje grzechy? ;-) Sprawdź!
Kilka dni temu ujawniony został ciekawy błąd zidentyfikowany w Slacku, który pozwolił na dostęp do wewnętrznych serwisów przez serwer TURN. Błąd został wyceniony na 3500 dolarów. W praktyce został wykorzystany m.in. do:
Żeby zrozumieć o co chodziło w błędzie, w pierwszej kolejności należy zrozumieć czym są serwery TURN. Są one częścią infrastruktury potrzebnej do działania z protokołem WebRTC. Czym jest zatem WebRTC? Posiłkując się Wikipedią, możemy powiedzieć, że jest to “standard służący do komunikacji w czasie rzeczywistym poprzez przeglądarkę internetową”. Jest on powszechnie używany w aplikacjach do audio i wideo w przeglądarkach webowych, takich jak Google Hangouts czy właśnie Slack. W uproszczeniu można powiedzieć, że WebRTC umożliwia nawiązanie połączenia typu peer-to-peer pomiędzy dwoma użytkownikami, którzy chcą się ze sobą bezpośrednio skomunikować.
Głównym problemem z jakim muszą zmierzyć się wszystkie rozwiązania typu peer-to-peer są użytkownicy znajdujący się za NAT-em (Network Address Translation). Tacy użytkownicy nie mają publicznych adresów IP, więc nie można się do nich bezpośrednio podłączyć. Żeby jednak umożliwić im korzystanie z dobrodziejstw bezpośredniej komunikacji, zdefiniowano protokół STUN (Session Traversal Utilities for NAT). Rozwiązanie polega w (ponownie) największym skrócie na tym, że zdefiniowany jest serwer publiczny, który przekazuje połączenia pomiędzy zainteresowanymi. W praktyce STUN nie pozwalał na nawiązanie połączenia przez wszystkie typy NAT-ów, został więc zdefiniowany kolejny protokół: TURN (Traversal Using Relays around NAT).
Wprawdzie w opisie błędu nie napisano jak dokładnie technicznie odbył się atak, ale można wysnuwać pewne przypuszczenia. Na początku komunikacji protokołem TURN wysyłany jest pakiet XOR-PEER-ADDRESS, w którym przekazywana jest też informacja o adresie IP, z którym chce się połączyć. Problem w Slacku polegał na tym, że można było podać nie tylko adresy publiczne (bo takie jest założenie tego protokołu), ale również adresy w sieci lokalnej, dzięki czemu możliwe było przekierowanie połączeń.
Efekt działania ataku można zobaczyć na filmie poniżej:
[youtube_sc url=”https://www.youtube.com/watch?v=Oc8aprXLKLU&feature=emb_logo”]
— mb