Chương 1: TONG QUAN DE TÀI Trình bày khái quát về định hướng nghiên cứu của khóa luận va lý do chọn đề tài. Đồng thời, nêu sơ lược một số công trình nghiên cứu liên quan để cung cấp cái nhìn tông thê về lĩnh vực nghiên cứu. o_ Chương 2: KIÊN THỨC NÊN TẢNG 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 dé có thé thực hiện được nghiên cứu. o_ Chương 3: PHƯƠNG PHAP DE XUẤT Phan trọng tâm của khóa luận, giới thiệu chi tiết về phương pháp nghiên cứu được sử dụng và mô hình đề xuất.
Mô tả cách thức tiếp cận và các bước thực hiện cụ thể trong nghiên cứu. o Chương 4: THỰC NGHIEM VÀ ĐÁNH GIÁ Mô tả quá trình thực nghiệm và cách triển khai phương pháp đã trình bày ở Chương 3. Trình bày kết quả thực nghiệm, đánh giá các kết quả đạt được, và thảo luận về những phát hiện và ý nghĩa của chúng. o_ Chương 5: KET LUẬN VA HƯỚNG PHÁT TRIEN Tóm tắt những kết quả quan trọng của nghiên cứu, đưa ra các kết luận chính.
Đề xuất các hướng phát triển mở rộng và tiềm năng cho các nghiên cứu tương lai dựa trên kết quả đã đạt được. KIÊN THỨC NEN TANG 2. Định dạng file PE Định dạng tập tin PE là định dạng tập tin nhị phân được sử dụng rộng rãi trong hệ sinh thái hệ điều hành Windows dé lưu trữ các chương trình thực thi, thư viện liên kết động (DLLs), đối tượng và các tài nguyên khác. Dinh dang này được phát triển dựa trên định dạng COFF (Common Object File Format) của Unix và được sử dụng dé dam bảo tính tương thích giữa các hệ sinh thái Windows khác nhau.
Một tập tin PE được cấu thành từ nhiều thành phần, mỗi thành phần giữ vai trò quan trọng trong việc thực thi và quản lý chương trình (Hình 2-1). Các thành phần của một tập tin PE bao gồm: MS-DOS Header | | PE Header | Optional Header | Sections Table Hình 2-1. Tổng quan các thành phan của một tap tin PE. e DOS Header: o Đây là phan đầu tiên của tệp tin PE, chứa một stub DOS nhỏ va các thông tin cần thiết dé nhận dạng tệp tin PE.
Stub DOS này cho phép hiển thị một thông báo lỗi khi cố gắng chạy tệp tin PE trên hệ điều hành DOS. o e_magic: Chữ ký "MZ" nhận diện tệp tin DOS. o e lfanew: Dia chi offset đến PE header, noi cấu trúc chính của PE tệp tin bắt đầu. PE Header: o Phần này chứa các thông tin cần thiết để hệ điều hành Windows tải và thực thi chương trình.
o Signature: Chữ ky "PE" xác định tệp tin PE. o Tệp tin Header: Cung cấp thông tin cơ ban về tệp tin PE như số lượng section, kích thước của header, kiến trúc máy (architecture) và thời gian tạo tép tin. o_ Optional Header: Chứa thông tin chi tiết về cách hệ điều hành nạp và quản lý tệp tin, bao gồm entry point, base address, kích thước của code và data sections, và các thông tin về các bảng quan trọng như import table, export table. Section Table: o Đây là bảng mô tả các section khác nhau trong tệp tin PE, mỗi section chứa các mã lệnh, dữ liệu hoặc tài nguyên của chương trình.
o_ Mỗi entry trong section table mô tả một section với các thông tin như tên section, kích thước, địa chỉ ảo, địa chỉ trên đĩa và các thuộc tính khác.text: Chứa mã thực thi của chương trình.data: Chứa dữ liệu khởi tạo cho chương trình.bss: Chứa dữ liệu chưa khởi tạo.rdata: Chứa dữ liệu chỉ đọc.edata: Chứa bảng xuất (export table).idata: Chứa bảng nhập (import table).rsrc: Chứa các tài nguyên như biểu tượng, hình ảnh, chuỗi văn bản. e Import Table (Bảng Nhập): o Liệt kê các ham va thư viện mà chương trình sử dung từ các DLL khác. o_ Cung cấp thông tin để hệ điều hành nạp các thư viện cần thiết và liên kết các hàm nhập khi chương trình khởi động. e Export Table (Bảng Xuất): o Liệt kê các hàm va dữ liệu mà tệp tin PE cung cấp cho các chương trình khác sử dụng.
o_ Thường được sử dụng trong các DLL để cung cấp các API cho các ứng dụng khác. e Relocation Table (Bảng Tái Dinh VỊ): o Chua thông tin dé tái định vi các địa chỉ khi tệp tin PE được nạp vào một địa chỉ cơ sở khác với địa chỉ đã được chỉ định ban đầu. o Đảm bao rang các tham chiếu địa chỉ nội bộ trong tệp tin PE vẫn chính xác sau khi được nạp vào bộ nhớ. e Resource Table (Bảng Tài Nguyên): o Chitra các tài nguyên như biểu tượng, hình ảnh, chuỗi văn bản, và các đối tượng khác được chương trình sử dụng.
Hiểu rõ cấu trúc và các thành phan của định dạng tệp tin PE là rất quan trọng trong việc phân tích và phát hiện phần mềm độc hại. Kiến thức này cung cấp nên tảng dé nghiên cứu các kỹ thuật tan công và phòng thủ liên quan đến các tệp tin thực thi trên hệ điều hành Windows. Việc nắm vững định dạng tệp tin PE cũng giúp các chuyên gia bảo mật xây dựng các công cụ và phương pháp hiệu quả để phát hiện và ngăn chặn các môi đe dọa từ mã độc. Mã độc (Malware) Mã độc (malware) là thuật ngữ chỉ các phần mềm được thiết kế với mục đích gây hại cho hệ thống máy tính, đánh cắp thông tin, gây gián đoạn dịch vụ hoặc thực hiện các hành vi độc hại khác.
Mã độc có thé lây lan qua nhiều kênh khác nhau, bao gồm email, trang web độc hại, phân mêm tải xuông và lỗ hông bảo mật trong hệ điêu hành hoặc ứng dụng. Mã độc được phân loại thành nhiều loại khác nhau, mỗi loại có đặc điểm và phương thức hoạt động riêng. Trong nghiên cứu này chúng tôi sẽ nêu định nghĩa của 7 loại: Virus © Virus là một loại mã độc có khả năng tự sao chép và lây lan từ tệp này sang tệp khác trong hệ thống. Virus thường gắn vào các tệp thực thi hoặc tài liệu và lây lan khi các tệp này được mở hoặc chạy.
© Virus có thé gây ra các hậu quả như làm chậm hệ thống, xóa đữ liệu, hoặc tạo ra các cửa hậu (backdoor) cho tin tặc. Worm © Worm là một loại mã độc có khả năng tự sao chép và lây lan qua mạng mà không cần sự tương tác của người dùng. Worm thường khai thác các lỗ hong bao mật trong hệ điều hành hoặc ứng dụng để lây lan. Hậu quả của worm có thể là làm tắc nghẽn mạng, làm chậm hệ thống hoặc cài đặt các phân mêm độc hại khác.
Trojan © Trojan (Trojan Horse) là loại mã độc giả mạo thành phần mềm hợp pháp để lừa người dùng cài đặt. Sau khi được cài đặt, Trojan có thể thực hiện các hành vi độc hại như đánh cắp thông tin, ghi lại hoạt động bàn phím, hoặc tạo cửa hậu. Trojans không tự sao chép như virus hoặc worm, mà dựa vào việc lừa người dùng cài đặt. Ransomware o Ransomware là loại mã độc mã hóa dữ liệu của nạn nhân và yêu cầu tiền chuộc dé khôi phục dit liệu.
Ransomware thường lây lan qua email phishing hoặc tải xuống từ trang web độc hại. o Hậu quả là mat dit liệu quan trọng và phải trả tiền chuộc dé khôi phục dữ liệu. e Spyware o Spyware là loại mã độc được thiết kế dé giám sát và thu thập thông tin từ máy tính của nạn nhân mà không được phát hiện. Spyware có thể ghi lại hoạt động bàn phím, chụp ảnh màn hình, hoặc thu thập dữ liệu duyệt web.
o Spyware thường được cài đặt mà không có sự đồng ý của người dùng và có thé gây ra các van đề về quyền riêng tư và bảo mật. e Adware o Adware là loại mã độc hién thị quảng cáo không mong muốn trên máy tính của người dùng. Adware thường được tích hợp vào các phần mềm miễn phí và hiển thị quảng cáo khi phần mềm được sử dung. o Adware không gây hại nghiêm trọng nhưng có thé làm phiền người dùng và làm chậm hệ thống.
e Backdoor o Backdoor là loại mã độc tạo ra một lối vào ân cho tin tặc, cho phép họ truy cập và kiểm soát hệ thống mà không bị phát hiện. Backdoor thường được cài đặt sau khi hệ thống đã bị xâm nhập qua lỗ hồng bảo mật hoặc phần mềm độc hại khác. o_ Backdoor có thé được sử dụng để điều khiển máy tinh từ xa, đánh cắp dữ liệu hoặc cài đặt thêm mã độc. Các phương pháp phát hiện mã độc Trong lĩnh vực phát hiện mã độc, đã có rât nhiêu các công trình nghiên cứu được thực hiện bởi các nhóm sinh viên, các nhóm nhà khoa học, nhà nghiên cứu, những 10 kết quả thu được nhiều sự khả quan.
Các ví dụ có thé được ké ra như trong bài báo MalDetConv [6], ta được một bộ khung tổng hợp phát hiện mã độc bằng cách phân tích động, hay trong bài báo MalDAE [7], ta có một bộ khung tổng hợp phát hiện mã độc bang cách phân tích lai, tuy nhiên có một han chế là phụ thuộc vào việc định hình được chuỗi tĩnh và động. Các công cụ phân tích tệp tin PE trên Linux cũng đa dạng về các phương pháp phân tích một tệp tin cụ thé nhưng nhìn chung, được chia thành 2 loại chính. Phân tích mã độc tĩnh Các công cụ phân tích tĩnh cho phép phân tích một tệp tin thực thi dựa trên mã nguôn hoặc dịch ngược mà không cần thực thi chúng. Các thông tin mà các phương pháp này mang lại thường là mã hợp ngữ, các chuỗi độc được, các trường trong PE header,.
Do không cần thực thi nên các công cụ này có khả năng xử lí và phân tích trong thời gian thực và dễ sử dụng, không cần thiết lập các môi trường phân tích phức tạp. Tuy nhiên, đối với các tập tin PE đã sử dung các phương pháp rối mã, mã hóa hay bị nén, các công cụ này sẽ không đem lại hiệu quả cao do không trích xuất được các thông tin đã bị ẩn giấu. Phân tích mã độc động Trái ngược với các phương pháp phân tích tĩnh, các công cụ phân tích động cho phép thực thi một tệp tin trên một môi trường có kiểm soát và quan sát hành vi của nó. Các phương pháp phân tích động thường được sử dụng là: - Sandboxing: Tạo ra một môi trường ảo độc lập cho phép thực thi các tệp tin PE an toàn, đồng thời theo dõi hành vi của việc thực thi tệp tin, bao gồm lời gọi hệ thống (system call), các hoạt động mạng (network activity), sự thay đổi của tệp tin hệ thống (tệp tin system changes), các tệp tin DLL được load, và sự chỉnh sửa các registry (registry modifications).