Slack mengaku membocorkan kata sandi hash selama tiga bulan PlatoBlockchain Data Intelligence. Pencarian Vertikal. Ai.

Slack mengaku membocorkan kata sandi hash selama tiga bulan

Alat kolaborasi populer Slack (jangan bingung dengan julukan distro Linux yang paling lama berjalan di dunia, Slackware) baru saja memiliki SNAFU keamanan siber.

Menurut buletin berita berjudul Pemberitahuan tentang pengaturan ulang kata sandi Slack, perusahaan mengakui bahwa mereka secara tidak sengaja telah membagikan data pribadi secara berlebihan “ketika pengguna membuat atau mencabut tautan undangan bersama untuk ruang kerja mereka.”

Dari 2022-04-17 hingga 2022-07-17 (kami menganggap kedua tanggal termasuk), Slack mengatakan bahwa data yang dikirim ke penerima undangan tersebut termasuk…

…menunggu untuk itu…

…itu kata sandi hash pengirim.

Apa yang salah?

Penasihat keamanan Slack tidak menjelaskan pelanggaran dengan sangat jelas, hanya mengatakan itu “[t]sandi hashnya tidak terlihat oleh klien Slack mana pun; menemukannya diperlukan secara aktif memantau lalu lintas jaringan terenkripsi yang berasal dari server Slack.”

Kami menduga ini diterjemahkan sebagai berikut:

“Sebagian besar penerima tidak akan menyadari bahwa data yang mereka terima menyertakan informasi kata sandi hash, karena informasi itu, meskipun termasuk dalam paket jaringan yang dikirim, tidak pernah sengaja ditampilkan kepada mereka. Dan karena data dikirim melalui koneksi TLS, penyadap tidak akan bisa mengendusnya di sepanjang jalan, karena tidak akan didekripsi sampai mencapai ujung koneksi yang lain.”

Itu kabar baiknya.

Tetapi paket jaringan sering kali menyertakan data yang biasanya tidak pernah digunakan atau dilihat oleh penerima.

Header HTTP adalah contoh yang baik untuk hal ini, mengingat bahwa header tersebut dimaksudkan sebagai instruksi untuk browser Anda, bukan data untuk ditampilkan di halaman web yang Anda lihat.

Dan data yang tidak relevan atau tidak terlihat oleh pengguna sering kali berakhir di log, terutama di log firewall, yang dapat disimpan tanpa batas.

Itu kabar buruknya.

Garam, hash, dan regangkan…

Menurut Slack, data yang bocor tidak hanya hash, tapi asin juga, yang berarti bahwa setiap sandi pengguna pertama kali dicampur dengan data acak yang unik untuk pengguna tersebut sebelum fungsi hash diterapkan.

Hash pada dasarnya adalah fungsi matematika "tidak dapat dibalik" yang mudah dihitung dalam satu arah, tetapi tidak di arah lain.

Misalnya, mudah untuk menghitung bahwa:

  SHA256("DUCK") = 7FB376..DEAD4B3AF008

Tapi satu-satunya cara untuk bekerja "mundur" dari 7FB376..DEAD4B3AF008 untuk DUCK adalah untuk bekerja ke depan dari setiap kemungkinan kata dalam kamus dan lihat apakah ada di antara mereka yang keluar dengan nilai yang ingin Anda cocokkan:

  SHA256("AARDVARK") = 5A9394..467731D0526A [X] SHA256("AARON") = C4DDDE..12E4CFE7B4FD [X] SHA256("ABACUS") = BEDDD8..1FE4DE25AAD7 [X] . . . 3400 dilewati SHA256("BABBLE") = 70E837..CEAD4B1FA777 [X] SHA256("BADGER") = 946D0D..7B3073C1C094 [X] SHA256("BAGPIPE") = 359DBE..BE193FCCB111 [X] . . . 3200 dilewati SHA256("CABAL") = D78CF4..85BE02967565 [X] SHA256("CACHE") = C118F9..22F3269E7B32 [X] SHA256("CAGOULE") = 5EA530..5A26C5B56DCF [X] . . . 5400 dilewati SHA256("DAB") = BBCC8E..E8B98CAB5128 [X] SHA256("DAFFODIL") = 75121D..D6401AB24A98 [X] SHA256("BAHAYA") = 0BD727..4C86037BB065 [X] . . . 3500 dilewati SHA256("DUCK") =  7FB376..DEAD4B3AF008 [DITEMUKAN!]

Dan dengan menyertakan garam per pengguna, yang tidak perlu dirahasiakan, hanya unik untuk setiap pengguna, Anda memastikan bahwa meskipun dua pengguna memilih kata sandi yang sama, mereka tidak akan berakhir dengan hash kata sandi yang sama.

Anda dapat melihat efek pengasinan di sini, ketika kami meng-hash kata DUCK dengan tiga awalan yang berbeda:

  SHA256("RANDOM1-DUCK") = E355DB..349E669BB9A2 SHA256("RANDOM2-DUCK") = 13D538..FEA0DC6DBB5C <-- Mengubah hanya satu byte input menghasilkan hash yang sangat berbeda SHA256("ARXXQ3H-DUCK") = 52AD92. .544208A19449

Ini juga berarti bahwa penyerang tidak dapat membuat daftar kemungkinan hash yang telah dihitung sebelumnya, atau membuat tabel perhitungan hash parsial, yang dikenal sebagai meja pelangi, yang dapat mempercepat pemeriksaan hash. (Mereka membutuhkan daftar hash baru, atau satu set tabel pelangi yang unik, untuk setiap kemungkinan garam.)

Dengan kata lain, kata sandi hash-and-salted tidak dapat dengan mudah dipecahkan untuk memulihkan input asli, terutama jika kata sandi asli rumit dan dipilih secara acak.

Apa yang tidak dikatakan Slack adalah apakah mereka akan— membentang hash kata sandi juga, dan jika demikian, bagaimana caranya.

Peregangan adalah istilah jargon yang berarti mengulangi proses hashing kata sandi berulang kali, misalnya, 100,000 kali, untuk memperpanjang waktu yang diperlukan untuk mencoba sekumpulan kata kamus terhadap hash kata sandi yang diketahui.

Jika perlu satu detik untuk memasukkan 100,000 kata kamus melalui proses salt-and-hash yang sederhana, maka penyerang yang mengetahui hash kata sandi Anda dapat mencoba 6 juta kata dan turunan kamus yang berbeda setiap menit, atau mengambil lebih dari satu miliar tebakan setiap tiga jam .

Di sisi lain, jika perhitungan salt-and-hash diregangkan untuk masing-masing satu detik, maka penundaan satu detik ekstra ketika Anda mencoba masuk akan menyebabkan sedikit atau tidak ada gangguan bagi Anda…

…tetapi akan mengurangi penyerang menjadi hanya 3600 percobaan per jam, sehingga kecil kemungkinannya mereka akan mendapatkan cukup waktu untuk menebak apa pun kecuali kata sandi yang paling jelas.

Beberapa algoritma salt-hash-and-stretch yang terkenal dikenal, terutama PBKDF2, bcrypt, scrypt dan Argon2, yang semuanya dapat disesuaikan untuk menambah waktu yang dibutuhkan untuk mencoba tebakan kata sandi individu untuk mengurangi kelangsungan hidup dari apa yang disebut kamus dan serangan brute force.

A serangan kamus berarti Anda hanya mencoba kata sandi yang mungkin, seperti setiap kata yang dapat Anda pikirkan aardvark untuk zymurgy, lalu menyerah. SEBUAH serangan membabi buta berarti mencoba setiap masukan yang mungkin, bahkan yang aneh dan tidak dapat diucapkan, dari AAA..AAAA untuk ZZZ..ZZZZ (atau dari 0000..000000 untuk FFFF..FFFFFF jika Anda berpikir dalam istilah byte-by-byte heksadesimal).

Apa yang harus dilakukan?

Slack mengatakan itu tentang 1 dari 200 penggunanya (0.5%, mungkin berdasarkan catatan tentang berapa banyak tautan undangan bersama yang dihasilkan dalam periode bahaya), dan itu akan memaksa pengguna tersebut untuk mengatur ulang kata sandi mereka.

Beberapa saran lebih lanjut:

  • Jika Anda adalah pengguna Slack, Anda mungkin juga mengatur ulang kata sandi Anda meskipun Anda tidak diberi tahu oleh perusahaan untuk melakukannya. Ketika sebuah perusahaan mengakui bahwa mereka ceroboh dengan basis data kata sandinya dengan membocorkan hash, Anda mungkin juga berasumsi bahwa kata sandi Anda terpengaruh, meskipun perusahaan tersebut berpendapat bahwa hal tersebut tidak terjadi. Segera setelah Anda mengubah kata sandi, Anda membuat hash lama tidak berguna bagi penyerang.
  • Jika Anda tidak menggunakan pengelola kata sandi, pertimbangkan untuk mendapatkannya. Pengelola kata sandi membantu untuk pilih kata sandi yang tepat, sehingga memastikan bahwa kata sandi Anda berakhir sangat, sangat jauh di bawah daftar kata sandi yang mungkin bisa dibobol dalam insiden seperti ini. Penyerang biasanya tidak dapat melakukan serangan brute force yang sebenarnya, karena terlalu banyak kemungkinan kata sandi untuk dicoba. Jadi, mereka mencoba kata sandi yang paling mungkin terlebih dahulu, seperti kata-kata atau kombinasi kata-dan-angka yang jelas, menjadi lebih panjang dan lebih kompleks saat serangan berlanjut. Pengelola kata sandi dapat mengingat kata sandi acak 20 karakter semudah Anda mengingat nama kucing Anda.
  • Nyalakan 2FA jika Anda bisa. 2FA, atau otentikasi dua faktor, berarti Anda tidak hanya memerlukan kata sandi untuk masuk, tetapi juga kode satu kali yang berubah setiap saat. Kode-kode ini biasanya dikirim ke (atau dibuat oleh) ponsel Anda, dan masing-masing hanya valid untuk beberapa menit. Ini berarti bahwa bahkan jika penjahat cyber memecahkan kata sandi Anda, itu tidak cukup bagi mereka untuk mengambil alih akun Anda.
  • Pilih algoritme salt-hash-and-stretch yang memiliki reputasi baik saat menangani sendiri kata sandi.. Jika basis data kata sandi Anda dilanggar, Anda akan dapat memberikan detail yang tepat kepada pelanggan tentang algoritme dan pengaturan keamanan yang Anda gunakan. Ini akan membantu pengguna yang berpengetahuan luas untuk menilai sendiri seberapa besar kemungkinan hash curian mereka telah dipecahkan dalam waktu yang tersedia bagi penyerang sejauh ini.

Stempel Waktu:

Lebih dari Keamanan Telanjang