Cơ chế lợi dụng miền hợp pháp và quy trình xác thực OAuth trong tấn công CoPhish
Nền tảng Microsoft Copilot Studio cho phép người dùng tạo và tùy chỉnh các tác nhân hội thoại (agent/chatbot) chạy trực tiếp trên miền hợp pháp của Microsoft, chẳng hạn như thông qua tính năng “demo website”, vốn được thiết kế để chia sẻ công khai các agent phục vụ mục đích thử nghiệm hoặc trình diễn. Tuy nhiên, chính đặc điểm này đã bị kẻ tấn công lợi dụng để thực hiện hành vi lừa đảo. Cụ thể, chúng tạo ra một agent giả mạo với chủ đề “Login”, nhằm thu hút người dùng nhấn vào nút “Đăng nhập”. Phần chủ đề này được cấu hình tinh vi để yêu cầu người dùng nhập mã xác thực hoặc tự động chuyển hướng tới một địa chỉ khác do kẻ tấn công kiểm soát.
Khi người dùng tương tác và nhấn nút đăng nhập, quy trình xác thực OAuth (cơ chế ủy quyền truy cập an toàn, cho phép một ứng dụng bên thứ ba truy cập vào tài nguyên của người dùng mà không cần chia sẻ mật khẩu) sẽ được kích hoạt. Trong đó, một ứng dụng độc hại dạng multi-tenant (mô hình cho phép nhiều tổ chức hoặc người dùng cùng sử dụng một ứng dụng hoặc hạ tầng chung, nhưng dữ liệu của từng bên được tách biệt) được hiển thị với yêu cầu cấp quyền truy cập cho người dùng hoặc quản trị viên. Vì toàn bộ quy trình này diễn ra trên miền chính thức của Microsoft, giao diện trông hoàn toàn đáng tin cậy, nên người dùng rất khó phát hiện rằng mình đang bị lừa. Chính điều này làm mờ ranh giới giữa “miền đáng tin cậy” và “quy trình đáng tin cậy”, tạo điều kiện cho kẻ tấn công chiếm đoạt thông tin xác thực hoặc token ủy quyền mà không bị nghi ngờ.
.png)
Hình 1. Agent độc hại dùng chủ đề “Đăng nhập” có thể tùy chỉnh
Các giai đoạn tấn công CoPhish
Phân tích logic dòng thời gian của cuộc tấn công CoPhish như sau:
- Bước 1: Đăng ký ứng dụng multi-tenant
Kẻ tấn công đăng ký một ứng dụng trên Azure AD (multi-tenant). Ứng dụng này có các tham số cơ bản: Application (Client) ID, Client Secret (nếu là confidential client), và Redirect URI đã đăng ký. Ứng dụng multi-tenant cho phép người dùng từ tenant khác có thể cấp quyền cho ứng dụng nếu họ đồng ý.
- Bước 2: Cấu hình agent để khởi động flow OAuth
Kẻ tấn công tạo một agent trên Copilot (hoặc dùng chức năng “demo website”) với một chủ đề/ nút “Login” được cấu hình để redirect người dùng tới authorization endpoint của ứng dụng (kèm tham số như client_id, redirect_uri, scope, response_type…). Redirect này nhằm khởi động quy trình OAuth để yêu cầu người dùng cấp quyền.
- Bước 3: Người dùng tương tác và cấp quyền
Người dùng, có thể là người dùng thường hoặc quản trị viên, nhấn “Login”, được chuyển tới trang xác thực/consent trên miền chính thức của nhà cung cấp (ví dụ Microsoft). Người dùng thấy giao diện đáng tin cậy và chấp thuận việc cấp quyền cho ứng dụng (user consent hoặc admin consent).
- Bước 4: Thu nhận và lạm dụng mã/token
Nếu là authorization code flow, hệ thống trả về authorization code tới redirect_uri; kẻ tấn công (hoặc server do họ kiểm soát) sẽ trao đổi code tại token endpoint để lấy access token (và có thể là refresh token), thao tác này thường yêu cầu client secret nếu client là confidential.
Nếu là flow trả token trực tiếp (legacy/implicit), access token có thể được trả trực tiếp trong redirect. Khi có access token, kẻ tấn công dùng token đó để gọi API/ truy cập tài nguyên theo phạm vi (scope) đã được cấp. Ví dụ đọc email, truy xuất file, dẫn tới chiếm đoạt phiên hoặc rò rỉ dữ liệu.

Hình 2. Sơ đồ luồng tấn công CoPhish
Một số ảnh hưởng và hậu quả
Token OAuth bị đánh cắp mở ra một cửa hậu trực tiếp tới các dịch vụ mà token đó được ủy quyền. Về bản chất token là “chìa khóa tạm thời” cho API, nên kẻ tấn công nắm token có thể hành động như chính người dùng: đọc và gửi email, truy cập lịch, lấy nội dung OneNote, truy xuất danh bạ hoặc trao đổi trong các kênh chat tùy theo các phạm vi đã được cấp. Về mặt kỹ thuật, đây không còn là một cuộc tấn công đòi mật khẩu mà là tận dụng quyền hợp lệ: các request đến dịch vụ được xác thực bằng token thay vì thông tin đăng nhập, khiến việc phát hiện bằng kiểm tra mật khẩu hay xác thực truyền thống trở nên vô hiệu, và nhiều hệ thống log/giám sát vẫn có thể coi các hành vi đó là “hợp lệ” nếu không kiểm tra ngữ cảnh (ví dụ IP, user-agent, thời điểm bất thường).
Mức độ thiệt hại tăng theo quyền hạn của token: với token của một người dùng bình thường, kẻ tấn công chủ yếu đạt được quyền đọc/ghi dữ liệu cá nhân hoặc gửi thư mạo danh; nhưng với token của quản trị viên, phạm vi tác động có thể mở rộng thành thay đổi cấu hình tổ chức, cấp quyền cho các ứng dụng mới, tạo backdoor dưới dạng app hoặc service principal, và truy cập hàng loạt dữ liệu nhạy cảm. Hậu quả thực tế bao gồm mất mát dữ liệu, rò rỉ thông tin nội bộ, mất uy tín doanh nghiệp, và chi phí khắc phục lớn (thu hồi quyền, rà soát logs, điều tra forensics, thông báo tuân thủ quy định).
Giải pháp và khuyến nghị
Trước nguy cơ khai thác thông qua các agent độc hại trong nền tảng Copilot Studio, các chuyên gia của Datadog cùng phản hồi chính thức từ Microsoft đã đề xuất một loạt biện pháp phòng ngừa mang tính kỹ thuật và quản trị nhằm giảm thiểu rủi ro, cụ thể như sau:
Một là, áp dụng nguyên tắc “ít quyền nhất” (Least Privilege Principle): các tài khoản người dùng, đặc biệt là tài khoản quản trị, chỉ nên được cấp quyền tối thiểu cần thiết để thực hiện công việc. Việc cho phép người dùng tùy ý cấp quyền cho ứng dụng cần được hạn chế hoặc vô hiệu hóa, nhằm tránh việc vô tình ủy quyền cho các ứng dụng giả mạo hoặc không đáng tin cậy.
Hai là, kiểm soát và thu hẹp phạm vi quyền của ứng dụng: chỉ cấp quyền truy cập đến những tài nguyên thực sự cần thiết cho mục đích hoạt động của ứng dụng. Các quyền nhạy cảm như truy cập email, lịch, trò chuyện (chat), hoặc ghi chú (OneNote) nên được đánh giá kỹ lưỡng trước khi phê duyệt. Cách tiếp cận này giúp giảm khả năng kẻ tấn công lợi dụng token OAuth để truy cập dữ liệu quan trọng trong hệ thống doanh nghiệp.
Ba là, triển khai chính sách “consent” ứng dụng nghiêm ngặt: tổ chức cần thiết lập cơ chế quản lý rõ ràng về việc ai được phép tạo ứng dụng, ai có quyền cấp quyền sử dụng, và yêu cầu xác minh ứng dụng trước khi sử dụng. Đồng thời, nên hạn chế hoặc chặn hoàn toàn việc tích hợp ứng dụng từ các nguồn bên ngoài nếu không được đánh giá bảo mật.
Bốn là, vô hiệu hóa tính năng người dùng tự tạo ứng dụng theo mặc định: Trong hệ thống quản lý danh tính như Microsoft Entra ID (Azure AD), tính năng này nên bị tắt trừ khi có yêu cầu rõ ràng từ bộ phận CNTT. Điều này giúp ngăn chặn việc tạo ra các ứng dụng hoặc agent ngoài tầm kiểm soát quản trị viên.
Năm là, tăng cường giám sát và phát hiện sớm bất thường: thiết lập quy trình và công cụ giám sát hoạt động tạo mới agent, ứng dụng, hoặc các hành vi truy cập bất thường trong Copilot Studio và Entra ID. Việc theo dõi liên tục giúp phát hiện sớm hành vi lừa đảo, rút ngắn thời gian phản ứng và giảm thiểu thiệt hại. Sáu là, nâng cao nhận thức người dùng: người dùng cần được huấn luyện nhận biết rủi ro khi cấp quyền cho ứng dụng, đặc biệt là khi yêu cầu đến từ nguồn không chính thống hoặc kênh không xác thực. Chương trình đào tạo định kỳ về an toàn thông tin và xác thực giúp giảm đáng kể nguy cơ bị tấn công consent phishing.
Những biện pháp trên không chỉ giúp phòng tránh tấn công CoPhish, mà còn tăng cường an toàn cho hệ sinh thái AI và các agent doanh nghiệp, trong bối cảnh các nền tảng tự động và trí tuệ nhân tạo ngày càng được tích hợp sâu vào hoạt động tổ chức.
