Đôi nét về sandbox và kỹ thuật lẩn tránh của mã độc

08:52 | 24/01/2020

Phát hiện mã độc bằng cách sử dụng sandbox là một kỹ thuật phổ biến hiện nay. Bài viết dưới đây cung cấp đôi nét về sandbox, kỹ thuật lẩn tránh sandbox của mã độc và các biện pháp phát hiện ra chúng.

Sandbox là gì?

Theo Forcepoint, sandbox là môi trường biệt lập trên mạng mô phỏng môi trường hoạt động của người dùng cuối. Sandbox được sử dụng để thực thi những đoạn mã nghi ngờ một cách an toàn mà không gây nguy hiểm cho thiết bị hoặc mạng.

Được xem là một kỹ thuật phát hiện mã độc tiên tiến, Sandbox cung cấp cho người dùng một lớp bảo vệ trước các mối đe dọa an ninh mạng mới, như mã độc khai thác lỗ hổng zero-day hay tấn công ẩn mình. Sandbox đảm bảo việc thực thi các hành động độc hại chỉ được thực hiện trong sandbox, điều này giúp tránh lỗi hệ thống và lây lan mã độc.

Bên cạnh đó, môi trường sandbox cung cấp một lớp phòng thủ an ninh mạng chủ động chống lại các cuộc tấn công APT mới. Các cuộc tấn công APT được phát triển dựa trên mục tiêu cụ thể, thường là xâm phạm các tổ chức và đánh cắp dữ liệu. Chúng được thiết kế để tránh bị phát hiện bởi các giải pháp bảo mật và phương pháp dò quét đơn giản.

Vòng đời của một cuộc tấn công

Dưới đây là mô tả các bước của một cuộc tấn công điển hình khi gặp các giải pháp bảo mật.

Bước 1: Sau khi hoàn tất việc thăm dò, kẻ tấn công tạo một email lừa đảo chứa một liên kết hoặc tập tin độc hại gửi tới mục tiêu. Nếu các giải pháp chống thư rác và tấn công lừa đảo không ngăn chặn được email độc hại, thì những email này sẽ được chuyển đến mục tiêu.

Bước 2: Nếu người dùng nhấp chuột vào liên kết, thì sẽ được chuyển hướng tới một trang web. Tại giai đoạn này, nếu công cụ lọc web không chặn được lưu lượng truy cập độc hại thì cuộc tấn công sẽ được thực hiện thông con đường này.

Bước 3: Trang web độc hại thường sẽ là nơi khởi tạo các cuộc tấn công khai thác mục tiêu để có quyền truy cập vào hệ thống. Nếu hệ thống ngăn chặn xâm nhập (Intrusion Prevention System - IPS) không thể ngăn chặn cuộc tấn công, một đường hầm (Tunnel) sẽ được thiết lập và mã độc có thể được phát tán vào hạ tầng công nghệ thông tin của tổ chức.

Bước 4: Trong quá trình phát tán, mã độc sẽ tìm mọi cách để vượt qua phần mềm Antivirus. Thực hiện thành công, kẻ tấn công sẽ cài mã thực thi lên hệ thống.

Bước 5: Tại bước này, mã độc sẽ lấy cắp thông tin đăng nhập, thu thập dữ liệu nhạy cảm…. Tuy nhiên, để hoàn thành mục tiêu cuối cùng, nó cần phải trích xuất dữ liệu gửi tới máy chủ C&C. Lúc này, nếu các giải pháp kiểm soát ứng dụng, kiểm tra độ uy tín của IP (IP reputation), botnet và các biện pháp bảo vệ khác không thể chặn lưu lượng truy cập độc hại, thì hệ thống của tổ chức đã chính thức bị xâm phạm.

Các biện pháp chống spam, lọc web, IPS, Antivirus, kiểm soát ứng dụng và kiểm tra độ uy tín của IP là những biện pháp bảo vệ cần thiết. Tuy nhiên, các giải pháp bảo mật này sẽ không ngăn được các cuộc tấn công tinh vi nhất hiện nay. Bởi chúng chỉ dựa trên việc phát hiện các hành vi tấn công đã biết, cho dù thông qua phương pháp dựa trên dấu hiệu, heuristics hay kiểm tra độ uy tín.

Cuộc tấn công sẽ trở nên nguy hiểm nếu nó có tính mới hoặc có thể tự che giấu thông qua đường hầm, mã hóa hoặc các phương thức lẩn tránh khác. Việc bổ sung sandbox vào hệ thống chính là thêm một lớp bảo vệ để phát hiện mã độc, thậm chí cả những mã độc chưa biết.

Một số kỹ thuật lẩn tránh sandbox

Đi cùng với sự phát triển của sandbox, tin tặc cũng xây dựng các mã độc bổ sung tính năng mới nhằm lẩn tránh sandbox. Các kỹ thuật này chủ yếu dựa trên phát hiện tương tác của người dùng, hệ thống và thu thập thông tin môi trường.

Phát hiện tương tác người dùng

Trong quá trình sử dụng, người dùng tương tác với máy tính bằng nhiều thao tác khác nhau như nhấn bàn phím, cuộn hay nhấp chuột. Tuy nhiên, những tương tác này không xảy ra trong môi trường sandbox. Dựa trên đặc điểm này, tin tặc có thể thiết kế mã độc chờ đợi một hành động cụ thể từ người dùng và chỉ thực hiện hành vi độc hại sau khi phát hiện ra hành động đó. Ví dụ:

- Cuộn chuột trong tài liệu: Một số mã độc hiện đại có thể được lập trình là chỉ thực thi sau khi cuộn đến một vị trí cụ thể trong tài liệu. Chẳng hạn, một mã độc chỉ được kích hoạt sau khi người dùng cuộn văn bản RTF sang trang thứ hai. Để phát hiện hành động này, mã độc phải chứa các mã đoạn văn bản được sử dụng trong các văn bản Microsoft Word. Trong khi các tệp RTF cũng bao gồm các dấu đoạn văn bản (./par), thì mã độc chứa một loạt các đoạn cần được cuộn trước khi thực thi mã khai thác. Môi trường sandbox không có bất kỳ chuyển động cuộn nào, do vậy mã độc sẽ không được kích hoạt và qua mặt được giải pháp bảo mật này.

- Di chuyển và nhấp chuột: Một cách khác, mã độc được lập trình để kiểm tra tốc độ di chuyển và nhấp chuột. Nếu tốc độ di chuột đáng ngờ, thì mã độc sẽ không được kích hoạt, như Trojan.APT.BaneChan chỉ kích hoạt sau một số lượng nhấp chuột nhất định của người dùng.

Phát hiện tương tác hệ thống

Kỹ thuật phát hiện các tương tác hệ thống hoạt động dựa trên một số tính năng của hệ thống thực không có trong sandbox hoặc môi trường ảo, có thể kể đến:

- Đếm lõi: Kỹ thuật này cho phép mã độc tìm kiếm sự khác biệt giữa hệ thống ảo và thực, chẳng hạn như số lượng lõi CPU. Đây là lý do nhiều nhà cung cấp sandbox che thông tin cấu hình thực tế để tin tặc không thể phát hiện thông số kỹ thuật của sandbox.

- Chữ ký số của hệ thống: Một số mã độc được thiết kế để tìm chữ ký số của hệ thống. Chữ ký số này có chứa thông tin về cấu hình của hệ thống.

- Các chương trình đã cài đặt: cho phép mã độc kiểm tra tính khả dụng của các chương trình Antivirus bằng cách tìm kiếm các tiến trình hoạt động trong hệ điều hành. Mã độc Client Maximus là một ví dụ cho việc áp dụng kỹ thuật này để lẩn tránh sandbox bằng một trình driver ẩn mình.

- Khởi động lại hệ điều hành: Trong một số sandbox, hệ thống không thể hoạt động khi khởi động lại. Dựa trên dấu hiệu này, một số mã độc được thiết kế chỉ kích hoạt khi hệ thống khởi động lại. Mặc dù môi trường ảo cố gắng mô phỏng việc khởi động lại bằng cách đăng nhập và đăng xuất người dùng, nhưng mã độc có thể phát hiện ra điều này vì không phải tất cả các kích hoạt khởi động lại đều được thực thi.

Thu thập thông tin môi trường

Một kỹ thuật lẩn tránh khác được mã độc sử dụng là thu thập thông tin môi trường. Từ đó, mã độc có thể phát hiện liệu có phải chúng đang thực thi trong môi trường thực hay không.

Để kiểm tra môi trường thực thi, mã độc có thể được lập trình để phát hiện các thiết bị được cài đặt trên hệ thống bị lây nhiễm hoặc tìm kiếm các lệnh mà chỉ thuộc về một môi trường ảo, như lệnh gọi trình ảo hóa, một số tên tệp nhất định và các tiến trình điển hình của sandbox.

Bên cạnh đó, mã độc có thể phát hiện ra sandbox khi chính mã độc được đặt tên là “sample” hoặc “malware”. Ngoài ra, mã độc có thể phát hiện ra môi trường ảo khi tìm thấy các tiến trình như vmusrvc.exe, boxservice.exe hoặc vmtoolsd.exe.

Kỹ thuật dựa trên thời gian

Trong một số trường hợp, mã độc lẩn tránh sandbox bằng cách sử dụng kỹ thuật dựa trên thời gian. Kỹ thuật này lợi dụng tính năng phân tích mã độc chỉ trong một khoảng thời gian giới hạn của sandbox.

Dưới đây là ba loại kỹ thuật lẩn tránh sandbox dựa trên thời gian phổ biến:

- Ngủ kéo dài: Khi mã độc sử dụng các lệnh ngủ kéo dài, nó có thể vượt qua sandbox thành công trước khi thực thi.

- Logic Bom: Trong một số trường hợp, mã độc có thể được lập trình để thực thi vào một ngày hay một thời điểm cụ thể.

- Mã trì hoãn: mã độc có thể chứa các đoạn mã thực hiện các chu kỳ CPU vô dụng để trì hoãn việc thực thi cho đến khi sandbox kết thúc quá trình kiểm tra.

Làm rối dữ liệu bên trong

Kỹ thuật này cho phép mã độc thay đổi hoặc mã hóa mã nguồn và các kết nối của nó để sandbox không thể phân tích, có thể kể đến:

- Thay đổi nhanh: Kỹ thuật thay đổi tên DNS và địa chỉ IP được sử dụng rộng rãi bởi các botnet muốn ẩn địa chỉ phân phối mã độc. Nó cho phép mã độc vượt qua danh sách đen các website độc hại mà giải pháp bảo mật sử dụng. Chẳng hạn, botnet Necurs thay đổi địa chỉ website bằng cách sử dụng thuật toán tạo tên miền mới sau bốn ngày.

- Mã hóa dữ liệu: Một số mã độc như Trojan Dridex có thể mã hóa các lệnh gọi API để các sandbox truyền thống không thể đọc được chúng. Botnet Andromeda đã sử dụng nhiều khóa để mã hóa kết nối của nó với máy chủ.

Cách phát hiện mã độc lẩn tránh sandbox

Các kỹ thuật trên có thể cung cấp cho các nhà phát triển những hiểu biết sâu sắc hơn về cách phát hiện mã độc có khả năng lẩn tránh sandbox. Từ đó, các nhà phát triển sandbox có thể áp dụng một số cách để tránh sự qua mặt của mã độc.

- Thay đổi khoảng thời gian ngủ: Mặc dù sandbox thường phân tích mã độc trong vài giây, nhưng phân tích kéo dài có thể phát hiện mã độc sử dụng kỹ thuật ngủ kéo dài. Tuy nhiên, phương pháp này có thể không hiệu quả vì nó đòi hỏi nhiều thời gian hơn. Thay vào đó, có thể thay đổi cài đặt thời gian của sandbox để đánh lừa mã độc và kích hoạt chúng thực thi.

- Mô phỏng tương tác của người dùng: Theo mặc định, môi trường sandbox không mô phỏng các tương tác, do vậy có thể thêm một số tương tác như người dùng để phân tích mã độc tốt hơn. Tuy nhiên, mã độc hiện đại có thể phát hiện được các nhấp chuột hoặc chuyển động giả.

- Thực hiện phân tích tĩnh ngoài việc phân tích động: Công nghệ sandbox là một dạng phân tích mã độc động, vì nó kiểm tra hành vi của mã độc trong một môi trường an toàn. Trong khi mã độc lẩn tránh sandbox không thực hiện bất kỳ hành động nào, thì vẫn có thể phân tích tĩnh toàn bộ mã nguồn chúng một cách kỹ càng. Phân tích tĩnh sẽ kiểm tra tệp để phát hiện các kỹ thuật lẩn tránh hoặc mã nguồn đã được mã hóa.

- Sử dụng phân tích fingerprint: Công nghệ phân tích fingerprint cho phép phân tích tệp mã độc và tìm các chỉ lệnh của mã độc. Fingerprint cũng có thể được sử dụng để phát hiện các đặc điểm tránh sandbox của mã độc.

- Sử dụng phân tích dựa trên hành vi: Phân tích dựa trên hành vi cung cấp các tính năng được thiết kế để phát hiện và chống lại các kỹ thuật lẩn tránh sandbox. Trong quá trình phân tích này, sandbox tương tác với chính mã độc để tìm đường dẫn thực thi có thể sử dụng. Hơn nữa, nó mô phỏng các tương tác với tiến trình giống như từ một máy tính.

- Tùy chỉnh sandbox: Việc thêm các tính năng cải tiến khác để phát hiện mã độc có thể cải thiện đáng kể hiệu quả của sandbox. Chẳng hạn, có thể sử dụng một mảng nhiều sandbox gồm nhiều môi trường khác nhau và phân tích lặp lại. Việc kiểm tra các kết nối độc hại ngoài API hệ thống của máy cũng hiệu quả. Có thể thêm tính năng tìm kiếm và xác minh dấu vết của mã độc khi chạy trong sandbox.

- Triển khai biện pháp học máy: Phân tích mã độc dựa trên các thuật toán học máy có thể phát hiện một cách hiệu quả các kỹ thuật lẩn tránh sandbox trong mã độc trước khi nó thực thi. Các thuật toán học máy có thể phân tích mọi hành vi của mã độc thậm chí khi nó không hoạt động hoặc ngủ để lẩn tránh sandbox. Hơn nữa, nó có thể thu thập hàng triệu dấu hiệu khác mà khi kết hợp chúng lại có thể phát hiện mã độc.