Phát Hiện Sự Tương Đồng Mã Nhị Phân Trong Phần Mềm Bằng Học Sâu

Khóa luận trình bày phương pháp phát hiện sự tương đồng mã nhị phân trong phần mềm bằng hàm nhị phân và học sâu, nâng cao an toàn thông tin.

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2024

72
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI

1.1. Lý do chọn đề tài

1.2. Phương pháp nghiên cứu

1.3. Mục tiêu nghiên cứu

1.4. Phạm vi nghiên cứu

1.5. Đối tượng nghiên cứu

1.6. Cấu trúc Khóa luận tốt nghiệp

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Phát hiện tương đồng mã nhị phân

2.2. Hàm - Function

3. CHƯƠNG 3: PHƯƠNG PHÁP THỰC HIỆN

4. CHƯƠNG 4: HIỆN THỰC, ĐÁNH GIÁ VÀ THẢO LUẬN

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

DANH MỤC CÁC HÌNH VẼ

DANH MỤC CÁC BẢNG BIỂU

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT

TÓM TẮT KHÓA LUẬN

Tóm tắt

I. Tổng Quan Về Phát Hiện Sự Tương Đồng Mã Nhị Phân

Phát hiện sự tương đồng mã nhị phân là một lĩnh vực quan trọng trong an toàn thông tin. Nó giúp xác định các đoạn mã tương tự trong các phần mềm khác nhau, từ đó phát hiện lỗ hổng bảo mật. Việc áp dụng các phương pháp học sâu vào lĩnh vực này đã mở ra nhiều cơ hội mới cho việc phân tích và bảo vệ phần mềm.

1.1. Định Nghĩa Phát Hiện Tương Đồng Mã Nhị Phân

Phát hiện tương đồng mã nhị phân liên quan đến việc phân tích các biểu diễn nhị phân của hai hàm để xác định mức độ tương đồng của chúng. Điều này rất quan trọng trong việc phát hiện lỗ hổng bảo mật.

1.2. Tầm Quan Trọng Của Phát Hiện Tương Đồng

Việc phát hiện tương đồng mã nhị phân giúp nhận diện các đoạn mã độc hại và các trường hợp vi phạm bản quyền phần mềm, từ đó bảo vệ an toàn thông tin hiệu quả hơn.

II. Thách Thức Trong Phát Hiện Sự Tương Đồng Mã Nhị Phân

Mặc dù có nhiều tiến bộ trong lĩnh vực phát hiện tương đồng mã nhị phân, nhưng vẫn tồn tại nhiều thách thức. Các vấn đề như sự khác biệt trong mã nhị phân do biên dịch trên các nền tảng khác nhau gây khó khăn cho việc so sánh.

2.1. Khó Khăn Trong Việc So Sánh Mã Nhị Phân

Mã nhị phân có thể khác nhau về hình thức nhưng vẫn giữ nguyên ngữ nghĩa. Điều này làm cho việc phát hiện tương đồng trở nên phức tạp hơn.

2.2. Ảnh Hưởng Của Các Tùy Chọn Biên Dịch

Các tùy chọn biên dịch khác nhau có thể tạo ra mã nhị phân khác nhau, làm tăng độ khó trong việc phát hiện sự tương đồng giữa các hàm.

III. Phương Pháp Học Sâu Trong Phát Hiện Tương Đồng Mã Nhị Phân

Học sâu đã trở thành một công cụ mạnh mẽ trong việc phát hiện sự tương đồng mã nhị phân. Các mô hình học sâu có khả năng tự động trích xuất đặc trưng từ dữ liệu, giúp cải thiện độ chính xác trong việc so sánh.

3.1. Mô Hình Nhúng Hàm Nhị Phân

Mô hình nhúng hàm nhị phân giúp chuyển đổi các hàm thành vector, từ đó dễ dàng so sánh và tính toán độ tương đồng giữa chúng.

3.2. Sử Dụng Mạng Nơ Ron Để Tối Ưu Hóa

Mạng nơ-ron có thể học và trích xuất các đặc trưng phức tạp từ mã nhị phân, giúp cải thiện hiệu suất và độ chính xác trong phát hiện tương đồng.

IV. Ứng Dụng Thực Tiễn Của Phát Hiện Tương Đồng Mã Nhị Phân

Phát hiện tương đồng mã nhị phân có nhiều ứng dụng thực tiễn trong an toàn thông tin. Nó không chỉ giúp phát hiện lỗ hổng mà còn hỗ trợ trong việc phân tích mã độc và bảo vệ bản quyền phần mềm.

4.1. Phát Hiện Lỗ Hổng Phần Mềm

Sử dụng các phương pháp phát hiện tương đồng để xác định các lỗ hổng đã biết trong phần mềm, từ đó bảo vệ hệ thống hiệu quả hơn.

4.2. Phân Tích Mã Độc

Phát hiện mã độc thông qua việc so sánh các hàm nhị phân, giúp nhận diện các đoạn mã độc hại và bảo vệ người dùng.

V. Kết Luận Và Hướng Phát Triển Tương Lai

Phát hiện sự tương đồng mã nhị phân là một lĩnh vực đang phát triển mạnh mẽ. Việc áp dụng học sâu vào lĩnh vực này hứa hẹn sẽ mang lại nhiều cải tiến và giải pháp mới trong tương lai.

5.1. Tương Lai Của Phát Hiện Tương Đồng

Nghiên cứu và phát triển các phương pháp mới sẽ giúp cải thiện hiệu suất và độ chính xác trong phát hiện tương đồng mã nhị phân.

5.2. Xu Hướng Nghiên Cứu Mới

Các xu hướng nghiên cứu mới trong lĩnh vực học sâu và an toàn thông tin sẽ mở ra nhiều cơ hội cho việc phát triển các giải pháp phát hiện tương đồng mã nhị phân hiệu quả hơn.

10/07/2025
Khóa luận tốt nghiệp an toàn thông tin phương pháp phát hiện sự tương đồng mã nhị phân trong chương trình phần mềm dựa trên nhúng hàm nhị phân và học sâu

Trích đoạn nội dung tài liệu

Chương 1: TONG QUAN DE TÀI Trình bày tổng quan về đề tài của khóa luận tốt nghiệp, khái quát định hướng nghiên cứu mà chúng tôi muốn hướng tới cũng như mục tiêu muốn đạt được. Chương 2: CƠ SỞ LÝ THUYET Trình bày về cơ sở lý thuyết, các định nghĩa, các khái niệm cũng như những kiến thức làm nền tang để 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 nghiên cứu có liên quan trong lĩnh vực. Chương 3: PHƯƠNG PHÁP THỰC HIỆN Đây chính là phần trọng tâm của khoá luận, chúng tôi trình bày nội dung chính về mô hình và phương pháp pháp hiện tương đồng mã nhị phân ma chúng tôi đã xây dựng.

Chương 4: HIỆN THỰC, ĐÁNH GIÁ VÀ THẢO LUẬN Trong phần này chúng tôi sẽ trình bày các thí nghiệm và đánh giá phương pháp dé xuất đã dé cập ở Chương 3. Sau đó sẽ thực hiện đánh giá những kết quả đạt được và nêu bật các thảo luận chung. Chương 5: KẾT LUẬN VA HƯỚNG PHÁT TRIEN Chúng tôi sẽ đưa ra những kết luận về dé tài và mô hình đã xây dựng, dé xuất một số hướng phát triển mở rộng cho những nghiên cứu về tương đồng mã nhị phân trong tương lai. Chương 2 CƠ SỞ LÝ THUYÊT Tóm tắt chương Trong chương này, chúng tôi sẽ trình bày về các kiến thức lý thuyết trong phạm vi liên quan đến khóa luận.

Chương này sẽ bao gồm cái nhìn chung về bài toán phát hiện sự tương đồng mã nhị phân. Cùng với đó là lý thuyết về mô hình học sâu. Đồng thời, chúng tôi sẽ trình bày tóm tắt về những công trình nghiên cứu liên quan và những điểm mới của khóa luận này so với những nghiên cứu trước đây.1 Phát hiện tương dong mã nhị phân 2.1 Tổng quan bài toán Phát hiện tương đồng mã nhị phân Phát hiện sự tương đồng mã nhị phân liên quan đến việc phân tích các biểu diễn nhị phân của hai hàm để có thể xác định được mức độ tương đồng của chúng. Với đầu vào là biểu diễn nhị phân của một cặp hàm bắt kì đến từ hai chương trình nhị phân khác nhau, một phương pháp BCSD sẽ tính toán được dau ra là một điểm số tương đồng để có thể thể hiện được mức độ tương đồng giữa hai hàm làm đầu vào.

Điểm số tương đồng này có thể được sử dụng để chúng ta xác định những lỗ hổng phần mềm, bởi vì nếu một hàm tương đồng với một hàm đã biết là có lỗ hổng bảo mật thì ta có thể xác định được hàm đó cũng có lỗ hổng. Ngoài ra còn có thể xác định các đoạn mã độc hại, phân loại các họ phần mềm độc hại, và xác định các trường hợp sao chép phần mềm hoặc vi phạm bằng sáng chế phần mềm [11]. Công việc so sánh tương đồng trên mã nhị phân này tương đối là phức Chương 2. COSO LY THUYẾT tạp va khó khăn với con người hơn so với việc phân tích dựa trên mã nguồn, bởi vì một phần mềm thường được biên dich để có thể hoạt động trên nhiều những nền tảng kiến trúc khác nhau, điều này có thể khiến cho những tập lệnh nhị phân cũng khác đi.

Dù xuất phát cùng một đoạn mã nguồn, khi được biên dịch bằng những trình biên dịch khác nhau, hay dùng các phiên bản khác trong một trình biên dịch mã nguồn cũng khiến cho mã nhị phân đã có một sự khác biệt rõ rệt. Bên cạnh đó, còn có các tùy chọn biên dịch khác như biên dịch trên các lựa chọn tối ưu hóa khác nhau, hay là các phương pháp làm rối mã nhị phân cũng khiến cho công việc so sánh tương đồng nhị phân gặp nhiều thách thức.2 Hàm - Function Trong ngữ cảnh phát hiện sự tương đồng mã nhị phân, hàm (function) là một khối mã đã được biên dịch thành những mã máy và có thể được gọi để thực thi một nhiệm vụ cụ thể. Một hàm bao gồm một tập hợp gồm các lệnh được nhóm lại đưới một tên gọi và có thể được tái sử dụng ở nhiều đoạn khác nhau trong mã nguồn. Hàm giúp cấu trúc chương trình một cách rõ ràng va dé để chúng ta quản lý hơn, đặc biệt quan trọng khi phân tích và so sánh mã nhị phân.

Chúng tôi chọn hàm làm đơn vị chính trong phát hiện tương đồng nhị phân vì các lý do sau đây: 1. Tính đơn vị chức năng: Mỗi hàm thường thực hiện một nhiệm vụ cụ thể, rõ ràng và độc lập. Điều này có thể làm cho việc xem xét và so sánh giữa các hàm dé hơn. Bởi vì hàm thường chứa các khối mã liên quan đến một chức năng cụ thể, việc so sánh các hàm tương tự giữa các tệp nhị phân khác nhau sẽ giúp phát hiện các phần mã có chức năng tương đương.

Khả năng tái sử dụng: Một hàm, hay được gọi rất nhiều trong một ứng dụng hoặc giữa các phần mềm khác nhau, từ đó tăng tính tái sử dụng của mã nguồn và cùng một hàm có thé được tái sử dụng trong nhiều chương trình. Việc phát hiện các hàm tương tự trong các tệp nhị phân khác nhau có thể giúp nhận diện được các hàm tái sử dụng, từ đó, hỗ trợ tìm kiếm các hàm có chứa lỗ hổng bảo mật, các hàm đã biết là mã độc, v. COSO LY THUYẾT 3. Tinh rõ ràng và bảo trì: Sử dung hàm giúp mã nguồn trở nên rõ ràng hơn, dé đọc và dé bảo trì hơn.

Khi phân tích mã nhị phân, việc tập trung và các hàm giúp dễ xác định và so sánh các đoạn mã có chức năng tương tự, từ đó phát hiện các mẫu mã độc, các hàm có nguy cơ bảo mật hoặc mã sao chép. Ngoài những yếu tố trên, một hàm còn có khả năng biểu diễn thành đồ thị luồng điều khiển Control Flow Graph (CFG) một cách dé dàng.1 minh hoa CFG của hàm A và hàm B. Ưu điểm của hàm khi có thể biểu diễn thành CFG như sau: 1. Phân tích luồng điều khiển của ham: CFG giúp hình dung rõ ràng các đường đi khác nhau mà chương trình có thể thực hiện khi chạy, bao gồm các điều kiện rẽ nhánh va vòng lặp.

Điều này hữu ích trong việc phân tích hành vi của hàm, giúp nhận diện các điểm tương đồng và khác biệt giữa các hàm trong các tệp nhị phân khác nhau. Phát hiện lỗi: CFG hỗ trợ việc phát hiện các lỗi tiềm ẩn trong một hàm như vòng lặp vô tận, điều kiện không thể đạt tới, hoặc các đoạn mã không thể đạt tới. Trong ngữ cảnh bảo mật, việc phát hiện lỗi này giúp xác định các lỗ hổng có thể bị tận dụng khai thác. So sánh và đo lường tương đồng: Trong lĩnh vực phát hiện sư tương đồng mã nhị phân, CFG cung cấp một phương pháp mạnh mẽ để so sánh và đo lường mức độ tương đồng giữa các hàm, ngay cả khi chúng được biên dịch bởi các trình biên dịch khác nhau hoặc để chạy trên các nền tảng khác nhau.

Điều này hữu ích trong việc phân tích mã độc, phát hiện mã sao chép hay nhận diện đoạn mã có chức năng tương tự. COSO LY THUYẾT Function A Function B 9x199669d59 55 push rbp 9x199909ddf mov eax, dword [rdi] 0x100000d51 4889e5 mov rbp, rsp 9x199966de1 mov edx, dword [rsi] 9x199999g54 48897df8 mov qword [local 8h], rdi 0x100000de3 mov dword [rdi], edx 9x100000d58 488975f9 mov qword [local 16h], rsi 9x199909de5 mov dword [rsi], eax 0x190000d5c 488b75T8 mov rsi, qword [local_8h] 0x100000de7 ret 9x199996g69 8b06 mov eax, dword [rsi] 0x100000062 8945ec mov dword [local 14h], eax 9x199999g65 488b75f9 mov rsi, qword [local_ 19h] 0x190000d69 8b@6 mov eax, dword [rsi] 0x100600d6b 488b75f8 mov rsi, qword [tocal_ 8h] 9x199999d6f 8996 mov dword [rsi], eax 0x190600d71 8b45ec mov eax, dword [local_14h] 0x100000d74 488b75f9 mov rsi, qword [1ocal_19h] 0x100000d78 8906 mov dword [rsi], eax 0x100000d7a 5d pop rbp 0x100000d7b c3 ret HINH 2.1: Ví dụ về luồng điều khiển của hàm nhị phân 2. Khối cơ ban - Basic Block Khối cơ ban (Basic Block) là một đoạn mã lệnh trong một chương trình có điểm vào duy nhất, điểm ra duy nhất và thực thi tuần tự. Nghĩa là, khối cơ bản chỉ có thể được thực thi bắt đầu từ lệnh đầu tiên, kết thúc tại lệnh cuối cùng (có thể là lệnh nhảy hoặc return) và tất cả các lệnh bên trong được thực thi tuần tự từ trên xuống dưới mà không bị ngắt quãng (trừ lệnh nhảy ở cuối).

Nói cách khác, khi lệnh đầu tiên của khối co bản được thực thi, tat cả các lệnh còn lại cũng sé được thực thi theo thứ tự, và không có cách nào thoát khỏi khối cơ bản trước khi đến lệnh cuối cùng.2 minh họa các khối basic block trong một hàm. 100B585C 100B585C: 100B5832: mov eax, edi mov edi, [esp+1Ch] shr eax, 1 mov ecx, edi HINH 2.2: Hinh anh minh hoa basic block 10 Chương 2. COSO LY THUYẾT Tầm quan trọng của Basic Block trong việc phân tích tương đồng mã nhị phân: 1. Tính đơn vị: Khối cơ bản có tính đơn vị cao, vì tất cả các lệnh trong khối đều được thực thi mà không có sự ngắt quãng.

Điều này giúp cho việc phân tích mã trở nên dễ dàng hơn vì không cần quan tâm các lệnh nhảy mà có điều kiện hoặc không có các điều kiện bên trong khối. Câu trúc dir liệu quan trọng: Trong phân tích mã nhị phân va các chương trình phát hiện tương đồng mã, khối cơ bản là cấu trúc dữ liệu quan trọng. Các công cụ phân tích thường chia mã thành các khối cơ bản dé dé dang hơn trong việc so sánh và phân tích sự tương đồng. Phát hiện sự tương đồng mã: Trong bối cảnh phát hiện tương đồng mã nhị phân, khối cơ bản là đơn vị nhỏ nhất mà các công cụ phân tích thường xem xét.

Bằng cách so sánh các khối cơ bản từ các tệp nhị phân khác nhau, có thể xác định được mức độ tương đồng giữa các đoạn mã, giúp phát hiện lỗi phần mềm, hoặc đạo văn phần mềm.4 Công cụ dịch ngược Công cụ dịch ngược (Reverse Engineering Tools) là các phần mềm được sử dụng để phân tích mã nhị phân và chuyển đổi nó thành mã nguồn có cấu trúc cao hơn. Công cụ này giúp phân tích phần mềm, nắm rõ hơn về các phần cấu trúc, các chức năng và logic của chương trình đã được biên dịch. Một số công cụ dịch ngược được sử dụng có thể nói là rộng rãi hiện nay có thể kể đến như IDA Pro, Ghidra, Radare2, Angr. Các chức năng chính của công cụ dịch ngược như sau: e Trích xuất hàm: các công cụ dịch ngược giúp chuyển đổi mã máy không có cau trúc thành mã nguồn có cấu trúc (thường là assembly), giúp người dùng dé dàng hiểu va phân tích các hàm có trong mã nhị phân.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu có tiêu đề Phát Hiện Sự Tương Đồng Mã Nhị Phân Trong Phần Mềm Bằng Học Sâu khám phá các phương pháp và kỹ thuật trong việc phát hiện sự tương đồng giữa các mã nhị phân thông qua ứng dụng của học sâu. Bài viết cung cấp cái nhìn sâu sắc về cách mà các mô hình học sâu có thể được áp dụng để phân tích và so sánh mã nhị phân, từ đó giúp cải thiện hiệu suất và độ chính xác trong các ứng dụng bảo mật và phân tích mã độc.

Độc giả sẽ tìm thấy nhiều lợi ích từ tài liệu này, bao gồm việc hiểu rõ hơn về các công nghệ hiện đại trong lĩnh vực bảo mật phần mềm và cách mà học sâu có thể được tích hợp vào quy trình phát hiện mã độc. Để mở rộng thêm kiến thức, bạn có thể tham khảo tài liệu liên quan như Luận văn nghiên cứu hệ điều hành mã nguồn mở contiki cho mạng cảm biến không dây và ứng dụng trong hệ thống nông nghiệp chính xác tại lào, nơi cung cấp cái nhìn về ứng dụng của công nghệ mã nguồn mở trong các lĩnh vực khác nhau, bao gồm cả nông nghiệp chính xác.

Những tài liệu này không chỉ giúp bạn nắm bắt kiến thức chuyên sâu mà còn mở ra nhiều cơ hội để khám phá các khía cạnh khác nhau của công nghệ hiện đại.