uBlock Origin: prywatność ważniejsza niż cudze (?) bezpieczeństwo
Coraz popularniejszy bloker reklam uBlock Origin okazał się byćnadgorliwy w swojej walce z tym, czego internauci nie chcą oglądać.Okazuje się, że blokuje on także działanie nowej technologiiContent Security Policy(CSP), pomyślanej jako sposób na ochronę przed atakami typuCross-site scripting (XSS). Przy włączonym rozszerzeniu,ostrzeżenie o hakerskim ataku było wygaszane.
19.10.2017 | aktual.: 24.10.2017 22:29
CSP pozwala właścicielom stron internetowych na narzucenieograniczeń w ładowaniu skryptów i innych zasobów, które mogąbyć na nich uruchamiane. Można np. stworzyć białą listędopuszczalnych skryptów albo zakazać ładowania zasobów pozaHTTPS. W ten sposób można powstrzymać próby wstrzyknięciazłośliwego JavaScriptu, a jeśli odpowiednio skonfigurowaćpolityki i przygotować serwer, to informacja o ataku zostanieautomatycznie przesłana do administratora strony. Najlepszą chybadokumentację korzystania z tej technologii przygotowała Mozilla.
Niestety jednak to raportowanie o ataku jest neutralizowane przezantyreklamowe rozszerzenie, zarówno w Chrome jak i Firefoksie.Odkrył to badacz Scott Helme, który na trackerzebłędów uBlocka skarży się, że ma taką politykęraportowania skonfigurowaną na swojej stronie, jednak uBlockwszystkie raporty CSP blokuje.
Okazuje się, że to nie błąd, lecz celowe zamierzeniedewelopera uBlocka, Raymonda Hilla. Założył on sobie, że raportyCSP będą blokowane w razie wstrzyknięcia wysterylizowanego skryptuw stronę. Takie właśnie wysterylizowane skrypty używane są przezrozszerzenie, by zminimalizować ryzyko zepsucia strony wskutekzablokowania oryginalnego skryptu.
To właśnie działo się na stronie Helme’a, gdziezneutralizowanym skryptem było Google Analytics. uBlock zakładałwięc, że to wstrzyknięty skrypt powodował raport CSP i blokowałgo. Nie z konieczności – jeśli ktoś stworzy sobie regułędopuszczającą takie Google Analytics, to raport CSP nie będziezablokowany.
Biorąc pod uwagę liczbę witryn korzystających z GoogleAnalytics i rosnącą popularność uBlock Origina, który już jestw tej samej lidze co AdBlock Plus, szerokie blokowanie raportów CSPw praktyce unieważnia tę technologię. Dlatego Helme wezwał dozaprzestania tak szerokiego blokowania. Skrypt Google’a może byćblokowany bez szkody dla wykrywania ataków XSS.
Podczas dyskusji (w trakcie której Helme usłyszał różnerzeczy na swój temat) wyszło, że rzeczywisty powód takiej decyzjiwiążesię z prywatnością. Twórca uBlock Origina uważa, że raportyCSP mogą naruszać prywatność użytkowników, wysyłając dane naserwer operatora witryny. Owszem, pomoże to mu rozwiązać jegoproblemy, ale nie pomaga w rozwiązaniu problemów użytkownika.Tymczasem uBlock Origin działa w imieniu użytkowników,neutralizuje Google Analytics by uniemożliwić śledzenie ludzi wsieci. Raporty CSP mogłyby tymczasem doprowadzić do wycieku danych.
Helme nie daje się przekonać.Utrzymuje, że takie uniwersalne blokowanie wszystkich raportów oincydentach bezpieczeństwa jest szkodliwe, a nawet niebezpieczne.Opowieści o naruszeniach prywatności brzmią nieprzekonująco,wysłanie takiego raportu niczym się pod tym względem nie różniod pobrania obrazka, skryptu czy arkusza stylów z sieci CDN. Typowyużytkownik nie ma zresztą też nawet pojęcia o istnieniu CSP, więcsugerowanie, by ręcznie dopuszczać skrypty nie ma sensu.
Sprawa wywołała dyskusję wmediach społecznościowych. Czy raportowanie CSP jest mechanizmembezpieczeństwa dla użytkownika? Czy użytkownik jest odpowiedzialnyza zgłaszanie problemów z witryną? Czy rozszerzenie zaprojektowanedo zwiększania bezpieczeństwa i prywatności możepsuć inne mechanizmy bezpieczeństwa? Na te pytania nie majednoznacznej odpowiedzi, tym bardziej że CSP można nadużyć dośledzenia użytkowników. Na te pytania nie widaćjednoznacznej odpowiedzi. Na razie Hill obiecał że przemyślisprawę, czy nie dałoby się zrobić tak, by CSP blokował tylko teraporty CSP, które są wynikiem działania uBlocka Origin. Takierozwiązanie jest obecnie testowane w kanale deweloperskimrozszerzenia, wraz z przełącznikiem pozwalającym na selektywne (wodniesieniu do witryn) i globalne blokowanie Content Security Policy.