Chương 1: TONG QUAN DE TÀI Trình bày khái quát định hướng nghiên cứu của khóa luận mà chúng tôi muốn hướng tới. Chương 2: CƠ SỞ LÝ THUYET Trình bày các định nghĩa, khái niệm cũng như những kiến thức nền tảng để có thể thực hiện được nghiên cứu. Đồng thời trình bày sơ lược một số công trình liên quan có cùng hướng nghiên cứu. Chương 3: PHƯƠNG PHÁP THỰC HIỆN Là phần trọng tâm của khoá luận, trình bày những nội dung chính về phương pháp thực hiện và mô hình được sử dụng.
Chương 4: HIỆN THỰC, ĐÁNH GIÁ VÀ THẢO LUẬN Đề cập đến quá trình hiện thực hóa phương pháp dé cập ở Chương 3. Sau đó trình bày phương pháp thực nghiệm, đánh giá kết quả và thảo luận chung. Chương 5: KET LUẬN VÀ HƯỚNG PHÁT TRIỂN Dua ra kết luận về đề tài, dé xuất một số hướng phát triển mở rộng cho các nghiên cứu trong tương lai. Chương 2 CƠ SỞ LÝ THUYÊT Tóm tắt chương Chương này, nhóm chúng tôi sẽ trình bày cơ sở lý thuyết của nghiên cứu: Bao gồm tệp thực thi, mô hình phân tích mã độc bằng phương pháp học máy với những thuật toán khác nhau, mô hình khả điễn giải XAI, mạng sinh đối kháng GAN và cách kết hợp giữa XAI va GAN để lọc ra những thuộc tính, những mẫu đối kháng tốt nhất nhằm phục vụ cho việc huấn luyện đối kháng.1 Tệp thực thi PE 2.1 Cấu trúc tệp thực thi Trong nghiên cứu này chúng tôi chỉ sử dụng những tệp thực thi có định dạng PE làm đối tượng nghiên cứu.
Định dạng tệp PE, là một loại tệp thực thi tiêu chuẩn trên hệ hiệu hành Windows, tên đầy đủ là Portable Executable (PE), định dạng tệp tin PE là định dạng của tệp thực thi executables(.exe) và dynamic link library(.dll), được sử dụng cho cả 2 phiên bản hệ điều hành 32 bit và 64 bit. Định dạng này là một cấu trúc đóng gói đữ liệu cho trình tải hệ điều hành Windows(Windows OS loader) để quản lý và thực thi những mã lệnh. Những chức năng cơ bản của định dạng tệp tin PE: ¢ Mô tả Dinh dang PE: Dinh dang PE (Portable Executable) cung cấp một bản đồ chi tiết về cách chương trình được tải vào bộ nhớ. Nó xác định vị trí và cách mã và dữ liệu được lưu trữ trong bộ nhớ, cũng như các thư viện cần 6 Chương 2.
COSO LY THUYẾT thiết và cách chúng được liên kết. Bằng cách này, nó quy định cách chính xác để hệ điều hành tải chương trình và đảm bảo tính đồng nhất trong quá trình thực thi. © Tài nguyên sử dụng trong quá trình thực thi: Chương trình cung cấp các tài nguyên như hình ảnh, video, và chuỗi ký tự mà nó có thể sử dụng trong suốt quá trình thực thi. Các tài nguyên này đóng vai trò quan trọng trong việc cung cấp trải nghiệm người dùng hoàn chỉnh và đa dạng, bổ sung cho chức năng chính của chương trình.
e Cơ chế bảo mật: tập tin PE thường sử dung chữ ký số và các phương tiện khác để hệ điều hành có thể xác thực nguồn gốc của chương trình được nạp. Qua đó, hệ điều hành có khả năng đảm bảo tính toàn vẹn và nguồn gốc của mã, giúp ngăn chặn các cuộc tân công độc hại và đảm bảo tính ổn định của hệ thống. Cấu trúc chung của định dạng tệp tin PE sẽ có 2 phần là header và section, phần header dùng để lưu các giá trị định dang va offset của các section trong phan section. Trường tiêu dé DOS (DOS Header) Trường tiêu dé DOS có mục dich để thông báo tệp tin không thé hoạt động Trong môi trường MS-DOS, trường này được thực thi mỗi khi tệp tin chạy trong môi trường MS-DOS.
Cụ thể, Trường tiêu dé DOS chiếm 64 bytes đầu tiên trong tệp và bao gồm hai giá trị quan trọng: emagic (0x5a4b) và e_lfanew, một DWORD 4 bytes. Giá trị trong e_lfanew chứa khoảng cách (offset) đến Trường tiêu dé tập tin PE, xác định cách thức tập tin sẽ được thực thi. Để đảm bảo khả năng thực thi trong môi trường MS-DOS, 64 bytes đầu tiên của tệp thực thi PE được chiếm bởi trường tiêu dé DOS. Trong trường này, e_magic là chữ ký của tệp thực thi PE va e_là một DWORD chứa offset của PE Header so với vị trí đầu tệp.
Thông qua việc này, tệp tin được xác định và chuẩn bi để thực thi, giúp tăng tính linh hoạt của nó trong các môi trường khác nhau. COSO LY THUYẾT 64 bit 6x000 COFF 6x0008 Header 6x0010 6x0018 Standard 6x0020 COFF Fields 0x0028 0x0030 0x0038 0x0040 0x0048 Windows 9x0050 Specific Fields 0x0058 @xa060 0x0068 0x0070- Optional Header Data Directories Section Table Chương 2. COSO LY THUYẾT Trường DOS STUB Trường này là một chương trình DOS EXE dùng để thông báo lỗi: “This is pro- gram cannot be run in DOS mode” khi chương trình không tương thích. Trường tiêu dé PE (PE Header) Truong PE header bao gom cac thong tin can thiét dé tai chương trình lên bộ nhớ.
Câu trúc này gồm 3 phần được định nghĩa trong windows.inc: ¢ Signature: là 1 DWORD bắt đầu của PE Header chứa chữ ký : 50h, 45h, 00h, 00h. se IMAGE FILE HEADER: Trường nay bao gồm 20 bytes tiếp theo của PE Header, phan này chứa thông tin về sơ dé bố trí vật lý và các đặc tính của tệp tin. e® IMAGE_OPTIONAL_HEADER: Gồm 224 bytes tiếp theo sau FILE_HEADER. Chứa thông tin về sơ đồ logic trong tệp tin PE.
Trường nay chứa một số thông tin quan trọng giành cho việc chỉnh sửa tệp tin Magic (2 bytes): Xác định là tệp tin 32 bit (OB 01) hay 64 bit (OB 20) AddressOfEntryPoint (4bytes): Chứa dia chi ảo tương đối (RVA) của câu lệnh đầu tiên sé được thực thi khi chương trình PE loader san sàng để chạy tệp thực thi PE (. Nếu muốn chương trình bắt đầu từ một địa chỉ khác (để thực thi câu lệnh với mục đích khác) thì cần thay đổi địa chỉ này về địa chỉ tương đối của câu lệnh muốn thực thi. ImageBase: địa chỉ nạp được ưu tiên cho tệp tin PE. Section Alignment: Phần liên kết của các Section trong bộ nhớ.
File Alignment: Phan liên kết của các Section trong tệp tin. Tương tự như SectionAlignment nhưng áp dụng với tệp tin. SizeOfImage: Toàn bộ kích thước của Pe image trong bộ nhớ, là tổng của tất cả các headers và sections được liên kết tới Section Alignment SizeOfHeaders: Kích thước của tất cả các headers + section table = kích thước tệp tin trừ đi tổng kích thước của các section trong tệp tin. COSO LY THUYẾT — Data Directory: là một mảng gồm 16 phan tử, trong đó mỗi phần liên quan đến một cấu trúc di liệu quan trọng trong tệp tin PE.
Phân đoạn bảng (Section Table) Section Table là thành phần tiếp theo ngay sau Trường tiêu để PE, Section Ta- ble bao gồm một mảng những câu trúc IMAGE_SECTION_HEADER, Mỗi thành phần trong đó đều chứa thông tin về một phân đoạn cụ thể trong tệp tin PE: ¢ Kích thước ảo (VirtualSize): Kích thước thật của dữ liệu sau khi được tải lên bộ nhớ. ¢ Dia chỉ ao (VirtualAddress): Giá trị ánh xạ của các section sau khi được tải lên bộ nhớ. * SizeOfRawSection: Kích thước của section data có trên 6 đĩa. * PointerOfRawSection: là offset từ đầu tệp tin cho tới section data.
¢ Đặc tinh (Characteristic): Chia đặc tính của section: thực thi, dữ liệu khởi tạo. Phân đoạn tập tin PE (Section PE File) Phan sections của một tệp tin PE chứa dữ liệu cần thiết dé có thể thực thi được tệp tin. Mỗi phan của PE section đều có chứa tiêu dé riêng (Section Header) được lưu trữ trong Section Table.text là phân đoạn chứa mã thực thi của tệp tin PE. e data: Chua dữ liệu, các biến được khởi tao trong mã lệnh.rdata: Chứa những dữ liệu chỉ đọc, các biến const.idata: Chứa bảng nhập (Import Tables).
Phan này được trình tai sử dụng để xác định sẽ tải những DLL nào va các chức năng được sử dụng từ mỗi DLL.edata: Chứa những thư mục xuất (Export Directory). Phan nay bao gồm những hàm có chức năng xuất. COSO LY THUYẾT © .rsrc: Chứa tai nguyên mà một chương trình sử dung. Bao gồm hình ảnh, biểu tượng, .2 Hop ngữ Hop ngữ hay còn được gọi là Assembly code, là một loại ngôn ngữ bac thấp va có khả năng tương tác trực tiếp với vi xử lý.
Hợp ngữ có thể được dịch sang ngôn ngữ khác thông qua trình biên dịch assembly (assembler) và trình dịch ngược (disassembler) [1]. Dịch mã độc sang hợp ngữ giúp việc phân tích và điều tra trở nên dé dàng hơn nhờ tính tương thích với hoạt động của máy tính. Malware Author Malware Analyst High-level Language Low-Level Language int -¢; printf("Hello.\n"); exit(0); sub esp, 0x4ũ CPU Compiler Machine Code Disassembler Khi mã độc được dịch sang hợp ngữ, chúng thường sử dụng các lệnh để tương tác với hệ điều hành bằng cách gọi các thư viện liên kết động (DLL), các thư viện này được nạp vào bộ nhớ khi chương trình chạy. Các loại mã độc thường lợi dụng DLL để thay đổi thanh ghi hệ thống, sao chép tập tin,.
COSO LY THUYẾT Nghiên cứu của Moskovitch [14] cũng chi ra rằng việc sử dung hợp ngữ sé có hiệu quả cao hơn trong việc phân tích mã độc so với mã máy, ngoài ra mã độc nén và mã độc đa hình có thể bị phân tích bằng cách sử dụng những trình disassembler như IDA. Các kỹ thuật biến đổi hình dạng mã độc trên hợp ngữ như chèn mã chết, tái khai báo thanh ghi, tái sắp xếp chương trình con, thay thế lệnh, chuyển vị mã và tích hợp mã nhằm mục đích tránh được phát hiện bởi các trình phát hiện mã độc. Điều này làm nảy sinh nhu cầu phân tích mã hợp ngữ của các nhà khoa học để hiểu rõ cơ chế phát hiện mã độc của các công cụ phát hiện hiện tại. Một số vai trò của hợp ngữ trong việc phát hiện và phân tích mã độc: s® Phân tích chuyên sâu và chi tiết: Mã độc thường được viết hoặc dịch sang hợp ngữ để tăng độ khó trong việc phát hiện và phân tích.
Khả năng đọc hiểu hợp ngữ giúp các chuyên gia an ninh mạng tiếp cận mã độc từ gốc rễ, phân tích các hành vi bat thường hoặc độc hai ma các công cu tự động có thể bỏ sót. Nghiên cứu của Gu và cộng sự [4] đã nhấn mạnh tầm quan trọng của việc sử dụng hợp ngữ trong việc phát hiện mã độc thông qua phân tích tính và học máy. © Phat hiện kỹ thuật xáo trộn (Obfuscation): Kỹ thuật xáo trộn mã nhằm che giấu mục đích thực sự của mã độc bang cách thay đổi cấu trúc mà không làm thay đổi hành vi của nó.