- Trích xuất thơng tin thuộc tính cơ bản tệp tin ELF (ELF Metadata Extraction component - EME): tự động xác định thơng tin sơ bộ của tệp tin ELF thơng qua siêu dữ liệu (metadata) của tệp này.
- Sinh cấu hình hoạt động Sandbox (Sandbox Configuration Generation component - SCG): Tạo các tham số cấu hình phù hợp của mơi trường Sandbox để kích hoạt thực thi tệp ELF đầu vào.
- Mơi trường Sandbox (Sandbox Engine component - SE): Mơi trường Sandbox thích hợp cho phép giám sát hành vi và tạo điều kiện cho tệp thực thi ELF thể hiện đầy đủ hành vi.
- Tiền xử lý dữ liệu thơ thu thập được (Raw Data Preprocessing component - RDP): tiền xử lý, xác định sơ bộ các hành vi điển hình của tệp thực thi ELF, cung cấp dữ liệu thống kê hành vi cho thành phần tính tốn khả năng thực thi lại của Sandbox (SR). - Tính tốn khả năng thực thi lại Sandbox (Sandbox Recomputation component - SR):
quyết định xem cĩ xuất báo cáo về các hành vi của tệp ELF hay cần chạy lại mơi trường Sandbox (SE) với cấu hình mới để thu thập thêm dữ liệu hành vi.
- Giả lập máy chủ C&C (C&C simulator): Thành phần giả lập máy chủ ra lệnh và điều khiển mạng lưới mã độc IoT Botnet (C&C server) cung cấp khả năng tạo kết nối, giao tiếp và nhận lệnh từ C&C server.
- Cơ sở dữ liệu thư viện liên kết động (Share Object DB): cơ sở dữ liệu chứa các tệp thư viện liên kết động mà tệp thực thi ELF cĩ thể yêu cầu.
- Sinh báo cáo tự động (Report): Tạo một bản tĩm tắt các hành vi đã được giám sát mà tệp thực thi ELF thể hiện trong mơi trường Sandbox.
Đầu tiên, khối EME đọc tiêu đề (Header) tệp ELF cần thực thi để xác định kiến trúc CPU, hệ điều hành cần thiết để khởi chạy mơi trường của V-Sandbox. Sau đĩ, khối SCG dựa vào thơng tin đầu ra của khối EME để tạo một trong các cấu hình cơ bản cho mơi trường Sandbox thực thi (dữ liệu đầu ra là tệp cấu hình hoạt động của Sandbox - “Configuration file”). Mơi trường Sandbox (SE) này sẽ thực thi và thu thập dữ liệu hành vi thơ (Collected raw data) của tệp ELF bằng các tác tử với cấu hình mơi trường chạy được lưu trữ trong tệp “Configuration file”. Dữ liệu thơ được thu thập từ các tác tử này sẽ được chuyển đến khối tiền xử lý RDP. Tại đây, dữ liệu hành vi của tệp ELF được đọc và phân tích để cập nhật vào tệp cấu hình “Configuration file”, bao gồm địa chỉ IP của máy chủ C&C được mã độc yêu cầu và các thư viện liên kết động bị thiếu. Ngồi ra, những dữ liệu hành vi này hỗ trợ khối tính tốn SR ra quyết định chạy lại mơi trường Sandbox hoặc dừng lại và tạo báo cáo kết quả phân tích. Trong trường hợp khối SR cho kết quả yêu cầu chạy lại mơi trường Sandbox, với sự hỗ trợ từ “Configuration file” đã được cập nhật, “C&C simulator” và “Share Object DB”, V- Sandbox cĩ thể thu thập thêm
dữ liệu mới về hành vi của ELF. Cuối cùng, khi khối SR xác định khơng thể thu thập thêm thơng tin hành vi của tệp ELF, nĩ sẽ ra lệnh tạo một báo cáo kết quả về dữ liệu hành vi của tệp ELF thơng qua khối Report.
2.2. Các thành phần chính
Các dấu vết hành vi độc hại của mã độc IoT Botnet được thu thập bằng cách theo dõi việc thực thi từng mẫu ELF đầu vào trong một mơi trường mơ phỏng tương tự như một thiết bị IoT hạn chế tài nguyên được kết nối đầy đủ với Internet. Phương pháp phân tích động được áp dụng cho cách tiếp cận được đề xuất này nhằm mục đích thu thập nhật ký lời gọi hệ thống. Các mẫu tệp ELF được thực hiện trong mơi trường mơ phỏng và ghi lại hành vi gọi của hệ thống bằng cách sử dụng tác tử tích hợp. Với các lời gọi hệ thống được ghi lại, tương tác của mã độc IoT Botnet được thể hiện với các hành vi cố gắng kết nối với máy chủ C&C; phát hiện các thiết bị khác thơng qua các cởng dịch vụ mở như SSH, Telnet, FTP. Mơi trường mơ phỏng thực hiện nhiệm vụ này phải đảm bảo các yêu cầu gồm: hỗ trợ nhiều kiến trúc CPU, tạo kết nối máy chủ C&C, cung cấp thư viện liên kết động, thu thập đầy đủ các hành vi tương tác với hệ thống trong thời gian chạy tệp thực thi. Vì vậy, mơi trường V-Sandbox đã được nghiên cứu sinh xây dựng phục vụ thu thập thơng tin hành vi độc hại của mã độc IoT Botnet. Mơ tả về V-Sandbox được trình bày ở các nội dung dưới đây.
2.2.1. Trích xuất thơng tin thuộc tính cơ bản của ELF (EME)
Mơi trường V-Sandbox của nghiên cứu sinh tập trung bao gồm GNU/Linux và BSD. Định dạng của các tệp thực thi trong mơi trường này là ELF (Executable and
Linkable Format), định dạng cĩ thể thực thi và cĩ thể liên kết với các thư viện nằm
ngồi mã nguồn của tệp tin (thư viện liên kết động). Các thơng tin mơ tả về thuộc tính cơ bản của ELF được lưu trữ trong tiêu đề (header) của tệp. Header ELF dài 32 byte và xác định định dạng của tệp. Nĩ bắt đầu bằng một chuỗi gồm bốn byte duy nhất là
0x7F, sau đĩ là 0x45, 0x4c và 0x46, dịch thành ba chữ cái E, L và F. Trong các giá trị
khác, tiêu đề cũng cho biết đĩ cĩ phải là tệp ELF cho định dạng 32-bit hoặc 64-bit, cĩ thể thực thi hay khơng, kiến trúc Little edian hoặc Big edian, hiển thị phiên bản ELF cũng như tệp được biên dịch cho hệ điều hành nào và loại tập lệnh CPU sử dụng.
Để xác định các tham số cấu hình ban đầu cho mơi trường Sandbox cĩ thể khởi chạy tệp đầu vào, khối EME sẽ thực hiện trích xuất thơng tin thuộc tính cơ bản từ tệp thực thi, bao gồm:
- Định dạng của tệp: xác định tệp là định dạng ELF hay khơng, nếu cĩ thì là kiến trúc 32 bit hay 64 bit.
- Loại tệp: cĩ khả năng thực thi hay khơng.
- Kiến trúc CPU: xác định kiến trúc CPU cần thiết để thực thi. - Kernel: xác định phiên bản Kernel Linux cần thiết.
- Liên kết tĩnh hoặc liên kết động: xác định danh sách các tệp thư viện cần thiết ban đầu. Để đọc các giá trị trong Header ELF, cĩ nhiều cơng cụ như “Readelf”, “File
utility”, “Elfdump”, “Elfutils”, “Objdump”, “Scanelf”, “Elfkickers”,… Với thơng tin
yêu cầu cần thu thập của khối EME kể trên, nghiên cứu sinh đã thử nghiệm và lựa chọn sử dụng cơng cụ “Readelf”, vì hai lý do. Đầu tiên, cơng cụ “Readelf” cung cấp thơng tin đầy đủ theo yêu cầu của khối EME. Thứ hai, nĩ được tích hợp vào các phiên bản Linux dễ sử dụng mà khơng phải cài đặt thêm các gĩi bên ngồi.
Sử dụng cơng cụ “Readefl” để xác định các thuộc tính tệp được minh họa kết quả trong Hình 2.2 và Hình 2.3. Trong Hình 2.2 cho thấy mẫu tệp đầu vào (mẫu mã độc IoT Botnet Mirai cĩ mã MD5 là a7192c394957ba17878e3c1f57aca67b) là tệp khả chạy (Executable file – EXEC) với định dạng ELF 32 bit, Little Endian và được xây dựng cho kiến trúc Unix - System V, kiến trúc tập lệnh vi xử lý MIPS. Trong Hình 2.3 cho thấy một danh sách các thư viện mẫu mã độc yêu cầu cần để chạy. Lưu ý rằng đây là danh sách các thư viện mà ELF yêu cầu khi đọc Header, vì vậy nĩ khơng chắc chắn là đầy đủ. Vấn đề này sẽ được thảo luận thêm trong phần tiếp theo. Các thơng tin thuộc tính này được gửi đến khối SCG để tạo máy ảo phù hợp để thực thi tệp ELF. Đầu ra của khối EME là một tệp cĩ đuơi "argconfig" như được minh họa trong Hình 2.4.