Pencipta C++ mengkritik penerapan bahasa pemrograman yang aman

Bjarne Stroustrup, pencipta bahasa C++, telah menyampaikan keberatannya terhadap kesimpulan laporan NSA, yang merekomendasikan agar organisasi tidak lagi menggunakan bahasa pemrograman seperti C dan C++, yang menyerahkan pengelolaan memori kepada pengembang, demi kepentingan bahasa seperti C#, Go, Java, Ruby, Rust, dan Swift, yang menyediakan manajemen memori otomatis atau melakukan pemeriksaan keamanan memori pada waktu kompilasi.

Menurut Stroustrup, bahasa aman yang disebutkan dalam laporan NSA sebenarnya tidak lebih unggul dari C++ dalam aplikasi yang penting dari sudut pandangnya. Secara khusus, rekomendasi dasar untuk menggunakan C++ (Pedoman Inti C++), yang dikembangkan dalam beberapa tahun terakhir, mencakup metode pemrograman yang aman dan menentukan penggunaan alat yang menjamin pekerjaan yang aman dengan jenis dan sumber daya. Hal ini memberikan pilihan bagi pengembang yang tidak memerlukan jaminan keamanan yang ketat untuk terus menggunakan metode pengembangan lama.

Stroustrup percaya bahwa penganalisis statis yang baik yang mengikuti Pedoman Inti C++ dapat memberikan jaminan yang diperlukan untuk keamanan kode C++ dengan biaya yang jauh lebih rendah daripada bermigrasi ke bahasa pemrograman baru yang aman. Misalnya, sebagian besar Pedoman Inti sudah diterapkan di penganalisis statis dan profil keamanan memori yang disertakan dalam Microsoft Visual Studio. Beberapa rekomendasi juga diperhitungkan dalam penganalisis statis Clang rapi.

Laporan NSA juga dikritik karena hanya berfokus pada masalah memori, mengabaikan banyak masalah bahasa pemrograman lain yang mempengaruhi keamanan dan keandalan. Stroustrup memandang keamanan sebagai konsep yang lebih luas, berbagai aspeknya dapat dicapai dengan kombinasi gaya pengkodean, perpustakaan, dan penganalisis statis. Untuk mengontrol penyertaan aturan yang menjamin keamanan bekerja dengan jenis dan sumber daya, diusulkan untuk menggunakan anotasi dalam kode dan opsi kompiler.

Dalam aplikasi yang kinerjanya lebih penting daripada keamanan, pendekatan ini memungkinkan penerapan fitur selektif yang menjamin keamanan hanya jika diperlukan. Alat keamanan juga dapat diterapkan sedikit demi sedikit, seperti memulai dengan pemeriksaan jangkauan dan aturan inisialisasi, lalu secara bertahap mengadaptasi kode ke persyaratan yang lebih ketat.

Sumber: opennet.ru

Tambah komentar