Menghilangkan akar kerentanan keamanan memori
Hasil yang tampak paradoks
- Ketika codebase yang ditulis dalam bahasa yang tidak aman terhadap memori terus bertambah, memindahkan pengembangan fitur baru ke bahasa yang aman terhadap memori dapat secara signifikan mengurangi kerentanan keamanan memori
- Ini karena kerentanan berkurang secara eksponensial seiring waktu
Penjelasan matematis
- Umur kerentanan mengikuti distribusi eksponensial
- Kerentanan terutama muncul pada kode baru, dan seiring waktu kode menjadi lebih aman
- Kepadatan kerentanan pada kode berusia 5 tahun 3,4 hingga 7,4 kali lebih rendah dibandingkan kode baru
Kasus nyata di Android
- Sejak 2019, tim Android mulai mengalihkan pengembangan baru ke bahasa yang aman terhadap memori
- Pada 2024, kerentanan keamanan memori turun dari 76% menjadi 24%
- Seiring menurunnya kerentanan keamanan memori, risiko keamanan secara keseluruhan juga menurun
Evolusi strategi keamanan memori
- Generasi 1: patch reaktif - pendekatan menemukan lalu memperbaiki kerentanan
- Generasi 2: mitigasi proaktif - pendekatan yang mempersulit eksploitasi kerentanan
- Generasi 3: penemuan kerentanan proaktif - pendekatan menemukan kerentanan lebih awal
- Generasi 4: pencegahan dengan keyakinan tinggi - pendekatan mencegah terjadinya kerentanan dengan beralih ke bahasa yang aman terhadap memori
Keunggulan pencegahan dengan keyakinan tinggi
- Memutus persaingan tanpa akhir antara pihak bertahan dan penyerang
- Meningkatkan keamanan dan menurunkan biaya melalui bahasa yang aman terhadap memori
- Meningkatkan ketepatan kode dan produktivitas pengembang
Dari pelajaran ke praktik
- Tidak perlu membuang atau menulis ulang seluruh kode lama yang tidak aman terhadap memori
- Mempercepat transisi ke bahasa yang aman terhadap memori dengan meningkatkan interoperabilitas
- Mengembangkan alat untuk meningkatkan interoperabilitas antara Rust dan C++, serta Rust dan Kotlin
Peran generasi sebelumnya
- Penggunaan mitigasi dan deteksi proaktif secara selektif
- Saat beralih ke kode yang aman terhadap memori, kebutuhan akan mitigasi dan deteksi berkurang
Kesimpulan
- Menggunakan bahasa yang aman terhadap memori untuk kode baru membuat kerentanan menurun secara eksponensial
- Lebih dari 6 tahun hasil yang konsisten di Android membuktikan efektivitas pendekatan ini
Ringkasan GN⁺
- Beralih ke bahasa yang aman terhadap memori penting untuk mengurangi kerentanan keamanan memori
- Dari kasus tim Android, terlihat bahwa kerentanan keamanan memori menurun secara signifikan
- Meningkatkan interoperabilitas lebih praktis daripada menulis ulang seluruh kode yang ada
- Menggunakan bahasa yang aman terhadap memori seperti Rust dapat meningkatkan keamanan dan produktivitas sekaligus
1 komentar
Komentar Hacker News