Lạm dụng OAuth consent: Lỗ hổng Entra ID nghiêm trọng

Kẻ tấn công liên tục tìm kiếm các phương pháp mới để khai thác các nền tảng đáng tin cậy. Gần đây, Microsoft Entra ID đang trở thành mục tiêu chính thông qua kỹ thuật được gọi là lạm dụng OAuth consent. Kịch bản tấn công mới này minh họa cách một ứng dụng bên thứ ba độc hại hoặc có quyền quá mức—thường được ngụy trang giống công cụ đáng tin cậy như ChatGPT—có thể âm thầm truy cập hộp thư đến của người dùng doanh nghiệp mà không cần mật khẩu, làm tăng nguy cơ xâm nhập mạng.
Cơ Chế Kỹ Thuật Lạm Dụng OAuth Consent trong Microsoft Entra ID
Bản Chất của Giao Thức OAuth và Khai Thác Quyền
OAuth (Open Authorization) là giao thức tiêu chuẩn cho phép các ứng dụng truy cập dữ liệu người dùng với sự cho phép của họ, mà không yêu cầu chia sẻ thông tin xác thực trực tiếp. Trong môi trường Microsoft Entra ID, khi người dùng kết nối một ứng dụng bên thứ ba với tài khoản Microsoft của mình, một lời nhắc đồng ý sẽ hiển thị. Lời nhắc này liệt kê rõ ràng các quyền mà ứng dụng đang yêu cầu, như truy cập email hoặc tệp.
Kẻ tấn công khai thác cơ chế này bằng cách phát triển hoặc ngụy trang một ứng dụng yêu cầu các quyền nhạy cảm, điển hình là Mail.Read. Khi người dùng chấp nhận, quyền này cấp cho ứng dụng khả năng đọc toàn bộ nội dung trong tài khoản email của người dùng. Việc này cho phép kẻ tấn công truy cập thông tin nhạy cảm mà không cần thực hiện các cuộc tấn công bẻ khóa mật khẩu phức tạp.
Mối đe dọa không chỉ giới hạn ở các ứng dụng độc hại hoàn toàn. Ngay cả một ứng dụng hợp pháp với quyền truy cập quá rộng cũng có thể bị lợi dụng nếu nó bị thỏa hiệp, dẫn đến lạm dụng OAuth consent.
Nghiên Cứu Điển Hình: Phân Tích Sự Cố Đồng Ý OAuth
Các nhà phân tích từ Red Canary đã tiến hành một nghiên cứu điển hình chi tiết về một trường hợp người dùng doanh nghiệp, [email protected], đã thêm ChatGPT làm dịch vụ chính bên thứ ba trong một tenant của Entra ID. Người dùng này, với tư cách không phải quản trị viên, đã đồng ý với các quyền OAuth sau: Mail.Read, offline_access, profile, và openid.
Mặc dù ứng dụng trong trường hợp này được xác định là ChatGPT chính hãng của OpenAI, quy trình điều tra vẫn mô phỏng chặt chẽ một sự cố thực tế đã được Red Canary quan sát trước đó. Sự cố này đã được truy vết đến địa chỉ IP 3.89.177.26 và ghi nhận vào lúc 20:22:16 UTC ngày 2 tháng 12 năm 2025.
Điểm mấu chốt là bất kỳ ứng dụng bên thứ ba nào, dù là hợp pháp hay độc hại, nếu có được quyền Mail.Read thông qua sự đồng ý của người dùng, đều có thể âm thầm đọc mọi tin nhắn trong hộp thư đến mục tiêu. Đây là một lỗ hổng nghiêm trọng trong bảo mật Microsoft Entra ID.
Kịch Bản Tấn Công và Thu Thập Dữ Liệu
Trong một cuộc tấn công thực tế, kẻ tấn công có thể thiết kế một ứng dụng với tên gọi hoặc giao diện thuyết phục cao, sau đó phát tán thông qua các chiến dịch lừa đảo (phishing) tinh vi. Một khi người dùng đồng ý cấp quyền, kẻ tấn công có thể thu thập các email nhạy cảm, thư tín nội bộ hoặc thông tin xác thực, mà nạn nhân không hề biết tài khoản của mình đã bị xâm phạm thông qua kỹ thuật lạm dụng OAuth consent này.
Phân Tích Rủi Ro và Tác Động của Cấu Hình Mặc Định Entra ID
Quyền Đồng Ý Mặc Định của Người Dùng Không Phải Quản Trị Viên
Một yếu tố làm gia tăng đáng kể rủi ro từ các cuộc tấn công lạm dụng OAuth consent là việc Microsoft Entra ID, theo cài đặt mặc định, cho phép người dùng tiêu chuẩn (không có quyền quản trị viên) đồng ý với các ứng dụng yêu cầu quyền không cần phê duyệt từ quản trị viên.
Điều này có nghĩa là chỉ một nhân viên duy nhất, dù không có quyền truy cập nâng cao, cũng có thể vô tình làm lộ dữ liệu nhạy cảm của tổ chức. Việc này xảy ra đơn giản bằng cách chấp nhận một yêu cầu kết nối ứng dụng có vẻ bình thường, nhưng thực chất đã được thiết kế để khai thác. Rủi ro này nhấn mạnh tầm quan trọng của việc cấu hình chính sách đồng ý hiệu quả.
Phát Hiện và Đối Phó với Tấn Công Lạm Dụng OAuth Consent
Giám Sát Nhật Ký Kiểm Toán Entra ID để Phát Hiện
Khi người dùng kết nối một ứng dụng bên thứ ba, dù thông qua phương tiện hợp pháp hay lừa đảo, hai sự kiện nhật ký kiểm toán quan trọng sẽ được ghi lại trong Entra ID:
- “Add service principal”: Ghi lại việc thêm một service principal mới cho ứng dụng.
- “Consent to application”: Ghi lại việc người dùng đã đồng ý cấp quyền cho ứng dụng.
Cả hai sự kiện này đều chứa một CorrelationId chung, cho phép các nhóm bảo mật liên kết chúng lại, truy vết toàn bộ chuỗi đồng ý và xác định nguồn gốc hành động của người dùng. Việc giám sát chặt chẽ các sự kiện này là cần thiết để phát hiện sớm các dấu hiệu lạm dụng OAuth consent.
Chỉ Số Nhận Diện Ứng Dụng Bên Thứ Ba Đáng Ngờ
Cách tiếp cận phát hiện của Red Canary đặc biệt chú trọng vào việc gắn cờ các cấp quyền đồng ý của người dùng không phải quản trị viên, đặc biệt khi chúng liên quan đến các ứng dụng bên thứ ba mới được thêm vào và yêu cầu các phạm vi OAuth thường bị lạm dụng.
Một chỉ số quan trọng trong nhật ký kiểm toán là trường AppOwnerOrganizationId. Nếu giá trị này không khớp với ID của chính tenant hoặc các định danh bên thứ nhất đã biết của Microsoft, ứng dụng đó rõ ràng là của bên thứ ba. Các ứng dụng như vậy cần được xem xét với sự nghi ngờ cao độ và kiểm tra kỹ lưỡng về tính hợp pháp và các quyền được cấp.
Các Phạm Vi OAuth Thường Bị Lạm Dụng Trong Tấn Công
Các phạm vi quyền OAuth bị lạm dụng phổ biến nhất trong các cuộc tấn công này bao gồm:
Mail.Read: Quyền đọc tất cả email của người dùng.Files.Read.All: Quyền đọc tất cả tệp mà người dùng có quyền truy cập.Chat.Read: Quyền đọc tin nhắn trong các cuộc trò chuyện.Sites.Read.All: Quyền đọc dữ liệu từ tất cả các trang SharePoint mà người dùng có quyền truy cập.
Biện Pháp Khắc Phục Khẩn Cấp Sau Phát Hiện
Khi một cấp quyền đồng ý độc hại hoặc không được phê duyệt được xác nhận, hai bước khắc phục phải được thực hiện ngay lập tức để giảm thiểu rủi ro:
- Thu hồi cấp quyền OAuth: Sử dụng grant ID được lấy từ sự kiện kiểm toán “Consent to application” để thu hồi quyền đã cấp.
- Xóa service principal: Xóa service principal liên quan khỏi tenant bằng cách sử dụng object ID của nó.
Cả hai tác vụ này có thể được quản lý hiệu quả bằng các lệnh Microsoft Graph PowerShell. Ví dụ về lệnh PowerShell để thu hồi quyền và xóa service principal:
# Thu hồi cấp quyền OAuthRevoke-MgUserOAuth2PermissionGrant -UserId "<user_id>" -OAuth2PermissionGrantId "<grant_id>"# Xóa service principalRemove-MgServicePrincipal -ServicePrincipalId "<service_principal_id>"Lưu ý: Thay thế <user_id>, <grant_id>, và <service_principal_id> bằng các giá trị thực tế từ nhật ký kiểm toán.
Chiến Lược Ngăn Chặn và Cấu Hình Chính Sách Đồng Ý Hiệu Quả
Về phía ngăn chặn, Microsoft cung cấp ba tùy chọn chính sách đồng ý có thể cấu hình trong Entra ID. Việc áp dụng đúng các chính sách này là rất quan trọng để tăng cường an ninh mạng và giảm thiểu nguy cơ lạm dụng OAuth consent.
1. Yêu Cầu Phê Duyệt Của Quản Trị Viên Cho Mọi Yêu Cầu Đồng Ý
Đây là cách tiếp cận an toàn nhất, yêu cầu quản trị viên phê duyệt tất cả các yêu cầu đồng ý ứng dụng. Phương pháp này loại bỏ hoàn toàn khả năng người dùng không phải quản trị viên tự động ủy quyền cho bất kỳ ứng dụng nào, từ đó hạn chế đáng kể các cuộc tấn công khai thác sự đồng ý của người dùng.
2. Hạn Chế Đồng Ý Cho Các Nhà Xuất Bản Đã Xác Minh
Một cài đặt cân bằng hơn là hạn chế quyền đồng ý chỉ cho các ứng dụng từ các nhà xuất bản đã được xác minh của Microsoft và chỉ cho các quyền có rủi ro thấp đã được phê duyệt trước. Điều này giúp cân bằng giữa bảo mật và tính linh hoạt trong công việc.
3. Áp Dụng Cấu Hình Khuyến Nghị Của Microsoft
Cấu hình khuyến nghị của Microsoft tự động áp dụng các hướng dẫn đồng ý của người dùng hiện tại của hãng cho tổ chức. Đây là một giải pháp trung gian cung cấp sự bảo vệ hợp lý trong khi vẫn duy trì tiện lợi trong vận hành.







