Google ujawnia nowo wykrytą podatność w Microsoft Edge

Google ujawnia nowo wykrytą podatność w Microsoft Edge

Autor: Krzysztof Sulikowski

Opublikowano: 2/17/2018, 10:20 PM

Liczba odsłon: 1971

Google aktywnie wyszukuje podatności w produktach Microsoft za pośrednictwem swojego skrzydła badawczego Project Zero. W ostatnich dwóch latach znaleziono w ten sposób kilka podatności w Windows 10, a teraz podano do publicznej wiadomości szczegóły podatności w Microsoft Edge. Dlaczego? Otóż Microsoft znów nie zdążył załatać jej w wyznaczonym terminie, a miał na to ponad 90 dni.

Microsoft Edge

Google Project Zero stawia rygorystyczne wymagania co do czasu udostępnienia łatek - jeśli nie stanie się to w ciągu 90 dni od przesłania zgłoszenia, newralgiczną zawartość czeka upublicznienie. W ten sposób dowiedzieliśmy się, co dolega przeglądarce Edge. By to zrozumieć, należy cofnąć się o rok. W lutym 2017 r. Microsoft zapowiedział, że począwszy od aktualizacji Creators Update Edge będzie używał Arbitrary Code Guard (ACG), by przeciwdziałać "arbitralnemu wykonywaniu natywnego kodu". Jako że większość nowoczesnych przeglądarek polega na kompilatorach Just-in-Time (JIT), ACG stało się źródłem komplikacji, zmuszające Microsoft do przeniesienia funkcjonalności JIT z Chakry do oddzielnego procesu działającego w izolowanym sandboksie, co firmie nastręczyło wielu trudności.

Proces ten (JIT) odpowiedzialny jest za kompilację JavaScript na natywny kod, tworzenie wspłódzielonej mapy obiektu, mapowanie jej na zawartość procesu i rezerwowanie pamięci. Następnie, gdy strony muszą być zapisane w pamięci, proces wywołuje funkcję VirtualAllocEx(), by alokować dla niej pamięć z zarezerwowanego miejsca. Problem z techniką polega na tym, że jeśli proces zawartości może przewidzieć adres, w którym proces JIT wywoła jego funkcję VirtualAllocEx(), co zdaniem Google jest bardzo łatwe, proces zawartości może odmapować udostępnioną pamięć z użyciem UnmapViewOfFile(), alokować zapisywalne miejsce w pamięci pod tym samym adresem, w którym JIT zamierza zapisywać, i zapisać w nim wykonywalny payload. Gdy proces JIT wywoła VirtualAllocEx(), nawet jeśli pamięć jest już alokowana, wywołanie się powiedzie, a ochrona pamięci zostanie ustawiona na PAGE_EXECUTE_READ.

Podatność została przez badaczy z Google uznana za "średnio" niebezpieczną (Medium) i opisana Microsoftowi w listopadzie 2017 r. Jako że po standardowych 90 dniach deadline minął, a Microsoft nie udostępnił łatki, wszystkie szczegóły stały się publiczne. Microsoft Security Response Center (MSRC) odpowiada, że problem jest nawet bardziej złożony, niż początkowo sądzono, i z tego powodu firma poprosiła Google o dodatkowe 14 dni, ale i w tym czasie nie udało się znaleźć rozwiązania. Odpowiednie łatki zostaną więc prawdopodobnie udostępnione dopiero przy okazji najbliższego Patch Tuesday, który wypada 13 marca.

Aktualizacja 20.02.2018: Google dodało sprostowanie, że podatności nie można zaatakować exploitem bez wcześniejszego obejścia innej luki w zabezpieczeniach: "Atakujący musi wcześniej zaatakować exploitem inną podatność, by uzyskać pewne możliwości w procesie zawartości Edge (np. możliwość odczytu i zapisu arbitralnych lokacji pamięci), po czym może użyć tej podatności, by osiągnąć dodatkowe możliwości (zwłaszcza możliwość uruchamiania arbitralnego kodu maszynowego)".

Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży
Jak wykorzystać Copilot w codziennej pracy? Kurs w przedsprzedaży

Wydarzenia