Przeglądarki oparte na Chromium umożliwiają użytkownikowi przekształcenie niemal dowolnej strony internetowej w coś, co wygląda jak natywna aplikacja: z własnym oknem, własną ikoną Docka i brakiem widocznego chromu przeglądarki. Ta funkcja jest przeznaczona dla legalnych witryn, z których często korzystasz. Badacz bezpieczeństwa udokumentowany pan.d0x, 11 czerwca 2024 r. opowiedział, jak ten sam mechanizm można przekształcić w zestaw do phishingu: zainstaluj stronę jako aplikację, a następnie narysuj fałszywe okno przeglądarki, pasek adresu i wszystko w kodzie HTML aplikacji.
Jak budowana jest iluzja zainstalowanej aplikacji
W udokumentowanej technice ofiara jest kierowana na stronę, która zachęca ją do zainstalowania jej jako aplikacji, przy czym monit o instalację zawiera fałszywą nazwę, np. „Logowanie do Microsoft”. Po zainstalowaniu aplikacja otwiera się we własnym oknie bez chromowania. Ponieważ nie ma prawdziwego paska adresu, który można by sfałszować, strona tworzy swój własny za pomocą CSS: przekonującą fałszywkę, umieszczoną dokładnie w miejscu, w którym znajdowałby się pasek adresu przeglądarki, pokazującą dowolny adres URL, który chce wyświetlić atakujący. Dla kogoś, kto został przeszkolony w zakresie „sprawdzania paska adresu”, aplikacja zdaje się przechodzić tę kontrolę, ponieważ to, na co patrzy, wcale nie jest paskiem adresu przeglądarki.
Co właściwie sprawia, że jest to przekonujące
- Instaluje się jak zwykłe oprogramowanie: ikona w folderze Dock lub Aplikacje, własne okno, czasami powiadomienia push, z których żadna nie wymaga pozostawienia własnego procesu instalacji przeglądarki.
- Nazwa i ikona monitu instalacyjnego są takie, jakie deklaruje osoba atakująca. Nic w kroku instalacji nie sprawdza, czy nazwa jest zgodna z witryną.
- Po uruchomieniu fałszywy Chrome pozostaje aktywny przez cały czas trwania sesji: nie ma żadnych zakładek przeglądarki, paska zakładek ani ikon rozszerzeń, które mogłyby przełamać iluzję.
Sprawdzanie, co faktycznie jest zainstalowane, z poziomu terminala
W systemie macOS przeglądarki Chrome i Chromium instalują te „aplikacje” jako zwykłe pakiety aplikacji, a każdy z nich zapisuje prawdziwy adres URL, z którego został zainstalowany, w swoim własnym Info.plist, niezależnie od nazwy wyświetlanej w Finderze. Potwierdziliśmy to w porównaniu z prawdziwą, aktualnie zainstalowaną aplikacją na tym Macu (skrót instalowany w przeglądarce do pulpitu nawigacyjnego Cloudflare):
ls ~/Applications/*.localized/
Cloudflare.app
plutil -p ~/Applications/"Brave Browser Apps.localized"/Cloudflare.app/Contents/Info.plist | grep -i CrAppMode
"CrAppModeShortcutName" => "Cloudflare"
"CrAppModeShortcutURL" => "https://dash.cloudflare.com/"Pole CrAppModeShortcutURL oznacza, że fałszywy pasek adresu nie może zostać zmieniony: jest ustawiany raz, podczas instalacji, z własnego manifestu strony i to właśnie aplikacja otwiera się przy każdym uruchomieniu. Aplikacja o nazwie „Logowanie do banku”, której CrAppModeShortcutURL wskazuje miejsce inne niż rzeczywista domena Twojego banku, powiedziała sama za siebie.
- Wypisz każdą zainstalowaną aplikację internetową:
ls ~/Applications/*.localized/*/, raz na każdą przeglądarkę opartą na Chromium, której używasz (Chrome Apps.localized,Brave Browser Apps.localized,Edge Apps.localizedi podobne). - Jeśli nie pamiętasz wyraźnie instalacji lub wymaga logowania, sprawdź jego prawdziwy adres URL:
plutil -p "<path>/Contents/Info.plist" | grep -i CrAppMode. - Zwróć uwagę na prawdziwe pochodzenie, które Chromium pokazuje na chwilę po otwarciu aplikacji, i przeczytaj je, a nie własny, narysowany interfejs aplikacji.
Dlaczego jest to problem z siecią, a nie tylko z interfejsem użytkownika
Niezależnie od tego, jak wygląda okno, strona zbierająca dane uwierzytelniające nadal musi wysłać gdzieś zebrane informacje przez sieć z procesu uruchomionego na komputerze Mac. Zapora sieciowa pytająca tylko „czy ta aplikacja jest podpisana binarnie i zaufana” nie może tu pomóc: zainstalowany program PWA działa w podpisanym, zaufanym pliku wykonywalnym przeglądarki. Pomocna może być obserwacja samego połączenia: który proces go nawiązuje i dokąd faktycznie zmierza, niezależnie od tego, co podaje okno na ekranie.
Jaką rolę odgrywają FireAI i HisnLabs
Whatever a fake login screen looks like, it still has to send the password it captured somewhere; FireAI shows you exactly which process is trying to phone home and to what destination, installed web app or not, and lets you say no before anything leaves your Mac.
FireAI to własny produkt HisnLabs: zapora sieciowa z AI działająca bezpośrednio na Macu. Pokazuje prostym językiem każde połączenie nawiązywane przez twoje aplikacje i pozwala ci decydować, co opuszcza twojego Maca — jej AI działa lokalnie, więc twój ruch nigdy nie jest wysyłany do nas ani do nikogo innego. Zespół badań nad bezpieczeństwem HisnLabs dba o to, by te decyzje pozostały trafne: kataloguje, które domeny to zwykła telemetria, a które prawdziwa usługa, śledzi kraj i sieć stojące za połączeniem oraz trenuje lokalny model (funkcję Autopilot) na rzeczywistych wzorcach ruchu — a nic z tego nie opuszcza twojego Maca.
Możesz przeczytać o decyzjach technicznych, które za tym stoją, albo wypróbować FireAI przez 17 dni na FireAI od HisnLabs.
