MỞ ĐẦU 1. Bảo mật hợp đồng thông minh trong mạng Blockchain Hợp đồng thông minh (Smart Contract) là một đoạn mã tự động chạy trên Blockchain dé thực hiện thỏa thuận giữa các bên tham gia giao dịch. Các hợp đồng thông minh được ứng dụng trong nhiều lĩnh vực như trao đổi tài sản kỹ thuật số, chuỗi cung ứng, huy động vốn cộng đồng và sở hữu trí tuệ. Tuy nhiên chỉ cần xảy ra một 16 hong trong mã của hợp đồng cũng có thé bị khai thác bởi kẻ tan công, dẫn đến các van dé nghiêm trọng như mất tiền hay rò rỉ thông tin cá nhân.
[1] Dé tránh những rủi ro này, đặc biệt là tổn thất tài chính đáng ké, bắt buộc phải tiến hành kiểm tra kỹ lưỡng mã và các khía cạnh khác trong hợp đồng thông minh. Một ví dụ điển hình là vụ tấn công vào DAO (Decentralized Autonomous Organization), một hợp đồng thông minh nỗi tiếng của Ethereum, một trong những nền tang Blockchain được sử dụng rộng rãi nhất , vào thang 6 năm 2016. Do lỗi trong mã nguồn của DAO đã khiến hợp đồng này bị tan công, gây thiệt hại lên đến 60 triệu USD. Kẻ tấn công đã khai thác lỗ hồng tái nhập (Reentrancy vulnerability) bằng cách gọi đệ quy hàm phân chia DAO nhiều lần trước khi hàm này kịp cập nhật số dư mới, từ đó chuyên Ether vào tài khoản của kẻ tấn công mà không làm giảm số dư trong hợp đồng ban dau.
[1] Điều này đã làm cho DAO mat hàng triệu USD mà không thé khôi phục được. Năm 2017, một lỗ hồng trong hợp đồng ví Parity đã khiến người dùng mat 31 triệu USD. Năm 2018, tin tặc lợi dụng lỗ hồng tràn số nguyên trong hợp đồng thông minh ERC-20 của Ethereum để tạo ra một lượng lớn token BEC do công ty United States Chain phát hành, khiến giá trị thị trường của nó giảm gần như bằng 0. Theo thống kê từ trang web của SlowMist, các cuộc tan công vào hợp đồng thông minh Ethereum đã gây ra tổng thiệt hại hơn 3,1 ty USD tính đến năm 2023.
Với những sự cố về bảo mật Blockchain xảy ra thường xuyên và tài sản số liên quan đến hợp đồng thông minh ngày càng tăng, vấn đề về các lỗ hồng trong hợp đồng thông minh đã thu hút sự chú ý của nhiều cá nhân và tổ chức liên quan hơn. Do đặc điểm của hợp đồng thông minh là không thê can thiệp và tự động thực thi, nên tài sản bị đánh cắp sẽ khó thu hồi lại được khi xảy ra vẫn đề bảo mật trong hợp đồng thông minh. Do đó việc phát hiện các lỗ hồng bảo mật và mã độc tiềm ẩn trước khi triển khai là rất cần thiết để đảm bảo tính bảo mật của hợp đồng thông minh và an toàn cho lợi ích tài sản của các bên tham gia. Các khái niệm về lỗ hong và mã độc trong hợp đồng thông minh 1.
Vulnerable smart contracts Hợp đồng thông minh có chứa lỗ hồng (Vulnerable smart contracts) là những hợp đồng có điểm yếu hoặc sai sót trong mã hoặc thiết kế mà kẻ tấn công có thể tận dụng đề khai thác. Những lỗ hồng này có thé xảy ra do lỗi lập trình, các biện pháp bảo mật không đầy đủ hoặc tương tác không mong muốn với các hợp đồng khác hoặc đầu vào bên ngoài. Các lỗ hổng phô biến trong hợp đồng thông minh bao gồm Reentrancy, Integer Overflow/Underflow va Improper Access Control 1. Malicious smart contracts Hop đồng thông minh có chứa mã độc (Malicious smart contracts) là những hợp đồng được thiết kế có chủ đích dé thực hiện các hành động độc hại, lừa dối người dùng hoặc khai thác lỗ hồng trong các hợp đồng hoặc hệ thống khác.
Những hợp đồng này thường được những kẻ tấn công tạo ra đề đánh cắp tiền, thu thập các thông tin nhạy cảm hay đơn giản là làm gián đoạn các hoạt động của blockchain. Hợp đồng thông minh có chứa mã độc có thể chứa hidden backdoors, misleading functions hoặc logic có lợi cho kẻ tan công nhưng lại gây thiệc hại cho những người khác. Payloads phổ biến được sử dụng trong malicious smart contracts bao gồm Hidden Backdoors, False Return Values, Logic Bombs, Phishing Contracts, Sybil Attack Vectors, Gas Limit Exploitation. Phat hiện và phân loại lỗ hong va mã độc trong hop đồng thông minh Solidity Phát hiện và phân loại lỗ hong và mã độc trong hợp đồng thông minh Solidity đóng vai trò quan trọng trong việc nâng cao tính bao mật cho các ứng dụng trên nên tang Blockchain.
Các phương pháp phát hiện lỗ hồng và mã độc trong hợp đồng thông minh hiện tại chủ yếu dựa trên các phương pháp phát hiện lỗ hồng truyền thống của các chương trình thông thường, thường chỉ sử dụng phân tích tĩnh và các kỹ thuật thực thi động để phát hiện. Những phương pháp này thường dựa vào kinh nghiệm của chuyên gia và gặp phải các vấn đề như tự động hóa thấp, hiệu quả thấp và thiếu linh hoạt. Trong những năm gần đây, với sự phát triển nhanh chóng của học sâu (deep learning), việc sử dụng công nghệ học sâu để phát hiện lỗ hồng và mã độc của hợp đồng thông minh đã trở thành một chủ đề nghiên cứu nóng. Công nghệ phát hiện lỗ hồng và mã độc dựa trên học sâu có thé khắc phục được các hạn chế về tự động hóa thấp, hiệu quả thấp và phụ thuộc vào kiến thức chuyên môn của các phương pháp truyền thống.
Tuy nhiên, hầu hết các phương pháp học sâu hiện tại chỉ tập trung vào một khía cạnh dữ liệu của hợp đồng thông minh và không thể khai thác hết thông tin lỗ hồng. Vì vậy, trong nghiên cứu này, chúng em đề xuất kết hợp cả mô hình học sâu Multi-model và kỹ thuật Transfer Learning đề thiết kế bộ phân loại đa nhãn, cho phép mô hình có thể kết hợp nhiều lớp cũng như tinh chỉnh và huấn luyện trên các tập dữ liệu lớn với nhiều nhãn lỗ hông khác nhau, dé dàng mở rộng dé phát hiện các nhóm lỗ hồng mới với dữ liệu hạn chế. Khi có lỗ hồng mới, chỉ cần thêm nhánh nhóm mới vào trình trích xuất tính năng và huấn luyện với dữ liệu giới hạn. Phương pháp này phát hiện lỗ hồng mới với chi phí tối thiểu cho việc sửa đổi và huấn luyện lại mô hình, giúp phát hiện và phân loại các nhóm lỗ hồng và mã độc một cách hiệu quả và nhanh hơn so với các phương pháp phát hiện lỗ hổng và mã độc trong hợp đồng thông minh truyền thống.
Mục tiêu và phạm vi đề tài 1. Mục tiêu chính Phát triển một hệ thống tự động và hiệu quả sử dụng các mô hình học sâu Multi- model va Transfer Learning dé phát hiện và phân loại lỗ héng và mã độc trong hợp đồng thông minh Solidity trên nền tảng Ethereum. Mục tiêu cụ thể e Nâng cao hiệu quả phát hiện lỗ hồng bảo mật thông qua việc tối ưu hóa các mô hình học sâu. e Phân nhóm các lỗ hồng dựa trên các đặc trưng tương đồng dé tối ưu hóa quá trình phát hiện và phân loại, giúp tăng hiệu quả mô hình và có khả năng mở rong.
e Xây dựng bộ dữ liệu đa dang và toàn diện về các lỗ hồng trong hop đồng thông minh dé huấn luyện và đánh giá mô hình. e_ So sánh hiệu quả của phương pháp đề xuất với các phương pháp hiện có trong lĩnh vực phát hiện và phân loại lỗ hồng trong hợp đồng thông minh. e Đóng góp vào việc bảo mật trong mạng Blockchain thông qua việc phát hiện và ngăn chặn sớm các lỗ hồng bảo mật tiềm an. Pham vi đề tài 1.
Đối tượng nghiên cứu e_ Hợp đồng thông minh Solidity trên nền tảng Ethereum. e Đề tài sẽ tập trung vào việc phát hiện và phân nhóm 14 loại lỗ hồng và mã độc phổ biến trong hợp đồng thông minh Solidity, bao gồm: o Reentrancy o Unchecked external call o Unchecked send o Dangerous delegatecall o Timestamp dependence o Block number dependence o Bad randomness o Short address/Parameter Issues o Access control o Transaction ordering dependence (TOD) o Tx.origin usage o DoS (Denial of Service) (malicious smart contract) o Out of gas (malicious smart contract) o Integer Overflow/UnderFlow 1. Phương pháp nghiên cứu Phân nhóm 14 loại lỗ héng và mã độc vào 5 nhóm dựa trên các đặc trưng tương đồng. Trích xuất các đặc trưng bằng cách tự viết code, có tham khảo một số công cụ phân tích tĩnh và phân tích động.
Ap dụng kỹ thuật Multi-model và Transfer Learning dé phân tích và tổng hợp thông tin từ các đầu vào khác nhau, tăng độ chính xác trong việc phát hiện lỗ hồng, đồng thời có thé tái sử dụng và tinh chỉnh dé phát hiện các nhóm lỗ hồng khác nhau chỉ với điều chỉnh nhỏ về mô hình và tập dữ liệu Thực hiện thử nghiệm trên bộ dữ liệu thực tế và đánh giá kết quả. KIÊN TRÚC MẠNG BLOCKCHAIN VA CÁC VAN DE BAO MAT TRONG HOP DONG THONG MINH 2. Kiến trúc mang Blockchain 2. Tổng quan kiến trúc mạng Blockchain Blockchain là một chuỗi các khối, chứa đầy đủ danh sách các bản ghi giao dịch tương tự như số cái công khai thông thường.1 minh họa cách các block được kết noi trong blockchain.
Mỗi block trỏ đến block ngay trước đó thông qua một tham chiếu, chính là giá tri hash cua block trước đó, được gọi là parent block. Các giá tri hash của uncle blocks cũng sẽ được lưu trữ trong blockchain Ethereum. Block đầu tiên cua một blockchain được gọi là genesis block và không có parent block.1 Kết nối các block trong Blockchain. Ethereum là một nền tảng blockchain sử dụng Turing Complete phô biến nhất hiện nay, cho phép lập trình viên viết các hợp đồng thông minh với các quy tắc riêng về quyền sở hữu, định dạng giao dịch và trạng thái hoạt động.
Trong blockchain, bất kỳ ai cũng có thé chạy một node Ethereum trên máy tính của mình dé tham gia vào mạng lưới blockchain Ethereum.2 mô tả kiến trúc phân lớp của blockchain Ethereum. Ethereum Blockchain Application Layer + Smart Contract ¡ Digital Signature! *Decentralized ! «Hash h' Applications h «Merkle Tree ' *ChainCode 1 Transactions rs ee "““== ====== ằ-.ô CÔ ÔÐ - ' +Proof of Work !+ Peer to Peer | | "Proof of stake ¡ ‘Delegated Proof of Stake 1 ' 5 Practical Byzantine Fault Tolerance ! ' ' «Proof of Elapsed Time h Hình 2.2 Layer structure of Ethereum blockchain Hình 2.3 giải thích cấu trúc của một node blockchain trên nền tảng Ethereum. Mỗi node trong chuỗi được liên kết với node khác bằng cách sử dụng giá trị hash của node trước đó. Các giao dịch được băm dưới dạng cây Merkle, một phần quan trọng của blockchain.
Cây Merkle được sử dụng để xác minh hiệu quả và an toàn tính nhất quán va toàn vẹn của các tập dữ liệu giao dịch lớn.