Cảnh báo rủi ro: Đề phòng huy động vốn bất hợp pháp dưới danh nghĩa 'tiền điện tử' và 'blockchain'. — Năm cơ quan bao gồm Ủy ban Giám sát Ngân hàng và Bảo hiểm
Tìm kiếm
Đăng nhập
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
Xem thị trường
a16z: Nguyên tắc bảo mật hợp đồng thông minh cho các dự án Web3
Katie 辜
Odaily资深作者
2022-06-08 03:38
Bài viết này có khoảng 3302 từ, đọc toàn bộ bài viết mất khoảng 5 phút
Làm tốt 8 điểm này mới có thể ngăn chặn tối đa sự tấn công của hacker.

Bài viết này đến từ a16zcryptoBài viết này đến từ

, tác giả gốc: Andy Beal, Nassim Eddequouaq, Riyaz Faizullabhoy & Christian Seifert, dịch giả Katie Ku của Odaily biên dịch.

Thông thường, tin tặc sẽ tìm và khai thác các lỗ hổng trong toàn bộ chuỗi quy trình phát triển phần mềm (từ thiết kế, triển khai đến bảo trì), do đó phá vỡ hàng rào bảo mật của các dự án blockchain. Nếu kinh nghiệm liên quan có thể được học trước, tôi tin rằng sẽ có ít tai nạn an toàn hơn nhiều.

Bài viết này phác thảo các yếu tố bảo mật mà các nhà phát triển Web3 và nhóm bảo mật phải xem xét khi thiết kế, phát triển và duy trì hợp đồng thông minh, bao gồm toàn bộ chu trình từ mô hình hóa mối đe dọa đến chuẩn bị ứng phó khẩn cấp

  1. Phát triển một phần mềm an toàn bao gồm năm giai đoạn sau:

  2. Thiết kế: Nhà phát triển mô tả chức năng cần thiết và hoạt động của hệ thống, bao gồm các điểm chuẩn quan trọng và các thuộc tính cố định;

  3. Phát triển: các nhà phát triển viết mã hệ thống;

  4. Thử nghiệm và đánh giá: các nhà phát triển tập hợp tất cả các mô-đun trong môi trường thử nghiệm và đánh giá chúng về tính chính xác, quy mô và các yếu tố khác;

  5. Triển khai: các nhà phát triển đưa hệ thống vào sản xuất;

Bảo trì: Các nhà phát triển đánh giá và sửa đổi hệ thống để đảm bảo hệ thống hoạt động như dự định.

Sơ đồ bên dưới ánh xạ các yếu tố bảo mật cần được xem xét cho các giai đoạn trên.

Các bước vòng đời phần mềm và các cân nhắc bảo mật tương ứng được mô tả ở trên cung cấp cơ sở để tạo điều kiện bảo mật hợp đồng thông minh. Sau đây, chúng tôi sẽ tiến hành nghiên cứu chi tiết hơn về ba vấn đề.

tiêu đề phụ

  • 1. Cân nhắc bảo mật hợp đồng thông minh trong giai đoạn thiết kế - xem xét mô hình hóa mối đe dọa và thiết kế bảo mật

  • Điều gì: Xác định rõ ràng và ưu tiên các mối đe dọa tiềm ẩn đối với hệ thống ngay từ đầu trong vòng đời phát triển dự án là chìa khóa. Các nhà phát triển hợp đồng thông minh nên xác định tất cả các biện pháp kiểm soát bảo mật để thực hiện trong quá trình phát triển và các mối đe dọa cần được kiểm tra trong quá trình thử nghiệm, kiểm tra và giám sát. Tất cả các giả định về bảo mật, bao gồm cả mức độ phức tạp dự kiến ​​và phương tiện kinh tế của kẻ tấn công, cần được xác định rõ ràng và khớp nối trong giai đoạn thiết kế.

  • Lý do: Mặc dù các nhà phát triển chỉ tập trung vào mục đích sử dụng hợp đồng hoặc giao thức thông minh, nhưng sự tập trung duy nhất này có thể khiến họ có “điểm mù” mà kẻ tấn công có thể khai thác.Thiết kế các hệ thống với tư duy "kẻ tấn công" và giả định trước rằng bất kỳ cá nhân, máy móc hoặc dịch vụ nào cũng có thể bị tấn công.

tiêu đề phụ

  • 2. Cân nhắc về bảo mật trong giai đoạn phát triển - Cân nhắc về quản trị và kiểm soát truy cậpCái gì: Triển khai các biện pháp kiểm soát truy cập giới hạn khả năng đối với các tài khoản đặc quyền và lệnh gọi hợp đồng thông minh đến các chức năng đặc biệt để thực hiện các tác vụ quản trị như nâng cấp hợp đồng và đặt các tham số đặc biệt.

  • Thực hiện theo "nguyên tắc đặc quyền tối thiểu" - mỗi người tham gia chỉ nên có lượng truy cập tối thiểu cần thiết.

  • Cách tiếp cận: Xây dựng ví đa chữ ký hoặc hợp đồng DAO để thay mặt cộng đồng quản lý minh bạch các thay đổi. Các thay đổi phải trải qua quá trình xem xét kỹ lưỡng và có thời gian khóa (cố ý trì hoãn việc ban hành các quy định với khả năng hủy bỏ chúng) để đảm bảo tính chính xác của chúng có thể được xác minh và khôi phục trong trường hợp bị tấn công quản trị. Đảm bảo rằng các khóa đặc quyền được lưu trữ an toàn và có thể truy cập được trong ví tự quản lý hoặc dịch vụ lưu giữ an toàn.

tiêu đề phụ

  • 3. Xem xét các mẫu và tích hợp có thể tái sử dụng, đã qua thử nghiệm thực tế

  • Điều gì: Tận dụng các tiêu chuẩn hợp đồng thông minh hiện có (chẳng hạn như Hợp đồng OpenZeppelin) nếu có thể và đánh giá các giả định bảo mật có thể cần thiết để tích hợp giao thức với các giao thức hiện có.

  • Lý do: Việc sử dụng các tiêu chuẩn hiện có đã được cộng đồng kiểm tra, thử nghiệm và triển khai các biện pháp để giảm thiểu rủi ro bảo mật có thể giúp ích rất nhiều. Đánh giá rủi ro của việc tích hợp giao thức giúp phát triển các kiểm tra bảo mật để ngăn chặn các cuộc tấn công vào các thành phần bên ngoài như thao túng tiên tri.Biết mức độ rủi ro của bạn và giám sát các cuộc tấn công chuỗi cung ứng. Sử dụng giao diện chính thức để gọi các giao thức bên ngoài và đảm bảo xem xét các rủi ro tích hợp tiềm ẩn. Giám sát các bản cập nhật và tiết lộ bảo mật cho các hợp đồng được sử dụng lại.

tiêu đề phụ

  • 4. Cân nhắc bảo mật trong giai đoạn thử nghiệm và xem xét - xem xét thử nghiệm và tài liệu

  • Điều gì: Tạo tài liệu mã rõ ràng, toàn diện và xây dựng bộ thử nghiệm nhanh chóng, kỹ lưỡng và dễ chạy. Nếu có thể, hãy thiết lập môi trường thử nghiệm trên mạng thử nghiệm hoặc mô phỏng mạng chính để tiến hành các thử nghiệm chuyên sâu hơn.lý do:Viết ra các giả định về hành vi dự kiến ​​của cơ sở mã giúp đảm bảo rằng các rủi ro trong mô hình mối đe dọa được giải quyết và người dùng cũng như kiểm toán viên bên ngoài hiểu ý định của nhóm phát triển.

  • Cách tiếp cận: Triển khai các khung kiểm tra và trình kiểm tra bảo mật đã biết như Hardhat, Mythril, Slither, Truffle, v.v., cung cấp các kỹ thuật kiểm tra khác nhau như làm mờ, kiểm tra thuộc tính và thậm chí xác minh chính thức. Sử dụng các nhận xét NatSpec để ghi lại toàn bộ mã của bạn, chỉ định các tác dụng phụ, tham số và giá trị trả về dự kiến. Tạo tài liệu thời gian thực bằng các công cụ tạo tài liệu cũng như hướng dẫn thiết kế cấp cao.

tiêu đề phụ

  • 5. Xem xét đánh giá nội bộ và kiểm toán bảo mật

  • Điều gì: Dành thời gian để khám phá các lỗ hổng thông qua kiểm tra mã bên trong và bên ngoài.Lý do: Việc chuyển từ phát triển tính năng sang tập trung vào các vấn đề bảo mật giúp nhà phát triển có thời gian phát hiện các vấn đề tiềm ẩn khó hiểu.

  • Đánh giá bên ngoài đặc biệt hữu ích ở đây, vì chúng có thể mang lại quan điểm và chuyên môn bên ngoài mà nhóm phát triển không có.

Xem hướng dẫn từ ConsenSys, Nassent, OpenZeppelin và Trail of Bits, cung cấp cho nhà phát triển danh sách kiểm tra các yếu tố cần cân nhắc, bao gồm cả thời gian, cho bất kỳ ai chuẩn bị kiểm tra. Ngoài ra, hãy đảm bảo kiểm tra các giao dịch triển khai để đảm bảo chúng sử dụng các phiên bản mã đã được kiểm tra và có các thông số phù hợp, đặc biệt là khi nâng cấp phần mềm.

tiêu đề phụ

  • 6. Cân nhắc về bảo mật trong giai đoạn triển khai và bảo trì - thúc đẩy sự tham gia của cộng đồng mũ trắng

  • Cái gì: Tạo một chương trình khuyến khích sự tham gia của cộng đồng vào các cải tiến bảo mật cho các cơ sở mã nguồn mở. Một cách để làm điều này là tạo tiền thưởng lỗi. Một cách tiếp cận khác là khuyến khích cộng đồng phát triển các giao thức để giám sát và phát hiện bot.

  • Lý do: Các nhóm phát triển có thể hưởng lợi từ nhiều kiến ​​thức và kinh nghiệm (đây cũng là vai trò của nguồn mở trong lĩnh vực mã hóa). Một chương trình như vậy có thể giúp khơi dậy sự nhiệt tình cho một dự án, về cơ bản biến cộng đồng và các hacker mũ trắng thành những người truyền giáo. Họ cũng có thể giúp biến những kẻ tấn công có thể trở thành tài sản an toàn bằng cách cung cấp cho tin tặc cách trở thành người bảo vệ.

Lưu ý: Một số tác giả trong bài viết này làm việc cho Forta Corporation, công ty sở hữu một mạng cung cấp cấu trúc khuyến khích được mã hóa để tạo ra các robot giám sát an ninh chất lượng cao phi tập trung. Các nhóm phát triển có thể khuyến khích các cộng đồng giao thức của họ tận dụng cả phương pháp tiếp cận truyền thống và dựa trên Web3 để khuyến khích tiền thưởng lỗi và có khả năng mang lại lợi ích cho người tham gia thông qua bảo mật nâng cao, một tình huống đôi bên cùng có lợi.

tiêu đề phụ

  • 7. Cân nhắc bảo mật giám sát thời gian thực

  • Điều gì: Triển khai một hệ thống giám sát các hợp đồng thông minh và các thành phần vận hành chính như oracle và cầu nối chuỗi chéo, đồng thời báo cáo hoạt động đáng ngờ cho nhóm phát triển và cộng đồng dựa trên các mô hình mối đe dọa đã biết.

  • Phương pháp: Sử dụng nền tảng giám sát hoặc các nút phân tán để chạy robot nhằm giám sát các sự kiện hợp đồng thông minh trong thời gian thực. Cắm bảng điều khiển dữ liệu và thông báo cảnh báo cho các nhóm phát triển và cộng đồng rộng lớn hơn khi cần.

tiêu đề phụ

  • 8. Cân nhắc về an toàn cho các hoạt động ứng phó sự cố và khẩn cấp

  • Cái gì: Sử dụng các công cụ và quy trình có thể phản hồi ngay lập tức mọi vấn đề bảo mật khi chúng phát sinh.

  • Lý do: Ngay cả với các biện pháp bảo vệ tốt nhất trước khi triển khai, các vấn đề thời gian thực với hợp đồng thông minh và các thành phần chính như oracle và cầu nối chuỗi chéo vẫn có thể xảy ra. Nhân viên tận tâm, quy trình rõ ràng và tự động hóa phù hợp đảm bảo các sự cố có thể được điều tra nhanh chóng và giải quyết nhanh nhất có thể.

Phương pháp tiếp cận: Chuẩn bị cho các tình huống xấu nhất, lập kế hoạch cách ứng phó với các sự cố hoặc trường hợp khẩn cấp và tự động hóa các khả năng ứng phó ở mức độ lớn nhất có thể. Điều này bao gồm việc giao trách nhiệm điều tra và phản hồi, những người có thể được liên hệ công khai về các vấn đề bảo mật thông qua danh sách gửi thư bảo mật được phân phối, hướng dẫn trong kho mã hoặc đăng ký hợp đồng thông minh. Dựa trên mô hình mối đe dọa của thỏa thuận, hãy phát triển một tập hợp các quy trình có thể bao gồm diễn tập kịch bản và thời gian phản hồi dự kiến ​​cần thiết để thực hiện hành động khẩn cấp. Có thể cân nhắc tích hợp tự động hóa vào ứng phó sự cố khẩn cấp.Các cân nhắc về bảo mật phải là một phần không thể thiếu trong quá trình phát triển thành công, chứ không chỉ là sự bổ sung hoặc suy nghĩ lại.

Mặc dù khung này chia sẻ một số hướng dẫn nhanh để xây dựng các giao thức và ứng dụng Web3 hỗ trợ bảo mật trong suốt quá trình phát triển, nhưng không có bất kỳ tổng quan ngắn nào có thể thảo luận toàn bộ về bảo mật hợp đồng thông minh. Các nhóm thiếu kiến ​​thức chuyên môn về bảo mật nội bộ nên liên hệ với các chuyên gia bảo mật Web3 có trình độ, những người có thể hướng dẫn và giúp áp dụng vào tình huống cụ thể của họ.

a16z
Sự an toàn
hợp đồng thông minh
Chào mừng tham gia cộng đồng chính thức của Odaily
Nhóm đăng ký
https://t.me/Odaily_News
Tài khoản chính thức
https://twitter.com/OdailyChina