Khóa Luận Tốt Nghiệp: Phát Hiện Tự Động Lỗ Hổng Hợp Đồng Thông Minh Dựa Trên Phương Pháp Học Sâu

Khóa luận trình bày phương pháp học sâu để phát hiện tự động lỗ hổng trong hợp đồng thông minh, góp phần nâng cao an toàn thông tin.

Chuyên ngành

An toàn thông tin

Người đăng

Ẩn danh

Thể loại

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

2023

82
3
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

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

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

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

MỞ ĐẦU

1. CHƯƠNG 1: TỔNG QUAN

1.1. Giới thiệu vấn đề

1.2. Giới thiệu những nghiên cứu liên quan

1.2.1. Các phương pháp truyền thống

1.2.2. Các phương pháp học máy

1.3. Mục tiêu, đối tượng, và phạm vi nghiên cứu

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

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

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

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

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

3. CHƯƠNG 3: PHƯƠNG PHÁP THIẾT KẾ

3.1. Bidirectional Encoder Representations from Transformers (BERT)

3.2. Bidirectional long-short term memory (BiLSTM)

3.3. Graph Neural Network (GNN)

3.4. Mô hình học sâu đa phương thức (VulnSense)

3.5. Xây dựng tập dữ liệu

3.6. Xử lý dữ liệu

3.7. Opcode, CFG

4. CHƯƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ

4.1. Thiết lập thực nghiệm

4.1.1. Môi trường thực nghiệm

4.1.2. Tập dữ liệu

4.1.3. Chỉ số đánh giá

4.1.4. Ngữ cảnh thực nghiệm

4.2. Kết quả đánh giá

4.2.1. So sánh điểm Accuracy, Precision, Recall và F1

4.2.2. So sánh thời gian đào tạo

4.2.3. So sánh độ hội tụ

4.2.4. So sánh thời gian dự đoán

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

5.1. Kết luận

5.2. Hướng phát triển

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về phát hiện lỗ hổng hợp đồng thông minh

Hợp đồng thông minh là một phần quan trọng trong hệ sinh thái blockchain, đặc biệt là trên nền tảng Ethereum. Tuy nhiên, sự phát triển nhanh chóng của các ứng dụng này cũng kéo theo nhiều vấn đề về bảo mật. Việc phát hiện lỗ hổng trong hợp đồng thông minh trở thành một thách thức lớn. Các lỗ hổng này không chỉ ảnh hưởng đến tài sản của người dùng mà còn gây tổn hại đến sự ổn định của hệ thống blockchain. Do đó, việc nghiên cứu và phát triển các phương pháp phát hiện lỗ hổng hiệu quả là rất cần thiết.

1.1. Ảnh hưởng của lỗ hổng hợp đồng thông minh đến an ninh mạng

Các lỗ hổng trong hợp đồng thông minh có thể dẫn đến những thiệt hại lớn về tài chính. Ví dụ, cuộc tấn công DAO đã gây thiệt hại lên đến 50 triệu đô la Mỹ. Điều này cho thấy tầm quan trọng của việc phát hiện và khắc phục các lỗ hổng này kịp thời.

1.2. Các phương pháp phát hiện lỗ hổng hiện tại

Hiện nay, các phương pháp phát hiện lỗ hổng chủ yếu dựa vào phân tích tĩnh và động. Tuy nhiên, những phương pháp này thường gặp khó khăn trong việc bao quát tất cả các luồng thực thi, dẫn đến kết quả âm tính giả.

II. Thách thức trong phát hiện lỗ hổng hợp đồng thông minh

Mặc dù có nhiều công cụ và phương pháp hiện có, việc phát hiện lỗ hổng trong hợp đồng thông minh vẫn gặp nhiều thách thức. Các phương pháp truyền thống thường không đủ linh hoạt và chính xác. Hơn nữa, việc phân tích mã nguồn và bytecode tốn nhiều thời gian và công sức. Do đó, cần có những giải pháp mới để cải thiện hiệu suất phát hiện lỗ hổng.

2.1. Hạn chế của các phương pháp truyền thống

Các phương pháp truyền thống như phân tích tĩnh và động thường không thể phát hiện tất cả các lỗ hổng. Chúng phụ thuộc vào kiến thức chuyên gia và có thể dẫn đến kết quả không chính xác.

2.2. Tình trạng lỗ hổng trong hợp đồng thông minh hiện nay

Nhiều hợp đồng thông minh vẫn tồn tại các lỗ hổng nghiêm trọng, ảnh hưởng đến an ninh mạng. Việc phát hiện và khắc phục kịp thời là rất quan trọng để bảo vệ tài sản và dữ liệu của người dùng.

III. Phương pháp học sâu trong phát hiện lỗ hổng hợp đồng thông minh

Phương pháp học sâu đã được áp dụng để phát hiện lỗ hổng trong hợp đồng thông minh với nhiều ưu điểm vượt trội. Các mô hình học sâu như BERT, BiLSTM và GNN cho phép phân tích nhiều loại dữ liệu khác nhau, từ mã nguồn đến bytecode. Điều này giúp cải thiện độ chính xác và hiệu suất phát hiện lỗ hổng.

3.1. Mô hình BERT trong phát hiện lỗ hổng

Mô hình BERT được sử dụng để trích xuất đặc trưng từ mã nguồn hợp đồng thông minh. BERT giúp cải thiện khả năng nhận diện các lỗ hổng bằng cách phân tích ngữ nghĩa của mã nguồn.

3.2. BiLSTM và GNN trong phát hiện lỗ hổng

BiLSTM và GNN được áp dụng để phân tích bytecode và biểu đồ luồng điều khiển. Những mô hình này giúp phát hiện các lỗ hổng phức tạp hơn mà các phương pháp truyền thống không thể nhận diện.

IV. Ứng dụng thực tiễn của phương pháp học sâu trong phát hiện lỗ hổng

Phương pháp học sâu đã chứng minh được hiệu quả trong việc phát hiện lỗ hổng hợp đồng thông minh. Các nghiên cứu cho thấy rằng việc kết hợp nhiều loại đặc trưng giúp cải thiện độ chính xác và giảm thiểu thời gian phát hiện. Công cụ VulnSense là một ví dụ điển hình cho việc áp dụng thành công phương pháp này.

4.1. Kết quả nghiên cứu với VulnSense

Nghiên cứu cho thấy VulnSense đạt được độ chính xác cao trong việc phát hiện các lỗ hổng như Reentrancy và Arithmetic. Điều này chứng tỏ tính hiệu quả của mô hình học sâu đa phương thức.

4.2. Tương lai của phát hiện lỗ hổng hợp đồng thông minh

Với sự phát triển của công nghệ học sâu, tương lai của việc phát hiện lỗ hổng trong hợp đồng thông minh hứa hẹn sẽ có nhiều cải tiến. Các mô hình mới sẽ tiếp tục được phát triển để nâng cao hiệu suất và độ chính xác.

V. Kết luận và hướng phát triển trong phát hiện lỗ hổng

Việc phát hiện lỗ hổng trong hợp đồng thông minh là một lĩnh vực nghiên cứu quan trọng và cần thiết. Các phương pháp học sâu đã mở ra hướng đi mới cho việc phát hiện lỗ hổng hiệu quả hơn. Tương lai của lĩnh vực này sẽ phụ thuộc vào sự phát triển của các mô hình học sâu và công nghệ mới.

5.1. Tóm tắt những điểm chính

Các lỗ hổng trong hợp đồng thông minh cần được phát hiện kịp thời để bảo vệ tài sản và dữ liệu. Phương pháp học sâu đã chứng minh được hiệu quả trong việc phát hiện lỗ hổng này.

5.2. Hướng phát triển tiếp theo

Nghiên cứu sẽ tiếp tục tập trung vào việc cải thiện các mô hình học sâu và phát triển các công cụ mới để phát hiện lỗ hổng trong hợp đồng thông minh một cách hiệu quả hơn.

10/07/2025
Khóa luận tốt nghiệp an toàn thông tin phát hiện tự động lỗ hổng hợp đồng thông minh dựa trên phương pháp học sâu

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

Chương 1: Giới thiệu tổng quan về đề tài của Khóa luận và những nghiên cứu liên quan. 11 Chương 2: Trình bày cơ sở lý thuyết và kiến thức nền tảng liên quan đến đề tài. Chương 3: Trinh bày chi tiết thiết kết mô hình học sâu đa phương thức - VulnSense. Chuong 4: Trinh bay thuc nghiém va danh gia.

Chương 5: Kết luận và hướng phát triển của đề tài. CƠ SỞ LÝ THUYET Trong chương này, chúng tôi trình bày các cơ sở lý thuyết cần thiết cho khoá luận, bao gồm: hợp đồng thông minh, ngôn ngữ Solidity và các loại 16 hong của ngôn ngữ Solidity khi triển khai hợp đồng thông minh, các đặc trưng của hợp đồng thông minh và các mô hình học sâu mà nhóm sử dụng trong khoá luận. Hợp đồng thông minh Hợp đồng thông minh là một khái niệm trong lĩnh vực Blockchain và crypto currency, đặc biệt phổ biến trên nền tảng Ethereum. Nó kết hợp cả lý thuyết và công nghệ để tạo ra các hợp đồng tự động, không cần đến sự can thiệp của bên thứ ba.

Cơ sở lý thuyết của hợp đồng thong minh xuất phát từ ý tưởng về hợp đồng truyền thống trong lĩnh vực pháp lý. Trong thực tế, một hợp đồng là một thỏa thuận giữa hai hoặc nhiều bên, đặt ra các điều kiện và cam kết cụ thể. Tuy nhiên, hợp đồng truyền thống phụ thuộc vào các tổ chức pháp lý và nhà trung gian để giám sát và thực thi (Hình 2. Hợp đồng thông minh áp dụng cơ chế của Blockchain để tạo ra hợp đồng tự động, tự thực thi.

Nó là một chương trình máy tính hoạt động trên nền tang Blockchain, được viết bằng ngôn ngữ lập trình và chứa các điều kiện và hành động cụ thể. Khi một điều kiện trong hợp đồng thông minh được thỏa mãn, các hành động tương ứng sẽ được thực hiện tự động. Một số tính chất của hợp đồng thông minh bao gồm: 1. Tính tự động hóa: Hợp đồng thông minh loại bỏ sự phụ thuộc vào sự can thiệp của bên thứ ba trong việc thực thi hợp đồng.

Các điều khoản và điều 13 Traditional Contracts ILI Smart Contracts kiện được định nghĩa rõ ràng và sẽ tự động thực hiện khi các điều kiện được đáp ứng. Tính phân phối: Hợp đồng thông minh được sao chép và phân phối đến tất cả các nút trong mạng Blockchain. Điều này dam bảo tính toàn ven và bảo mật của hợp đồng, giúp hợp đồng không thể bị thay đổi hay xóa bỏ một cách trái phép. Tính bất biến: Sau khi triển khai, hợp đồng thông minh không thể bị chỉnh sửa.

Tính tin cậy: Hợp đồng thông minh hoạt động theo cách mà nó được lập trình, không có sự can thiệp của con người, không có bên thứ ba. Điều này dam bảo tính tin cậy và tránh những mâu thuẫn hoặc phiên giải sai trong quá trình thực thi hợp đồng. Hơn nữa, hợp đồng thông minh được duy tri và thực thi bởi tất cả các nút trên mạng bằng cơ chế đồng thuận, loại bỏ 14 quyền kiểm soát từ tay bất kỳ một bên nào. Tính minh bạch: Hợp đồng thông minh luôn được lưu trữ trên một sổ cái phân phối công khai gọi là Blockchain, nhờ đó mã nguồn là công khai với mọi người, cho dù họ có tham gia vào hợp đồng thông minh hay không.

Tính tiết kiệm thời gian và chi phí: Hợp đồng thông minh giảm thiểu sự phụ thuộc vào các bên trung gian và giúp tiết kiệm thời gian và chi phí trong việc thực hiện hợp đồng. Không cần phải tìm kiếm và truy cập đến các nguồn thông tin bên ngoài để xác minh và thực thi hợp đồng. Tuy nhiên, hợp đồng thông minh không thể thay thế hoàn toàn hợp đồng truyền thống và không phải tất ca các loại hợp đồng đều phù hợp với hợp đồng thông minh. Điều này phụ thuộc vào tính chất và phạm vi của hợp đồng, cũng như các yếu tố pháp lý và quy định tại quốc gia hoặc khu vực tương ứng.

Ngôn ngữ Solidity Solidity là một ngôn ngữ lập trình chính trong việc phát triển hợp đồng thông minh trên nền tang Ethereum. Được phát triển bởi Gavin Wood vào năm 2014 [27], Solidity giúp xây dựng ứng dung phi tập trung (Decentralized Applications - DApps) và thực hiện các hợp đồng tự động trên blockchain Ethereum. Solidity có cú pháp tương tự như ngôn ngữ lập trình C++, với một số tùy chỉnh và đặc điểm riêng. Sau khi được biên dich, bytecode của hợp đồng thông minh sẽ được tao và thực thi bên trong máy ảo Ethereum (EVM).

Quá trình này được thể hiện tổng quan trong Hình 2. Vì có một ánh xạ một-một giữa hoạt động blockchain và biểu diễn bytecode, nên việc phân tích luồng kiểm soát của hợp đồng thông minh ở bytecode là khả thi hơn. Khi được kích hoạt, việc thực hiện hợp đồng thông minh là tự chủ và có hiệu lực đối với tất cả các bên tham gia. Bản thân EVM là một máy ảo dựa trên ngăn xếp có kích thước từ 256 đến 1024 bits.

Bộ nhớ áp dụng một mô hình địa chỉ từ. Khi một hợp đồng thông 15 9 ~. Smart Contract Compiler (Solc) EVM Hình 2.2: Biên dịch Hợp đồng thông minh 26: ` ( 0154 01: SLOAD uint — = 02: 60 02: PUSH s _—] 03:01 =h 03: 0x01 uint(block.blockhash ` / — 04: 43 ——+⁄“| 04: NUMBER (block. %totalBets + 1:; —t 06: 40 " 6S: SUB ` 06: BLOCKHASH / Hình 2.3: Tương quan giữa source code, bytecode va opcode minh triển khai trên Bloekchain, nó cần gas để hoạt động.

Gas là đơn vị được sử dung để thanh toán chi phí tính toán của những người khai thác chạy hợp đồng thông minh hoặc giao dịch và được thanh toán bằng Ether (ETH).3 thể hiện 3 bước để triển khai hợp đồng thông minh trên EVM. Đầu tiên, mã nguồn sẽ được viết bằng ngôn ngữ bậc cao, ví dụ như Solidity. Thứ 2, mã nguồn này sẽ được trình biên dịch biên dịch thành các bytecodes. Bytecode (hay còn được gọi là EVM code) là một chuỗi thập lục phân.

Cuối cùng, các bytecodes được chuyển thành các operation codes (opcodes). Bytecode Bytecode là một chuỗi các mã lệnh thập lục phân (hexadecimal) được sinh ra từ các ngôn ngữ lập trình bậc cao như C/C++, Python và không ngoại lệ đối với Solidity. Trong ngữ cảnh triển khai hợp đồng thông minh bằng Solidity, bytecode là phiên bản biên dịch của mã nguồn hợp đồng thông minh và được 16 thực thi trên môi trường Blockchain. Bytecode đại diện cho các hành động mà hợp đồng thông minh có thể thực hiện.

Nó chứa các câu lệnh và thông tin cần thiết để thực hiện các chức năng của hợp đồng. Bytecode thường được chuyển đổi từ ngôn ngữ Solidity hoặc các ngôn ngữ khác sử dụng trong việc phát triển hợp đồng thông minh. Bytecode khi được triển khai trên Ethereum được chia thành 2 loại: creation bytecode và runtime bytecode. Creation bytecode chỉ được chạy duy nhất 1 lần khi hợp đồng thong minh được triển khai lên hệ thống.

Creation bytecode có nhiệm vụ thiết lập trạng thái ban đầu của hợp đồng thông minh như các biến khởi tạo, hàm constructor. Creation bytecode sẽ ko nam trong thành phan hợp đồng thông minh được triển khai lên mạng Blockchain. Runtime bytecode chứa các thông tin có thể thực thi của hợp đồng thông minh và được triển khai lên mạng Blockchain. Một khi hợp đồng thông minh đã được biên dịch thành bytecode, nó có thé được triển khai lên Blockchain và được thực thi bởi các nút trong mạng.

Các nút trong mạng sẽ thực hiện các câu lệnh trong bytecode để xác định hành vi và tương tác của hợp đồng thông minh. Bytecode có tính xác định cao và không thể thay đổi sau khi đã được biên dịch. Nó cung cấp cho các bên tham gia trong mạng Blockchain khả năng xem và kiểm tra hợp đồng thông minh trước khi triển khai. Opcode Opcode trong hợp đồng thông minh là các mã lệnh thực thi được sử dụng trong môi trường blockchain để thực hiện các chức năng của hợp đồng thông minh.

Opcode là các lệnh máy cấp thấp được sử dụng để điều khiển quá trình thực thi của hợp đồng trên một máy ảo blockchain như Ethereum Virtual Ma- chine (EVM). 17 Mỗi opcode đại diện cho một tác vụ cu thể trong hợp đồng thông minh, bao gồm các phép toán logic, phép tính số học, quản lý bộ nhớ, truy cập vào dữ liệu, gọi và tương tác với các hợp đồng khác trong mang Blockchain, và nhiều tác vụ khác. Opcode định nghĩa các hành động mà hợp đồng thông minh có thể thực hiện và quy định cách mà các dữ liệu và trạng thái của hợp đồng được xử lý. Các opcode được liệt kê và xác định trong biểu diễn bytecode của hợp đồng thông minh.

Việc sử dung các opcodes cung cấp sự linh hoạt và tiêu chuẩn hóa cho việc thực hiện các chức năng của hợp đồng thông minh. Opcode giúp đảm bảo tính nhất quán và an toàn trong quá trình thực thi của hợp đồng trên mạng blockchain, và đóng vai trò quan trọng trong việc xác định hành vi và logic của hợp đồng thông minh. Theo Ethereum Yellow Paper [28], sẽ có 135 opcodes đại diện cho 10 chức năng bao gồm: namely, stop and arithmetic operations, comparison and bit- wise logic operations, SHA3 operations, environment information operations, block information operations, stack, memory, storage and flow operations, push operations, exchange operations, logging operations and system operations.1: Giới thiệu vé Opcodes trong ngôn ngữ Solidity Loại Opcode Quan ly Stack POP, PUSH, UP, SWAP Arithmetic/ Comparison/ Bitwise ADD, SUB, GT, LT, AND, OR Thong tin môi trường CALLER, CALL VALUE, NUMBER Opcode kiểm soát bộ nhớ LOAD, STORE, MSSTORE 8, MSIZE Quan lý bộ nhớ LOAD, STORE Opcodes liên quan đến bộ đếm chương trình | JUMP, JUMPTO, JUMPIF, JUMPSUB, JUMPSUBV, JUMPDEST STOP Opcodes STOP, RETURN, REVERT, INVALID, SELF, DESTRUCT 2. Control Flow Graph Control Flow Graph (CFG) là một dang dữ liệu mạnh mẽ trong phân tích mã nguồn Solidity để hiểu và tối ưu hóa luồng điều khiển của chương trình được trích xuất từ bytecode của hợp đồng thông minh.

CFG giúp xác định cấu trúc 18 Block 66E - 66E Block 64B - 652 JUMPDEST Block 653 - 660 MOD ADD PUSH1 0x0a DUP2 SWAP1 JUMPDEST SSTORE SWAP1 POP PUSH1 0x00 + PUSH2 0x0954 MSTORE PUSH1 0x0a PUSH1 0x20 SLOAD Block 954- 988 PUSH1 0x00 PUSH2 0x064b SHA3 JUMP JUMPDEST ADD Block 6C3 - 6CF SLOAD DUP4 OR SWAP1 rea GT SSTORE BURT ISZERO QUMPDEST JUMPDEST |~----~~---- — O ISZER Pusi PUSH1 0x01 Pusn By e PUSH2 0x09ba RE * PUSH20x0142 JUMPI PUSH1 0x04 POP DUP1 POP CALLDATASIZE Block 142 - 183 PUSH2 0x0653 SUB JUMP as JUMPDEST PUSH2 0x064b PUSH1 0x40 Block 6D1 - 6D6 juve | |. Block 683 - 68F JUMPDEST SUB SWAP1 T0nP2 DUP2 PUSH1 0x01 Block 690 - 690 RETURN. Sonne ISZERO x -< RMXAM .-- PUSH20x0691 |“ = JUMPI Hình 2.

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 Lỗ Hổng Hợp Đồng Thông Minh Bằng Phương Pháp Học Sâu cung cấp cái nhìn sâu sắc về việc sử dụng các kỹ thuật học sâu để phát hiện lỗ hổng trong hợp đồng thông minh. Bài viết nhấn mạnh tầm quan trọng của việc bảo mật trong lĩnh vực blockchain, nơi mà các hợp đồng thông minh ngày càng trở nên phổ biến. Thông qua việc áp dụng các phương pháp học sâu, tài liệu này không chỉ giúp nâng cao khả năng phát hiện lỗ hổng mà còn tối ưu hóa quy trình kiểm tra bảo mật, từ đó giảm thiểu rủi ro cho người dùng và nhà phát triển.

Để mở rộng kiến thức của bạn về chủ đề này, bạn có thể tham khảo thêm tài liệu Khóa luận tốt nghiệp an toàn thông tin tự động hóa phát hiện lỗ hổng bảo mật trên hợp đồng thông minh dựa trên mô hình học sâu và cơ chế attention, nơi trình bày chi tiết về các cơ chế tự động trong phát hiện lỗ hổng. Ngoài ra, tài liệu Khóa luận tốt nghiệp an toàn thông tin nghiên cứu thực nghiệm triển khai và phát hiện bẫy trên hợp đồng thông minh sẽ giúp bạn hiểu rõ hơn về các bẫy trong hợp đồng thông minh và cách phát hiện chúng. Cuối cùng, bạn cũng có thể tìm hiểu về Optimizing smart contracts on ethereum, tài liệu này sẽ cung cấp những phương pháp tối ưu hóa hợp đồng thông minh trên nền tảng Ethereum, giúp bạn có cái nhìn toàn diện hơn về bảo mật và hiệu suất của hợp đồng thông minh.