CHƯƠNG 1. TONG QUAN 3 11 Giới thiệu Vand@é ot ee 3 1.2 Giới thiệu những nghiên cứu liên quan. 4 13 Tính ứng dụng. ee 6 14 Những thách thức.5 Mục tiêu, đối tượng, và phạm vi nghiên cứu.1 Mục tiêu nghiên cứu .2 Đối tượng nghiên cứu .3 Pham vi nghiên cứu .4 Cau trúc khóa luận tốt nghiệp.
CƠ SỞ LY THUYET 10 2.1 Các thành phan liên quan đến tập tin nhị phân.11 Chức năng - Function .3 Biểu đồ luồng điều khiển - Control flow graph .2 Biểu diễn trung gian - Intermediate Representation .1 Vex Intermediate Representation (Vex-IR) .2 Dac điểm va cấu trúc của VexIR.1 Một số thành phần chính của mạng no-ron.2 Một số các khái nệm khác. Một số kiến trúc mạng nơ-ron phổ biến trong lĩnh vực I0 ---.4 Phương pháp học trong học sâu .5 Các lớp thường có trongCNN.4 Các ứng dụng của việc sử dụng phương pháp phát hiện sự tương đồng trong mã nhị phân. 2c co 36 CHƯƠNG 3. TONG QUAN VỀ DEEPBIN-INSPECTOR MO HÌNH PHÁT HIỆN SỰ TƯƠNG DONG MA NHI PHAN DUA TREN HỌC SAU 38 3.1 Định nghĩa vấn đề.2 DeepBin-Inspector- Phương pháp phát hiện sự tương đồng trong mã nhị phân dựa trên học sâu.1 Trích xuất các finetion.2 Chuyển đổi các chức năng nhị phân sang vector để đưa vào mô hình học mấy.
Lua chọn mô hình học mấy .3 Phương pháp đánh giá .1 Phân loại One-to-one.2 Phân loại One-to-many. THi NGHIEM VA DANH GIA 56 41 Hiénthuc.1 Cai đặt méitruéng.2 Các thông số của mô hình hoc sâu. 56 iv 42 Quá trình tạo tap đữ liệu huấn luyện. 57 43 Đánh giá tác động của độ dài vector biểu diễn đối với hiệu quả của DeepBin-lnspector.1 Tap dữ liệu đánh giá (dataset) .2 Kết quả so sánh.4 So sánh các mô hình học máy khi áp dụng bytes2vec .1 Tập dữ liệu đánh giá (dataset) .2 Tổng quan về mô hình của Zeek_.43 M6 hình CNN ban đầu.
63 _ = = ^ œ > 2 = Bs Pa } n ®5 E So sánh DeepBin-Inspector và Asm2vec.1 Tập dữ liệu đánh giá (datasel). Q Q HQ eee 70 CHƯƠNG 5.1 Két luan fy .2 Hướng phát triển. eeee TAI LIEU THAM KHAO Vv DANH MỤC CÁC KÝ HIỆU, CÁC CHU VIET TAT CVE Common Vulnerabilities and Exposures CNN Convolutional Neural Network GNN Graph Neural Networks NLP Natural language processing CFG Control Flow Graph IR. Intermediate representation bb Danh sách các câu lệnh trong 1 basic block Danh sách các strand của một basic block MD5 Ham băm Message-Digest algorithm 5 True Positive False Positive True Negative False Negative Mean Reciprocal Rank Số lượng các chức năng tương đồng được xếp hang Vị trí của chức năng thực sự tương đồng đầu tiên Tổng của các thành phan từ i = 1 đến N vi DANH MUC CAC HINH VE Hình 1.1 Mô hình Order Matters - Kết hợp NLP và GNN trong phát hiện sự tương đồng mã nhị phân .1 Ví dụ về luồng điều khiển của hàm nhị phân.
Bên trái là các câu lệnh cùng với địa chỉ tương đối trong chương trình, bên phải là biểu đồ luồng điều khiển tương ứng.2 Hai basic block kế tiếp nhau được trích xuất khi dùng IDA 12 Hình 2.3 Ví dụ về một đoạn chương trình với CFG tương ứng .4 Ví dụ về một đoạn mã được chuyển đổi sang assembly bằng IDA. foe eee 15 Hình 2.5 Mô hình mang no-ron .6 Ví dụ về một mô hình CNN để phân loại hình anh.7 Ví dụ về một mô hình GAN trong phát hiện ảnh.8 Ví dụ về mô hình kết hợp CNN và RNN.1 Mô hình khái quát tổng quan của DeepBin-Inspector .2 Quá trình trích xuất các chức năng .3 Bytes2vec - Phương pháp chuyển đổi bytes code thành vector 44 Hình 3.4 Copy propagation và Deadcode elimination .6 Các layer và kích thước có trong mô hình CNN-GRU .1 Biểu đồ thể hiện đọ hiệu quả của DeepBin-Inspector mỗi khi tăng size VeCEOT. HQ ky 60 Hình 4.2 Các layer và kích thước có trong mô hình của Zeek .3 Các layer và kích thước có trong mô hình CNN đơn thuần.4 Confusion matrix 4 chỉ số TP, FP, TN, FN khi đánh giá bằng mô hình CNN-GRU.5 Confusion matrix 4 chỉ số TP, FP, TN, FN khi đánh giá bằng mô hình học máy của Zeek_.6 Confusion matrix 4 chỉ số TP, FP, TN, FN khi đánh giá bằng mô hình CNN. ke 67 ìn h 47 Các chỉ số MRR và Recal@1 của DeepBin-Inspector và Asm2vec khi tăng poolsize.Ặ ee 73 viii DANH MUC CAC BANG BIEU Bảng 2.1 Vi dụ một số loại biểu thức VexIR.2 Vi dụ một số loại câu lệnh Vex-IR.1 Bảng tóm tắc ết quả trích xuất các chức năng có trong các dự án được chọn 58 Bảng 4.2 Dánh giá các size vector cho mô hình hoc méy.3 Bảng tóm tắc ết quả trích xuất các chức năng có trong các dự án được chọn để tạo thành dữ liệu đánh gia.4 So sánh độ hiệu qua giữa mô hình hoc máy của CNN-GRU, Zeek và mô hình CN đơn thuần.5 Bảng tóm tắc các tập dit liệu để so sánh Bindeep Inspector và AsmByec.6 So sánh kết quả =10.7 So sánh kết quả =20.8 So sánh kết qua 72 TÓM TẮT KHÓA LUẬN Phát hiện sự tương đồng trong mã nhị phân là lĩnh vực vô cùng quan trọng hiện nay.
Trước hết, vấn đề an ninh thông tin trở nên ngày càng cấp thiết khi mà các cuộc tấn công mạng và các phần mềm độc hại ngày càng tinh vi và phổ biến hơn. Bằng cách phát hiện sự tương đồng trong mã nhị phân, ta có thể giúp phòng ngừa các phần mềm độc hại, mã độc,. Thứ hai, việc nghiên cứu sự tương đồng trong mã nhị phân cũng có thể áp dụng hiệu quả trong lĩnh vực phân tích phần mềm. Nhà phát triển phần mềm có thể sử dụng phát hiện sự tương đồng trong mã nhị phân để tìm ra các lỗ hổng, vấn đề bảo mật và thiếu sót trong mã nguồn.
Bằng cách so sánh mã nhị phân,có thể dé dang xác định được các phần mã giống nhau, từ đó định vị lỗi và tối ưu hóa mã nguồn. Cuối cùng, với sự tăng trưởng không ngừng về số lượng và chất lượng của các phần mềm độc hại và mã độc. Việc phát hiện và phòng ngừa trở nên ngày càng khó khăn. Phân tích và phát hiện sự tương đồng trong mã nhị phân giúp chúng ta nhanh chóng xác định và có các biện pháp phản ứng với các mối đe dọa mới.
Bằng cách so sánh các đặc điểm giống nhau và sự tương đồng giữa các mã độc, ta có thể tìm ra các mẫu tấn công và phát hiện các biến thể mới của các phần mềm độc hại. Tóm lại Phát hiện sự tương đồng trong mã nhị phân có qua vai trò quan trọng trong việc đảm bảo an toàn thông tin, phân tích phần mềm và phòng ngừa các mối đe dọa đang ngày càng nguy hiểm. Do nhận thấy đây là một đề tài có tiềm năng, thêm nữa ngày nay các mô hình học sâu đang ngày càng phát triển và đều mang lại các kết quả ấn tượng, nhóm chúng tôi đã tiến hành nghiên cứu về phương pháp phát hiện sự tương 2 đồng trong mã nhị phân dựa trên học sâu để tăng độ hiệu quả của việc phát hiện sự tương đồng trong mã nhị phân truyền thống. Trong khóa luận của mình, chúng tôi đã đề xuất một công cụ phát hiến sự tương đồng trong mã nhị phân dựa trên học sâu mang tên DeepBin-Inspector.
Công cụ này dựa vào phương pháp bytes2vec mà chúng tôi đã phát triển để chuyển đổi các bytes code của chức năng nhị phân thành vector, sau đó đưa vào mô hình học sâu. Chúng tôi cũng đã thực hiện các thực nghiệm để đánh giá về công cụ cũng như so sánh với các mô hình học máy khác, so sánh với các công cụ phát hiện sự tương đồng trong mã nhị phân hiên đại hiện có. TONG QUAN Chương này giới thiệu về vấn đề chúng tôi sé nghiên cứu và các nghiên cứu đã có trước đó. Dồng thời chúng tôi trình bày phạm vi và cấu trúc của Khóa luận.
Giới thiệu vấn đề Phát hiện sự tương đồng của mã nhị phân (binary code simitlarity detection) là vấn đề lấy đầu vào là biểu diễn nhị phân của một cặp ham, một chương trình,. và tạo ra đầu ra là một giá trị số thể hiện được “độ tương đồng” giữa chúng. Hay có thể phát triển rộng hon là so sánh tập tin thực thi (nhị phân) để tìm ra những đoạn mã giống nhau hoặc tương đồng, tìm kiếm một đoạn mã trong tập tin nhị phân có sự tương đồng với một đoạn mã nhị phân được cho trước (bài toán tìm kiếm nhị phan). Công việc này tuy nhìn có vẻ đơn giản nhưng có rất nhiều ứng dụng thực tế.
Ví dụ điển hình là phát hiện lỗ hổng mới đã biết trên phần mềm, phát hiện đạo văn phần mềm, phân tích bản vá,. hay trong bối cảnh hiện nay các phần mềm độc hại và mã độc ngày càng nhìu thì lĩnh vực này cũng có thể áp dụng vào việc phát hiện mã độc. Tuy nhiên đây là một lĩnh vực không hề đễ để nghiên cứu, vì trên thực tế, phần mềm thường được biên dịch với các bộ công cụ biên dịch khác nhau, trên các nền tảng kiến trúc hệ thống khác nhau, các lựa chọn (option) dé biên dich cũng khác nhau hay thậm chí phiên bản phần mềm trước khi biên dịch cũng đã có sự khác nhau rất nhiều. Giới thiệu những nghiên cứu liên quan Các phương pháp để phát hiện sự tương đồng trong mã nhị phân truyền thống chủ yếu dựa trên việc phân tích các tính năng cụ thể của mã nhị phân, đặc biệt là đồ thị luồng điều khiển (CFG - Control Flow Graph) của các hàm.
Các phương pháp này chủ yếu tập trung vào việc phân tích và nắm bắt kiến thức cú pháp của chương trình để phân tích và so sánh sự tương đồng giữa các hàm. Tuy nhiên, các phương pháp này có những hạn chế và không đảm bảo hiệu quả trong mọi trường hợp. Một số hạn chế chính của các phương pháp này là: e Tính không ổn định: CFG của mã nhị phân có thể thay đổi dựa trên các lựa chọn tối ưu hóa trình biên dịch, như tối ưu hóa đường đi, tối ưu hóa biểu thức, hoặc tối uu hóa cấu trúc điều khiển. Hoặc cho dù là cùng một tập tin nhị phân, nếu như sử dung các decompiler khác nhau, CFG trích xuất ra được cũng rất khác nhau.
Do đó, việc so sánh đồ thị để tìm kiếm các đường đi chung trở nên khó khăn và không đảm bảo được tính ổn định của phương pháp. e Tốn thời gian: Xây dựng CFG và thực hiện quá trình so sánh đồ thị là công việc tốn thời gian, đặc biệt là đối với các chương trình nhị phân lớn và phức tạp.