CHƯƠNG 1. TONG QUAN 2 11 Giới thiéu van dé 2.2 Giới thiệu những nghiên cứu liên quan.1 Trình phát hiện lỗ hong hợp đồng thông minh. Phương pháp Hoc Máy.3 Phương phấp Hoc Sâu .4 Mô hình học sâu đa phương thức.5 Học chuyển tiếp.3 Tính ứng dụng.4 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ỨUu.2 Đối tượng nghiên cứu .3 Pham vi nghiên ctu .4 Cấu trúc khóa luận tốt nghiệp .1 Hợp đồng thông mỉinh.1 Ngôn ngữ Solidity.2 Các lỗ hồng trong hợp đồng thông minh.2_ Các mô hình học sâu sử dung .1 Tổng quan về học sâu (Deep Learning) .2 Bidirectional Long Short Term Memory(Bi-LSTM) .3 Bidirectional Encoder Representations from Transformers (BERT) 2.4 Graph Attention Network (GAT).3 Mô hình hoc sâu da phương thức (Multimodal Learning) .4 Học chuyển tiếp (Transfer Learning). PHƯƠNG PHAP THIET KE 35 3.1 Tổng quanm6ohinh.2 Thành phan chi tiết và luồng xửlý.1 Bidirectional Encoder Representations from Transformers (BERRY .2 Bidirectional Long Term Short Memory (Bi-LSTM) .3 Graph Attention Network (GAT).4 Mô hình học sâu đa phương thức.5 Học chuyển tiép.
THÍ NGHIEM VA DANH GIÁ 47 4.1 Thiết lập thinghiém .11 Môi trường thực nghiệm. 4ï 412 Tập dữ liệu .5 Control Flow Graph (CFG).6 Chỉsố đánh giá .2 Kết quả thực nghiệm .1 Kết quả thực nghiệm mô hình MatiVuln.2 So sánh MatiVuln và mô hình Multimodal khác .3 Khả năng Transfer Learning. KẾT LUẬN 70 51 Kếtluận .2 Hướng phát triển. ee 71 TÀI LIỆU THAM KHẢO 75 DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIET TAT H; Các lớp H thứ ¡.
W; weight của lớp i. b; bias vector của lớp i. ReLU(z) ham Rectified Linear Unit. Sigmoid(z) ham Sigmoid.
BatchNorm(z) hàm chuẩn hoá dữ liệu. Dropout(z,r) ham Dropout với tỉ lệ dropout là r. vì DANH MỤC CÁC HÌNH VE Hình 1.1 Tổng quan mô hình của Deng và cộng sự .2 Tổng quan mô hình của Li và cộng sự. 9 Hình 21 Tổng quan mô hình BiLSTM .2 Tổng quan mô hình BERT.- 24 Hình 23 So đồ xử lý đầu vào của BERT.
24 Hình 24 Tổng quan mô hình Graph Attention Network (GAT). 26 Hình 25 Tổng quan về Transfer Learning .1 Kiến trúc của mô hình MatiVuln. Mô hình codeBERT dùng cho Feature Extraction .3 Mô hình Bi-LSTM dùng cho Feature Extraction .4 Mô hình GAT dùng cho Feature Extraction.1 So đồ cách Dataset được taora.2 Hợp đồng trước khi xử lý làm sạch. 52 Hình 43 Hop đồng sau khi xử lý làm sạch.
53 Hình 44 Công cụ Slther.5 Cú pháp lệnh Slither để xuất raCFG.6 Mẫu các file dot của một hợp đồng thông minh .7 Thống kê dữ liệu trong Dataset Prime-SmartVul.8 Tỉ lệ các 16 hong trong Prime-SmartVul.9 Kết quả thực nghiệm mô hình MatiVuln .10 Kết quả thực nghiệm mô hình MatiVuln2.11 So sánh giữa mô hình Deng’s Research và MatiVuln.12 So sánh giữa mô hình Smarter và MatiVuln trên 4 đến 8 nhãn 64 vii Hình 4.13 So sánh giữa mô hình Smarter và MatiVuln trên 5 đến 8 nhãn 65 Hình 4.14 So sánh giữa mô hình Smarter và MatiVuln trên 6 đến § nhãn 66 Hình 4.15 So sánh giữa mô hình Smarter và MatiVuln trên 7 đến 8 nhãn 67 vill DANH MUC CAC BANG BIEU Bảng 4.1 Bảng chuẩn hoá opcode .2 Bảng so sánh MatiVuln và các mô hình nghiên cứu liên quan 61 TÓM TẮT KHÓA LUẬN Tính cấp thiết của đề tài nghiên cứu: Trong những năm gần đây, với sự phát triển của công nghệ Blockchain, sự xuất hiện của các đồng tiền ảo cũng tăng lên. Giao dịch giữa các đồng tiền này càng nhiều, dẫn đến sự xuất hiện của hợp đồng thông minh. Tuy nhiên, hợp đồng thông minh chứa các lỗi bảo mật tiềm tàng, dẫn đến các cuộc tấn công có thể gây thiệt hại lớn cho người dùng và doanh nghiệp. DAO là cuộc tấn công đầu tiên diễn ra vào năm 2016 đã gióng hồi chuông cảnh tỉnh đối với người dùng và các nhà nghiên cứu bảo mật.
Nhiều phương án phát hiện 16 hồng hợp đồng thông minh đã được đưa ra như phân tích tĩnh, phân tích động, và gần đây nhất là sử dụng các thuật toán học máy, các phương pháp học tăng cường, học sâu và đa phương thức. Sau khi nghiên cứu hướng sử dụng mô hình học máy đa phương thức. Chúng tôi nhận thấy rằng đây là một hướng đi có nhiều tiềm năng và mới mẻ. Việc ứng dụng học máy đa phương thức hiệu quả trong việc nhận diện mẫu, phù hợp cho việc phát hiện lỗ hổng hợp đồng thông minh.
Tuy nhiên, chưa có nhiều nghiên cứu xuất hiện và tính ứng dụng chưa cao. Vì vậy, chúng tôi quyết định đề xuất một mô hình học máy đa phương thức có khả năng phát hiện lỗ hổng hợp đồng thông minh tốt hơn. TONG QUAN Chương này giới thiệu về van đề va các nghiên cứu liên quan. Đồng thời, trong chương này chúng tôi cũng trình bày phạm vi và cau trúc của Khóa luận.
Giới thiệu vẫn đề Trong thời đại công nghệ 4.0, Blockchain đã trở thành một từ khóa phổ biến với nhiều ứng dụng đa dạng, từ các mục đích tốt đẹp cho đến những mục tiêu không mong muốn. Một trong những ứng dụng nổi bật nhất của Blockchain là các hợp đồng thông minh (smart contracts), được triển khai chủ yếu trên nền tảng Ethereum và lập trình bằng ngôn ngữ Solidity. Mặc dù mới được phát triển, Solidity vẫn tồn tại nhiều lỗ hổng bảo mật đã được Zou và cộng sự [31] chỉ ra. Khi triển khai trên hệ thống Blockchain, các hợp đồng thông minh thường thực hiện giao dịch liên quan đến tiền mã hóa (cryptocurrency), cu thể là ether (ETH).
Tính không thé thay đổi và công khai của Blockchain khiến các lỗ hồng bao mật trong hợp đồng thông minh trở nên nguy hiểm, vì kẻ tấn công có thé lợi dụng những lỗ hong này để xâm phạm tài sản của cá nhân va tổ chức, de doa sự ổn định của hệ sinh thái Blockchain. Một ví dụ điển hình về mức độ nghiêm trọng của các lỗ hồng bảo mật là cuộc tấn công DAO [17], gây thiệt hại lên đến 50 triệu USD, được trình bày bởi Mehar và các cộng sự. Để giải quyết các vấn đề này, Kushwaha và cộng sự [13] đã thực hiện một cuộc khảo sát về các lỗ hong trong hợp đồng thông minh và cung cấp tổng quan về các công cụ hiện có để phát hiện và phân tích những lỗ hồng này, như Oyente [16], Slither [6], Conkas [26], Mythril [2], va Securify [24]. Các công cụ này sử dụng phương pháp phân tích tĩnh hoặc động nhưng có thể bỏ sót một số luồng thực thi, dẫn đến kết quả âm tính giả (false negatives) và tiêu tốn thời gian lớn.
Sự xuất hiện của các phương pháp học máy (machine learning - ML) trong việc phát hiện lỗ hong bảo mật đã mở ra những hướng đi mới. Các công cụ như ESCORT của Lutz [15], ContractWard của Wang [27], và nghiên cứu của Qian [19] đã chứng minh hiệu qua của phương pháp nay. Phương pháp hoc máy đã cải thiện hiệu suất so với phân tích tĩnh và động, như nghiên cứu của Jiang và cộng sự [10] chỉ ra. Tuy nhiên, các nghiên cứu hiện tại thường chỉ sử dụng một loại đặc trưng duy nhất của hợp đồng thông minh làm đầu vào cho mô hình học mấy.
Những nghiên cứu gần đây đã khám phá việc sử dụng các mô hình học sâu đa phương thức để phát hiện 16 hổng trong hợp đồng thông minh, như mô hình AT đa phương thức của Yang [11], và mô hình lai HyMo của Chen [12], kết hợp phân tích tĩnh và động. Những mô hình này đã cho thấy hiệu suất vượt trội trên nhiều tập dữ liệu thử nghiệm. Nhận thấy tiềm năng của các mô hình đa phương thức, chúng tôi quyết định xây dựng công cụ phát hiện lỗ hồng hợp đồng thông minh mang tên VulnSenseGen2. Công cụ này sử dụng ba loại đặc trưng chính của hợp đồng thông minh: mã nguồn, opcode va CFG từ bytecode.
Các đặc trưng nay lần lượt được xử lý bởi các mô hình BERT, BiLSTM va Graph Neural Network (GNN). Kết quả từ các mô hình này được kết hợp để tạo ra một kết quả duy nhất, giúp VulnSenseGen2 nhận diện hiệu quả các lỗ hong Reentrancy, Arithmetic và các 16 hong khác tai Phan 2. Giới thiệu những nghiên cứu liên quan 1. Trinh phát hiện lỗ hổng hợp đồng thông minh Các trình phát hiện lỗ hổng hợp đồng thông minh được ra mắt kể từ sau DAO [17] nhằm chống lại các cuộc tấn công lên các hợp đồng thông minh trong tương lai.
Một số công cụ sử dụng kỹ thuật Symbolic Execution, một kỹ thuật 4 phân tích tĩnh trong đó các giá trị đầu vào của chương trình được biểu diễn dưới dạng các biến tượng trưng, nhằm kiểm tra các đường dẫn và điều kiện lỗi. Oyente [16] là công cụ phát hiện lỗ hổng hợp đồng thông minh bằng phân tích tĩnh đầu tiên. Được phát triển bởi Lợi Lưu và ban học tại Dai học Quốc gia Singapore. Oyente sử dụng kỹ thuật phân tích symbolic execution trên Byte- code dé phát hiện lỗ hổng, nhưng hạn chế của Oyente là chỉ có thể phát hiện được 4 loại lỗi (re-entrancy, conditional contention, timestamp dependency và unhandled exceptions).
Một cong cu khác là Slither [6], Slither là framework phân tích lỗ hong hợp đồng thông minh Solidity và Vyper được phát triển bởi Trail of Bits. Slither có thể phát hiện được nhiều loại 16 hong khác nhau, đánh dấu dòng lỗi và nhiều tính năng khác Conkas [26] là một công cu phân tích lỗ hong hợp đồng khác được phát triển bởi Nuno Veloso. Conkas có thể phát hiện được 5 loại lỗi khác nhau (arithmetics, re-entrancy, time manipulation, transaction ordering reference, unchecked low call). Conkas còn hỗ trợ mở rộng module.
Mythril [2] là công cu phân tích lỗ hong cho Ethereum smart contract. Được phát triển bởi công ty Consensys và giới thiệu lần đầu vào năm 2018 tại hội nghị HITB Security. Mythril có khả năng phân tích một loạt các lỗ hồng trên hợp đồng thong minh như arithmetic, access control, re-entrancy, và nhiều lỗi khác. Securify [24] là công cụ phát hiện lỗ hổng hợp đồng thông minh Solidity được phát triển bởi ICE Center của đại học ETH Zurich.
Securify phát hiện lỗ hổng hợp đồng thông minh thông qua Bytecode, hoặc Source code sau khi được compile sang Bytecode. Securify có thể phát hiện được 18 loại lỗ hong khác nhau. Tổng kết, các công cụ trên có một số khả năng phát hiện nhất định, với số lượng lỗi phát hiện khác nhau. Tuy nhiên, các công cụ này có hiệu suất chưa cao, đối với các hợp đồng thông minh lớn, cũng như là số lượng lỗi phát hiện còn hạn chế, việc mở rộng lỗi có thể gặp khó khăn vì số lượng lỗi mới có thể 5 xuất hiện nhiều và sự thay đổi nhanh chóng của các phiên bản Solidity.
Do đó, các phương pháp mới như học máy, học chuyển tiếp giúp cho việc phát hiện các lỗ hổng hợp đồng thông minh nên được triển khai trong tương lai.