W Chrome 76 została dziura w implementacji FileSystem API, która umożliwiała z web-aplikacji określenie użycia trybu incognito. Zaczynając od Chrome 76, zamiast blokować dostęp do FileSystem API, które było używane jako znak aktywności trybu incognito, przeglądarka przestała ograniczać FileSystem API, ale czyściła wprowadzone zmiany po sesji. Okazało się, że nowa implementacja niedociągnięcia, które pozwalają, jak dawniej, określać aktywność trybu incognito.
Istotą problemu jest to, że sesja z FileSystem API w trybie incognito jest tymczasowa, a dane nie są zapisywane na dysku i są przechowywane w pamięci operacyjnej. W związku z tym, czas zapisywania danych przez FileSystem API i powstające odchylenia (przy zapisywaniu w RAM ustala się stałe cechy, podczas gdy przy zapisie na dysk opóźnienia się zmieniają), można dość pewnie ocenić, czy przeglądana strona jest w trybie incognito, czy nie. Wadą metody jest dość długi proces pomiaru odchyleń, który może trwać około minuty ().
Jednocześnie w Chrome 76 pozostaje niepoprawiona jeszcze jedna , umożliwiająca ocenę aktywności trybu incognito na podstawie oceny ustalanych ograniczeń przez API . Dla używanego w trybie incognito tymczasowego magazynu ustalane są inne limity niż w przypadku pełnego przechowywania na dysku.
Przypomnijmy, że w określeniu trybu incognito zainteresowane są strony internetowe działające na zasadzie oferowania pełnego dostępu za opłatą (paywall). Aby przyciągnąć nową publiczność, takie strony oferują nowym użytkownikom przez pewien czas demonstracyjny pełny dostęp, co jest aktywnie wykorzystywane do omijania paywall. Najprostszym sposobem uzyskania dostępu do płatnej treści w takich systemach jest użycie trybu incognito, w którym strona uważa, że użytkownik otworzył stronę po raz pierwszy. Takie zachowanie nie satysfakcjonuje wydawców, dlatego aktywnie wykorzystywali powiązaną z FileSystem API lukę, aby wymusić wyłączenie trybu incognito w celu kontynuacji przeglądania.
Źródło: opennet.ru
