Microsoft zrobił dziurę w macOS. Pozwolił na to sam Apple
Specjaliści od cyberbezpieczeństwa wykazali, że korzystanie z biurowych aplikacji Microsoftu na komputerach Mac naraża użytkownika na niebezpieczeństwo naruszenia prywatności i kradzieży danych. Co jest szczególnie ciekawe, wina w tym przypadku niezupełnie leży w wadliwych aplikacjach - a w polityce.
![Microsoft 365 Mac bezpieczeństwo](/_next/image?url=https%3A%2F%2Focs-pl.oktawave.com%2Fv1%2FAUTH_2887234e-384a-4873-8bc5-405211db13a2%2Fspidersweb%2F2024%2F08%2Fmicrosoft-365-mac-bezpieczenstwo.jpg&w=1200&q=75)
Poważna usterka bezpieczeństwa w aplikacjach Microsoft 365 to ważna i ciekawa informacja sama w sobie - wszak usługa biurowa Microsoftu cieszy się wyjątkową popularnością, co oznacza, że ewentualna luka bezpieczeństwa naraża dość znaczną grupę ludzi. A Cisco Talos znalazło ich aż osiem.
Użytkownik korzystający z Outlooka, PowerPointa, Excela lub Worda na swoim komputerze Mac jest w wyniku powyższych wad narażony na podsłuch, kradzież danych czy nawet na wyrządzenie szkód w jego firmie czy organizacji. Atakujący jest bowiem w stanie wstrzyknąć złośliwy kod do wyżej wskazanych aplikacji i przejąć nad nimi kontrolę bez wiedzy i zgody użytkownika. Od dowcipów w formie dodania nieplanowanych spotkań do służbowego kalendarza aż po zdalne uruchomienie kamerki i mikrofonu komputera Mac.
To też jest ważne:
Tyle że tej informacji należy się szerszy kontekst, by nie stracić z oczu tego, co w tym odkryciu jest najważniejsze. Po pierwsze, owo wstrzyknięcie kodu nie jest trywialne, wymaga złożonego i zaplanowanego ataku, więc Spider’s Web (ani żaden ekspert) nie wzywa do niezwłocznego usunięcia aplikacji Microsoft 365 z komputerów Mac. Choć większe firmy i ich administratorzy IT z pewnością powinni zgłębić linkowane wyżej odkrycie, bo firmowe zasoby mogą być na tyle ważnym celem, by ów skomplikowany atak się opłacał. Znacznie ciekawsza jest bowiem geneza problemu.
W teorii bowiem powyższy atak nie powinien być możliwy, ponieważ system macOS oferuje skuteczne, chroniące przed nim mechanizmy. Które dla aplikacji Microsoft 365 są wyłączane.
Apple dzieli deweloperów na równych i równiejszych
Framework TCC (Transparency, Consent, and Control) to mechanizm w systemie macOS, który ma na celu ograniczenie i kontrolę dostępu aplikacji do określonych funkcji, głównie z perspektywy prywatności. Obejmuje to takie elementy jak usługi lokalizacyjne, kontakty, zdjęcia, mikrofon, kamerę, dostępność, pełny dostęp do dysku i wiele innych.
TCC został wprowadzony w systemie OSX Mavericks i od tego czasu przeszedł szereg zmian, aby rozszerzyć zakres jego kontroli. Użytkownicy spotykają się z TCC, gdy aplikacja prosi o dostęp do jednej z chronionych funkcji. Wówczas użytkownik otrzymuje monit z pytaniem, czy chce zezwolić na dostęp. Ta odpowiedź jest następnie przechowywana w bazie danych TCC.
Użytkownicy mogą również korzystać z Preferencji Systemowych, aby manipulować ustawieniami TCC. Baza danych TCC to po prostu baza danych sqlite3, która jest chroniona przed edycją przez funkcję Ochrony Integralności Systemu (SIP), ale można ją odczytać, przyznając terminalowi (lub edytorowi) pełny dostęp do dysku.
TCC jest obsługiwany przez demona znajdującego się w /System/Library/PrivateFrameworks/TCC.framework/Support/tccd i jest konfigurowany w /System/Library/LaunchDaemons/com.apple.tccd.system.plist. Uprawnienia są dziedziczone od aplikacji nadrzędnej i śledzone na podstawie identyfikatora pakietu (Bundle ID) oraz identyfikatora dewelopera. Framework TCC jest ważnym elementem zabezpieczającym macOS, który zapewnia użytkownikom przejrzystość w zakresie tego, jak ich dane są dostępne i wykorzystywane przez aplikacje.
W ramach TCC funkcjonują entitlements, czyli uprawnienia, które określają, jakie zasoby systemowe aplikacja może wykorzystywać i jakie operacje może wykonywać. Są to specjalne klucze w pliku konfiguracyjnym aplikacji, które dają aplikacji dostęp do chronionych funkcji systemowych, takich jak kamera, mikrofon, lokalizacja, kontakty, kalendarz i inne dane użytkownika.
![](/_next/image?url=https%3A%2F%2Focs-pl.oktawave.com%2Fv1%2FAUTH_2887234e-384a-4873-8bc5-405211db13a2%2Fspidersweb%2F2024%2F08%2Fmicrosoft-365-mac-bezpieczenstwo-1.png&w=1200&q=75)
Przykładowo, jeśli aplikacja chce uzyskać dostęp do kamery, musi mieć odpowiednie uprawnienie com.apple.security.device.camera w swoim pliku konfiguracyjnym. Gdy aplikacja próbuje po raz pierwszy uzyskać dostęp do kamery, TCC wyświetla użytkownikowi monit z prośbą o zgodę. Jeśli użytkownik zezwoli, uprawnienie to zostanie zapisane w bazie danych TCC i aplikacja będzie mogła w przyszłości korzystać z kamery bez dodatkowych pytań.
Com.apple.security.cs.disable-library-validation to klucz uprawnienia w systemie macOS, który wskazuje, czy aplikacja może ładować dowolne wtyczki lub frameworki bez wymogu podpisania kodu. Jest to część Hardened Runtime, funkcji zabezpieczającej macOS, która domyślnie włącza walidację bibliotek. Walidacja bibliotek zapobiega ładowaniu frameworków, wtyczek lub bibliotek, chyba że są one podpisane przez Apple lub mają ten sam identyfikator zespołu (Team ID), co główny plik wykonywalny.
Jeśli aplikacja ładuje wtyczki podpisane przez innych deweloperów, można użyć tego uprawnienia, aby umożliwić jej działanie. Aby dodać to uprawnienie do aplikacji, najpierw należy wyłaczyć funkcję Hardened Runtime w Xcode, a następnie w sekcji Wyjątki czasu wykonania (Runtime Exceptions) zaznaczyć opcję Disable Library Validation. Ważne jest, aby pamiętać, że walidacja bibliotek jest ważną funkcją zabezpieczającą, dlatego Gatekeeper - system ochrony macOS - przeprowadza dodatkowe kontrole bezpieczeństwa dla programów, które mają wyłączoną walidację bibliotek. Jeśli program jest blokowany przez Gatekeeper, warto sprawdzić, czy nie wyłączyłeś walidacji bibliotek niepotrzebnie.
MacOS to system bardzo dobrze zabezpieczony. Tyle że jak Apple i ktoś naprawdę bardzo ważny robią interesy, to możliwe są pewne drogi na skróty. Microsoft, jako wiodący dostawca oprogramowania na platformę macOS, ma swoje przywileje. Jednym z nich jest możliwość publikowania aplikacji na komputery Mac z uprawnieniami w konfiguracjach nieosiągalnych dla innych deweloperów, nie tylko tych publikujących aplikacje dla Maca na Mac App Store. Opisany w pierwszej części tego artykułu problem techniczny z bezpieczeństwem istnieje wyłącznie dlatego, że Microsoft zażyczył sobie pewnych wyjątków w konfiguracji działania narzędzia wbudowanego w macOS-a, a Apple się na to zgodził.
Na marginesie, dość zabawne jest przy tym to, że nawet sam Microsoft już nie potrzebuje tego problematycznego zestawu uprawnień dla aplikacji Microsoft 365 i po ogłoszeniu odkrycia przez Cisco Talos usunął już problem z aplikacji Teams i OneNote. Potrzebne było do obsługi wtyczek i rozszerzeń Microsoft Office, które niegdyś były pisane natywnym kodem - a dziś mają formę webową.
To nie jest jednostkowy przypadek. Co więcej, nie tylko Apple tworzy iluzję równości wśród deweloperów
Historia z Microsoft 365 na komputerach Mac jest dziś na czołówkach światowych mediów z całkowicie zrozumiałych powodów, ale to nie jest sytuacja bez precedensu. Właściwie to wręcz powszechna praktyka, tyle że wielkie Big Techowe firmy nie za bardzo chcą przypominać społeczności twórców i programistów o tym, że nie rywalizują z wielkimi informatycznymi korporacjami na równych zasadach. Na co dzień nie jest to tak widoczne, bo przecież wszelkie rozmowy i prace odbywają się za kulisami. Jest jednak pewna grupa konsumentów, która na efekty tych nierówności jest narażona dość regularnie.
Mowa o graczach, który wybrali konsole do gier jako preferowaną formę rozrywki. Jednym z atutów zamkniętego systemu, jakim jest konsola, miała być ścisła kontrola jakości przez jej producenta. Deweloperzy nie mogą ot tak wydawać gier na konsole, muszą za ten przywilej płacić, a wszystko, co chcą opublikować - od gier przez drobne do nich łatki i aktualizacje - musi być najpierw drobiazgowo sprawdzone przez Sony czy Microsoft czy kto tam odpowiada za daną konsolę. Tyle że duzi wydawcy, zaufani partnerzy, są na uprzywilejowanej pozycji i mogą ów system obchodzić. Gracze na skutek powyższego byli już wielokrotnie poszkodowani, a najgłośniejszy przypadek to światowa premiera Cyberpunka 2077 na konsolach PlayStation 4 i Xbox One, na których gra miała tyle wad, że w zasadzie była niegrywalna - mimo certyfikacji Sony i Microsoftu.
Na szczęście dla konsumentów, ustawodawcy zaczynają powoli nadążać za Big Techem i rozumieć problemy, jakie wywołuje rosnąca potęga reprezentujących go firm. Nierówne traktowanie partnerów przez firmy określane jako gatekeeperów to coś, czym Unia Europejska ostatnio szczególnie chętnie się zajmuje. Bo, jak przypadek Microsoftu i Apple’a dowodzi, tu już nawet nie chodzi o zasady (mające jak najbardziej istotne konsekwencje ekonomiczne), ale też o interesy samych konsumentów. A w skrajnych przypadkach, jak dziś opisywany, nawet o bezpieczeństwo ważnych firmowych danych.