Kantor Direktur Cyber Nasional (ONCD) baru-baru ini merilis laporan baru, “Back to the Building Blocks: A Path Toward Secure and Measurable Software.” Laporan ini adalah salah satu pengumuman besar pertama dari direktur ONCD baru Harry Coker dan membuat alasan kuat untuk mengadopsi bahasa pemrograman yang aman untuk memori.
Fokus baru ini berasal dari tujuan menyeimbangkan kembali tanggung jawab keamanan siber dan menyelaraskan kembali insentif demi investasi keamanan siber jangka panjang. Bahasa pemrograman yang aman untuk memori juga dimasukkan sebagai tujuan dari Inisiatif Keamanan Perangkat Lunak Sumber Terbuka (OS3I), yang baru-baru ini merilis laporan baru.
Bug memori terjadi ketika seorang programmer menulis kode yang menyebabkan masalah terkait dengan akses memori. Bug umum terjadi dengan buffer overflow dan pointer menggantung. Dengan menggunakan bahasa pemrograman yang aman untuk memori seperti Rust, Go, Java, Swift dan Python, pengembang tidak dapat membuat kode yang menyebabkan bug memori karena bahasa tersebut mencakup properti tertentu seperti keamanan memori atau tipe. Ketika pengembang menulis kode dalam bahasa yang tidak aman memori seperti C dan C ++, mereka dapat secara tidak sengaja menulis kode yang dapat menyebabkan kesalahan akses memori. Daripada menangkap kesalahan selama waktu kompilasi dan waktu proses, seperti halnya bahasa yang aman untuk memori, bug tersebut muncul di versi final dan menyebabkan masalah keamanan.
Sementara keamanan siber sering berfokus pada reaksi terhadap ancaman, mengurangi risiko dimulai dengan menciptakan praktik yang mengurangi kesalahan kode yang dapat menciptakan masalah keamanan. Google melaporkan bahwa 70% bug keamanan yang parah sebenarnya adalah masalah keamanan memori. Bahasa pemrograman yang banyak digunakan seperti C dan C ++ sering menjadi penyebab banyak masalah, terutama karena kesalahan pointer.
Menggunakan bahasa yang aman untuk memori secara signifikan mengurangi atau sepenuhnya menghilangkan kerentanan yang aman memori. Ini, pada gilirannya, mengurangi risiko keamanan siber dari kode akhir. Selain meningkatkan keamanan, bahasa yang aman untuk memori juga mengurangi crash dan memungkinkan pengembang untuk meningkatkan produktivitas karena mereka tidak perlu fokus pada masalah manajemen memori.
Buletin industri
Tetap terinformasi tentang tren industri yang paling penting—dan menarik—tentang AI, otomatisasi, data, dan di luarnya dengan buletin Think. Lihat Pernyataan Privasi IBM®.
Langganan Anda akan disediakan dalam bahasa Inggris. Anda akan menemukan tautan berhenti berlangganan di setiap buletin. Anda dapat mengelola langganan atau berhenti berlangganan di sini. Lihat Pernyataan Privasi IBM® kami untuk informasi lebih lanjut.
Mengurangi bug memori adalah masalah kompleks yang membutuhkan pendekatan multi-cabang. Laporan ini berfokus pada membuat organisasi fokus pada dua bidang spesifik yang terkait dengan bahasa yang aman untuk memori. Selain itu, pemerintah ingin fokus pada menciptakan kemitraan dengan komunitas teknis, terutama insinyur dan pengembang, untuk berkolaborasi dalam membuat perubahan kunci ini.
Berikut adalah dua tujuan utama yang diuraikan dalam lembar fakta yang dirilis bersama laporan:
Area serangan yang lebih kecil berarti risiko yang lebih rendah. Setiap baris kode yang menciptakan kerentanan sangat memperluas area permukaan serangan. Satu kesalahan yang menyebabkan kesalahan aman untuk memori dapat menciptakan sejumlah besar kerentanan. Laporan tersebut merekomendasikan penggunaan bahasa pemrograman yang aman untuk memori sebagai salah satu cara paling efektif untuk mengurangi permukaan serangan. Dengan bahasa-bahasa ini, programmer tidak dapat membuat kesalahan yang mengarah pada peningkatan permukaan serangan melalui bug memori.
Banyak organisasi tidak mampu menilai risiko secara akurat dalam perangkat lunak mereka karena menggunakan metrik pada perangkat lunak yang terus berubah merupakan hal yang sangat menantang. Sementara pengukuran perangkat lunak adalah tantangan yang kompleks, pergeseran dimulai dengan beralih dari reaktif menjadi proaktif. Dengan mengembangkan diagnostik yang lebih baik untuk kualitas keamanan siber, organisasi dapat mengidentifikasi dan secara proaktif memperbaiki risiko.
Meskipun mudah untuk mengatakan organisasi harus menggunakan bahasa yang aman untuk memori, kenyataannya adalah bahwa transisi ini rumit. Banyak program perangkat lunak dan pustaka didasarkan pada bahasa aman memori yang tidak aman, dan menulis ulang seluruh basis kode sering kali tidak layak.
Memulai proyek baru dengan bahasa pemrograman yang aman untuk memori, bila memungkinkan, adalah cara paling sederhana untuk memulai transisi. Organisasi juga dapat mengurangi permukaan serangan tanpa penulisan ulang total dengan menulis ulang hanya fungsi-fungsi penting dan pustaka yang paling berisiko terhadap bug yang aman untuk memori, yang sering menyertakan area dengan buffer overflow dan pointer menggantung. Beberapa bahasa yang aman untuk memori, seperti Rust dan Swift, dapat dioperasikan dengan C dan C ++, membuat pendekatan ini layak. Ketika mengambil pendekatan ini organisasi harus mengintegrasikan sistem pembangunan dan membangun abstraksi dalam bahasa baru untuk objek dan data bersama.
Namun, melakukan transisi ini membutuhkan sumber daya pengembang yang tepat. Organisasi harus mulai dengan mengevaluasi tim pengembang mereka saat ini untuk menentukan keahlian apa yang dimiliki tim saat ini dalam hal bahasa yang aman untuk memori. Langkah selanjutnya adalah melatih pengembang saat ini serta memastikan bahwa pengembang baru terampil dalam bahasa yang aman untuk memori.
Dengan meningkatnya fokus pada keamanan siber, banyak organisasi menyadari bahwa langkah terpenting adalah beralih dari pendekatan reaktif ke pendekatan proaktif. Dengan kembali ke awal dan berfokus pada pembuatan kode aman, organisasi dapat secara signifikan mengurangi risiko mereka. Meskipun prosesnya tidak sederhana atau cepat, manfaat dari perubahan ini sangat berarti dan bertahan lama.