Analis Menyambut Baik Saran NSA bagi Pengembang untuk Mengadopsi Bahasa yang Aman untuk Memori Kecerdasan Data PlatoBlockchain. Pencarian Vertikal. Ai.

Analis Menyambut Nasihat NSA untuk Pengembang untuk Mengadopsi Bahasa yang Aman untuk Memori

Analis keamanan menyambut baik rekomendasi dari Badan Keamanan Nasional AS (NSA) minggu lalu bagi pengembang perangkat lunak untuk mempertimbangkan mengadopsi bahasa seperti C#, Go, Java, Ruby, Rust, dan Swift untuk mengurangi kerentanan terkait memori dalam kode.

NSA menggambarkan ini sebagai bahasa "aman memori" yang mengelola memori secara otomatis sebagai bagian dari bahasa komputer. Mereka tidak bergantung pada pemrogram untuk mengimplementasikan keamanan memori dan sebagai gantinya menggunakan kombinasi waktu kompilasi dan pemeriksaan waktu berjalan untuk melindungi dari kesalahan memori, kata NSA.

Kasus untuk Bahasa yang Aman untuk Memori

Penasihat NSA yang agak tidak biasa pada 10 November menunjuk ke bahasa yang banyak digunakan seperti C dan C++ sebagai terlalu mengandalkan programmer tidak membuat kesalahan terkait memori, yang dicatat, terus menjadi penyebab utama kerentanan keamanan dalam perangkat lunak. Studi sebelumnya — satu demi satu Microsoft pada 2019 dan yang lain dari Google pada tahun 2020 terkait dengan browser Chrome-nya—misalnya, keduanya menemukan 70% kerentanan adalah masalah keamanan memori, kata NSA.

“Bahasa yang umum digunakan, seperti C dan C++, memberikan banyak kebebasan dan fleksibilitas dalam manajemen memori sambil sangat bergantung pada pemrogram untuk melakukan pemeriksaan yang diperlukan pada referensi memori,” kata NSA. Ini sering mengakibatkan kerentanan yang dapat dieksploitasi terkait dengan kesalahan sederhana seperti kesalahan buffer overflow, masalah alokasi memori, dan kondisi balapan.

C#, Go, Java, Ruby, Rust, Swift, dan bahasa lain yang aman untuk memori tidak sepenuhnya menghilangkan risiko masalah ini, kata NSA dalam nasihatnya. Sebagian besar dari mereka, misalnya, menyertakan setidaknya beberapa kelas atau fungsi yang aman non-memori dan memungkinkan pemrogram untuk melakukan fungsi manajemen memori yang berpotensi tidak aman. Bahasa yang aman untuk memori terkadang juga menyertakan pustaka yang ditulis dalam bahasa yang berisi fungsi memori yang berpotensi tidak aman.

Tetapi bahkan dengan peringatan ini, bahasa yang aman untuk memori dapat membantu mengurangi kerentanan dalam perangkat lunak akibat manajemen memori yang buruk dan ceroboh, kata NSA.

Tim Mackey, ahli strategi keamanan utama di Synopsys Cybersecurity Research Center, menyambut baik rekomendasi NSA. Faktanya, penggunaan bahasa yang aman untuk memori seharusnya menjadi default untuk sebagian besar aplikasi, katanya. “Untuk tujuan praktis, mengandalkan pengembang untuk fokus pada masalah manajemen memori alih-alih memprogram fitur baru yang keren merupakan pajak atas inovasi,” katanya. Dengan bahasa pemrograman yang aman untuk memori dan kerangka kerja terkait, penulis bahasalah yang memastikan manajemen memori yang tepat dan bukan pengembang aplikasi, kata Mackey.

Pergeseran Bisa Menantang

Menggeser lingkungan pengembangan perangkat lunak yang matang dari satu bahasa ke bahasa lain bisa jadi sulit, NSA mengakui. Pemrogram perlu mempelajari bahasa baru, dan kemungkinan besar akan ada kesalahan pemula dan peningkatan efisiensi selama proses tersebut. Tingkat keamanan memori yang tersedia juga dapat bervariasi secara signifikan berdasarkan bahasa. Beberapa mungkin hanya menawarkan keamanan memori minimal, sementara yang lain menawarkan perlindungan yang cukup besar seputar akses, alokasi, dan manajemen memori.

Selain itu, organisasi perlu mempertimbangkan seberapa besar pertukaran yang mereka bersedia lakukan antara keamanan dan kinerja. "Keamanan memori bisa mahal dalam kinerja dan fleksibilitas," NSA memperingatkan. “Untuk bahasa dengan tingkat perlindungan inheren yang ekstrem, pekerjaan yang cukup besar mungkin diperlukan untuk sekadar membuat program dikompilasi karena pemeriksaan dan perlindungan.”

Ada banyak sekali variabel yang berperan saat mencoba mem-porting aplikasi dari satu bahasa ke bahasa lain, kata Mike Parkin, insinyur teknis senior di Vulcan Cyber. “Dalam skenario kasus terbaik, pergeserannya sederhana, dan organisasi dapat melakukannya dengan relatif mudah,” kata Parkin. “Di pihak lain, aplikasi bergantung pada fitur-fitur yang sepele dalam bahasa aslinya tetapi membutuhkan pengembangan yang ekstensif dan mahal untuk dibuat ulang di bahasa baru.”

Penggunaan bahasa yang aman untuk memori juga tidak menggantikan kebutuhan untuk pengujian perangkat lunak yang tepat, Mackey memperingatkan. Hanya karena bahasa pemrograman aman untuk memori, bukan berarti bahasa atau aplikasi yang dikembangkan di dalamnya bebas dari bug.

Beralih dari satu bahasa pemrograman ke bahasa pemrograman lain adalah proposisi yang berisiko kecuali Anda memiliki staf yang sudah memahami bahasa lama dan baru, kata Mackey. “Migrasi seperti itu paling baik dilakukan saat aplikasi sedang melalui pembaruan versi utama; jika tidak, ada potensi bug yang tidak disengaja diperkenalkan sebagai bagian dari upaya migrasi, ”catatnya.

Mackey menyarankan agar organisasi mempertimbangkan untuk menggunakan layanan mikro saat harus mengubah bahasa. “Dengan arsitektur layanan mikro, aplikasi didekomposisi menjadi sekumpulan layanan yang dikemas dalam wadah,” kata Mackey. “Dari perspektif bahasa pemrograman, tidak ada yang mengharuskan setiap layanan mikro diprogram dalam bahasa pemrograman yang sama dengan layanan lain dalam aplikasi yang sama.”

Melakukan Pindah

Data terbaru dari Statista menunjukkan hal itu banyak pengembang sudah menggunakan bahasa yang dianggap aman memori. Hampir dua pertiga (65.6%), misalnya, menggunakan JavaScript, hampir setengah (48.06%) menggunakan Python, sepertiga menggunakan Java, dan hampir 28% menggunakan C#. Pada saat yang sama, sebagian besar masih menggunakan bahasa yang tidak aman seperti C++ (22.5%) dan C (19.25%).

“Saya pikir banyak organisasi telah beralih dari C/C++ tidak hanya untuk masalah keamanan memori, tetapi juga untuk kemudahan pengembangan dan pemeliharaan secara keseluruhan,” kata Johannes Ullrich, dekan penelitian di SANS Technology Institute. “Tapi masih akan ada basis kode lama yang harus dipertahankan selama bertahun-tahun yang akan datang.”

Penasihat NSA menawarkan sedikit wawasan tentang apa yang mungkin mendorong rekomendasinya pada saat ini. Namun John Bambenek, pemburu ancaman utama di Netenrich, menyarankan agar organisasi tidak mengabaikannya. “Kerentanan dan serangan memori telah meluas sejak 1990-an, jadi secara umum, ini saran yang bagus,” katanya. “Dengan demikian, karena ini berasal dari NSA, saya percaya saran ini harus menambah urgensi dan didorong oleh pengetahuan yang mereka miliki dan kami tidak.”

Stempel Waktu:

Lebih dari Bacaan gelap