70% các lỗ hổng Chrome liên quan đến lỗi bộ nhớ

V.N| 26/05/2020 12:22
Theo dõi ICTVietnam trên

Các kỹ sư phần mềm của Google đang xem xét những cách thức để loại bỏ các lỗi bắt nguồn từ bộ nhớ khỏi Chrome.

Các kỹ sư của Google vừa cho biết: Khoảng 70% các lỗi bảo mật nghiêm trọng trong cơ sở mã Chrome là các lỗi liên quan đến quản lý bộ nhớ và an toàn. Một nửa trong đó là các lỗ 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), một vấn đề bảo mật phát sinh từ việc quản lýcác con trỏ bộ nhớ (cácđịa chỉ) không chính xác. Điều này cho phép tin tặc thựchiện tấncông vào các cấu phn bên trong của Chrome.

70% các lỗ hổng Chrome liên quan đến lỗi bộ nhớ - Ảnh 1.

Ảnh: Google

Những con số trên được đưa ra sau khi các kỹ sư của Google phân tích 912 lỗi bảo mật được vá trong các phiên bản Chrome khác nhau kể từ năm 2015. Các lỗi được đánh giá có mức độ nghiêm trọng "cao" hoặc "nghiêm trọng".

Số liệu này tương tự với số liệu thống kê đãtừng được Microsoftchia sẻ. Thôngtin tại một hội thảo bảo mật vào tháng 2/2019, các kỹ sư của Microsoft cho biết trong 12 năm qua, khoảng 70% các bản cập nhật bảo mật cho các sản phẩm của Microsoft làđể xử lý các lỗ hổng liênquan đến bộ nhớ.

Các vấn đề về quản lý bộ nhớ

Về cơ bản, cả hai công ty Microsoft và Google đều xử lý cùng một vấn đề, cụ thể là C và C ++, hai ngôn ngữ lập trình chiếm ưu thế trong các cơ sở mã của hai công ty và là các ngôn ngữ "không an toàn".

Đây là những công cụ lập trìnhcũ, đã có từ nhiều thập kỷ trước, khi đó khai thác bảo mật và tấn công mạng không phải là các mối đe dọa có liên quan và không nằm trong suy nghĩ của hầu hết các nhà phát triển phần mềm. Do đó, cả haingôn ngữ C và C ++ đều cho phép các lập trình viên có toàn quyền kiểm soát cách họ quản lý các con trỏ bộ nhớ (địa chỉ) của ứng dụng và không có cảnh báo khi các nhà phát triển mắc lỗi quản lý bộ nhớ cơ bản.

70% các lỗ hổng Chrome liên quan đến lỗi bộ nhớ - Ảnh 2.

Kết quả dẫn đến cáclỗ hổng quản lý bộ nhớ xuấthiện trong các ứng dụng. Điều này bao gồm các lỗ hổng như bufferoverflow (tràn bộ đệm), racecondition (quá nhiều luồng truy cập vào dữ liệu/tài nguyên), use after free hoặc double free (cho phép thực thi mã từ xa nếu người dùng tương tác với nội dung độc hại), wild pointer (chưa được khởi tạo giá trị nào bởi lập trình viên, thậm chí chưa được gán kýtự rỗng - null)và nhiều lỗ hổng khác.

Các lỗ hổng này bị những kẻ tấn công tìm kiếm và khai thác nhiều nhất, vì chúng có thể cho phép tạo mã bên trong bộ nhớ của thiết bị và được thực hiện bởi các ứng dụng của nạn nhân (trình duyệt, máy chủ, hệ điều hành,…).

Trong một xếp hạng đãđược côngbố đầu nămnay, MITER Corporation, tổ chức quản lý cơ sở dữ liệu về lỗ hổng của chính phủ Mỹ, đã xếp hạng tràn bộ đệm là lỗ hổng nguy hiểm nhất, hai lỗhổng khác liên quan đến bộ nhớ cũng nằm trong top 10 lỗ hổng nguy hiểm nhất, đó là lỗ hổng out-of-bounds (vượt giới hạn)đứngthứ 5 và user-after-free (đứng thứ7).

Google xem xét xử lý các lỗ hổng bộ nhớ Chrome

Google cho biết kể từ tháng 3/2019, 125 trong số 130 lỗ hổng Chrome có mức độ "nghiêm trọng" là các vấn đềliên quan đến tràn bộ nhớ. Đây là một vấn đề lớn ở Google đến nỗi các kỹ sư của Chrome hiện phải tuân theo "Rule of Two.

Theo quy tắc này, bất cứ khi nào các kỹ sư viết một tính năng Chrome mới, mã của họ không được phá vỡ nhiều hơn hai trong số các điều kiện sau:Mã xử lý các đầu vào không đáng tin cậy, Mã vận hành không có "sandbox", Mã được viết bằng ngôn ngữ lập trình không an toàn (C/C ++).

70% các lỗ hổng Chrome liên quan đến lỗi bộ nhớ - Ảnh 3.

Ảnh: Google

Mặc dù các công ty phần mềm đã cố gắng khắc phục các vấn đề về quản lý bộ nhớ của C và C ++ trước đây, Mozilla là côngty tạo ra bước đột phá bằng cách tài trợ, quảng bá và áp dụng mạnh mẽ ngôn ngữ lập trình Rust trong Firefox. Ngày nay, Rust được coi là một trong những ngôn ngữ lập trình an toàn nhất và là sự thay thế lý tưởng cho C và C ++.

Nhưng Mozilla không phải là tổ chức duy nhất có đủ khả năng xử lý mã C và C ++ dễ bị lỗi.

Microsoft cũng đang đầu tư rất nhiều vào việc tìm kiếm các lựa chọn thay thế C và C ++. Từ dự án Checked C đầu tiên của mình, công ty hiện đang thử nghiệm Rust và đang xây dựng ngôn ngữ lập trình "an toàn" giống như Rust (một phần của Dự án bí mật Verona).

Phát biểu tại hội nghị nhà phát triển Build tuần qua, Microsoft cho biết hai dựán này đã thành công và công ty đã nỗlực sử dụng ngôn ngữ lập trình an toàn trong tương lai.

Tuần qua, Google cũng đã công bố các kế hoạch tương tự. Theo đó, công ty sẽ xem xét "giải quyết vấn đề mất an toàn bộ nhớ" cho Chrome, trình duyệt web phổ biến nhất hiện nay và được gần 70% người dùng Internetsử dụng.

Chrome đã đạt đỉnh thử nghiệm

Cho đến hiện tại, các kỹ sư phần mềm của Google vẫn là những người ủng hộ nhiệt tình cho phương pháp thử nghiệm "sandbox" trong Chrome. Họ đã tách biệt hàng chục quy trình để đưa vào thử nghiệm riêng và gần đây đã triển khai tính năng Site Isolation (tách trang web), một tính năng đưa tài nguyên của mỗi trang web vào quy trình sandobox của riêng mình.

Sắp tới, Google cho biết có kế hoạch xem xét phát triển các thư viện C ++ tùy chỉnh để sử dụng với cơ sở mã của Chrome, các thư viện có sự bảo vệ tốt hơn trước các lỗi liên quan đến bộ nhớ.

Nhà sản xuất trình duyệt nàycũng đang triểnkhai dự án MiraclePtr, nhằm mục đích biến "các lỗi use-after-free có thể khai thác thành các sự cố phi bảo mật với tácđộng hiệu suất, bộ nhớ, kích thước nhị phân vàtác độngổn định ở mức tối thiểu".

Và cuối cùng, nhưng không kém phần quan trọng, Google cũng cho biết đang có kế hoạch khám phá việc sử dụng các ngôn ngữ "an toàn", bao gồm Rust, Swift, JavaScript, Kotlin và Java.

Nổi bật Tạp chí Thông tin & Truyền thông
Đừng bỏ lỡ
70% các lỗ hổng Chrome liên quan đến lỗi bộ nhớ
POWERED BY ONECMS - A PRODUCT OF NEKO