Cha đẻ của C++ chỉ trích việc áp đặt ngôn ngữ lập trình an toàn

Bjarne Stroustrup, người tạo ra ngôn ngữ C++, đã công bố sự phản đối đối với kết luận của báo cáo NSA, trong đó khuyến nghị các tổ chức nên tránh xa các ngôn ngữ lập trình như C và C++, vốn giao việc quản lý bộ nhớ cho nhà phát triển, thay vào đó là các ngôn ngữ ​​chẳng hạn như C#, Go, Java, Ruby, Rust và Swift, cung cấp khả năng quản lý bộ nhớ tự động hoặc thực hiện kiểm tra an toàn bộ nhớ trong thời gian biên dịch.

Theo Stroustrup, các ngôn ngữ bảo mật được đề cập trong báo cáo của NSA trên thực tế không vượt trội hơn C++ trong các ứng dụng quan trọng theo quan điểm của ông. Đặc biệt, các khuyến nghị cơ bản về việc sử dụng C++ (Nguyên tắc cốt lõi của C++), được phát triển trong những năm gần đây, bao gồm các phương pháp lập trình an toàn và quy định việc sử dụng các công cụ đảm bảo làm việc an toàn với các loại và tài nguyên. Tuy nhiên, những nhà phát triển không yêu cầu đảm bảo bảo mật nghiêm ngặt như vậy sẽ có tùy chọn tiếp tục sử dụng các phương pháp phát triển cũ.

Stroustrup tin rằng một máy phân tích tĩnh tốt tuân theo Nguyên tắc cốt lõi của C++ có thể cung cấp những đảm bảo cần thiết cho sự an toàn của mã C++ với chi phí thấp hơn đáng kể so với việc chuyển sang các ngôn ngữ lập trình bảo mật mới. Ví dụ: hầu hết Nguyên tắc cốt lõi đều đã được triển khai trong hồ sơ an toàn bộ nhớ và máy phân tích tĩnh có trong Microsoft Visual Studio. Một số khuyến nghị cũng được tính đến trong máy phân tích tĩnh gọn gàng Clang.

Báo cáo của NSA cũng bị chỉ trích vì chỉ tập trung vào các vấn đề về bộ nhớ mà bỏ qua nhiều vấn đề về ngôn ngữ lập trình khác ảnh hưởng đến tính bảo mật và độ tin cậy. Stroustrup coi bảo mật là một khái niệm rộng hơn, có thể đạt được nhiều khía cạnh khác nhau bằng cách kết hợp phong cách mã hóa, thư viện và máy phân tích tĩnh. Để kiểm soát việc đưa vào các quy tắc đảm bảo an toàn khi làm việc với các loại và tài nguyên, người ta đề xuất sử dụng các chú thích trong các tùy chọn mã và trình biên dịch.

Trong các ứng dụng mà hiệu suất quan trọng hơn bảo mật, phương pháp này cho phép ứng dụng có chọn lọc các tính năng đảm bảo bảo mật chỉ ở những nơi cần thiết. Các công cụ bảo mật cũng có thể được áp dụng theo cách từng phần, chẳng hạn như bắt đầu bằng các quy tắc khởi tạo và kiểm tra phạm vi, sau đó dần dần điều chỉnh mã cho phù hợp với các yêu cầu nghiêm ngặt hơn.

Nguồn: opennet.ru

Thêm một lời nhận xét