Lỗ Hổng Cấu Hình AppLocker Microsoft: Nguy Cơ Bỏ Qua Kiểm Soát Ứng Dụng

Các nhà nghiên cứu bảo mật tại Varonis Threat Labs đã phát hiện một lỗ hổng tinh vi nhưng đáng kể trong tính năng bảo mật AppLocker của Microsoft, có khả năng cho phép các ứng dụng độc hại bỏ qua các hạn chế bảo mật đã thiết lập. Mặc dù không được phân loại là lỗ hổng nghiêm trọng, phát hiện này nêu bật những khoảng trống quan trọng trong cấu hình bảo mật doanh nghiệp mà các tổ chức cần giải quyết.

Tổng quan về AppLocker

AppLocker là giải pháp kiểm soát ứng dụng cấp doanh nghiệp của Microsoft, hoạt động như một “người gác cổng” kỹ thuật số xác định ứng dụng và tệp nào được phép thực thi trên hệ thống Windows. Các tổ chức tin cậy vào tính năng bảo mật này để ngăn chặn lây nhiễm phần mềm độc hại, duy trì tuân thủ quy định và kiểm soát việc cài đặt phần mềm trên toàn mạng lưới của họ.

Hệ thống này hoạt động bằng cách thực thi các quy tắc được định nghĩa trước, cho phép hoặc chặn các tệp thực thi, script và thư viện liên kết động (DLL) cụ thể chạy. Microsoft duy trì một nguồn tài nguyên toàn diện ghi lại các ứng dụng có khả năng bỏ qua các hạn chế của AppLocker, thường xuyên cập nhật danh sách này với các lỗ hổng mới được phát hiện. Sự minh bạch này giúp quản trị viên bảo mật hiểu các vectơ tấn công tiềm năng và cấu hình các biện pháp đối phó phù hợp.

Phát hiện lỗ hổng cấu hình AppLocker

Lỗ hổng này bắt nguồn từ một lỗi có vẻ nhỏ nhưng có hậu quả trong cấu hình AppLocker được Microsoft đề xuất. Các nhà nghiên cứu của Varonis đã phát hiện ra rằng trường MaximumFileVersion đã được đặt không chính xác thành 65355 thay vì giá trị tối đa dự kiến là 65535. Sự khác biệt số học tưởng chừng nhỏ này tạo ra một khoảng trống bảo mật đáng kể mà kẻ tấn công có thể khai thác.

Sự khác biệt giữa hai giá trị này rất quan trọng vì 65535 đại diện cho giá trị tối đa cho một số nguyên 16-bit không dấu (unsigned 16-bit integer), trong khi 65355 thấp hơn giới hạn này. Cụ thể, số nguyên 16-bit không dấu có thể biểu diễn các giá trị từ 0 đến 216-1, tức là 65535. Khi MaximumFileVersion được cấu hình là 65355, AppLocker sẽ cho phép bất kỳ phiên bản nào nhỏ hơn hoặc bằng 65355 chạy, nhưng sẽ chặn các phiên bản lớn hơn. Tuy nhiên, do sai sót, một khoảng giá trị không được tính đến đã xuất hiện.

Điều này tạo ra một dải phiên bản tệp nằm giữa 65355.65355.65355.6535565535.65535.65355.65355 (hoặc bất kỳ biến thể nào có một trong các số phần phiên bản vượt quá 65355 nhưng vẫn nằm trong giới hạn 65535 của số nguyên 16-bit) mà có thể vượt qua các hạn chế của AppLocker mà không bị phát hiện. Cụ thể, các phiên bản tệp được biểu diễn dưới dạng Major.Minor.Build.Revision, và mỗi thành phần này thường là một số nguyên 16-bit.

Cơ chế khai thác và hạn chế thực tế

Kẻ tấn công có thể về mặt lý thuyết khai thác lỗ hổng này bằng cách sửa đổi số phiên bản của một tệp thực thi bị chặn để vượt quá phiên bản tối đa đã cấu hình (65355) nhưng vẫn nằm trong giới hạn của số nguyên 16-bit (tối đa 65535). Nếu một tệp độc hại có số phiên bản được điều chỉnh để rơi vào khoảng trống này, nó có khả năng được thực thi mặc dù có các hạn chế của AppLocker.

Tuy nhiên, tác động thực tế của lỗ hổng này bị hạn chế đáng kể bởi các thực hành bảo mật tiêu chuẩn. Khi một kẻ tấn công sửa đổi thông tin phiên bản của một tệp, hành động này đồng thời phá vỡ chữ ký số (digital signature) của tệp đó. Hầu hết các ứng dụng và tệp hợp pháp của Microsoft và các nhà cung cấp phần mềm khác đều được ký số để đảm bảo tính toàn vẹn và xác thực.

Do đó, các hệ thống được cấu hình với chính sách “chỉ cho phép tệp thực thi đã ký” (“signed executables only” policies) sẽ vẫn chặn các tệp đã sửa đổi như vậy, từ đó vô hiệu hóa hiệu quả mối đe dọa tiềm tàng. Hạn chế này ngăn lỗ hổng được phân loại là nghiêm trọng, mặc dù nó vẫn là một vấn đề cấu hình quan trọng cần được khắc phục.

Biện pháp khắc phục và khuyến nghị

Sau khi Varonis thực hiện công bố có trách nhiệm về phát hiện này, Microsoft đã có hành động khắc phục để giải quyết lỗi tài liệu cơ bản. Công ty đã cập nhật tài liệu chính thức của mình để phản ánh các giá trị phiên bản tệp tối đa chính xác, giúp ngăn ngừa các cấu hình sai trong tương lai.

Sự cố này đóng vai trò như một lời nhắc nhở có giá trị rằng ngay cả những chi tiết dường như nhỏ trong cấu hình bảo mật cũng có thể tạo ra các lỗ hổng không mong muốn. Để tăng cường bảo mật và giảm thiểu rủi ro, các tổ chức nên:

  • Thường xuyên rà soát và cập nhật chính sách AppLocker: Đảm bảo rằng các chính sách này phù hợp với các thực tiễn tốt nhất hiện tại và các khuyến nghị mới nhất từ Microsoft.
  • Áp dụng chính sách “chỉ cho phép tệp thực thi đã ký”: Đây là một biện pháp kiểm soát quan trọng giúp ngăn chặn các tệp bị giả mạo hoặc không đáng tin cậy chạy, ngay cả khi chúng có thể vượt qua các kiểm tra phiên bản đơn thuần.
  • Tham khảo tài liệu chính thức của Microsoft: Luôn sử dụng tài liệu cập nhật nhất khi cấu hình các tính năng bảo mật phức tạp như AppLocker để tránh các lỗi cấu hình dựa trên thông tin lỗi thời.
  • Thực hiện kiểm tra bảo mật định kỳ: Sử dụng các công cụ và quy trình để kiểm tra hiệu quả của các chính sách bảo mật đã triển khai, phát hiện sớm các lỗ hổng cấu hình hoặc kẽ hở tiềm ẩn.

Việc chú ý đến từng chi tiết nhỏ trong cấu hình hệ thống là rất quan trọng để đóng mọi khoảng trống bảo mật tiềm năng có thể bị khai thác bởi những kẻ tấn công tinh vi.