Ulat sa pag-audit ng privacy at seguridad ng Worldcoin orb

Mar 14, 2024 6 Minute Read

Ang proyekto ng Worldcoin ay itinatag sa isang pangako sa pagkapribado at seguridad. Bilang bahagi ng pangakong ito, ang kontribyutor ng proyekto na Tools for Humanity (TFH), kasama ang Worldcoin Foundation, ay kumuha ng mga respetadong eksperto sa seguridad mula sa Trail of Bits upang magsagawa ng isang espesyal na audit ng software ng orb. Bukod sa isang tipikal na pagsusuri ng seguridad, nakatutok ang Trail of Bits sa pagsusuri ng isang serye ng mga pag-aangkin sa privacy at functionality na may kaugnayan sa orb. 

Ang panghuling ulat ay magagamit dito.

Saklaw ng pagtatasa

Sinimulan ng Trail of Bits ang kanilang pagsusuri noong Agosto 14, 2023 sa isang bersyon ng software na nagyelo Hulyo 8, 2023 na may SemVer 3.0.10. Simula noong Marso 14, 2024, ang kasalukuyang bersyon ng software na naka-deploy sa mga orb ay 4.0.34 na may unang petsa ng paglabas noong Enero 17, 2024. 

Nagbigay ang TFH ng serye ng hindi kumpletong teknikal na pag-aangkin upang saklawin ang pagtutok sa layuning mapatunayan ang kanilang implementasyon. Ang mga pag-aangkin na ito ay nakatuon sa paglabas ng software ng bersyon na nagyelo noong Hulyo 8, 2023.

1. Para sa default na opt-out na paraan ng pag-signup, walang personal na impormasyong makikilala (PII) maliban sa iris code ang kinokolekta ng orb

  • Walang PII na isinusulat sa patuloy na imbakan sa orb
  • Walang PII maliban sa iris code ang umaalis sa orb (hal. iniupload)

2. Para sa non-default na opt-in na paraan ng pag-signup, secure na pinangangasiwaan ng orb ang PII

  • Ang tanging PII na nananatili sa device ay nasa SSD ng orb at asymmetrical na naka-encrypt*
  • Ang asymmetrical na naka-encrypt na PII na naka-imbak sa SSD ng orb ay hindi maaaring i-decrypt ng Orb

3. Hindi kinukuha ng Orb ang anumang sensitibong data mula sa device ng user

  • Ang tanging impormasyong kinokolekta ng orb mula sa telepono ng user ay nasa QR code.**

4. Ang iris code ng user ay secure na pinangangasiwaan

  • Ang iris code ng gumagamit ay hindi nakasulat sa persistent storage sa orb
  • Ang iris code ng gumagamit ay kasama lamang sa isang kahilingan sa backend ng orb ***
  • Ang iris code ay maaari lamang ipadala sa mga aprubadong server, at ang komunikasyon sa network ay end-to-end encrypted.

* Simula sa release na 4.0.XX, hindi na nagse-save ng anumang data ang orb sa SSD anuman ang opsiyon ng data custody.

** Sa orb software na bersyon 3.0.10 ang QR code ay naglalaman ng 128-bit UUID user_id at isang data_policy bool na kumakatawan sa pagpili ng user sa data custody, at isang opsyonal na DataCollectionConfig struct para sa panloob na paggamit. Sa bersyon ng software na 4.0.0 ang QR code ay binago upang isama ang isang cryptographic hash na kasama ang pampublikong susi ng user, na pinangalanang user_data_hash. Ang hash na ito ay ginagamit upang patotohanan na ang tamang pampublikong susi ay ginagamit kapag nag-eenkripta ng data sa aparato ng user. 

*** Sa bersyon ng software na 4.0.0, idadagdag ang bagong tampok na “Personal Custody” kung saan ang karagdagang kopya ng iris code at biometrics ay ienkripta ng direkta sa aparato ng user gamit ang pampublikong susi ng user.

Ang mga claim na ito ay higit pang pinuhin sa mga partikular na layunin na makukuha sa huling ulat sa koordinasyon ng Trail of Bits. Ang customer user-space applications ng orb sa Rust at ang Debian-based operating system nito ay tinukoy na nasa saklaw ng pagtatasa na ito, at ang mga sumusunod na bahagi ay hindi isinama bilang hindi naaangkop sa orihinal na mga claim:

  1. Bootloader configuration
  2. Driver modifications
  3. TrustZone Applications
  4. Secure element interface

Ang isang komprehensibong listahan ng mga target ay inilista sa huling ulat.

Mga Kinalabasan ng Pagtatasa

Tatlong consultant ang nagsagawa ng kabuuang anim na linggo ng pagsusuri sa engineering. Ang mga auditor ay binigyan ng buong access sa source code, kasama ang runtime access sa dalawang evaluation orbs. Habang inilalarawan ng ulat ang potensyal na mga surface ng atake (TOB-ORB-4 at TOB-ORB-5, TOB-ORB-10, at TOB-ORB-11), tinutukoy nila na “hindi nakakita ang aming pagsusuri ng mga kahinaang maaaring direktang mapagsamantalahan sa code ng Orb na may kaugnayan sa mga Layunin ng Proyekto na inilalarawan.” Dagdag pa rito, habang natukoy ng pagsusuri ng Trail of Bits ang ilang hindi kumpirmadong mga alalahanin na teoretikal na maaaring makaapekto sa mga layunin ng proyekto, at ang naapektuhang code ay na-update na, hindi nakilala ng audit ang anumang pagkakataon kung saan ang mga layunin ng proyekto ay direktang makokompromiso, alinman sa pamamagitan ng mga kilalang kahinaan o sa normal na operasyon.

Nagbigay ang mga auditor ng Trail of Bits ng mga ekspertong rekomendasyon para sa karagdagang pagpapalakas ng configuration ng kernel pati na rin mga tool at teknik para sa runtime software na makukuha nang mas detalyado sa pinal na ulat.

Pahayag 1: Default na opt-out na proseso ng pag-signup

Ang pagsusuri ay nagtatapos na ang configuration ng na-audit na bersyon ng software ay hindi napanatili, ni hindi nag-exfiltrate, ng PII maliban sa “iris code” mula sa orb. Nag-rekomenda ang Trail of Bits ng karagdagang mga pagbabago sa hardening configuration upang mapahusay ang “defense in depth” ng orb upang masiguro na ang mga susunod na pagbabago sa configuration o code ay hindi magdudulot ng aksidenteng pagtagas (finding TOB-ORB-1). 

Pahayag 2: Non-default na opt-in na proseso ng pag-signup

Sa mga kaso kung saan pinili ng mga gumagamit na mag-opt-in sa pangangalaga ng data, ini-encrypt ng orb nang asymmetrically ang PII gamit ang libsodium library sa isang one-way envelope* na konstruksyon na tinatawag na “sealed box.” Sa huling ulat, sinabi ng mga auditor “[h]indi kami nakakita ng anumang lugar kung saan ang PII ay nagpatuloy sa labas ng SSD ng Orb at/o hindi naka-encrypt” at nagwakas na “kapag na-encrypt na ang PII, ang nakalarawang mekanismo ay hindi pinapayagan ang Orb na i-decrypt ito.”

*Ang pinakabagong code ay hindi nagse-save ng data kahit alinman ang opsyon sa pangangalaga ng data, ngunit sa halip ay muling ginagamit itong encryption code para sa Personal Custody package gamit ang pampublikong susi ng user.

Pahayag 3: Ang orb ay hindi nagtatanggal ng karagdagang data mula sa device ng gumagamit

Kapag ang isang user ay unang nakipag-ugnayan sa isang orb upang magsagawa ng signup, isang QR code ang ipinapakita sa device ng user na ipoproseso ng orb. Sa kaugnay na code, hindi nakilala ng mga auditor ang anumang karagdagang data o impormasyong nakolekta mula sa device ng user ng orb. Gayunpaman, ang pagsusuri ay nag-highlight ng potensyal na isyu sa kaligtasan ng memorya (finding TOB-ORB-4 sa huling ulat) sa library na ginagamit upang i-scan ang QR code (ZBar). Bilang tugon, ang marupok na library ay pinalitan ng isang pure-Rust barcode scanning library, rxing.

Pahayag 4: Ang iris code ng gumagamit ay pinamamahalaan ng ligtas

Sinubukan ng mga auditor na patunayan ang mga claim na may kaugnayan sa kung paano hinahawakan at ipinapadala ang “iris code” sa backend. Ipinapahayag nila na “naniniwala kami na ang iris code ay hindi nasusulat sa persistent storage sa Orb at na ito ay kasama lamang sa isang request sa back end ng Orb,” at na “[b]agamat maaaring mapabuti ang configuration na ito upang gawing mas secure ito (TOB-ORB-10), hindi dapat posible para sa mga tipikal na umaatake na makuha ang iris code mula sa network traffic ng Orb; ang umaatake ay kailangang may kontrol sa isa sa mga trusted certificates.

Konklusyon

Ang buong ulat ng masusing pagsusuri ng Trail of Bits ay naglalaman ng lahat ng indibidwal na mga natuklasan at kanilang mga remedyo, kasama ang karagdagang pagsusuri ng mga pahayag. 

Ito ay hindi ang una, at hindi rin ito magiging huli, pagsisiyasat sa seguridad ng orb ng isang third-party, at ang karagdagang mga ulat ay ibabahagi sa komunidad sa oras na maging available ito. 

Maaari mong tulungan na panatilihing secure ang Worldcoin project sa pamamagitan ng pakikilahok sa Worldcoin bug bounty program. Ang karagdagang mahahalagang impormasyon tungkol sa proyekto ay makikita sa World protocol whitepaper.

Paunawa

Ang nilalaman sa itaas ay patungkol lamang sa petsang nakasaad. Maliban pa rito, napapailalim ito sa mga panganib, kawalan ng katiyakan at mga pagpapalagay, kaya't maaaring maging mali ito at maaaring magbago nang walang abiso. Ang buong paunawa ay makikita sa Mga Tuntunin ng Paggamit namin at ang Mahalagang Impormasyon para sa User ay makikita sa pahina ng Mga Panganib namin.

Ang impormasyon sa artikulong ito ay lampas na sa 12 buwan at maaaring kalabisan na. Mangyaring bisitahin ang world.org/blog para sa pinakabagong impormasyon tungkol sa proyekto.