
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ń:
- Konfiguracja bootloadera
- Modyfikacje sterowników
- Aplikacje TrustZone
- 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.