AirDrop i Quick Share od lat uchodzą za jedne z najwygodniejszych metod przesyłania plików pomiędzy urządzeniami. Kilka kliknięć wystarczy, aby przesłać zdjęcia, dokumenty czy filmy bez kabla czy konieczności korzystania z chmury.

Problem polega na tym, że za tą prostotą kryje się bardzo złożony zestaw protokołów odpowiedzialnych za wykrywanie urządzeń, negocjację połączenia, uwierzytelnianie i wymianę danych.

Dwóch badaczy z CISPA postanowiło dokładnie przeanalizować oba rozwiązania. Efektem ich pracy jest odkrycie sześciu nowych podatności dotyczących Apple AirDrop oraz Google i Samsung Quick Share. Część z nich pozwala na zdalne wywołanie awarii urządzenia bez jakiejkolwiek interakcji użytkownika, inne umożliwiają obejście mechanizmów bezpieczeństwa odpowiedzialnych za zestawienie bezpiecznego połączenia.

Atakujący nie musi znać ofiary

Najbardziej niepokojące jest to, że większość opisanych scenariuszy nie wymaga wcześniejszego sparowania urządzeń ani wymiany kluczy. Wystarczy znaleźć się w zasięgu komunikacji bezprzewodowej i wysłać odpowiednio przygotowane pakiety do usługi odpowiedzialnej za odbieranie plików. To właśnie dlatego badacze określają część podatności jako pre-authentication, czyli możliwe do wykorzystania jeszcze przed zakończeniem procesu uwierzytelniania.

Oznacza to, że powierzchnia ataku jest znacznie większa, niż mogłoby się wydawać. Każde urządzenie oczekujące na możliwość odebrania pliku staje się potencjalnym celem.

AirDrop okazał się bardziej skomplikowany, niż przypuszczano

Podczas analizy badacze odtworzyli praktycznie cały protokół działania AirDrop. Inżynieria wsteczna pozwoliła na zrekonstruowanie wielowarstwowego mechanizmu odpowiedzialnego za negocjację połączenia, wymianę komunikatów i kompresję danych.

Na tej podstawie powstało narzędzie AIRFUZZ – specjalistyczny fuzzer, potrafiący generować poprawne komunikaty protokołu, a następnie celowo wprowadzać niewielkie błędy w ich strukturze. Dzięki niemu udało się znaleźć trzy nowe podatności w implementacji AirDrop.

Jedna z luk prowadzi do natychmiastowego zakończenia działania usługi wskutek błędu w routerze HTTP. Druga wykorzystuje nieograniczoną rekurencję parsera XML Property List w bibliotece Foundation, natomiast trzecia powoduje dereferencję wskaźnika NULL w komponencie Network.framework, odpowiedzialnym za obsługę HTTP.

Co istotne, dwie z tych podatności nie dotyczą wyłącznie AirDropa. Jako że znajdują się we współdzielonych bibliotekach systemowych Apple, potencjalnie mogą wpływać także na inne korzystające z tych samych mechanizmów aplikacje.

Quick Share również nie uniknął problemów

Podobne badania przeprowadzono dla Quick Share, rozwijanego przez Google i Samsunga.

Tutaj największym problemem okazały się mechanizmy odpowiedzialne za ustanowienie zaufanego połączenia między urządzeniami.

Badacze wykazali, że w implementacji Samsunga możliwe było przetwarzanie części komunikatów jeszcze przed zakończeniem pełnego procesu uwierzytelniania. W innym przypadku udało się obejść mechanizm szyfrowania dla wybranych ramek protokołu, co narusza podstawowe założenia bezpieczeństwa całej komunikacji.

Nie oznacza to automatycznej kradzieży plików, ale pokazuje, że atakujący może wpływać na przebieg sesji w sposób, który nie powinien być możliwy.

Windows z najgroźniejszą podatnością

Najpoważniejsze odkrycie dotyczyło aplikacji Google Quick Share dla systemu Windows.

Badacze zidentyfikowali klasyczny błąd typu use-after-free, pojawiacy się podczas jednoczesnej obsługi dwóch połączeń. W odpowiednich warunkach aplikacja może odwołać się do pamięci, która została już zwolniona.

Takie błędy od lat należą do najgroźniejszych klas podatności, ponieważ mogą prowadzić do zdalnego wykonania kodu. W tym przypadku badacze nie przygotowali gotowego exploita, jednak ocenili, że ścieżka prowadząca do RCE jest realna. Dodatkowo zauważyli, że aplikacja nie korzysta z mechanizmu Control Flow Guard, który mógłby utrudnić wykorzystanie podatności. Google potwierdziło zgłoszenie, wypłaciło nagrodę bug bounty i przygotowało poprawkę.

Ponad pięć miliardów urządzeń w zasięgu

Największe wrażenie robi jednak skala problemu. AirDrop oraz Quick Share działają na miliardach urządzeń z systemami iOS, macOS, Android oraz Windows. Oczywiście nie każda wersja oprogramowania jest podatna na wszystkie opisane błędy, jednak sam fakt, że usługi są dostępne praktycznie na całym świecie, znacząco zwiększa atrakcyjność takich badań dla cyberprzestępców.

Pokazuje to również, że usługi komunikacji lokalnej stają się równie interesującym celem jak klasyczne usługi sieciowe.

Przez długi czas pojęcie zero-click exploit kojarzyło się głównie z komunikatorami, klientami poczty elektronicznej czy parserami obrazów. Badania nad AirDrop i Quick Share pokazują, że podobne scenariusze mogą dotyczyć również mechanizmów lokalnej wymiany plików.

Jeżeli usługa automatycznie odbiera i przetwarza skomplikowane struktury danych jeszcze przed uwierzytelnieniem użytkownika, naturalnie staje się atrakcyjnym celem dla fuzzingu i badań bezpieczeństwa.

W praktyce oznacza to, że każde dodatkowe rozszerzenie protokołu, nowy parser czy kolejna warstwa kompresji zwiększają powierzchnię potencjalnego ataku.

Co możemy zrobić?

Na szczęście część zagrożeń można ograniczyć za pomocą bardzo prostych działań.

Jeżeli nie korzystamy aktywnie z AirDrop lub Quick Share, warto pozostawić usługę wyłączoną albo ograniczyć jej widoczność wyłącznie do kontaktów. Tryb „Everyone” znacząco zwiększa powierzchnię ataku, ponieważ umożliwia wykrycie urządzenia przez osoby znajdujące się w pobliżu. Równie ważne jest regularne instalowanie aktualizacji systemowych, ponieważ Apple i Google rozpoczęły już publikowanie poprawek dla części opisanych podatności, natomiast Samsung nadal analizuje zgłoszone problemy.

Badania nad AirDrop i Quick Share pokazują, że nawet funkcje, z których korzystamy na co dzień i które wydają się niezwykle proste, w rzeczywistości opierają się na bardzo rozbudowanych protokołach komunikacyjnych.

Im bardziej złożony jest taki protokół, tym większa szansa na pojawienie się błędów implementacyjnych. Odkryte podatności nie oznaczają, że należy natychmiast przestać korzystać z AirDropa czy Quick Share. Pokazują jednak, że usługi komunikacji bezprzewodowej powinny być traktowane jako pełnoprawna powierzchnia ataku – i dokładnie tak samo analizowane oraz testowane jak przeglądarki internetowe, klienty poczty czy serwery sieciowe.