Google vạch ra lỗ hổng bảo mật trên Microsoft Edge

22/02/2018
Lo Hong3

Lo Hong3

Được biết, lỗi này Google đã báo cho bên Microsoft từ tháng 11/2017, thế nhưng công ty trụ sở Redmond vẫn chưa khắc phục được vấn đề sau 90 ngày.

Project Zero là đội đặc nhiệm an ninh mạng của Google được gã khổng lồ xứ Mountain View giao cho trọng trách tìm kiếm các lỗ hổng bảo mật trong phần mềm do chính họ hoặc các công ty khác phát triển. Hồi năm 2016, họ đã hé lộ một sơ hở nghiêm trọng trên Windows 10, cũng như một “lỗi trầm trọng” khác cũng trên hệ điều hành mới nhất dành cho PC của Microsoft trong năm ngoái.

Lo Hong

Giờ đây, biệt đội này đã vạch ra thêm một lổ hổng an ninh trên trình duyệt Microsoft Edge, sau khi ông lớn xứ Redmond liên tục thất bại trong việc vá lỗi.

Tháng 2/2017, Microsoft tuyên bố họ sẽ sử dụng Arbitrary Code Guard (ACG) trong Microsoft Edge với bản cập nhật Windows 10 Creators Update để giảm thiểu việc thực hiện mã độc hại.

Mặc dù vậy, hầu hết trình duyệt web hiện đại dựa vào trình biên dịch Just-in-Time (JIT), điều này tạo ra các vấn đề với ACG, buộc Microsoft phải chuyển đổi chức năng JIT của Chakra thành một trình riêng biệt chạy trong sandbox bị cô lập – “đây là một công việc không hề đơn giản,” công ty này cho biết.

Lo Hong1

Dành cho bạn đọc không rành, quá trình JIT của Microsoft có trách nhiệm biên dịch mã nguồn gốc của JavaScript, tạo đối tượng bản đồ được chia sẻ, tạo lập bản đồ cho xử lý nội dung và chuyển đến bộ nhớ. Sau đó khi các trang cần được ghi vào bộ nhớ, nó sẽ gọi hàm VirtualAllocEx() để phân bổ bộ nhớ ra khỏi khoảng trống mà nó dành riêng trong quá trình xử lý nội dung và gắn kết nó.

Vấn đề của kỹ thuật này nằm ở chỗ nếu nội dung được xử lý có thể đoán được địa chỉ mà quá trình JIT sẽ gọi hàm VirtualAllocaEx() tiếp theo ở đâu – điều này không phải là khó, theo các chuyên gia của Google cho biết, và nó bị kẻ xấu kiểm soát, thì nội dung được xử lý sẽ có thể:

– Xóa bản đồ bộ nhớ kia bằng cách sử dụng UnmapViewOfFile()

– Phân bổ một vùng bộ nhớ có thể bị ghi đè vào địa chỉ mà sever JIT sẽ ghi và ghi vào cả payload ở đó luôn.

Lo Hong2

Khi tiến trình JIT gọi VirtualAllocEx(), kể cả bộ nhớ đã được phân bổ, thì nó vẫn sẽ được thực hiện và chức năng bảo vệ bộ nhớ sẽ được cài đặt về PAGE-EXCUTE_READ.

Đây là một mối quan tâm về an ninh đáng kể, bởi các nhà nghiên cứu an ninh mạng của Google đã có thể vượt qua ACG và tạo ra một trang thực thi trong bộ nhớ.

Điều đáng nói là bug này chỉ được phân loại ở mức “Trung bình” và Google đã mách cho Microsoft từ hồi tháng 11/2017. Microsoft có trách nhiệm sửa lỗi này trong 90 ngày trước khi Google công bố nó một cách công khai.

Lo Hong3

Theo Trung tâm An ninh của Microsoft (MSRC), vấn đề lại phức tạp hơn họ tưởng nên họ đã được Google cho thêm 14 ngày. Thế nhưng họ vẫn không hoàn thành được việc khắc phục sự cố trong bản vá tháng 2 nên Google buộc phải công bố lỗi trên. Microsoft tự tin rằng họ sẽ giải quyết được nó trong cập nhật phần mềm tháng 3 – dự kiến sẽ ra mắt ngày 13/3.

Sưu tầm