1 poin oleh GN⁺ 2023-11-18 | 1 komentar | Bagikan ke WhatsApp
  • UI reset kata sandi menampilkan sebagian nomor telepon untuk verifikasi akun, sehingga hanya dengan alamat email potongan nomor dapat dikumpulkan dari banyak layanan
  • Karena setiap layanan punya standar masking PII yang berbeda, menggabungkan digit yang terekspos dari eBay, Paypal, Yahoo, LastPass, Google, Facebook, Twitter, Hotmail, dan Steam dapat mengungkap sebagian besar nomor telepon 10 digit di AS
  • Dengan memakai data alokasi nomor publik dari NANPA dan National Pooling Administration, kandidat bisa dipangkas besar-besaran berdasarkan kode area, kode sentral, dan blok nomor pelanggan
  • Layanan seperti Amazon dan Twitter yang memulai reset kata sandi dengan nomor telepon lalu menampilkan sebagian email dapat dipakai untuk mencocokkan kandidat nomor yang tersisa dengan petunjuk email yang dimask
  • Kebocoran nomor telepon bisa berujung pada SIM swapping, serangan SS7, pembobolan voicemail, pelacakan lokasi, dan spoofing caller ID, sehingga lebih aman jika petunjuk pemulihan menampilkan label yang ditentukan pengguna alih-alih potongan PII

Kebocoran informasi yang dibuat oleh UI reset kata sandi

  • Prosedur reset kata sandi di banyak situs web menampilkan opsi pemulihan seperti tautan email, kode SMS, atau kode panggilan telepon setelah email dimasukkan
  • Saat menampilkan opsi SMS atau panggilan telepon, banyak UI mengekspos sebagian nomor telepon agar pengguna dapat mengenalinya
  • Jika mengetahui alamat email, seseorang bisa memulai alur reset kata sandi di beberapa akun untuk mendapatkan sebagian digit nomor telepon
  • Masalahnya adalah tidak ada cara standar untuk melakukan masking terhadap informasi identitas pribadi (PII) seperti nomor telepon, dan implementasinya diserahkan pada kebijakan pengembang layanan
  • Pada kasus Paypal, reset kata sandi menampilkan digit pertama dan empat digit terakhir, tetapi tantangan 2FA setelah login hanya menampilkan tiga digit terakhir
    • Bagi penyerang yang hanya tahu email, 5 dari 10 digit terekspos
    • Bagi penyerang yang tahu email dan kata sandi, hanya 3 digit yang terlihat

Perbedaan masking antar layanan dan efek penggabungannya

  • Prosedur reset kata sandi di berbagai situs populer dibandingkan untuk melihat apakah bisa dimulai hanya dengan email, apakah mendukung reset berbasis seluler, dan berapa digit yang terekspos
  • Pola eksposur berbeda-beda di tiap layanan
    • eBay: 3 digit depan dan 2 digit belakang
    • Paypal: digit pertama dan 4 digit belakang
    • Yahoo: digit pertama dan 2 digit belakang
    • LastPass: 4 digit belakang
    • Google, Facebook, Twitter, Hotmail, Steam: 2 digit belakang
  • Jika seseorang punya akun eBay dan LastPass, maka 7 digit dari nomor telepon 10 digit dapat diketahui hanya dari alamat email
  • Kombinasi ini saja sudah menurunkan ruang tebakan dari 1 miliar nomor menjadi 1.000

Memangkas kandidat dengan sistem nomor telepon AS

  • Nomor telepon AS, di luar kode negara, terdiri dari 3 bidang
    • kode area (area code atau NPA)
    • kode sentral (exchange atau Central Office Code)
    • nomor pelanggan (subscriber number)
  • Informasi yang diperoleh dari kombinasi eBay dan LastPass adalah kode area dan nomor pelanggan, sementara 3 digit yang hilang bukan angka acak, melainkan kode sentral
  • NANPA mengelola rencana penomoran jaringan telepon umum untuk Kanada, Amerika Serikat dan wilayahnya, serta beberapa negara Karibia
  • NANPA menyediakan daftar kode area dan kode sentral terkait sebagai data publik, yang bisa ditelusuri atau diunduh sebagai file untuk diparsing
  • Jika hanya menyisakan kode sentral yang benar-benar dialokasikan per kode area, jumlah kandidat akan berkurang
    • Untuk kode area 415 San Francisco, kemungkinan kode sentral bukan 1.000 melainkan 784, sehingga 216 dapat dieliminasi
    • Untuk kode area 907 Alaska, ada 625 kode sentral yang dialokasikan
    • Untuk kode area 253 Tacoma, ada 458 kode sentral yang dialokasikan, sehingga lebih dari setengah bisa dieliminasi

Memanfaatkan hingga blok nomor pelanggan

  • Kandidat dapat dipangkas lebih jauh bukan hanya berdasarkan kode area dan kode sentral, tetapi juga sebagian nomor pelanggan
  • National Pooling Administration mengelola pooling nomor dan menyediakan catatan publik tentang blok yang dialokasikan
  • Pooling nomor adalah metode pemberian nomor dalam blok 1.000 nomor, bukan 10.000, di wilayah yang bertumbuh
  • Misalnya, jika pada 415-272-XXXX hanya blok 415-272-9XXX yang dialokasikan, maka 415-272-[0-8]XXX dapat dieliminasi dan hanya 9XXX yang tersisa sebagai kandidat
  • Dengan cara ini, jumlah nomor valid yang mungkin turun dari 10.000 menjadi 1.000

Kandidat yang tersisa dan reset kata sandi terbalik

  • Jika target di wilayah Tacoma memiliki akun eBay dan LastPass, mula-mula 7 digit dapat dikumpulkan, lalu 542 kandidat dieliminasi lewat NANPA sehingga tersisa 458 kandidat
  • Dengan memeriksa alokasi blok melalui data National Pooling Administration, pada contoh ini kandidat nomor telepon yang mungkin turun menjadi 445
  • Untuk memangkas kandidat lebih jauh, dapat digunakan sumber data eksternal seperti mesin pencari, pipl, BeenVerified, Spokeo, atau layanan reverse lookup nomor telepon
  • Add-on Twilio milik WhitePages dapat memberikan informasi pribadi hanya dari nomor telepon dengan biaya 10 sen
  • Karena metode seperti ini tidak sepenuhnya dapat diandalkan, alur reset kata sandi yang sama digunakan kembali secara terbalik

Layanan yang memberi petunjuk email dari nomor telepon

  • Amazon dan Twitter memungkinkan reset kata sandi dimulai dengan memasukkan nomor telepon, lalu menampilkan sebagian alamat email tujuan pengiriman tautan reset
  • Amazon menampilkan huruf pertama dan terakhir nama pengguna serta seluruh domain, dan jumlah tanda bintang juga mengungkap panjang nama pengguna
  • Twitter menampilkan dua huruf pertama nama pengguna dan huruf pertama domain, dan jumlah tanda bintang menunjukkan panjangnya
  • Alur serangannya adalah sebagai berikut
    • Memulai reset kata sandi di beberapa situs dengan email target untuk mengumpulkan sebagian nomor telepon
    • Mengeliminasi kode area, kode sentral, dan blok nomor pelanggan yang tidak ada menggunakan data publik NANPA dan National Pooling Administration
    • Mencoba reset kata sandi dengan kandidat nomor telepon yang tersisa lalu mencocokkan karakter email yang dimask dengan email target
  • Dengan mengikuti prosedur ini, nomor telepon 10 digit yang terhubung ke alamat email dapat diperoleh tanpa pernah melakukan panggilan telepon

email2phonenumber dan phonerator

  • email2phonenumber adalah alat yang, setelah diberi sebagian nomor telepon, menghapus kode area dan kode sentral yang tidak ada untuk menghasilkan daftar nomor telepon valid yang mungkin
  • Alat ini memanfaatkan fitur reset kata sandi Amazon dan Twitter untuk memasukkan nomor telepon dan mencocokkan email termask yang ditampilkan dengan email yang dimasukkan
  • Parameter permintaan diacak, perilaku pengguna ditiru, dan penggunaan server proxy juga didukung
  • Selain Amazon dan Twitter, ada banyak layanan lain yang mendukung reset kata sandi berbasis nomor telepon, dan alat ini berencana menerima pull request untuk dukungan layanan tambahan
  • phonerator direncanakan sebagai layanan online yang mengumpulkan data sistem nomor telepon per negara untuk menghasilkan daftar nomor yang mungkin, dan kemudian dipublikasikan
    • Arah pengembangannya mencakup dukungan multinegara, detail yang lebih banyak, riwayat, dan filter lanjutan
    • Jika diketahui operator, wilayah, atau lama kepemilikan nomor, informasi itu bisa dipakai untuk memangkas kandidat lebih jauh

Masalah yang lebih besar di negara dengan nomor telepon pendek

  • Pembahasan berfokus pada nomor AS, tetapi pada sistem nomor telepon negara lain, masking yang sama bisa membocorkan lebih banyak informasi
  • Nomor ponsel Spanyol dimulai dengan 6, dan belakangan juga menggunakan 7, dengan panjang total 9 digit
  • Jika layanan seperti eBay atau LastPass tidak mengurangi jumlah digit yang ditampilkan untuk nomor yang lebih pendek, maka pada target di Spanyol, LastPass saja sudah dapat mengungkap 5 dari 9 digit
  • Di negara yang memakai nomor telepon 7 digit seperti Iceland, Estonia, dan San Salvador, 5 dari 7 digit pelanggan eBay dapat terekspos kepada orang yang hanya mengetahui email
  • Jika akun eBay dan LastPass digabungkan, di negara-negara ini seluruh nomor telepon dapat diperoleh hanya dari alamat email

Serangan yang dimungkinkan setelah nomor telepon didapat

  • Mengetahui nomor telepon dapat menjadi titik awal bagi berbagai serangan keamanan dan privasi
  • Vektor serangan yang mungkin antara lain
    • SIM swapping: memindahkan nomor ke SIM milik penyerang melalui rekayasa sosial, pemerasan, atau orang dalam di operator, lalu memakainya untuk reset kata sandi atau melewati 2FA
    • Serangan SS7: protokol lama yang digunakan untuk interaksi antaroperator dapat disalahgunakan untuk pelacakan lokasi atau penyadapan komunikasi, sebagaimana telah didemonstrasikan di berbagai konferensi keamanan
    • Serangan voicemail: pembobolan voicemail dapat memengaruhi keamanan akun
    • Pelacakan lokasi: masalah pelacakan lokasi berbasis nomor telepon telah dibahas secara terpisah
    • Spoofing caller ID: nomor penelepon dapat dipalsukan lewat layanan online untuk rekayasa sosial

Mitigasi yang diusulkan dan respons pengungkapan

  • Masking yang hanya menampilkan sebagian PII tidaklah cukup
  • Di negara dengan nomor telepon lebih pendek, jumlah digit masking yang sama membocorkan proporsi informasi yang lebih besar
  • Pada email pun, menyamarkan hanya nama pengguna tidak cukup, karena domain dapat mengungkap tempat kerja dan TLD dapat mengungkap status pelajar atau negara
  • Alternatifnya adalah membiarkan pengguna menetapkan label untuk email atau nomor telepon
    • Contoh: “personal email”, “work phone”
    • Petunjuk reset kata sandi menampilkan label, bukan potongan PII
  • Pengguna sebaiknya tidak memberikan nomor telepon jika tidak benar-benar perlu, dan bila perlu dapat mempertimbangkan nomor virtual seperti Google Voice atau SIM terpisah
  • Dalam proses responsible disclosure, layanan yang menampilkan lebih dari 2 digit atau mengekspos kode area maupun kode sentral dihubungi
    • LastPass memperbarui mask agar hanya menampilkan 2 digit terakhir
    • eBay diubah menjadi menampilkan digit pertama dan 2 digit terakhir, tetapi masih belum sepenuhnya aman
    • Yahoo saat itu sedang meninjau risiko dan mitigasinya
    • Paypal menganggap perilaku yang menampilkan 5 digit kepada orang yang hanya tahu email sebagai desain yang disengaja dan memutuskan untuk tidak mengambil tindakan

1 komentar

 
GN⁺ 2023-11-18
Pendapat Hacker News
  • Saya pernah membeli suku cadang mobil dari seseorang yang bisa dibilang agak mirip penipu; uangnya sudah ia terima selama berminggu-minggu, tetapi barang yang dipesan tidak semuanya dikirim
    Karena kami berbicara di beberapa platform, tiap platform sedikit demi sedikit mengungkap potongan identitasnya, dan setelah dicocokkan sana-sini, semuanya tersambung
    Saya menelepon tempat kerjanya, yang bergerak di industri yang sama dengan suku cadang yang ia jual, meminta agar suku cadangnya dikirim, dan sambil lalu bertanya apakah pemberi kerjanya juga terlibat dalam penjualan ini; sikapnya langsung berubah, dan keesokan harinya ia mengirim semua barang yang saya beli plus beberapa bonus

    • Setelah saya baca ulang, sepertinya bagian ketika saya menyebut pemberi kerjanya ditafsirkan sebagai kecurigaan bahwa ia mencuri suku cadang dari perusahaan, padahal bukan begitu
      Saya hanya butuh titik tekanan
  • Satu bagian yang terlewat dalam tulisan itu, khusus untuk AS, adalah basis data CNAM
    CNAM adalah basis data yang dipakai operator telekomunikasi untuk menampilkan caller ID berbentuk teks seperti "SMITH JOHN" alih-alih "+1 (555) 123-4567"
    Pencariannya tidak gratis, tetapi untuk beberapa ratus nomor seharusnya ada cara yang relatif murah, dan karena nama serta email sering kali mirip, kita juga bisa membuat algoritme untuk memilih kandidat yang paling masuk akal
    Datanya sering salah dengan cara yang menarik, tetapi tetap cukup berguna

    • Cukup panggil API lookup Twilio dengan curl
      /usr/local/bin/curl -s -X GET "https://lookups.twilio.com/v1/PhoneNumbers/…; -u $accountsid:$authtoken | /usr/local/bin/jq '.'
      Saya tidak ingat persis biayanya, tetapi mungkin sekitar 1 sen per lookup, dan juga menampilkan operator serta apakah nomornya ponsel atau telepon rumah
    • Setidaknya di layar pelanggan T-Mobile, nilai ini bisa diatur sesuka hati untuk tiap saluran [1]
      Saya sudah mengubah CNAM lalu memeriksanya dengan lookup nomor Twilio; secara prinsip harus memakai nama orang sungguhan, tetapi pada praktiknya ini sistem berbasis kejujuran
      [1] https://www.t-mobile.com/support/tutorials/device/app/ios/to...
      [2] https://www.twilio.com/code-exchange/lookup
    • Kalau memungkinkan, saya penasaran kenapa ini tidak dikaitkan dengan SSN seseorang
  • Saya memakai nama asli di alamat email, dan nomor telepon saya juga tersedia secara publik di beberapa direktori telepon
    Di Swedia, praktik standarnya adalah alamat dan nomor telepon dipublikasikan agar bisa dicari kecuali Anda secara terpisah menolaknya; informasi yang dulu ada di buku telepon tahun 80-an pada dasarnya berpindah online pada tahun 90-an
    Informasi pribadi publik seperti ini bisa berguna, tetapi juga bisa disalahgunakan
    Namun karena ada banyak PII publik seperti SSN, alamat, nomor telepon, dan tanggal lahir, orang justru tidak perlu memperlakukan informasi ini seperti rahasia, dan dibutuhkan kartu identitas serta eID yang benar agar mengetahui beberapa angka saja tidak membuat orang mudah menyamar sebagai orang lain
    Jika seseorang menginginkan nomor telepon saya, dengan email yang berisi nama depan dan nama belakang, ia bisa mencari 100 orang bernama sama di situs pencarian, lalu jika tahu kota dan perkiraan umur, kandidatnya bisa dipersempit menjadi beberapa orang saja
    Catatan publik bahkan menampilkan tanggal lahir, mobil, penghasilan, hingga orang yang terdaftar di alamat yang sama, jadi mengumpulkan informasi sumber terbuka di Swedia tidaklah sulit

  • Mengejutkan bahwa PayPal menampilkan angka 5 digit termasuk kode area kepada orang yang hanya tahu alamat email, sementara jika penyerang mengetahui kata sandi target, justru hanya 3 digit yang ditampilkan
    Aneh juga kalau ini dianggap “berfungsi sesuai rancangan” dan tidak ditangani
    Saya penasaran bagaimana para penipu mendapatkan nomor dari LinkedIn, atau bagaimana mereka mengaitkannya dengan nomor dari sumber lain; di salah satu perusahaan, para karyawan terus-menerus tertipu SMS CEO palsu

    • Saya baru sadar tulisan ini dari 2019, tetapi di PayPal, ini secara harfiah masih berfungsi sampai sekarang
    • Mungkin nomor telepon terlihat di profil, atau mereka melihat email lalu menemukan nomornya di platform lain seperti Facebook
  • Repotnya memakai alamat email dan nomor Google Voice yang berbeda untuk tiap layanan ternyata sepadan

    • Saya membuat generator email acak yang menggunakan fitur + Gmail untuk membuat alamat campuran
      Bagi layanan eksternal, alamat itu terlihat seperti gary+FqZWMK@gmail.com, sementara di kotak masuk saya FqZWMK diubah menjadi nama layanan seperti Netflix dan folder yang tertata dibuat secara otomatis
      Karena pemetaannya sepenuhnya saya kendalikan sendiri, saya juga bisa mengirim beberapa alamat acak ke kotak masuk “sekali pakai” yang otomatis diperlakukan sebagai spam setelah jangka waktu tertentu
    • Jika belum melakukan ini dan ingin solusi mudah, ada Firefox Relay
  • Untuk memakai SIM kedua, di AS masih diperlukan perangkat dual SIM yang relatif niche
    Nomor VoIP dicek dan diblokir oleh banyak situs, sementara di Android belum ada cara yang bagus untuk benar-benar mengirim dan menerima SMS operator dari desktop
    Antarmuka web Google Messages terlalu sering melupakan perangkat sehingga sulit dipakai serius, dan jika pemblokiran VoIP nanti ditambahkan, bisa muncul masalah ayam-dan-telur: autentikasi dua faktor lewat SMS ikut terblokir sehingga akun tidak bisa dipakai lagi
    Ada juga layanan seperti apotek Harris Teeter yang tidak memastikan apakah nomor tersebut benar-benar bisa dihubungi; nomor VoIP memang diterima, tetapi sistem tidak bisa menelepon atau mengirim SMS sehingga notifikasi resep tidak diterima

    • Jika Anda pengguna Linux, KDE Connect adalah antarmuka desktop terbaik untuk SMS dan lebih dari itu
      Ini mengubah cara ponsel dan laptop saling berinteraksi, dan mungkin merupakan proyek open source favorit saya secara pribadi
      Anda bisa memakai laptop seperti keyboard, membalas pesan dari aplikasi apa pun yang mengirim notifikasi, atau mengirim file lebih cepat dan lebih baik daripada cara lain mana pun
    • Pada akhirnya saya membeli SIM prabayar dan feature phone kecil untuk dipakai khusus autentikasi dua faktor
      Ukurannya seperti perangkat 2FA berupa kartu kode lama, dan awalnya dipicu oleh istri saya yang terus mengambil ponsel asli saya untuk menerima kode keamanan akun bersama
      Keamanan operasionalnya juga sedikit lebih baik daripada memakai nomor telepon asli
    • Atau cukup gunakan perangkat yang mendukung eSIM; setidaknya semua iPhone sejak 2018 termasuk di dalamnya
    • eBay tidak memblokir nomor Google Voice
      Dalam pengalaman saya, situs yang memblokirnya kira-kira hanya Discord
      Secara pribadi saya lebih suka memakai email khusus yang tidak terlalu mudah ditebak untuk setiap akun, seperti ebpnw@mydomain.com, sehingga penyerang juga harus menebak emailnya
    • Nomor Google Voice bisa terdeteksi bahkan jika nomor itu dipindahkan dari AT&T, dan Twilio API menandainya sebagai Google Voice
      iPhone dual SIM tersedia mulai iPhone XS, iPhone XS Max, dan iPhone XR
      Sumber: https://support.apple.com/en-us/HT209044
      Sudah ada 6 generasi iPhone dual SIM dengan setidaknya satu eSIM
  • Kebocoran informasi yang tidak terkoordinasi seperti ini adalah masalah yang lebih mendalam
    Banyak tempat membagikan empat digit terakhir SSN, padahal lima digit pertama dulu sering kali mudah ditebak dari tanggal lahir dan negara bagian kelahiran, dan angka di bagian awal menunjukkan negara bagian tempat nomor tersebut diterbitkan

    • Ini hanya berlaku untuk nomor yang diterbitkan sebelum 2011
      Sebagian besar orang dewasa saat ini memang termasuk, tetapi tetap perlu dibedakan
    • Masalah intinya adalah kita memiliki sistem yang benar-benar bodoh, di mana sekadar mengetahui angka sembilan digit saja bisa menimbulkan kerugian nyata
      Sistem ini sama sekali tidak mencegah pelacakan dan pengumpulan data oleh pemerintah maupun organisasi besar, tetapi setiap kali melakukan hal penting kita terus harus berurusan dengan sistem identitas nasional sementara secara de facto, tanpa satu pun manfaat dari sistem identitas nasional yang benar
      Ini menimbulkan penderitaan dan pemborosan waktu yang luar biasa tanpa alasan apa pun
    • Bagi banyak orang, empat digit terakhirnya secara harfiah adalah tahun kelahiran ibu mereka
  • Saya selalu bertanya-tanya bagaimana peneliti keamanan membenarkan publikasi alat otomatis pembuat nomor telepon dari email seperti tulisan blog ini
    Alat seperti ini kemungkinan besar punya jauh lebih banyak penggunaan buruk atau menyeramkan daripada penggunaan baik
    Saya bertanya-tanya apakah ini dianggap boleh karena “riset” dan toh berada di wilayah abu-abu, atau apakah mereka sudah berbicara dengan perusahaan yang membocorkan kerentanan dan merasa ini sudah dinetralkan sehingga tidak apa-apa

    • Menurut saya tujuan publikasi seperti ini adalah membuat perusahaan menutup celah agar data yang bocor dalam proses reset password berkurang
      Contoh bagusnya adalah Firesheep: cukup menjalankan plugin Firefox di Wi-Fi publik, Anda bisa langsung mengambil sesi pengguna di jaringan yang sama yang login lewat HTTP
      Saat itu Facebook secara default memakai HTTP, dan ketika plugin ini menjadi berita, tekanan membuat mereka mewajibkan HTTPS hampir dalam semalam, lalu banyak perusahaan ikut menyusul
      Tidak berlebihan untuk mengatakan bahwa publikasi ini sangat mempercepat adopsi HTTPS
      Saya tidak tahu apakah publikasi kali ini akan punya dampak sebesar itu, tetapi menurut saya lebih baik teknik seperti ini tidak hanya diketahui black hat
    • Ini mirip dengan media yang melaporkan artikel yang menimbulkan dampak negatif bagi sebagian pihak terkait
      Kita bisa menimbang, “apakah manfaat dari mempublikasikan informasi ini lebih besar daripada kerugiannya?”
      Berkat informasi yang dipublikasikan Martin Vigo pada 2019, saya bisa memberi tahu pemberi kerja dan klien saya sekarang tentang model ancaman tambahan yang perlu dipertimbangkan saat menentukan metode reset password
      Sebagai pembelaan, proof of concept yang awalnya dipublikasikan cukup terbatas bentuknya, membutuhkan akun Twilio sehingga ada hambatan masuk, dan jika dipakai untuk kejahatan juga meninggalkan petunjuk bagi analis
    • Ada dasar etis yang cukup kuat untuk mempublikasikan pengetahuan, tetapi menurut saya tidak demikian untuk mempublikasikan alat
      Rasanya sudah menjadi rahasia umum bahwa cukup banyak orang yang masuk ke dunia keamanan siber sebenarnya karena suka membobol keamanan dengan cara cerdik, bukan karena ingin membantu orang lain menjadi aman
      Namun riset keamanan itu legal, sedangkan meretas target acak itu ilegal
    • Saat meyakinkan manajemen bahwa postur keamanan perusahaan perlu diperbarui, jarang ada yang seefektif demo yang langsung bisa dijalankan
    • Pihak jahat sudah mengetahui teknik seperti ini dan banyak kerentanan lain, jadi menurut saya tidak masalah membuka aib industri ke publik agar mereka malu dan akhirnya bergerak
      Saat terjadi tindakan hukum, perusahaan juga jadi lebih sulit membela diri dengan mengatakan bahwa mereka tidak tahu