Błąd Google Pixel pozwala „rozpakować” zrzuty ekranu z ostatnich czterech lat

Błąd Google Pixel pozwala „rozpakować” zrzuty ekranu z ostatnich czterech lat

W 2018 roku telefony Pixel otrzymały wbudowany edytor zrzutów ekranu o nazwie Markup wraz z wydaniem Androida 9.0 Pie. Narzędzie pojawia się za każdym razem, gdy robisz zrzut ekranu, a dotknięcie ikony pióra aplikacji zapewnia dostęp do narzędzi, takich jak kadrowanie i wiele kolorowych pisaków do rysowania. Jest to bardzo przydatne przy założeniu, że narzędzie Google Markup rzeczywiście robi to, co mówi, ale nowa luka wskazuje, że zmiany wprowadzone przez to narzędzie w rzeczywistości nie były destrukcyjne! Zrzuty ekranu pikseli wykonane w ciągu ostatnich czterech lat można wyciąć lub nieedytować.

Błąd został odkryty przez Simona Aaronsa i nazwany „Acropalypse” lub, bardziej formalnie, CVE-2023-21036. Na stronie acropalypse.app dostępna jest eksperymentalna aplikacja , która może cofać edytowanie zrzutów ekranu Pixela i faktycznie działa! Tutajjest też dobry artykuł techniczny autorstwa współpracownika Aarona, Davida Buchanana. Głównym sednem problemu jest to, że edytor zrzutów ekranu Google zastępuje oryginalny plik zrzutu ekranu nowym edytowanym zrzutem ekranu, ale w żaden sposób nie obcina ani nie kompresuje tego pliku. Jeśli edytowany zrzut ekranu ma mniejszy rozmiar pliku niż oryginał — co jest bardzo łatwe dzięki narzędziu do przycinania — otrzymasz plik PNG z mnóstwem śmieci ukrytych na końcu. Te niepotrzebne dane składają się z końcowych bitów oryginalnego zrzutu ekranu i w rzeczywistości dane te można odzyskać.

Brzmi to jak zły sposób napisania narzędzia do przycinania zrzutów ekranu, ale w obronie Google wersja narzędzia do oznaczania na Androida 9 działała poprawnie i przycięła nadpisany plik. Jednak system Android 10 przyniósł wiele dramatycznych zmian w zakresie przechowywania plików w systemie Android. Nie jest jasne, jak i dlaczego tak się stało, ale być może w ramach tej ogromnej fali zatwierdzeń obsługi plików jedna nieudokumentowana zmiana trafiła do parsera plików Android Framework: tryb „zapisu” frameworka przestał obcinać nadpisane pliki i powstał błąd w znacznikach. Narzędzie do oznaczania polegało na obsłudze plików systemu operacyjnego, a sposób jego działania zmienił się w późniejszej wersji, czego nikt nie zauważył.

Narzędzie weryfikacji koncepcji w acropalypse.app działa świetnie. Jeśli zdarzy ci się mieć nieskorygowane urządzenie Pixel, możesz przyciąć zrzut ekranu, wprowadzić go do narzędzia, a odzyskasz nieprzycięte dane. To nie jest idealne – zwykle kończy się to mocno uszkodzonym plikiem PNG z dużym pustym obszarem, a następnie pasmem fantazyjnych kolorów, ale można dość niezawodnie przywrócić dolną część przyciętego obrazu. Błąd został naprawionyw aktualizacji zabezpieczeń Pixela z marca 2023 r., gdzie została oznaczona jako luka w zabezpieczeniach o wysokim stopniu bezpieczeństwa. Wpłynęło to tylko na edytor zrzutów ekranu Pixel, który zapisuje pliki PNG poprzez ich zastąpienie, a nie na edytor Zdjęć Google, który zapisuje pliki JPG, tworząc nową kopię. Tak więc zwykle przycięte zrzuty ekranu są podatne na ataki, a nie przycięte zdjęcia z aparatu, chyba że robisz coś naprawdę dziwnego, na przykład robienie zrzutu ekranu z wyjścia aparatu.

Jednak samo naprawienie błędu dla przyszłych użytkowników tak naprawdę nie rozwiązuje problemu. Nadal istnieje pytanie o zrzuty ekranu Pixela z ostatnich czterech lat, które są dostępne i prawdopodobnie pełne ukrytych danych, o których ludzie nie wiedzieli, że je udostępniają. Jeśli udostępnisz ten zrzut ekranu publicznie, to, czy zrzut ekranu stanowi naruszenie danych, zależy od tego, kto go publikuje. Niektóre aplikacje, takie jak Twitter, ponownie skompresują przesłane pliki, co usunie ukryte dane ze zrzutu ekranu. Jeśli zamiast tego aplikacja udostępnia oryginalny plik, osoba trzecia może cofnąć przycięcie zrzutu ekranu. W szczególności potwierdzono, że Discord to robi, a wiele innych aplikacji do przesyłania wiadomości prawdopodobnie również korzysta z pliku źródłowego.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *