Raport z audytu prywatności i bezpieczeństwa orbu Worldcoin

Mar 14, 2024 4 Minute Read

Projekt Worldcoin opiera się na zaangażowaniu w prywatność i bezpieczeństwo. W ramach tego zaangażowania, współtwórca projektu Tools for Humanity (TFH), we współpracy z Worldcoin Foundation, zaangażował szanowanych ekspertów ds. bezpieczeństwa z Trail of Bits w przeprowadzenie specjalistycznego audytu oprogramowania orb. Oprócz typowej oceny bezpieczeństwa, Trail of Bits skoncentrowała się na ocenie serii twierdzeń dotyczących prywatności i funkcjonalności związanych z orb. 

Końcowy raport jest dostępny tutaj.

Zakres oceny

Trail of Bits rozpoczęło swoją ocenę 14 sierpnia 2023 na wersji oprogramowania zamrożonej 8 lipca 2023 z SemVer 3.0.10. Na dzień 14 marca 2024, aktualna wersja oprogramowania wdrożona do orbs to 4.0.34 z datą pierwszego wydania 17 stycznia 2024. 

TFH dostarczyło serię niekompletnych twierdzeń technicznych w celu określenia zakresu zaangażowania w próbę walidacji ich wdrożenia. Twierdzenia te skierowane były na wydanie oprogramowania w wersji zamrożonej 8 lipca 2023.

1. Dla domyślnego trybu rezygnacji z rejestracji, żadna osobista informacja identyfikacyjna (PII) poza kodem tęczówki nie jest zbierana przez orb.

  • Żadne PII nie jest zapisywane w pamięci trwałej na orbie
  • Żadne PII poza kodem tęczówki nie opuszcza orba (np. przesłane)

2. W przypadku niedomyślnego przepływu rejestracyjnego z opcją opt-in, PII jest obsługiwane bezpiecznie przez orba

  • Jedynym PII przechowywanym na urządzeniu jest to na dysku SSD orba i jest asymetrycznie szyfrowane*
  • Asymetrycznie zaszyfrowane PII przechowywane na dysku SSD orba nie może być odszyfrowane przez orba

3. Orb nie wyciąga żadnych wrażliwych danych z urządzenia użytkownika

  • Jedyną informacją, którą orb zbiera z telefonu użytkownika, jest ta w kodzie QR.**

4. Kod tęczówki użytkownika jest obsługiwany bezpiecznie

  • Kod tęczówki użytkownika nie jest zapisywany w trwałej pamięci orb.
  • Kod tęczówki użytkownika jest uwzględniony tylko w pojedynczym żądaniu do zaplecza orb. ***
  • Kod tęczówki może być przesyłany tylko do zatwierdzonych serwerów, a komunikacja sieciowa jest szyfrowana end-to-end.

* Od wersji 4.0.XX orb nie zapisuje żadnych danych na dysku SSD, niezależnie od opcji przechowywania danych.

** W wersji oprogramowania orb 3.0.10 kod QR zawierał 128-bitowy UUID user_id i data_policy bool reprezentujący wybór przechowywania danych użytkownika oraz opcjonalny DataCollectionConfig struct do użytku wewnętrznego. W wersji oprogramowania 4.0.0 kod QR został zmodyfikowany w celu uwzględnienia haszu kryptograficznego, który obejmuje klucz publiczny użytkownika, nazwanego user_data_hash. Ten hasz jest używany do walidacji poprawnego klucza publicznego podczas szyfrowania danych na urządzenie użytkownika. 

*** W wersji oprogramowania 4.0.0 zostanie dodana nowa funkcja „Personal Custody”, w której dodatkowa kopia kodu tęczówki i biometrii zostanie zaszyfrowana bezpośrednio na urządzeniu użytkownika przy użyciu klucza publicznego użytkownika.

Te twierdzenia zostały dalej dopracowane i przekształcone w konkretne cele, dostępne w końcowym raporcie we współpracy z Trail of Bits. Aplikacje użytkowników przestrzeni użytkownika orb w języku Rust i jego system operacyjny oparty na Debianie zostały zdefiniowane jako objęte zakresem tej oceny, a następujące komponenty zostały wykluczone jako nie mające zastosowania do oryginalnych roszczeń:

  1. Konfiguracja bootloadera
  2. Modyfikacje sterowników
  3. Aplikacje TrustZone
  4. Interfejs elementu zabezpieczającego

Wyjątkowo szczegółowa lista celów jest wymieniona w końcowym raporcie.

Wyniki oceny

Trzech konsultantów wykonało w sumie sześć tygodni pracy inżynieryjnej. Audytorzy mieli pełny dostęp do kodu źródłowego oraz dostęp w czasie rzeczywistym do dwóch orb oceniających. Chociaż raport opisuje potencjalne powierzchnie ataku (TOB-ORB-4 i TOB-ORB-5, TOB-ORB-10, i TOB-ORB-11), dochodzą oni do wniosku, że “nasza analiza nie wykryła luk w kodzie Orba, które mogą być bezpośrednio wykorzystane w odniesieniu do celów projektu, jak opisano.” Ponadto, chociaż przegląd Trail of Bits zidentyfikował pewne niepotwierdzone obawy, które teoretycznie mogłyby wpłynąć na cele projektu, a kod został od tamtej pory zaktualizowany, audyt nie zidentyfikował żadnych przypadków, w których cele projektu byłyby bezpośrednio zagrożone, zarówno przez znane luki, jak i podczas normalnego wykonywania.

Audytorzy Trail of Bits dostarczyli eksperckie rekomendacje dotyczące dodatkowego wzmocnienia konfiguracji jądra, a także narzędzia i techniki dla oprogramowania uruchomieniowego, które są dostępne w bardziej szczegółowych informacjach w końcowym raporcie.

Twierdzenie 1: Domyślny mechanizm rezygnacji z rejestracji

Ocena kończy się stwierdzeniem, że konfiguracja audytowanej wersji oprogramowania nie zachowuje ani nie eksfiltruje PII poza „kodem tęczówki” z orba. Trail of Bits zalecił dodatkowe zmiany w konfiguracji mające na celu wzmocnienie „obrony w głąb"", aby upewnić się, że przyszłe zmiany w konfiguracji lub kodzie nie wprowadzają przypadkowych wycieków (znalezisko TOB-ORB-1). 

Twierdzenie 2: Niedomyślny mechanizm rejestracji z prośbą o zgodę

W przypadkach, gdy użytkownicy decydują się na opt-in do przechowywania danych, orb asymetrycznie szyfruje PII za pomocą biblioteki libsodium w jednostronnej konstrukcji* koperty zwanej „sealed box.” W końcowym raporcie audytorzy stwierdzają „[n]ie zidentyfikowaliśmy żadnych miejsc, w których PII jest przechowywane poza SSD Orba i/lub bez szyfrowania” oraz konkludują, że „gdy PII jest zaszyfrowane, opisany mechanizm nie pozwala Orbowi na jego odszyfrowanie.”

*Najnowszy kod w ogóle nie zapisuje danych, niezależnie od opcji przechowywania danych, lecz zamiast tego ponownie wykorzystuje ten kod szyfrujący dla pakietu Osobistego Przechowywania za pomocą klucza publicznego użytkownika.

Twierdzenie 3: Orb nie pobiera dodatkowych danych z urządzenia użytkownika

Kiedy użytkownik po raz pierwszy wchodzi w interakcję z orbem, aby się zarejestrować, na urządzeniu użytkownika wyświetla się kod QR, który jest przetwarzany przez orb. W odpowiednim kodzie audytorzy nie zidentyfikowali żadnych dodatkowych danych ani informacji zbieranych z urządzenia użytkownika przez orb. Ocena jednak podkreśliła potencjalne problemy z bezpieczeństwem pamięci (znalezisko TOB-ORB-4 w końcowym raporcie) z biblioteką używaną do skanowania kodu QR (ZBar). W odpowiedzi, podatna na zagrożenia biblioteka została zastąpiona czystą biblioteką do skanowania kodów kreskowych w języku Rust, rxing.

Twierdzenie 4: Kod tęczówki użytkownika jest traktowany bezpiecznie

Audytorzy próbowali zweryfikować twierdzenia dotyczące tego, jak obsługiwany jest "kod tęczówki" i jak jest on komunikowany do backendu. Zgłaszają, że “wierzymy, że kod tęczówki nie jest zapisywany w trwałej pamięci na Orbie i że jest zawarty tylko w pojedynczym żądaniu do zaplecza Orba,” i że “[c]hoć tę konfigurację można poprawić, aby była bardziej bezpieczna (TOB-ORB-10), typowi atakujący nie powinni być w stanie wyciągnąć kodu tęczówki z ruchu sieciowego Orba; atakujący musiałby mieć kontrolę nad jednym z zaufanych certyfikatów.

Wniosek

Pełny raport dokładnej analizy Trail of Bits zawiera wszystkie poszczególne ustalenia i ich remediacje oraz dodatkową analizę roszczeń. 

To nie była pierwsza, ani nie będzie ostatnia, zewnętrzna ocena bezpieczeństwa Orba i dodatkowe raporty będą udostępniane społeczności, gdy tylko będą dostępne. 

Możesz pomóc w zabezpieczeniu projektu Worldcoin, biorąc udział w programie wykrywania błędów Worldcoin. Dodatkowe ważne informacje dotyczące projektu są dostępne w białej księdze protokołu Worldcoin.

Zastrzeżenie

Powyższa treść obowiązuje wyłącznie we wskazanym czasie. Ponadto informacje te obarczone są ryzykiem, niepewnością i podlegają założeniom, przez co mogą być błędne i mogą ulec zmianie bez powiadomienia. Pełną treść zastrzeżenia można znaleźć w naszych Warunkach Użytkowania, a Ważne Informacje dla Użytkowników można znaleźć na naszej stronie Ryzyko.

Informacje w tym artykule mają ponad 12 miesięcy i mogą być nieaktualne. Wejdź na world.org/blog w celu uzyskania najnowszych informacji o projekcie.