Nhảy đến nội dung chính

Danh sách kiểm tra bảo mật hợp đồng thông minh

hợp đồng thông minh
tính bảo mật
Solidity
Trung gian
Trailofbits
7 tháng 9, 2020
4 số phút đọc

Danh sách kiểm tra phát triển hợp đồng thông minh

Đây là một quy trình cấp cao mà chúng tôi khuyên bạn nên tuân theo khi viết các hợp đồng thông minh của mình.

Kiểm tra các vấn đề bảo mật đã biết:

  • Xem lại hợp đồng của bạn với Slither (opens in a new tab). Nó có hơn 40 trình phát hiện tích hợp cho các lỗ hổng phổ biến. Chạy nó trên mỗi lần kiểm tra với mã mới và đảm bảo nó nhận được một báo cáo sạch (hoặc sử dụng chế độ phân loại để tắt tiếng các vấn đề nhất định).
  • Xem lại hợp đồng của bạn với Crytic (opens in a new tab). Nó kiểm tra 50 vấn đề mà Slither không kiểm tra. Crytic cũng có thể giúp nhóm của bạn nắm bắt công việc của nhau, bằng cách dễ dàng hiển thị các vấn đề bảo mật trong các Yêu cầu Phản hồi trên GitHub.

Xem xét các tính năng đặc biệt của hợp đồng của bạn:

Kiểm tra trực quan các tính năng bảo mật quan trọng của mã của bạn:

Ghi lại các thuộc tính bảo mật quan trọng và sử dụng các trình tạo thử nghiệm tự động để đánh giá chúng:

  • Tìm hiểu cách ghi lại các thuộc tính bảo mật cho mã của bạn. Lúc đầu sẽ rất khó khăn, nhưng đây là hoạt động quan trọng nhất để đạt được kết quả tốt. Đây cũng là điều kiện tiên quyết để sử dụng bất kỳ kỹ thuật nâng cao nào trong hướng dẫn này.
  • Xác định các thuộc tính bảo mật trong Solidity, để sử dụng với Echidna (opens in a new tab)Manticore (opens in a new tab). Tập trung vào máy trạng thái, kiểm soát truy cập, các phép toán số học, tương tác bên ngoài và sự phù hợp với các tiêu chuẩn.
  • Xác định các thuộc tính bảo mật bằng Giao diện Lập trình Ứng dụng Python của Slither. Tập trung vào tính kế thừa, các phụ thuộc biến, kiểm soát truy cập và các vấn đề cấu trúc khác.
  • Chạy các bài kiểm tra thuộc tính của bạn trên mỗi lần commit với Crytic (opens in a new tab). Crytic có thể sử dụng và đánh giá các bài kiểm tra thuộc tính bảo mật để mọi người trong nhóm của bạn có thể dễ dàng thấy rằng chúng đã vượt qua trên GitHub. Các bài kiểm tra không thành công có thể chặn các lần commit.

Cuối cùng, hãy lưu ý đến các vấn đề mà các công cụ tự động không thể dễ dàng tìm thấy:

  • Thiếu sự riêng tư: mọi người khác có thể thấy các giao dịch của bạn khi chúng đang được xếp hàng trong pool
  • Chạy trước các giao dịch
  • Các hoạt động mật mã
  • Các tương tác rủi ro với các thành phần DeFi bên ngoài

Yêu cầu trợ giúp

Giờ hành chính của Ethereum (opens in a new tab) diễn ra vào mỗi chiều thứ Ba. Các phiên 1-1, kéo dài 1 giờ này là cơ hội để bạn hỏi chúng tôi bất kỳ câu hỏi nào về bảo mật, khắc phục sự cố khi sử dụng các công cụ của chúng tôi và nhận phản hồi từ các chuyên gia về phương pháp tiếp cận hiện tại của bạn. Chúng tôi sẽ giúp bạn làm theo hướng dẫn này.

Tham gia Slack của chúng tôi: Empire Hacking (opens in a new tab). Chúng tôi luôn sẵn sàng trong các kênh #crytic và #ethereum nếu bạn có bất kỳ câu hỏi nào.

Lần cập nhật trang lần cuối: 7 tháng 2, 2025

Hướng dẫn này có hữu ích không?