Pada tahun 2020, Google mengidentifikasi bahwa lebih dari 70% bug keamanan parah pada browser Chrome sebenarnya disebabkan oleh masalah keamanan memori.
“Yaitu,” kata tim Chrome, “kesalahan pada pointer dalam bahasa C atau C++ yang menyebabkan memori disalahartikan.”
Pada tahun 2022, NSA mempertimbangkan keamanan memori dengan Neal Ziring, direktur teknis keamanan sibernya, mengatakan bahwa “Masalah manajemen memori telah dieksploitasi selama beberapa dekade dan masih terlalu umum hingga saat ini. Kita harus secara konsisten menggunakan bahasa yang aman untuk memori dan perlindungan lainnya ketika mengembangkan perangkat lunak untuk menghilangkan kelemahan ini dari pelaku siber yang jahat.”
Namun, itu bukanlah akhir dari permasalahannya. Bahasa pemrograman yang aman untuk memori terus menjadi sorotan. Pada bulan Februari tahun ini, Kantor Direktur Siber Nasional (ONCD) Gedung Putih AS mengeluarkan laporan yang menyarankan agar semua pemrogram harus beralih ke bahasa pemrograman yang aman untuk memori.
5 pekerjaan untuk ditemukan minggu ini
- Koordinator Keamanan Siber Prancis M/F, MBDA Prancis, Le Plessis-Robinson
- Ilmuwan Data (F/H), Novencia, Lyon
- Arsitek Perangkat Lunak, GDV Dienstleistungs-GmbH, Hamburg
- Pengembang Perangkat Lunak, InTraffic, Utrecht
- Arsitek Perangkat Lunak, Capgemini, Eindhoven
Laporan tersebut menunjukkan bahwa beban perlindungan ancaman keamanan siber saat ini dibebankan pada pengguna akhir, dan bahwa, “upaya harus dilakukan untuk secara proaktif menghilangkan seluruh kategori kerentanan perangkat lunak.”
Laporan tersebut menguraikan lebih lanjut, dengan mengatakan bahwa, “Para ahli telah mengidentifikasi beberapa bahasa pemrograman yang tidak memiliki ciri-ciri yang terkait dengan keamanan memori dan juga memiliki proliferasi yang tinggi di seluruh sistem penting, seperti C dan C++.”
Keamanan memori kini menjadi lebih penting dibandingkan sebelumnya, karena semakin banyak hal yang kita lakukan dilakukan secara online. Pandemi ini mempercepat adopsi e-niaga, pembayaran online, dan periklanan digital dengan cepat, menurut Forum Ekonomi Dunia.
Akibatnya, ada lebih banyak potensi kerentanan untuk dieksploitasi. Stack Overflow menunjukkan bahwa beberapa peristiwa kerentanan terbesar di masa lalu adalah masalah keamanan memori.
Ini termasuk Heartbleed tahun 2014, yang memengaruhi perangkat lunak OpenSSL yang memungkinkan pelaku jahat mencuri sertifikat X.509, nama pengguna dan kata sandi, pesan instan, dan email. Pada tahun 2017, serangan ransomware WannaCry mendapat perhatian besar ketika menyebar secara global, menginfeksi lebih dari 230.000 komputer.
Laporan Keamanan Konsumen dan Kejahatan Keuangan baru dari Revolut menunjukkan bahwa platform Meta sebagai sumber terbesar dari semua penipuan (62%) secara global selama paruh pertama tahun 2024. Revolut mengidentifikasi bahwa Facebook memiliki volume penipuan (39%) yang lebih dari dua kali lipatnya. WhatsApp (18%).
Membuat C++ aman
Bahasa yang aman untuk memori memang ada dan mencakup Rust, Go, Java, Swift, dan Python. C++ berada di bawah pengawasan khusus karena banyaknya kode penting yang telah ditulis di dalamnya.
Mengingat konteksnya, tidak mengejutkan jika komunitas C++ bereaksi, dengan mengumumkan proposal Safe C++ Extensions pada bulan September tahun ini. Pekerjaan ini dilakukan melalui C++ Alliance, dan presiden serta direktur eksekutifnya Vinnie Falco mengatakan bahwa ini adalah, “proposal revolusioner yang menambahkan fitur keamanan memori ke bahasa pemrograman C++.”
Falco menambahkan bahwa: “kebutuhan akan kode aman kini semakin mendesak. Dengan semakin pentingnya keamanan dan keandalan perangkat lunak, pengembang menghadapi tekanan yang semakin besar untuk mengadopsi praktik pengkodean yang lebih aman. Ekstensi Safe C++ bertujuan untuk memenuhi kebutuhan kritis ini dengan memperkenalkan fitur-fitur baru yang mencegah kesalahan umum terkait memori.”
Jadi apakah ini akan menyelesaikan masalahnya? Beberapa kritikus bersikap skeptis, dan pengembang dari C++ Alliance, Sean Baxter menunjukkan bahwa:
“Hanya ada satu bahasa tingkat sistem/pengumpulan non-sampah populer yang memberikan keamanan memori yang ketat. Itu bahasa Rust. Meskipun mereka bermain di ruang yang sama, C++ dan Rust memiliki desain yang berbeda dengan kemampuan interop yang terbatas, membuat migrasi tambahan dari C++ ke Rust menjadi proses yang melelahkan.”
Sejumlah tindakan disarankan untuk memastikan kode C++ berkinerja baik, termasuk melarang pengembang menulis operasi yang mungkin mengakibatkan perilaku keamanan seumur hidup, keamanan jenis, atau keamanan thread tidak terdefinisi.
Selain itu, ada tantangan lain, seperti yang dikatakan Baxter bahwa, “Meskipun mereka bermain di ruang yang sama, C++ dan Rust memiliki desain yang berbeda dengan kemampuan interop yang terbatas, membuat migrasi tambahan dari C++ ke Rust menjadi proses yang melelahkan.”
Memindahkan kode ke status aman memori akan sangat melelahkan dan memakan waktu, namun Badan Proyek Penelitian Lanjutan Pertahanan (DARPA) berupaya menjembatani kesenjangan ini dengan menggunakan AI. Ini sedang mengembangkan sarana konversi kode terprogram yang disebut TRACTOR (Menerjemahkan Semua C TO Rust).
Dikatakan bahwa, “tujuannya adalah untuk mencapai kualitas dan gaya yang sama dengan yang dihasilkan oleh pengembang Rust yang terampil, sehingga menghilangkan seluruh kelas kerentanan keamanan memori yang ada dalam program C.”
Siap untuk menemukan peran perangkat lunak Anda berikutnya? Lihat Papan Pekerjaan Web Berikutnya