Gần đây, một công ty an ninh đã phát hiện ra hai lỗ hổng nghiêm trọng trong một hợp đồng tài sản kỹ thuật số. Những lỗ hổng này có thể dẫn đến việc tài sản của người dùng bị khóa hoặc tiền của bên dự án không thể rút ra.
Lỗ hổng đầu tiên tồn tại trong chức năng xử lý hoàn tiền. Chức năng này sử dụng cách thức lặp để hoàn tiền cho tất cả người dùng, nhưng nếu một người dùng là hợp đồng độc hại, họ có thể từ chối nhận hoàn tiền và ngắt giao dịch, dẫn đến việc hoàn tiền cho tất cả người dùng bị thất bại. May mắn thay, lỗ hổng này đã không bị khai thác thực tế.
Để tránh các vấn đề tương tự, Bên dự án được khuyến nghị thực hiện các biện pháp an ninh sau:
Hạn chế chỉ có tài khoản người dùng cá nhân có thể tham gia dự án
Sử dụng token ERC20 thay vì tài sản gốc
Thiết kế cơ chế cho phép người dùng chủ động yêu cầu hoàn tiền, thay vì hoàn tiền hàng loạt.
Lỗ hổng thứ hai là do một lỗi logic trong mã. Trong chức năng rút tiền dự án, có một câu lệnh điều kiện nhưng đối tượng so sánh lại sai. Điều này dẫn đến việc điều kiện không bao giờ được thỏa mãn, Bên dự án không thể rút tài sản trong hợp đồng. Hiện tại, hơn 34 triệu USD tài sản đã bị khóa vĩnh viễn trong hợp đồng đó.
Những vấn đề này một lần nữa nhấn mạnh rằng ngay cả những dự án nổi tiếng cũng có thể xuất hiện những sai lầm cơ bản. Trong quá trình phát triển, việc kiểm tra đầy đủ và nhận thức cơ bản về an toàn là vô cùng quan trọng. Mặc dù trong lĩnh vực tài chính phi tập trung, kiểm toán an toàn đã trở thành một thực tiễn thông thường, nhưng trong các dự án tài sản kỹ thuật số, kiểm toán an toàn vẫn còn thiếu sót. Sự lơ là này đã dẫn đến việc mất mát một khoản tiền khổng lồ.
Sự kiện này nhắc nhở chúng ta rằng, bất kể quy mô của dự án như thế nào, chúng ta đều nên chú trọng đến an toàn mã nguồn, thực hiện kiểm tra và kiểm toán toàn diện, nhằm ngăn chặn những tổn thất lớn tương tự xảy ra một lần nữa.
Xem bản gốc
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
21 thích
Phần thưởng
21
6
Chia sẻ
Bình luận
0/400
MeaninglessGwei
· 07-21 03:10
Dự án nhỏ không thử nghiệm mà đã ra mắt, chơi cái gì vậy?
Lỗ hổng hợp đồng của tài sản số dẫn đến 34 triệu USD bị khóa vĩnh viễn, làm nổi bật tầm quan trọng của việc kiểm toán an ninh.
Gần đây, một công ty an ninh đã phát hiện ra hai lỗ hổng nghiêm trọng trong một hợp đồng tài sản kỹ thuật số. Những lỗ hổng này có thể dẫn đến việc tài sản của người dùng bị khóa hoặc tiền của bên dự án không thể rút ra.
Lỗ hổng đầu tiên tồn tại trong chức năng xử lý hoàn tiền. Chức năng này sử dụng cách thức lặp để hoàn tiền cho tất cả người dùng, nhưng nếu một người dùng là hợp đồng độc hại, họ có thể từ chối nhận hoàn tiền và ngắt giao dịch, dẫn đến việc hoàn tiền cho tất cả người dùng bị thất bại. May mắn thay, lỗ hổng này đã không bị khai thác thực tế.
Để tránh các vấn đề tương tự, Bên dự án được khuyến nghị thực hiện các biện pháp an ninh sau:
Lỗ hổng thứ hai là do một lỗi logic trong mã. Trong chức năng rút tiền dự án, có một câu lệnh điều kiện nhưng đối tượng so sánh lại sai. Điều này dẫn đến việc điều kiện không bao giờ được thỏa mãn, Bên dự án không thể rút tài sản trong hợp đồng. Hiện tại, hơn 34 triệu USD tài sản đã bị khóa vĩnh viễn trong hợp đồng đó.
Những vấn đề này một lần nữa nhấn mạnh rằng ngay cả những dự án nổi tiếng cũng có thể xuất hiện những sai lầm cơ bản. Trong quá trình phát triển, việc kiểm tra đầy đủ và nhận thức cơ bản về an toàn là vô cùng quan trọng. Mặc dù trong lĩnh vực tài chính phi tập trung, kiểm toán an toàn đã trở thành một thực tiễn thông thường, nhưng trong các dự án tài sản kỹ thuật số, kiểm toán an toàn vẫn còn thiếu sót. Sự lơ là này đã dẫn đến việc mất mát một khoản tiền khổng lồ.
Sự kiện này nhắc nhở chúng ta rằng, bất kể quy mô của dự án như thế nào, chúng ta đều nên chú trọng đến an toàn mã nguồn, thực hiện kiểm tra và kiểm toán toàn diện, nhằm ngăn chặn những tổn thất lớn tương tự xảy ra một lần nữa.