Kisah saat terkena kerentanan weak keys Debian
- Pada Maret 2008, penulis bekerja di Engine Yard (EY)
- Saat itu EY membantu GitHub dengan menyediakan infrastruktur gratis
- Seiring GitHub bertumbuh, muncul masalah waktu login SSH yang menjadi lambat
- GitHub mengelola kunci SSH dengan menggunakan file
~/.ssh/authorized_keys, cara standar yang umum dipakai
- Saat pengguna terhubung, SSH membuka file ini dan melakukan pencarian linear untuk menemukan kunci yang cocok dengan kunci yang diajukan pengguna
- Biasanya ini tidak menjadi masalah karena jumlah kunci hanya sedikit, tetapi menjadi lambat ketika pengguna sangat banyak seperti di GitHub
Memutuskan memakai DB MySQL alih-alih file authorized_keys
- Setelah meninjau berbagai alternatif, diputuskan untuk mem-patch OpenSSH agar pencarian kunci dilakukan melalui DB MySQL
- Ini adalah keputusan yang diambil dengan hati-hati, dan banyak upaya dilakukan agar keamanan tidak terganggu
- Diterapkan pada awal April 2008 dan berhasil menyelesaikan masalah kecepatan login SSH
Hal aneh terjadi
- Sebulan kemudian, pada awal Mei, muncul masalah di mana sebagian pengguna bisa mengakses repositori pengguna lain lewat SSH
- Hasil penyelidikan menunjukkan bahwa pengguna yang berbeda memakai kunci dengan fingerprint yang sama
- Hal seperti ini tidak mungkin terjadi kecuali mereka berbagi kunci
- Para pengguna mengatakan mereka tidak saling mengenal dan tidak tahu bagaimana kunci itu bisa bocor
- Masalah yang sama juga ditemukan pada pasangan pengguna lain
- Satu-satunya kesamaan adalah semuanya menggunakan sistem Debian atau Ubuntu
Menemukan penyebabnya
- Pada 13 Mei 2008, semuanya menjadi jelas setelah DSA-1571-1 dipublikasikan
- Seorang maintainer Debian, saat merapikan kode pembangkitan bilangan acak di OpenSSL, secara keliru mengurangi jumlah kemungkinan kunci menjadi sekitar 32.000
- Banyak orang mendaftar ke GitHub dan, mengikuti praktik terbaik, membuat kunci baru, sehingga benturan pun terjadi
- Setelah itu, penulis semakin banyak terlibat dengan masalah ini, termasuk menggunakan kumpulan weak keys yang sudah diketahui untuk menemukan otoritas sertifikat yang bermasalah
Opini GN⁺
- Untuk menemukan kerentanan sepenting ini, dibutuhkan waktu dan energi untuk berpikir “ada yang aneh” lalu menyelidikinya dengan gigih. Biasanya orang tidak punya kelonggaran seperti itu, jadi perlu sedikit keberuntungan.
- Kebanyakan orang dikejar kesibukan sehari-hari sehingga sulit menggali sampai ke akar penyebab masalah. Mengembalikan ruang seperti ini ke industri kita adalah pekerjaan rumah yang penting.
- OpenSSL adalah salah satu library kriptografi yang paling luas digunakan, jadi dampak kerentanan seperti ini sangat besar. Di sini terlihat jelas sisi kuat sekaligus sisi lemah open source.
- Untuk mencegah kerentanan seperti ini, code review dan audit keamanan perlu diperkuat, dan perubahan pada bagian penting harus ditinjau dengan lebih hati-hati. Namun tidak ada metode yang sempurna.
- Meski begitu, open source tetap punya kelebihan karena para ahli bisa langsung menelaah kodenya dan menemukan masalah. Pada program tertutup, bahkan itu pun tidak mungkin dilakukan.
1 komentar
Komentar Hacker News
~/.ssh/authorized_keyspatauqbersama dengan menggunakan GCD juga merupakan episode yang menarik