Bối cảnh an ninh mạng đã phải đối mặt với một thách thức đáng kể vào cuối năm vừa qua với sự xuất hiện của tấn công ConsentFix. Đây là một phương pháp tấn công dựa trên OAuth tinh vi, khai thác các luồng xác thực hợp lệ để trích xuất mã ủy quyền từ các hệ thống Microsoft Entra.
Tổng quan về Tấn công ConsentFix và Lỗ hổng OAuth
ConsentFix đại diện cho một bước tiến trong các kỹ thuật khai thác xác thực đám mây. Nó kế thừa và phát triển từ kỹ thuật ClickFix trước đây, minh chứng cho việc kẻ tấn công liên tục tinh chỉnh phương pháp nhằm xâm nhập các hệ thống xác thực đám mây mà không kích hoạt các kiểm soát bảo mật truyền thống.
Nguồn gốc và Sự tiến hóa của Mối đe dọa
Mục tiêu chính của tấn công ConsentFix là chiếm đoạt mã ủy quyền (authorization codes) thông qua quy trình cấp phép OAuth 2.0. Kỹ thuật này đã được phát triển để vượt qua các biện pháp bảo mật vốn có, biến quy trình xác thực hợp pháp thành kênh đánh cắp thông tin nhạy cảm.
Cơ chế Hoạt động của ConsentFix
ConsentFix khởi đầu bằng việc tạo ra một URL đăng nhập Microsoft Entra độc hại. URL này nhắm mục tiêu vào ứng dụng Azure CLI và Azure Resource Manager. Sau đó, kẻ tấn công sử dụng các chiến thuật lừa đảo (phishing) để điều hướng người dùng truy cập liên kết đã được tạo đặc biệt này.
Khai thác Quy trình Cấp phép Mã ủy quyền OAuth 2.0
Khi người dùng không nghi ngờ truy cập một trang web bị xâm nhập, chuỗi tấn công bắt đầu. Kẻ tấn công lợi dụng luồng cấp phép mã ủy quyền OAuth 2.0 (OAuth 2.0 authorization code flow). Đây là một cơ chế xác thực tiêu chuẩn mà hầu hết người dùng tương tác hàng ngày khi đăng nhập vào các ứng dụng đám mây.
Trong quy trình thông thường, sau khi người dùng xác thực thành công bằng thông tin đăng nhập của họ, trình duyệt sẽ chuyển hướng đến một địa chỉ phản hồi hợp lệ (reply address) để ứng dụng nhận mã ủy quyền.
Tuy nhiên, trong tấn công ConsentFix, thay vì một ứng dụng hợp lệ nhận mã xác thực, người dùng gặp phải một lỗi. Lỗi này xảy ra vì không có dịch vụ nào đang lắng nghe trên địa chỉ localhost đã được chỉ định trong URL chuyển hướng.
Điểm mấu chốt của lỗ hổng OAuth này nằm ở bước tiếp theo. Trang lỗi vẫn hiển thị mã ủy quyền nhạy cảm trong URL chuyển hướng. Kẻ tấn công chỉ cần yêu cầu người dùng sao chép và dán thông tin này thông qua chức năng kéo và thả (drag-and-drop).
Tác động và Khả năng Vượt qua Các biện pháp Bảo mật
Các nhà phân tích từ Glueck Kanja đã ghi nhận rằng kỹ thuật này có khả năng vượt qua các chính sách Truy cập Có điều kiện (Conditional Access policies) và yêu cầu tuân thủ thiết bị (device compliance). Điều này khiến tấn công ConsentFix đặc biệt nguy hiểm đối với các tổ chức có khung bảo mật mạnh mẽ.
Thông tin chi tiết về phân tích kỹ thuật của ConsentFix có thể tham khảo tại báo cáo của Glueck Kanja: Vulnerability: ConsentFix – The Microsoft Entra ID Token Theft Attack You Should Know About.
Hậu quả của Việc Vượt qua Chính sách Truy cập Có điều kiện
Việc bỏ qua Conditional Access có nghĩa là các yêu cầu bảo mật bổ sung như xác thực đa yếu tố (MFA), yêu cầu thiết bị tuân thủ hoặc địa điểm truy cập đáng tin cậy đều bị vô hiệu hóa. Khi mã ủy quyền bị đánh cắp, kẻ tấn công có thể đổi lấy token truy cập, từ đó chiếm quyền kiểm soát tài nguyên mà không cần vượt qua các rào cản bảo mật này.
Phát hiện Xâm nhập: Dấu hiệu trong Nhật ký Azure AD
Để phát hiện hiệu quả tấn công ConsentFix, các đội ngũ an ninh mạng phải hiểu rõ cách thức biểu hiện của nó trong nhật ký. Khi cuộc tấn công này xảy ra, nhật ký đăng nhập Azure (Azure sign-in logs) sẽ tiết lộ hai sự kiện xác thực riêng biệt từ cùng một phiên.
Phân tích Nhật ký Đăng nhập và Mối quan hệ Thời gian
Sự kiện đầu tiên đại diện cho tương tác hợp pháp của người dùng, xuất hiện dưới dạng đăng nhập tương tác (interactive sign-in) từ vị trí của nạn nhân. Sự kiện thứ hai, bắt nguồn từ cơ sở hạ tầng của kẻ tấn công, xuất hiện dưới dạng đăng nhập không tương tác (non-interactive sign-in) khi kẻ tấn công đổi mã ủy quyền đã đánh cắp để lấy token truy cập.
Mối quan hệ thời gian giữa hai sự kiện này cung cấp tín hiệu phát hiện đáng tin cậy nhất. Mã ủy quyền Azure có giá trị trong khoảng 10 phút. Điều này thiết lập một khoảng thời gian rõ ràng để kẻ tấn công phải đổi mã lấy token.
Bằng cách tương quan các thông số như SessionID, ApplicationID và UserID phù hợp giữa hai sự kiện trong khung thời gian này, các nhà phòng thủ có thể xác định các nỗ lực tấn công. Các nhà phân tích cũng cần lưu ý rằng địa chỉ IP thường sẽ khác nhau giữa các sự kiện, do người dùng và kẻ tấn công hoạt động từ các hệ thống riêng biệt.
Chiến lược Phát hiện Nâng cao và Loại trừ Ngoại lệ
Các chiến lược phát hiện xâm nhập nâng cao cần lọc ra các kịch bản tự động hóa hợp pháp, ví dụ như GitHub Codespaces. Các kịch bản này cũng hoàn thành quy trình xác thực tương tự trong vài giây, đòi hỏi khả năng phân biệt rõ ràng giữa hoạt động hợp lệ và các nỗ lực đánh cắp token độc hại.
Việc phân tích User Agent, Application ID cụ thể của các dịch vụ tự động hóa đã biết là cần thiết để tránh các cảnh báo sai (false positives). Ví dụ, một truy vấn Azure CLI hoặc PowerShell để tìm các sự kiện đáng ngờ có thể trông như sau:
az monitor log-analytics query \
--workspace \
--analytics-query """\
SigninLogs \
| where TimeGenerated > ago(1d) \
| where ResultType == 0 \
| summarize UserCount=dcount(IPAddress), IPs=make_set(IPAddress), FirstTime=min(TimeGenerated), LastTime=max(TimeGenerated) by SessionId, UserId, AppId \
| where UserCount > 1 \
| extend TimeDifference = LastTime - FirstTime \
| where TimeDifference <= 10m \
| project SessionId, UserId, AppId, IPs, FirstTime, LastTime, TimeDifference, UserCount
""" Lệnh trên giúp xác định các phiên đăng nhập (SessionId) của cùng một người dùng (UserId) và ứng dụng (AppId) có nhiều địa chỉ IP khác nhau và khoảng thời gian giữa lần đăng nhập đầu tiên và cuối cùng nằm trong vòng 10 phút. Đây là một chỉ báo mạnh mẽ cho tấn công ConsentFix.
Biện pháp Phòng ngừa và Giảm thiểu
Để củng cố bảo mật Microsoft Entra trước các cuộc tấn công như ConsentFix, các tổ chức cần triển khai nhiều lớp phòng thủ.
- Nâng cao nhận thức người dùng: Đào tạo người dùng về các mối đe dọa lừa đảo (phishing) và cách nhận biết các liên kết hoặc yêu cầu đáng ngờ. Người dùng không nên sao chép và dán thông tin nhạy cảm từ URL vào bất kỳ ứng dụng nào khác.
- Giám sát nhật ký liên tục: Thiết lập hệ thống giám sát và cảnh báo để phát hiện các mẫu đăng nhập bất thường, đặc biệt là các kịch bản hai sự kiện liên tiếp với các đặc điểm đã mô tả ở trên. Sử dụng các công cụ SIEM/SOAR để tự động hóa việc tương quan nhật ký.
- Tăng cường chính sách truy cập: Mặc dù ConsentFix có thể vượt qua một số chính sách Conditional Access, việc liên tục đánh giá và cập nhật các chính sách này là cần thiết để giảm thiểu rủi ro từ các biến thể tấn công trong tương lai. Đảm bảo MFA được triển khai rộng rãi cho tất cả người dùng và tài nguyên nhạy cảm.
- Kiểm tra ứng dụng định kỳ: Thực hiện đánh giá bảo mật định kỳ cho tất cả các ứng dụng tích hợp với Azure AD để đảm bảo không có cấu hình sai sót hoặc lỗ hổng nào có thể bị lợi dụng.










