Hệ thống SAILFISH có thể phát hiện lỗi không nhất quán trạng thái trên hợp đồng thông minh


Một nhóm sinh viên từ Đại học California, thành phố Santa Barbara, đã chứng minh một “kỹ thuật có thể mở rộng” để kiểm tra hợp đồng thông minh và khắc phục các lỗi không nhất quán trạng thái, phát hiện 47 lỗ hổng zero-day trên blockchain Ethereum trong quá trình này.



Hợp đồng thông minh là các chương trình được lưu trữ trên blockchain. Các chương trình này sẽ tự động thực thi khi thỏa các điều kiện xác định trước dựa trên các điều khoản thỏa thuận đã được mã hóa. Hợp đồng thông minh cho phép thực hiện các giao dịch và thỏa thuận đáng tin cậy giữa các bên ẩn danh mà không cần thẩm quyền trung ương can thiệp.



Nói cách khác, bản thân code đã là người phân xử cuối cùng của giao dịch mà nó đại diện, do chương trình đã kiểm soát tất cả các khía cạnh của quá trình thực thi và cung cấp các chứng cứ kiểm toán giao dịch rõ ràng, dễ theo dõi và không thay đổi.



Điều này cũng có nghĩa là các lỗ hổng trong code có thể gây ra thiệt hại lớn, chẳng hạn như các vụ tấn công nhằm vào DAO và gần đây là MonoX. Trong các cuộc tấn công này, kẻ tấn công đã khai thác lỗ hổng để rút tiền bất hợp pháp – một viễn cảnh có thể gây ra hậu quả nặng nề từ việc áp dụng hợp đồng thông minh trong vài năm qua.



Trong một bài báo , các nhà nghiên cứu cho biết: “Vì hợp đồng thông minh không thể nâng cấp dễ dàng, nên việc audit trước khi triển khai mã nguồn của hợp đồng và triển khai một hợp đồng không lỗ hổng thậm chí còn quan trọng hơn so với phần mềm truyền thống”.



Enter Sailfish đặt mục tiêu tìm ra các lỗ hổng không nhất quán trạng thái trong hợp đồng thông minh cho phép kẻ tấn công làm xáo trộn thứ tự thực hiện giao dịch hoặc chiếm luồng điều khiển trong một giao dịch đơn lẻ (hay còn gọi là reentrancy ).



Công cụ này hoạt động như sau. Nếu có một hợp đồng thông minh, Sailfish chuyển đổi hợp đồng đó thành một biểu đồ phụ thuộc (dependency graph), ghi lại mối quan hệ luồng điều khiển và luồng dữ liệu giữa các biến lưu trữ và các chỉ lệnh thay đổi trạng thái của hợp đồng thông minh. Sailfish dùng biểu đồ phụ thuộc này để xác định các lỗ hổng tiềm ẩn bằng cách xác định quyền truy cập nguy hiểm, được triển khai dưới dạng truy vấn đồ thị nhằm xác định xem hai đường dẫn thực thi khác nhau, ít nhất có một đường dẫn là thao tác ghi, có hoạt động trên cùng một biến lưu trữ hay không.



Các nhà nghiên cứu đã đánh giá Sailfish trên 89.853 hợp đồng thu được từ Etherscan, xác định 47 lỗ hổng zero day có thể được khai thác để chiếm Ether, thậm chí phá hoại metadata dành riêng cho ứng dụng. Trong số các hợp đồng thông minh bị ảnh hưởng, có một hợp đồng dùng để theo dõi giao dịch bất động sản có thể bị lợi dụng, khiến cho một chủ nhà có thể rao bán bất động sản nhiều lần.



Các phát hiện của cuộc nghiên cứu sẽ được công bố vào tháng 5/2022 tại chuyên đề IEEE về Bảo mật và Quyền riêng tư ( S&P ).



Đây không phải là lần đầu tiên hợp đồng thông minh thu hút sự quan tâm của giới học thuật. Hồi tháng 9/2020, các nhà nghiên cứu người Trung Quốc đã thiết kế một khung nghiên cứu để phân loại các lỗ hổng đã phát hiện trong hợp đồng thông minh nhằm đề ra các tiêu chí phát hiện từng lỗi.



Theo The Hacker News
The post Hệ thống SAILFISH có thể phát hiện lỗi không nhất quán trạng thái trên hợp đồng thông minh appeared first on SecurityDaily .