CHƯƠNG 1: MO DAU 1.1 Lý do chọn đề tài Blockchain là một công nghệ được cho là có thể làm thay đổi cuộc chơi trong nhiều lĩnh vực ứng dụng, đặc biệt là các ứng dụng tài chính. Trong khi thế hệ đầu tiên của Blockchain (Bitcoin [1]) hầu như chỉ được sử dụng cho mục đích tiền tệ, thì với thế hệ tiếp theo, Blockchain 2.0, dẫn đầu là Ethereum, đã cho phép triển khai một mô hình ứng dụng mới gọi là ứng dụng phi tập trung với các hợp đồng thông minh được lưu trữ trên nền tảng Blockchain. Ké từ đó, rất nhiều giả thuyết không tưởng trong quá khứ đã được giải quyết bởi hop đồng thông minh. Hợp đồng thông minh mang lại rất nhiều lợi ích cho hầu hết các ngành công nghiệp, giảm nhiều chỉ phí và thời gian không cần thiết, đồng thời tăng cường tính minh bạch giữa các bên tham gia hợp đồng.
Với những lợi ích vượt trội, hợp đồng thông minh đã và đang tạo điều kiện dé phát triển ứng dụng phong phú hơn trong tương lai. Điều đó cũng đồng nghĩa với việc tiềm an nhiều nguy cơ bị tan công hơn. Điều hap dẫn hơn nữa đó là ngoài việc xử lý được các logic đã được lập trình, hợp đồng thông minh còn là một nền tảng sở hữu tài sản kỹ thuật số có giá trị. Các hợp đồng tài chính và bán tài chính trị giá hàng ngàn, hàng triệu USD luôn là mục tiêu nhắm đến của những kẻ tấn công.
Bằng chứng là đã có nhiều cuộc tan công gây thiệt hại lớn đã xảy ra trong quá khứ. Ví dụ điển hình có thể kế đến là cuộc tấn công DAO [2] diễn ra vào năm 2016, kẻ tắn công đã khai thác lỗ hồng Reentrancy để đánh cắp 60 triệu USD. Tháng 7 năm 2017, lỗ hồng Delegatecall trong hợp đồng Parity Wallet đã gây ra tốn thất 31 triệu USD [3]. Tháng 4 năm 2018, ví MyEtherWallet đã trở thành nạn nhân của cuộc tấn công BGP & DNS Hijacking, tin tặc đã lay đi khoảng 17 triệu USD.
Ngoài ra, một trong những đặc tính của nền tảng Ethereum, là một khi một hợp đồng thông minh được triển khai, nó không thể được sửa đồi hay cập nhật trong tương lai. Đây có thể xem là đặc tính vừa là ưu điểm vừa là nhược điểm của hợp đồng thông minh. Ưu điểm là nó đại diện cho một ứng dụng đáng tin cậy nơi các nhà phát triển 11 không thé sửa đổi các đoạn mã của hợp đồng sau khi đã triển khai, với mục đích duy nhất là thu lợi nhuận bat hợp pháp. Nhược điềm chính là việc không thé cập nhật các bản vá bảo mật đối với các ứng dụng này.
Điều đó đòi hỏi một chiến lược bảo mật mạnh mẽ của các nhà phát triển trước khi trién khai hợp đồng thông minh lên mạng Blockchain. Do đó, việc nghiên cứu các van dé xoay quanh tính bảo mật của hợp đồng thông minh luôn là vấn đề cấp bách. Sự chậm trễ trong việc nghiên cứu các vấn đề bảo mật có thể bị vượt mặt bởi sự phát triển của các kỹ thuật tấn công và dẫn đến những hậu quả đáng tiếc.2 Mục đích, mục tiêu nghiên cứu Nghiên cứu này nhằm mục đích mang lại cho những nhà phát triển hợp đồng thông minh một lượng kiến thức nhất định về các vấn đề Xoay quanh tính an toàn, bảo mật của nó. Nghiên cứu sẽ thực hiện phân loại các lỗ hồng logic của hợp đồng thông minh đã từng xuất hiện trong quá khứ thành từng nhóm, dựa trên nguyên nhân cốt lõi dẫn đến 16 hổng đó.
Cung cấp các gợi ý về kịch bản tắn công cũng như phương hướng phòng thủ đối với mỗi lỗ hồng. Điều này sẽ giúp mang lại cho những nhà phát triên hợp đồng thông minh một cái nhìn bao quát hơn, sâu sắc hơn về các van dé bảo mật trên no. Đồng thời, dé hỗ trợ cho việc phát hiện lỗ hồng một cách tự động, nghiên cứu này sé cải tiến một công cụ phân tích mã nguồn mở, nhằm mang lại hiệu quả tốt hơn trong việc phân tích. Những điểm cải tiễn sẽ được trình bày trong các phần sau của báo cáo.
Ngoài ra, dựa trên những cơ sở lý thuyết, các kết quả nghiên cứu đã có và cả kết quả nghiên cứu của khóa luận này, một quy trình đánh giá hợp đồng thông minh cũng sẽ được đề xuất, nhằm mang lại hiệu quả trong công tác đánh giá tính bảo mật của hợp đồng thông minh. 12 Những đóng góp của nghiên cứu này cũng đồng thời góp phần xây dựng một môi trường an toàn trên mạng Blockchain, giúp giữ gìn và phát huy những lợi thế vốn có của hợp đồng thông minh.3 Đối tượng và phạm vi nghiên cứu Hiện nay, đã có rất nhiều nền tảng hỗ trợ triển khai hợp đồng thông minh. Trong số đó, Ethereum hiện là nền tảng phổ biến nhất (https:/Avww.com/smart- contract-platforms), do dó được chọn làm đối tượng nghiên cứu trong nghiên cứu này. Hơn nữa, với tính chất công khai toàn bộ, bất kỳ ai cũng có thể xem được mã nguồn hợp đồng thông minh hay thông tin giao dịch ngay cả trong trạng thái “cho xử lý”.
Do đó, việc chọn nền tảng này làm đối tượng nghiên cứu càng thực sự có ý nghĩa. Phạm vi nghiên cứu bao gồm các vấn đề về an toàn, bảo mật trên hợp đồng thông minh và các phương pháp, công cụ hỗ trợ phát hiện lỗ hồng. 13 CHƯƠNG 2: TONG QUAN 2.1 Các hướng nghiên cứu đã có Với chủ về tính bảo mật của hợp đồng thông minh, hiện nay cũng đã có nhiều nghiên cứu được thực hiện bởi các chuyên gia và cả nghiên cứu sinh. Đối với hướng nghiên cứu về các lỗ hổng hợp đồng thông minh, “A Survey on Ethereum Systems Security: Vulnerabilities, Attacks and Defenses” [4] là tài liệu bao quát nhất được tim thấy trong quá trình nghiên cứu.
Đây là bai báo khảo sát được thực hiện bởi H. Xu được đăng trên tạp chí ACM Computing Surveys. Bài báo trình bay tổng cộng 44 lỗ hổng đã được phát hiện trên hợp đồng thông minh, bao gồm cả những lỗ hong còn tổn tại và những lỗ hong đã được ngăn chặn hoàn toàn. Các lỗ hổng được phân ra làm 5 nhóm, tùy theo vị trí xuất hiện của nó trong nên tảng Ethereum.
Trong đó bao gồm các lớp: Application, Data, Consensus, Network và Environment. Hướng nghiên cứu này ít tập chỉ tiết vào bên trong các lỗ hong, mà chi tập trung mô tả một sé lượng lớn các lỗ hồng ở mức độ cơ bản. Một số kiến thức liên quan đi kèm với mỗi lỗ héng cũng không được chú trọng. Điều này có thể giúp cho các nhà phát triển tiếp xúc phong phú hơn với với các lỗ hổng, nhưng lại thiếu hụt lượng kiến thức khi đi sâu vào một trong số các lỗ hồng đó.
Cùng với hướng nghiên cứu nay, “What are the Actual Flaws in Important Smart Contracts (and How Can We Find Them)?” [5] được thực hiện bởi A. Colburn, cũng là một tài liệu tốt được tim thấy. Tuy nhiên, khác với bài báo trước đó, bài báo này tập trung vào các lỗ hồng theo hướng khảo sát. Tác giả đã thực hiện thống kê các lỗ hồng trên một số lượng hợp đồng nhất định, sau đó sắp xếp nó theo các mức độ.
Có hai loại mức độ được trình bày trong bài báo. Độ khó trong khai thác và độ nguy hiểm mà lỗ hồng đó mang lại. Hướng triển khai này có phan mới lạ nhưng vẫn mắc phải van đề tương tự như bai báo trên. Đối với hướng nghiên cứu về các phương pháp và công cụ hỗ trợ phát hiện lỗ hong hợp đồng thông minh, “Security Analysis Methods on Ethereum Smart Contract Vulnerabilities — A Survey” [6] là tai liệu day đủ nhất được tim thấy trong quá trình 14 nghiên cứu.
Đây là một bài báo được viết bởi P. Doss được đăng tải trên trang arXiv. Bài viết cũng đề cập đến các lỗ hồng hợp đồng thông minh, điều đó cho thấy sự cần thiết trong việc không ngừng nghiên cứu về vấn đề này. Ngoài ra, một phần chính hơn của bài viết đó là các phương pháp phân tích bảo mật trên hợp đồng thông minh.
Trong đó có đề cập đến hai loại phương pháp phổ biến là “static” và “dynamic”, cùng một loại ít phổ biến hơn là “formal verification”. Với mỗi phương pháp phân tích, các công cụ hỗ trợ cũng được trình bày kèm theo.2 Vấn đề còn tồn tại Có thé thấy rõ rằng, các lỗ hồng trên hợp đồng thông minh đã và đang gây ra nhiều hậu quả nghiêm trọng cho hệ sinh thái này. Trong khi đó, các nghiên cứu hiện có về van dé này hầu hết được thực hiện theo hướng thống kê, khảo sát. Các kiến thức về lỗ hồng thường chỉ được trình bày ở mức định nghĩa, khái niệm.
Tại thời điểm tài liệu về lĩnh vực này còn hạn chế thì đây chính là những điểm bắt đầu tuyệt vời cho những nghiên cứu sinh. Nhưng có lẽ sẽ cần nhiều hơn như thé tại thời điểm hợp đồng thông minh trở thành mục tiêu hàng đầu của những kẻ tan công như lúc này. Cùng với đó là nhu cầu không ngừng nghiên cứu và cập nhật các kiến thức về lỗ hong hợp đồng thông minh. Van đề khác, đó là các công cụ hỗ trợ phân tích, phát hiện lỗ hông tự động đối với hop đồng thông minh được trình bày trong các nghiên cứu cũ đa số đều yêu cầu triển khai trên nền tảng Linux.
Các bước cài đặt công cụ cũng như thư viện kèm theo rất phức tạp. Đôi lúc có thé mat nhiều thời gian và phát sinh lỗi. Các công cụ phân tích lỗ hồng được triển khai trên các nền tảng thông dụng như Web vẫn còn hiếm. Do đó, sự tiếp cận của người dùng đối với các công cụ này vẫn còn là một hạn ch.
Va đặc biệt, hầu như chưa có một công bồ chính thức nào về một quy trình kiểm thử, đánh giá mức độ an toàn của hợp đồng thông minh. Điều đó cũng phần nào làm hạn chế sự tiếp cận của những người mới nghiên cứu đối với lĩnh vực này. Hơn nữa, đối với bất kỳ lĩnh vực nào, sự cần thiết của một quy trình cho các công việc lặp đi lặp 15 lại là không cần phải bàn cãi. Đặc biệt với công tác kiểm thử, đánh giá, các kết quả cần phải đạt được một mức độ tiêu chuẩn nhất định.3 Các vấn đề được giải quyết trong nghiên cứu này Nghiên cứu này sẽ xây dựng một danh sách các lỗ hồng xuất hiện trong các cuộc tấn công ở quá khứ theo hướng phân loại thành từng nhóm nguyên nhân và cụ thể hóa đối với từng lỗ héng, có thé dùng làm cơ sở trong quá trình kiểm thử, đánh giá hợp đồng thông minh.