Chính phủ Mỹ kêu gọi sử dụng các 'ngôn ngữ lập trình an toàn về bộ nhớ'

Languages that are not memory safe include C, C++, and assembly.

Văn phòng Giám đốc An ninh Mạng Quốc gia của Nhà Trắng (ONCD) trong một báo cáo mới đã kêu gọi các nhà phát triển sử dụng "ngôn ngữ lập trình an toàn về bộ nhớ".

Động thái này của chính phủ Mỹ là một phần của chiến lược An ninh mạng của Tổng thống Biden và là một bước đi để "bảo mật các khối xây dựng của không gian mạng".

An toàn về bộ nhớ đề cập đến việc bảo vệ khỏi các lỗi và lỗ hổng liên quan đến truy cập bộ nhớ như tràn bộ đệm và con trỏ treo.

Trong các ngôn ngữ lập trình phổ biến hiện này thì Java kiểm tra lỗi thời gian chạy của nó nên được coi là một ngôn ngữ lập trình an toàn về bộ nhớ. Trong khi đó, một số ngôn ngữ lập trình thiếu các đặc điểm liên quan đến an toàn bộ nhớ như C và C++. Báo cáo nêu C và C++ là "ngôn ngữ lập trình không an toàn".

Trong báo cáo của ONCD không nêu chi tiết những ngôn ngữ lập trình nào được coi là an toàn về bộ nhớ. Tuy nhiên, vào tháng 11 năm 2022, Cơ quan An ninh Quốc gia (NSA) đã phát hành một tờ thông tin an ninh mạng chi tiết về các ngôn ngữ lập trình được coi là an toàn về bộ nhớ.

Sau đây là các ngôn ngữ lập trình được khuyên dùng bởi NSA:

  • Rust
  • Go
  • C#
  • Java
  • Swift
  • JavaScript
  • Ruby

Các ngôn ngữ được NSA khuyên dùng ở trên đều nằm trong top 20 ngôn ngữ phổ biến nhất.

Ngôn ngữ lập trình được đề xuất phổ biến như thế nào? Kiểm tra chỉ số TIOBE, một chỉ số về sự phổ biến của ngôn ngữ lập trình, chúng ta thấy Python đứng ở vị trí số một. Trong số các tùy chọn ưa thích của NSA, C# đứng ở vị trí thứ năm, Java ở vị trí thứ tư, JavaScript ở vị trí thứ sáu và Go ở vị trí thứ tám. Đứng cuối cùng là Swift ở vị trí 16, Rust ở vị trí 18 và Ruby vừa vượt qua ở vị trí 20. Vậy ngôn ngữ được chọn của NSA đều nằm trong top 20, nhưng chỉ có bốn trong số bảy ngôn ngữ là "phổ biến" với các nhà phát triển.


Bảng chỉ số TIOBE cập nhật từ 2002–2022

Báo cáo cũng kêu gọi các biện pháp tốt hơn về an ninh phần mềm. ONCD tin rằng các số liệu tốt hơn cho phép các nhà cung cấp công nghệ lên kế hoạch, dự đoán và giảm thiểu các lỗ hổng trước khi chúng trở thành vấn đề.

Khi thế giới của chúng ta ngày càng trở nên số hóa, nhu cầu mã hóa tốt hơn trở nên quan trọng hơn. Mã xấu có thể được sử dụng với mục đích xấu để khai thác điểm yếu. Báo cáo nêu bật lỗ hổng Log4j từ tháng 12 năm 2021, trong đó thư viện ghi nhật ký Java nguồn mở, Log4j, đã bị khai thác thông qua lỗ hổng zero-day có tên Log4Shell.

Trong phần hai (trang 8), báo cáo nhắc lại nhiệm vụ Apollo 13, một nhiệm vụ mà NASA phân loại là một "thất bại thành công." Nhiệm vụ đã gặp phải một thất bại thảm họa khiến ba phi hành gia phải sửa chữa và giảm thiểu một số vấn đề để trở về nhà an toàn. Nhu cầu về mã an toàn về bộ nhớ cũng ảnh hưởng đến chương trình không gian, và báo cáo chi tiết rằng một ngôn ngữ an toàn về bộ nhớ, một ngôn ngữ càng gần với kernel càng tốt, nên được sử dụng để tránh một sự cố trong tương lai.

Báo cáo này là báo cáo mới nhất trong một loạt các bước đi được chính phủ Hoa Kỳ thực hiện. Vào tháng 3 năm 2023, Tổng thống Biden đã ký một sắc lệnh điều hành an ninh mạng nhằm khởi động các quy trình bảo mật phần mềm và phần cứng, đồng thời củng cố các mối quan hệ trong ngành công nghệ.

Category