QR code bypass tính năng isolation của trình duyệt để kết nối tới C2 độc hại

Just a SOC Analyst ^^
Cô lập trình duyệt (browser isolation) là một tính năng bảo mật trong đó trình web được tách biệt khỏi thiết bị cục bộ của người dùng bằng cách chạy trình duyệt trong môi trường an toàn, chẳng hạn như máy chủ đám mây hoặc máy ảo, sau đó truyền phát nội dung đến thiết bị của người dùng.
Nhưng một công ty an ninh mạng có tên là Mandiant đã xác định được một phương pháp mới để vượt qua công nghệ cô lập trình duyệt và thực hiện các hoạt động command-and-control thông qua mã QR.
Tính năng Browser Isolation
Các chuyên gia bảo mật đến từ SpecterOps đã phát hành một bài đăng trên blog vào đầu năm 2024 về tính năng cách ly trình duyệt và cách mà các pentester bypass tính năng này để thực hiện hành vi độc hại. Nói một cách dễ hiểu, cách ly trình duyệt bảo vệ người dùng khỏi các cuộc tấn công dựa trên web bằng cách đưa trình duyệt web vào một môi trường an toàn (cục bộ hoặc từ xa) và truyền phát nội dung trực quan trở lại local browser của người dùng. Theo hầu hết các tài liệu, có ba loại cách ly trình duyệt:
Remote browser isolation (RBI): Cô lập trình duyệt từ xa, phương pháp an toàn nhất và phổ biến nhất, sẽ đưa trình duyệt vào sandbox trong môi trường cloud.
On-premises browser isolation: Cô lập trình duyệt tại chỗ tương tự như RBI nhưng trình duyệt sẽ được chạy trong sandbox trên máy người dùng. Ưu điểm của phương pháp này là không cần kết nối cloud phức tạp.
Local browser isolation (client-side browser isolation): Cô lập trình duyệt cục bộ hoặc cô lập trình duyệt phía máy khách sẽ chạy trình duyệt trong sandbox tại môi trường máy ảo hoặc containerized (ví dụ như Docker hoặc Windows Sandbox).
Remote browser sẽ xử lý mọi thứ từ việc hiển thị nội dung web đến thực thi JavaScript. Chỉ có giao diện trực quan của trang web được gửi trở lại local browser của người dùng (dưới dạng một luồng pixel). Các hành động nhấn phím và nhấp chuột trong local browser được chuyển tiếp đến remote browser, cho phép người dùng tương tác với ứng dụng web.
Tính năng cô lập trình duyệt thường được sử dụng cùng với proxy để đảm bảo tất cả lưu lượng duyệt web bằng tính năng này được an toàn, hạn chế nghe lén, theo dõi đường truyền mạng.
Browser Isolation ngăn chặn Command-and-Control truyền thống
Command and control (C2 hoặc C&C) là phương pháp mô tả khả năng của kẻ tấn công trong việc điều khiển từ xa các hệ thống bị xâm phạm thông qua các phần mềm độc hại. Kênh phổ biến nhất để gửi lệnh đến và đi từ thiết bị nạn nhân là thông qua các yêu cầu HTTP:
Phần mềm độc hại gửi yêu cầu lệnh tới máy chủ C2 do kẻ tấn công kiểm soát thông qua HTTP request (ví dụ: trong HTTP parameters, headers, hoặc request body).
Máy chủ C2 trả về lệnh để thực thi trong HTTP response (ví dụ: trong headers hoặc response body).
Phần mềm độc hại giải mã HTTP response và thực thi lệnh.
Phần mềm độc hại output trở lại máy chủ C2 bằng một HTTP request khác.
Phần mềm độc hại vào tính năng sleep trong một thời gian ngắn, sau đó lặp lại chu kỳ.
Tuy nhiên, cách tiếp cận này không hiệu quả khi nạn nhân sử dụng tính năng cách ly trình duyệt. Khi thực hiện các HTTP request thông qua hệ thống cách ly trình duyệt, HTTP response chỉ trả về local browser các thông tin để render nội dung trang web. HTTP response gốc sẽ nằm trên trong remote browser. Điều này ngăn chặn C2 truyền thống dựa trên HTTP vì thiết bị cục bộ không thể giải mã HTTP response.

Hình 1: Sơ đồ tuần tự của HTTP request sử dụng công nghệ cô lập trình duyệt
Gửi dữ liệu C2 qua các pixels
Các chuyên gia Red Team của Mandiant đã nghĩ ra một cách tiếp cận mới cho vấn đề này. Thay vì trả về dữ liệu C2 trong headers hoặc body của HTTP request, máy chủ C2 trả về một trang web hợp lệ hiển thị trực quan mã QR. Sau đó, phần mềm độc hại sử dụng headless browser cục bộ (ví dụ: Selenium) để hiển thị trang web, chụp ảnh màn hình và đọc mã QR để lấy dữ liệu. Bằng cách tận dụng mã QR, kẻ tấn công có thể gửi dữ liệu từ máy chủ C2 đến phần mềm độc hại trên máy nạn nhân ngay cả khi trang web được hiển thị trong remote browser.

Hình 1: Sơ đồ tuần tự của C2 thông qua QR code
Thay vì giải mã HTTP response để thực thi lệnh; mã độc sẽ hiển thị và giải mã lệnh từ hình ảnh QR code trên trình duyệt của nạn nhân. Quy trình C2 mới như sau:
Phần mềm độc hại kiểm soát headless browser cục bộ thông qua giao thức DevTools.
Phần mềm độc hại gửi yêu cầu đến remote (isolated) browser thông qua headless browser, sau đó kết nối đến C2 server.
Máy chủ C2 trả về trang web HTML hợp lệ với lệnh độc hại được mã hóa trong mã QR (được hiển thị trực quan trên trang).
Remote browser hiển thị lại nội dung pixel từ máy chủ C2 đến local browser.
Phần mềm độc hại đợi trang web được hiển thị hoàn toàn, sau đó chụp ảnh màn hình local browser. Ảnh chụp màn hình này chứa mã QR.
Phần mềm độc hại sử dụng thư viện quét QR để đọc dữ liệu, trích xuất ra được câu lệnh.
Phần mềm độc hại thực thi lệnh trên thiết bị của nạn nhân.
Phần mềm độc hại thông qua local browser, điều hướng đến một URL mới bao gồm output của câu lệnh được mã hóa trong tham số URL. Tham số này được truyền qua remote browser và cuối cùng là đến máy chủ C2.
Phần mềm độc hại vào tính năng sleep trong một thời gian ngắn, sau đó lặp lại chu kỳ.
Đáng lưu ý, kỹ thuật này hoạt động trên cả ba loại trình duyệt cô lập (từ xa, tại chỗ và cục bộ).
Khuyến nghị
Phía FPT Threat Intelligence khuyến nghị tổ chức và cá nhân một số cách để phòng chống chiến dịch này:
Giám sát lưu lượng mạng bất thường: Tổ chức cần theo dõi lưu lượng mạng để phát hiện các hoạt động bất thường.
Giám sát trình duyệt ở chế độ tự động hóa: Tổ chức có thể phát hiện trình duyệt bị điều khiển ở chế độ tự động bằng cách kiểm tra command line process. Ngoài ra, trình duyệt dựa trên Chromium nên sử dụng các flag như:
--enable-automation,--remote-debugging-portđể xác định khi trình duyệt bị điều khiển thông qua giao thức DevTools.Tăng cường đào tạo nhận thức bảo mật: Nâng cao nhận thức của nhân viên về các phương pháp tấn công C2 và cách thức nhận diện các hoạt động đáng ngờ.
Hạn chế quyền truy cập DevTools và chế độ tự động: Tắt hoặc giới hạn quyền truy cập vào DevTools protocol trên trình duyệt.






