SpStinet - vwpChiTiet

 

Hầu hết các lỗi bảo mật Chrome bắt nguồn từ mã bộ nhớ bị lỗi

Các nhà nghiên cứu của Google đã tiết lộ gần 3/4 các lỗi bảo mật trình duyệt Chrome xuất phát từ các vấn đề mã hóa bộ nhớ.

 

Các lỗ hổng mà Google đã chỉ ra bao gồm:

  • Race condition: máy tính cố gắng thực hiện đồng thời hai hoặc nhiều tác vụ, mà thực tế phải thực hiện theo trình tự.
  • Double free: lệnh giải phóng bộ nhớ được gọi nhiều lần với cùng một địa chỉ bộ nhớ, cấu trúc dữ liệu sẽ bị hỏng.
  • Use-after-free: cho phép kẻ xấu tấn công sau khi người dùng tương tác với phần mềm độc hại.
  • Wild pointers: con trỏ chưa được khởi tạo nhằm vào các địa chỉ ngẫu nhiên và khiến hệ thống hoạt động thất thường hoặc gặp sự cố.
  • Buffer overflow: dữ liệu vượt quá giới hạn cho phép tràn vào bộ đệm khác, làm hỏng hoặc xóa dữ liệu được lưu trữ ban đầu tại các vị trí đó.

Các kỹ sư của Google đã phân tích 912 lỗi bảo mật được đánh giá ở mức độ "cao" hoặc "nghiêm trọng"  kể từ năm 2015, cho thấy một nửa lỗi liên quan đến lỗ hổng use-after-free. Năm 2019 có 130 lỗi nghiêm trọng có liên quan đến các vấn đề về bộ nhớ. Đây là vấn đề lớn buộc các kỹ sư về Chrome phải tuân theo "Quy tắc 2" cho tất cả các tính năng mới của trình duyệt. Các đoạn mã (code) của họ không thể mắc nhiều hơn hai, trong số các lỗi sau:

  • Mã xử lý đầu vào không đáng tin cậy.
  • Mã được viết bằng ngôn ngữ lập trình không an toàn.
  • Mã vận hành không có sandbox (kỹ thuật cô lập các ứng dụng, ngăn chặn các phần mềm độc hại để chúng không thể làm hỏng hệ thống máy tính, hay cài cắm các mã độc nhằm ăn cắp thông tin cá nhân).

Nguyên nhân chính là Chrome sử dụng hai ngôn ngữ lập trình chính là C và C++. Đây là ngôn ngữ lập trình cũ có từ nhiều thập kỷ trước, không chú ý nhiều đến các vấn đề bảo mật. Không chỉ Chrome, mà hầu hết các trình duyệt khác như Microsoft Edge, Brave và Opera… cũng dựa vào lập trình C và mắc các lỗi tương tự. 

Các nhà nghiên cứu của Google cho biết, họ đang nghiên cứu về các thư viện C++ tùy chỉnh để giải quyết các vấn đề này, và cũng đang cân nhắc việc từ bỏ C và C++ để chuyển sang Rust hoặc các ngôn ngữ mã hóa an toàn hơn như JavaScript, Swift, Kotlin hoặc Java.

Diệu Huyền (CESTI) - Theo Techxplore.com

Các tin khác:

  • 10 mẫu tin
  • 50 mẫu tin
  • 100 mẫu tin
  • Tất cả