Badacz bezpieczeństwa pokazał narzędzie, które wydobywa wprost zapisane hasła z pamięci wewnątrz procesu Microsoft Edge’a. Wszystko przez decyzję projektową Microsoftu: gigant zresztą twierdzi, że „tak miało być”. Naprawdę, niebywałe rzeczy.
Edge przez długi czas stara się przekonać społeczność skupioną wokół nowych technologii, że wbudowany menedżer haseł jest bezpiecznym miejscem. Oficjalna dokumentacja Microsoftu mówi, że zapisane hasła są szyfrowane na dysku z użyciem AES-a, natomiast sam klucz trafia do mechanizmów ochrony systemu operacyjnego: tu mowa o DPAPI w Windows. Najnowsze odkrycie nie kwestionuje słuszności takiego układu zabezpieczeń, lecz tyczą się nieco innego momentu pracy przeglądarki. Newralgiczna jest bowiem ta chwila, gdy przeglądarka się włącza: a wtedy hasła mogą znaleźć się w pamięci procesu jako zwykły, czytelny tekst.
EdgeSavedPasswordsDumper mówi: „koniec pieśni”
Autorem opisanego narzędzia jest Tom Jøran Sønstebyseter Rønning, jest to badacz bezpieczeństwa znany w sieci także z aktywności pod osobliwym, trudnym do wymówienia (na pierwszy rzut oka) pseudonimem L1v1ng0ffTh3L4N. Narzędzie funkcjonujące jako dowód słuszności metody, opublikowane już na GitHubie pod nazwą EdgeSavedPasswordsDumper, ma charakter demonstracyjny i edukacyjny, ale wskazuje na bardzo niebezpieczny scenariusz: chodzi o odczyt danych z pamięci procesu przeglądarki.
Jak wskazuje sam autor tej metody, Edge potrafi załadować zapisane dane logowania do RAM-u przy starcie, nawet jeśli użytkownik nie odwiedza stron, do których te dane należą. Owo zachowanie opisały również serwisy branżowe śledzące sprawę. No, nie powiem: jest grubo.
Najciekawsze, moim skromnym zdaniem, jest co innego. Wygląda bowiem na to, że Edge w odpowiednich momentach prosi użytkownika o ponowną autoryzację przed ujawnieniem hasła w ustawieniach, ale jak wynika z proof of conceptu, te same dane są już dostępne w pamięci procesu w postaci jawnej. Interfejsowo hasło jest „zakryte” i jest to rozsądne i oczekiwane zachowanie. Ale już w przypadku, gdy buszujemy po pamięci procesu w RAM-ie, jest on dostępny w plaintekście, bez szyfrowania i ukrywania go. To ogromny rozdźwięk między tym, co Edge deklaruje, a jak z tym jest „pod maską”.
Czytaj dalej poniżej
To nie magia
Samo istnienie czytelnych haseł w pamięci procesu nie oznacza, że ktokolwiek za chwilę włamie się do Twojego komputera i wyciągnie sobie Twoje dane logowania: to tak nie działa. Scenariusz wymaga bezpośredniego dostępu do maszyny, uprawnień pozwalających zaglądać do pamięci procesu lub przynajmniej złośliwego oprogramowania działającego w odpowiednich warunkach. Nie jest to podatność zdalna w klasycznym tego typu zagrożenia, sensie.
Gorzej jednak jest ze współdzielonymi komputerami, środowiskami firmowymi i systemami, na których administrator lub choćby przejęte konto, ma szeroki dostęp do procesów innych użytkowników. Załóżmy, że atakujący może wykonać zrzut pamięci działającego Edge’a: wtedy już, obecność całego zestawu haseł w RAM-ie (i to w plaintekście) zwiększa wartość takiego zrzutu. Badacz wskazuje, że problem dotyczy procesu nadrzędnego Edge’a, który trzyma odszyfrowane poświadczenia tak, jakby „nic się nie stało”.
Chrome i Brave: jak jest tutaj?
Edge nie jest przeglądarką budowaną od zera: korzysta bowiem z tego samego silnika co Google Chrome, Brave, Opera oraz Vivaldi, ale zachowanie menedżera haseł często zależy tutaj od sposobu implementacji rozwiązania. Według Rønninga testowane alternatywy, w tym Chrome i Brave, nie przechowywały całego zestawu zapisanych haseł w pamięci w ten sam sposób. Chrome odszyfrowuje poświadczenia punktowo tylko wtedy gdy są potrzebne. Wygląda więc na to, że inni producenci, już na etapie projektowania menedżerów haseł, zdawali sobie sprawę z ryzyka tego konkretnego momentu w pracy programu i odpowiednio się zabezpieczyli.
To wszystko nie znaczy jednak, że przeglądarki są idealnymi kontenerami na poświadczenia. Hasła zapisane w przeglądarce zawsze są pewnym kompromisem między wygodą, synchronizacją i bezpieczeństwem. Każdy mechanizm autouzupełniania musi przecież w pewnym momencie odszyfrować dane, bo inaczej nie mógłby ich wrzucić do formularzy. Co innego jednak, gdy odszyfrowuje się jedno hasło na żądanie użytkownika, a co innego, gdy hasła w postaci odszyfrowanej siedzą w RAM-ie: i to wszystkie, jak jeden mąż.
Microsoft mówi: „to miało tak działać”
To nie jest żart. Microsoft odpowiedział odkrywcy błędu, że opisane zachowanie jest zgodne z projektem, a nie klasyfikowane jako błąd bezpieczeństwa. Nie jest to coś niespotykanego w świecie cyberbezpieczeństwa: producent może uznać, że jeśli napastnik ma już odpowiedni dostęp do systemu, złamał wiele warstw ochrony i dopiero wykorzystał element projektowy konkretnego programu, to owo sporne zachowanie nie jest luką per se.
Ja z tym, osobiście, nie zgadzam się kompletnie. Oprogramowanie warto jest budować tak, by nie stwarzać ryzyka dalszych szkód: nawet, gdy mury zabezpieczeń występujących w danym scenariuszu nieco wcześniej, już zostały pokonane. Powiedzcie mi, po co mielibyśmy ułatwiać przestępcy wykradanie danych użytkownika: nawet, jeżeli ten już zyskał spore uprawnienia w systemie? Microsoft wykazuje się tu niesamowitą indolencją: pytanie tylko, czy jest ona w tym konkretnym przypadku intencjonalna, czy nie: a może wynika z podejścia skażonego przez twarde procedury. Jakiekolwiek nie byłoby dla tego wytłumaczenie, to i tak wiadomo jedno: inni producenci pomyśleli o zabezpieczeniu poświadczeń przed taką ingerencją. Dlaczego Microsoft uznał, że może być pod tym względem gorszy?!
Ta sytuacja uczy nas zasadniczo jednego: najbardziej newralgicznych haseł lepiej nie trzymać wyłącznie w przeglądarce, szczególnie na komputerze używanym do pracy, w warunkach współdzielenia maszyn. Zewnętrzny menedżer haseł, zupełnie inne hasło główne, kawalkada złożona z 2FA i passkeyów, biometryki, itp., zawsze będą przydawać Wam dodatkowe warstwy ochrony. I oczywiście, nie ma zabezpieczeń „absolutnych” i nikt nie da Wam gwarancji, że i tak nie zostaniecie zaatakowani. Zawsze tak może się zdarzyć, ale to do Was należy obowiązek, aby takowe ryzyko zminimalizować.
Czytaj również: Microsoft Edge oszukał użytkowników. Ekspert rozjechał giganta
A co do Edge’a, cóż. Skoro Microsoft mówi, że „to tak ma działać”, to super. Edge nie jest złą przeglądarką: jest w miarę szybki i bezproblemowy. Dziwi mnie jednak postawa giganta, która jest zasadniczo… po prostu bezczelna i skandaliczna wręcz. Jeżeli macie zapisane jakieś hasła w Edge’u, to lepiej z nimi wymigrujcie gdzie indziej i nie używajcie tego mechanizmu zbierania poświadczeń w jednym miejscu. Są lepsze rozwiązania: i to takie, które nie trzymają Waszych newralgicznych informacji, w postaci „czystej”, w ramie.