Paranoja jako metoda pracy na przykładzie antycypowania zagrożeń w IT cz. 1
Maciej Lesiak
- 9 minut czytania - 1747 słówSpis treści
wstęp do serii artykułów o paranoicznej perspektywie jako metodzie pracy
Drogi Czytelniku, dzisiaj zaczynamy trochę nietypową serię. Nie jest to seria bezpośrednio dotycząca teorii spiskowych, choć z nimi powiązana poprzez paranoję i podejście paranoiczne. Temat jest obszerny, dlatego w dzisiejszym wpisie chciałbym przybliżyć, o co chodzi w tej kontrolowanej paranoi oraz pokazać walory metody, jej zagrożenia i sposoby kontroli.
Zabieram was zatem w obiecywaną od dawna wycieczkę i świat, który potrafi tworzyć nie tylko nadinterpretacje i fałszywe tropy, ale również, jak pokażę w pierwszym z serii artykułów może stanowić, przy spełnieniu pewnych warunków, metodę pracy.
Na początku chciałbym powiedzieć, że temat dzisiejszego artykułu spadł mi z nieba, ponieważ nie jestem z branży zajmującej się profesjonalnie cyberbezpieczeństwem (wiem co to wirus), to podejście pod dzisiejszy problem pozwolił mi otworzyć się na kwestie jakie chciałem poruszyć w zrozumiały również dla laika sposób. Mam nadzieję, że będzie to dla was interesująca lektura.
Dlaczego WhatsApp, czemu się czepiasz tej aplikacji?
Kilka słów wyjaśnienia. Moje zainteresowanie WhatsAppem wynika z tego, że amatorsko zajmuję się miejskim aktywizmem. Zauważyłem, że aplikacja META jest bardzo popularna wśród aktywistów do wymiany myśli i dokumentów, co uważam za problem. Powstał więc ten artykuł, z troski o użytkowników i ich błędne przekonanie o bezpieczeństwie, jakie ta aplikacja rzekomo zapewnia.
2FA, które nie jest 2FA - wyjaśnienie techniczne problemu
2FA, czyli weryfikacja dwuetapowa, to popularna metoda zabezpieczania kont, która wymaga dodatkowego PINu lub tokenu w celu weryfikacji tożsamości. Do niedawna myślałem, że korzystam z 2FA w WhatsAppie…
Ekran Ustawień WhatsApp z ustawieniem "weryfikacja dwuetapowa"
Zostałem zaalarmowany nietypowym zachowaniem WhatsApp, która miała ustawione u mnie opcję KONTO > WERYFIKACJA DWUETAPOWA. Zazwyczaj takie ustawienie bazując na moim doświadczeniu nakłada warstwę zabezpieczenia pozwalającego zabezpieczyć konto albo dostęp do aplikacji przed nieautoryzowanym dostępem. Nie czytając szczegółów aktywowałem tę funkcjonalność, nadałem PIN i każdorazowo, podkreślam dzieje się tak za każdym razem, aplikacja przy uruchomieniu albo wygaszeniu pyta mnie o PIN przed wpuszczeniem mnie dalej…
Aktywowana weryfikacja 2FA, która z opisu jak wynika jest czymś innym,
a powoduje blokowanie ekranu...
2FA w SIGNALU, z którego korzystam, jest lepiej udokumentowane i jaśniej przedstawiona funkcjonalność, gdzie PIN ma pomóc w przywróceniu konta i szyfrowaniu informacji w systemie Signal. Bez PINu nie przywrócimy backupów. Pozwala on też zablokować ponowny dostęp do rejestracji numeru telefonu w Signal. Nigdy jednak ten PIN nie służy do logowania, ponieważ do logowania służą metody wbudowane w Androida (PIN androida albo biometria). PIN Signal ustawiony do przywrócenia konta nie wygląda nigdy jak blokada ekranu aplikacji (nie blokuje dostępu do niej) i jest przypominany subtelnie nie wpływając na korzystanie z aplikacji. Wydaje się, że można to dobrze i przemyślanie wdrożyć.
Blokada, którą można odblokować bez warunków wstępnych
Zatem powracając do komunikatora META. Korzystając z WhatsAppa każdorazowo pyta się ona o PIN wyświetlając typowe pole (patrz zrzut ekranu) blokujące korzystanie z aplikacji (per analogiam Signal robi to ale używając wbudowanych mechanizmów android). Wydawało mi się, że jest to blokada dostępu, ponieważ nie da się przejść dalej.
Natomiast jest to błędne mniemanie. Wyniki testów pokazały, że blokadę PIN w WhatsAppie można łatwo obejść poprzez udostępnianie linku z przeglądarki do kontaktu w aplikacji. Daje to pełny dostęp do historii czatu, bez potrzeby wpisywania PINu. Wysłanie wiadomości powoduje zablokowanie aplikacji i potrzebę wpisania PIN. Dziwne prawda? Czyli co, wygląda jak typowy PIN do blokowania aplikacji, żeby osoba nieuprawniona nie miała dostępu?
No właśnie nie.
Zgłoszenie błędu do META
Striggerowało mnie to przed poranną kawą do dalszych testów, które potwierdziły możliwość dostępu do aplikacji bez PINu. Natychmiast zgłosiłem problem do META, opisując dokładnie kroki, które do tego prowadzą to:
- zablokować WhatsApp PINem, można też uruchomić ponownie Androida, to wyzwoli na pewno potrzebę podania PIN przy uruchomieniu komunikatora.
sprawdzamy aplikację, że nie ma do niej dostępu bez PIN. na całym ekranie wielka prośba o PIN i pole do wpisania cyfr blokujące korzystanie.
otwieramy przeglądarkę, wybieramy udostępnienie, następnie system Android skorzysta z dostępnych metod udostępnienia korzystając z systemowych powiązań. Tutaj wybieramy aplikację WhatsApp i konkretny kontakt.
- Powoduje to otwarcie WhatsApp bez PINu z całą historią czatu. Można też bez podania PINu wpisać wiadomość i ją wysłać. Zrealizowanie tego powoduje… wysłanie i jednocześnie blokadę ekranu w celu wpisania PIN. Dziwne, prawda?
Dokładnie takiego buga ze szczegółowym opisem zgłosiłem zatroskany do META z informacją, że jest to obejście blokady PIN przy użyciu link sharing. Pełna specyfikacja techniczna. Po kilkunastu minutach prawdopodobnie AI odpisało mi, że potrzebuje dodatkowych informacji i wypełniłem odpowiednie formularze doprecyzowując sprawę. Po kolejnych nastu minutach dostałem odpowiedź META:
Thanks again for your submission. We occasionally ask people to enter their WhatsApp 2FA code on the mobile app to prevent people from forgetting their 2FA code. The challenge you are being presented with here is not a real 2FA verification but a challenge that helps people remember their 2FA code. This is also mentioned on the challenge itself as well as on our public FAQ section we have regarding WhatsApp 2FA which is linked below. Since this is not a security control, we don’t consider a bypass of such reminder challenges a valid security vulnerability. More info: https://faq.WhatsApp.com/general/verification/about-two-step-verification
zaawansowana metoda mnemotechniczna 2FA
Ku mojemu zdziwieniu wynika z odpowiedzi, że 2FA to nie jest zabezpieczenie (is not a real 2FA verification) tylko jakaś przypominajka. Wydało mi się to dziwne i poszedłem głębiej do króliczej nory. Czyli przeczytałem napisane drobnym drukiem objaśnienie w sekcji aktywowania 2FA jako zabezpieczenia, że to nie jest zabezpieczenie. Dodatkowo w sekcji FAQ przeczytałem, że to zabezpieczenie, nie jest zabezpieczeniem. To jest quasi mnemotechniczna metoda do przypominania użytkownikowi jego PINu, który jest po nic…rzekomo służy przy ponownej rejestracji telefonu. Pytanie zatem po co zasłania cały ekran każdorazowo udając zabezpieczenie aplikacji przed nieautoryzowanym dostępem?
istnieje możliwość wyłączenia 2FA bez podania PINu
Wykonałem wiele testów polegających na uruchamianiu aplikacji i każdorazowo miałem zapytanie o PIN. Jednocześnie bez problemu to obchodziłem i każda nawet nietechniczna osoba zrobiłaby to samo. Do tego nie potrzeba wielkich kompetencji. Oczywiście po otrzymaniu emaila od META zacząłem czytać ich regulaminy, co to jest za 2FA, które udaje 2FA i rzeczywiście okazuje się, że to wyjątkowa funkcja.
Gdy już pojąłem, że to jest spie** by design zacząłem się bliżej przyglądać procesowi i odkryłem, że w ekranie wpisywania PINu jest pytanie: “nie pamiętasz pinu?”. Kliknięcie tego odnośnika otwiera okno, które daje możliwość bez jakiejkolwiek weryfikacji wyłączenie PIN, funkcji nazwanej tutaj 2FA czy może zaawansowanej funkcji mnemotechnicznej. Możesz wyłączyć 2FA bez podania PINU po prostu w momencie pytania o PIN klikasz śmieszny guzik dezaktywujesz jakiś ficzer bezpieczeństwa. Moim zdaniem to żart z użytkownika. META ma poczycie humoru na poziomie Monty Pythona.
Ale nie bądźmy tacy surowi. Jest jedyna prawdziwa blokada chroniąca przed nieautoryzowanym dostępem, to aktywacja blokowania ekranu ukryta w sekcji PRYWATNOŚĆ, gdzie możemy włączyć blokadę ekranu przy pomocy biometrii patrz poniższy zrzutu ekranu.
Błędy UX/UI udawanie bezpieczeństwa i błędna dokumentacja
Pomimo, że META, jak i sama aplikacja (disclaimery), support, dokumentacja twierdzą, że nie ma problemu, to ja jak najbardziej twierdzę, że problem nadal istnieje, ponieważ by design sprawia wrażenie, że pełni rolę prawdziwej warstwy bezpieczeństwa, co nie jest zgodne z prawdą ani oczekiwaniami użytkowników.
Czyli jest to problem UX/UI i moim zdaniem błędnego opisu funkcji w sekcji KONTA korzystając z hasła 2FA “weryfikacja dwuetapowa” jako do funkcji, która takiego zadania nie spełnia. To nie jest żadna weryfikacja dwuetapowa i support META sam się do tego przyznaje w odpowiedzi na zgłoszenie “The challenge you are being presented with here is not a real 2FA verification but a challenge that helps people remember their 2FA code”!!!
Jednak to nie koniec, ponieważ dodatkowo błędy są w dokumentacji, gdzie opisane jest wadliwa metoda wyłączania sugerująca, że jest to doskonale zabezpieczone przed dezaktywacją. Nie jest. Można to wyłączyć korzystając ze śmiesznego odnośnika o którym napisałem powyżej.
Po co się męczymy z tym tematem i po co to piszę?
paranoiczne podejście jako antycypowanie zachowania użytkownika
Dzisiejszym wpisem chciałbym wam pokazać, że paranoiczne podejście, czyli antycypowanie zachowania użytkownika w ocenie aplikacji jest istotnym elementem w pracy i może przyczynić się do wzrostu bezpieczeństwa poprzez właśnie wyłapywanie błędów.
Obnażanie takich żenujących, dekoracyjnych zabezpieczeń, tworzenie rzeczywiście funkcjonalnych i stanowiących element dobrych praktyk całościowo przyczynia się do większej świadomości osoby nietechnicznej co uważam za kluczowy czynnik w dzisiejszym skomplikowanym cyber świecie. Zatem użycie słowa w sekcji KONTO dla weryfikacja dwuetapowa jest nieporozumieniem. Zwracam tutaj jednocześnie uwagę na fakt, że po raz kolejny warto czytać ze zrozumieniem regulaminy, ponieważ dekoracyjna funkcja bezpieczeństwa może być wprost obnażona w dokumentacji jako pseudo funkcjonalność o czym META pisze wprost i bez żenady.
Tym samym widzimy, że zasada ograniczonego zaufania, czyli kontrolowanej paranoi w ocenie zdarzeń pozwala nam na dostrzeżenie błędów i krytyczne podejście do tematu. Oczywiście moglibyśmy wziąć jakiś bardziej sexy temat na tapet, ale jak pisałem wcześniej jestem amatorem.
etap falsyfikacji, czyli jak sprawić, żeby paranoja nie zamieniła się w szaleństwo?
Oczywiście tak jak w analizie teorii spiskowych, literaturze czy wywiadzie operacyjnym paranoiczne podejście musi być pod kontrolą, ponieważ jeśli puścimy wodze fantazji, to po drugiej stronie króliczej nory czeka nas kraina szaleństwa. Widzimy wprost, że falsyfikacja następuje poprzez dokładne przeanalizowanie przypadku. Kontakt z osobami odpowiedzialnymi. Dodatkowo wprowadziłem kolegę, który zaoferował wsparcie w zakresie reprodukcji problemu na różnych urządzeniach i mieliśmy już wstępnie zaplanowane debugowanie. Bo to zawsze ciekawa sprawa i można się czegoś nauczyć… Oczywiście ten element nie został uruchomiony z powodu zrozumienia, że its fucked by design.
Chcesz wiedzieć więcej o krytycznym myśleniu w IT?
Temat paranoicznego podejścia jako metody pracy jest rozległy. Nie jestem specjalistą, ale mam wiele przemyśleń i przeczytanych materiałów na ten temat. Jeśli jesteś zainteresowany zachęcam do przeczytania i zainteresowania się zagadnieniami takimi jak threat modeling (źródło https://www.securing.pl/en/thinking-what-can-go-wrong-introduction-to-threat-modeling/) oraz doskonałego artykułu autorstwa Seana Gallaghera odpowiedzialnego za segment cyberbezpieczeństwa w Ars Technica:
But my paranoia is also based on a rational evaluation of what I might encounter in my day-to-day: it’s based on my threat model. źródło https://arstechnica.com/information-technology/2017/07/how-i-learned-to-stop-worrying-mostly-and-love-my-threat-model/
gdzie jak widzimy już na początku, że paranoja jest elementem racjonalnej strategii i właśnie dlatego, że jest pod kontrolą rozumu pomimo, że ma elementy myślenia poza schematami, stanowi doskonałą bazę antycypacji zagrożeń i zmniejszania zagrożeń w IT. To są proste artykuły doskonale rozszerzające i uzupełniające kwestie tutaj przedstawione. Jako amator polecam to innym amatorom.
W kolejnych częściach zajmę się paranoiczną interpretacją na przykładzie koncepcji semiologa Umberto Eco. Dlaczego paranoiczne interpretacje są podstawą teorii spiskowych. Omówimy jak kontrolowana paranoja jest używana w służbach specjalnych i kiedy kontrolowana pranoja wyrywa się rozumowi i jakie sa tego konsekwencje. Też na przykładzie szpiegomanii. Severski kilka razy mówił użył w wywiadach frazy kontrolowana paranoja w celu opisu pracy oficera wywiadu. Zapowiada się ciekawie.
Dziękuję za cierpliwość w oczekiwaniu na obiecane teksty…
źródła: https://faq.WhatsApp.com/general/verification/about-two-step-verification https://faq.WhatsApp.com/1920866721452534?helpref=faq_content https://faq.WhatsApp.com/2183055648554771/?helpref=hc_fnav
Powiązane tematy