Nie zobaczysz, że cię nagrywają. Nowa luka w iOS
Oprogramowanie szpiegowskie Predator może obejść zabezpieczenie, które znamy z iOS od lat. Dzięki specjalnej procedurze strumieniowanie z kamer i mikrofonów może umknąć uwadze użytkowników.
Apple wprowadził w iOS 14 widoczne wskaźniki nagrywania: zielony dla kamery i pomarańczowy dla mikrofonu. Niewielki piksel podświetla się za każdym razem, gdy jakaś aplikacja wykorzystuje nagrywanie obrazu bądź dźwięku.
Zespół badaczy z firmy zarządzającej urządzeniami mobilnymi Jamf opisuje, że Predator nie wykorzystuje nowej luki w systemie. Działa po uzyskaniu uprawnień na poziomie jądra i przechwytuje sygnały odpowiedzialne za aktualizację stanu interfejsu, aby kontrolki nigdy się nie zapalały.
Jak usunąć reklamy ze smartfonów Xiaomi? Poradnik krok po kroku
Jak Predator oszukuje system?
Według analizy Jamf kluczowa jest funkcja hooka (HiddenDot::setupHook()') w aplikacji SpringBoard odpowiedzialnej za ekran główny. Po aktywacji aparatu lub mikrofonu metoda uruchamia się wraz ze zmianą statusu czujników i przecina przepływ danych. Dzięki temu aktualizacja nie dociera do widocznej warstwy interfejsu, więc kropki nie pojawiają się na pasku.
Badacze wskazują, że Predator przechwytuje wywołanie _handleNewDomainData:, które iOS uruchamia przy każdej zmianie aktywności czujników. W efekcie zeruje obiekt SBSensorActivityDataProvider zapewniający informacje o ruchu, a połączenia do pustego obiektu w Objective-C są ignorowane. W praktyce SpringBoard nie rejestruje, że kamera lub mikrofon ruszyły, więc nie pokazuje wskaźników.
To pojedyncze obejście wyłącza jednocześnie kontrolki dla obu sensorów, bo SBSensorActivityDataProvider agreguje cały ruch. Jamf natrafił też na nieaktywny kod próbujący wykorzystać SBRecordingIndicatorManager, ale ten fragment kodu nie działa i wygląda na porzucony kierunek rozwoju na wczesnym etapie.
Jak nie kodem, to zasłonięciem kropki
Moduł Predatora nagrywa też połączenia wykonywane przez VoIP. W tym przypadku jednak nie ma własnego mechanizmu tłumienia wskaźników i polega na mechanizmie HiddenDot, który ukrywa ślad wizualny kropki na interfejsie. Osobny komponent umożliwia dostęp do kamery przez wyszukiwanie wewnętrznych funkcji aparatu wzorcami instrukcji ARM64 oraz przekierowanie Pointer Authentication Code (PAC), co omija sprawdzanie uprawnień do kamery przez system.
Jamf zaznacza, że choć dla użytkownika aktywność szpiega pozostaje niewidoczna, w systemie można zauważyć ślady techniczne: nieoczekiwane mapowania pamięci lub porty wyjątków w SpringBoard i mediaserverd, a także pliki dźwiękowe zapisywane przez mediaserverd w niespodziewanych miejscach. Apple nie skomentowało tego problemu.
Michał Mielnik, dziennikarz Wirtualnej Polski