Tấn công giả mạo Browser-in-the-Browser: Nguy hiểm khôn lường

Tấn công giả mạo Browser-in-the-Browser: Nguy hiểm khôn lường

Một chiến dịch tấn công giả mạo (phishing) mới và tinh vi đã được phát hiện, nhắm mục tiêu người dùng Microsoft 365 bằng một cửa sổ đăng nhập giả mạo khó phân biệt với giao diện chính hãng. Kỹ thuật này được gọi là Browser-in-the-Browser (BitB).

Chiến dịch Tấn công Giả mạo Browser-in-the-Browser (BitB)

Chiến dịch BitB tạo ra một cửa sổ popup giả mạo được nhúng trực tiếp vào trang web độc hại. Cửa sổ này mô phỏng màn hình đăng nhập OAuth của Microsoft, bao gồm cả thanh địa chỉ giả mạo hiển thị URL trông có vẻ hợp pháp, biểu tượng ổ khóa và branding quen thuộc.

Cách Thức Hoạt Động

Khi người dùng nhấp vào nút “Sign in with Microsoft” trên một trang web bị xâm nhập, cửa sổ giả mạo này sẽ xuất hiện. Do giao diện quá giống thật, người dùng có thể vô tình nhập thông tin đăng nhập của họ.

Khác với các kỹ thuật giả mạo thông thường, cửa sổ popup BitB không chỉ là một lớp phủ đơn giản. Nó có thể kéo thả trên màn hình và sử dụng kỹ thuật nhận dạng dấu vân tay của hệ điều hành (OS) và trình duyệt (browser fingerprinting) để tùy chỉnh giao diện cho phù hợp với thiết bị của từng nạn nhân, khiến nó trông càng thuyết phục hơn và khó bị gắn cờ là đáng ngờ.

Trong một báo cáo của Unit 42, các nhà nghiên cứu đã chia sẻ chi tiết về chiến dịch này. Họ nhấn mạnh rằng cửa sổ giả mạo này có thể kéo thả, một đặc điểm mô phỏng giống cửa sổ thật và loại bỏ một trong những dấu hiệu nhận biết đáng tin cậy nhất mà người dùng có thể dựa vào để phát hiện sự giả mạo.

Vượt qua các Công cụ Bảo mật

Điểm nguy hiểm của chiến dịch này nằm ở khả năng nó vượt qua các công cụ bảo mật. Kẻ tấn công chặn các nỗ lực gỡ lỗi (debugging), phân mảnh từ khóa để tránh bộ lọc nội dung và chuyển hướng các bot tự động ra khỏi trang web độc hại. Điều này khiến các công cụ phát hiện tiêu chuẩn thường không ghi nhận bất kỳ dấu hiệu bất thường nào, tạo điều kiện cho cuộc tấn công tiếp cận trực tiếp các mục tiêu con người.

URL tham khảo: Microsoft Security Blog

Mục tiêu và Tác động

Mục tiêu chính là chiếm đoạt thông tin đăng nhập và giành quyền truy cập vào môi trường Microsoft 365. Sau khi nạn nhân nhập thông tin xác thực, kẻ tấn công sẽ thu thập được **OAuth consent grant**. Grant này có thể được sử dụng để truy cập vào môi trường Microsoft 365 trong một thời gian dài sau lần đăng nhập ban đầu.

Mã thông báo (token) bị đánh cắp này hoạt động tương tự như một cookie phiên (session cookie), cấp quyền truy cập liên tục mà không yêu cầu mật khẩu của nạn nhân nhập lại. Điều này có nghĩa là ngay cả khi nạn nhân thay đổi mật khẩu, kẻ tấn công vẫn có thể duy trì quyền truy cập nếu họ đã giữ được token hợp lệ.

Kỹ thuật Tấn công và Mã Khai Thác (Exploit)

Cuộc tấn công bắt đầu khi nạn nhân truy cập vào một trang web yêu cầu đăng nhập Microsoft. Khi nhấp vào nút đăng nhập, một cửa sổ popup giả mạo sẽ được hiển thị hoàn toàn bên trong tab trình duyệt bằng cách sử dụng HTML, CSS và JavaScript. Cửa sổ này chứa một thanh URL giả mạo hiển thị địa chỉ OAuth của Microsoft, tạo ra cảm giác an toàn giả tạo.

Khác với cửa sổ popup trình duyệt thực sự, là một cửa sổ hệ điều hành độc lập, cửa sổ giả mạo này là một phần tử DOM bị giới hạn trong tab cha. Tuy nhiên, kẻ tấn công đã tiến xa hơn bằng cách làm cho nó có thể kéo thả, mô phỏng cảm giác của một cửa sổ thực và loại bỏ một trong những dấu hiệu nhận biết bằng hình ảnh đáng tin cậy nhất mà người dùng có thể dựa vào.

Việc nhận dạng dấu vân tay OS và trình duyệt đảm bảo rằng popup khớp với hệ thống thực tế của nạn nhân, vì vậy phông chữ, kiểu dáng và hành vi đều trông hoàn toàn chính xác. Sau khi thông tin xác thực được nhập, chúng sẽ được gửi một cách âm thầm đến một máy chủ do kẻ tấn công kiểm soát.

Nạn nhân thường được chuyển hướng đến trang đăng nhập Microsoft thực tế sau đó, vì vậy họ chỉ nghĩ rằng mình đã gõ sai mật khẩu và thử lại, không hề nghi ngờ rằng họ đã bị xâm phạm.

Ví dụ về Cấu trúc Cửa sổ Giả mạo (Mô phỏng)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Sign in to Microsoft account</title>
    <style>
        /* CSS for the fake popup and elements */
        body { background-color: #f0f0f0; font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; }
        .popup-container { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); border: 1px solid #ccc; box-shadow: 0 0 10px rgba(0,0,0,0.1); }
        .popup-header {
            background-color: #f8f8f8;
            padding: 10px;
            border-bottom: 1px solid #ccc;
            display: flex;
            justify-content: space-between;
            align-items: center;
        }
        .popup-header .url-bar { background-color: #e0e0e0; padding: 5px 10px; border-radius: 3px; flex-grow: 1; margin: 0 10px; }
        .popup-content { background-color: #fff; padding: 20px; }
        .popup-content label, .popup-content input, .popup-content button { display: block; margin-bottom: 15px; }
        .popup-content input { width: 100%; padding: 10px; border: 1px solid #ccc; }
        .popup-content button { background-color: #0078d4; color: white; padding: 10px 15px; border: none; cursor: pointer; }
    </style>
</head>
<body>
    <div class="popup-container" id="fakePopup">
        <div class="popup-header">
            <span><i>...</i></span><!-- Browser controls -->
            <div class="url-bar">https://login.microsoftonline.com/...</div>
            <span><i>...</i></span><!-- More browser controls -->
        </div>
        <div class="popup-content">
            <h3>Sign in</h3>
            <p>Email, phone, or Skype</p>
            <input type="text" id="username" name="username" placeholder="Enter your email">
            <button onclick="submitCredentials()">Next</button>
            <!-- More login elements would be here -->
        </div>
    </div>

    <script>
        // JavaScript to simulate draggable behavior and credential submission
        function submitCredentials() {
            const username = document.getElementById('username').value;
            console.log('Captured credentials:', username); 
            // In a real attack, these would be sent to a C2 server
            alert('Simulating login attempt...');
        }
        // Add drag functionality here
    </script>
</body>
</html>

Chi tiết về IOC (Indicators of Compromise)

Các chỉ số xâm phạm (IOC) trong chiến dịch này có thể bao gồm:

  • Các URL máy chủ điều khiển và ra lệnh (C2) được sử dụng để nhận thông tin đăng nhập.
  • Các mẫu tệp JavaScript hoặc HTML chứa logic tạo popup giả mạo.
  • Các địa chỉ IP hoặc tên miền có liên quan đến việc lưu trữ trang đích hoặc máy chủ C2.
  • Các mẫu User-Agent bất thường được sử dụng để tránh phát hiện.

Lưu ý: Thông tin chi tiết về IOC cụ thể (như địa chỉ máy chủ C2, hash tệp) thường được các hãng bảo mật công bố trong các báo cáo chuyên sâu và có thể thay đổi.

Biện pháp Bảo vệ và Phòng ngừa

Để tăng cường an ninh mạng và bảo vệ khỏi các cuộc tấn công giả mạo tinh vi như BitB, người dùng và tổ chức cần áp dụng các biện pháp sau:

  • Bật xác thực chống giả mạo: Ưu tiên sử dụng các phương thức xác thực chống giả mạo như mật khẩu (passkeys) hoặc khóa phần cứng FIDO2 bất cứ khi nào có thể.
  • Sử dụng Trình quản lý mật khẩu: Các trình quản lý mật khẩu thường sẽ không tự động điền thông tin đăng nhập vào một popup giả mạo không khớp với nguồn gốc trang web thực tế, đóng vai trò như một tín hiệu cảnh báo sớm.
  • Chính sách Truy cập Có điều kiện (Conditional Access Policies): Cấu hình các chính sách này để hạn chế đăng nhập từ các thiết bị không được quản lý, bổ sung thêm một lớp bảo vệ mạnh mẽ.
  • Giáo dục Người dùng: Nâng cao nhận thức của người dùng về các kỹ thuật tấn công giả mạo mới, bao gồm cả các chiêu thức tinh vi như Browser-in-the-Browser.
  • Giám sát Phiên hoạt động: Theo dõi các phiên đăng nhập đáng ngờ từ các vị trí hoặc thiết bị không quen thuộc và thu hồi ngay lập tức các token đáng ngờ.

Việc thu thập **OAuth consent grant** là mục tiêu thực sự nguy hiểm, vì nó cho phép kẻ tấn công duy trì quyền truy cập dai dẳng vào các môi trường đám mây, tài khoản email và các dịch vụ được kết nối. Do đó, việc quản lý chặt chẽ các phiên hoạt động và token là cực kỳ quan trọng để ngăn chặn các mối đe dọa tiềm ẩn.