Tài chính phi tập trung các lỗ hổng bảo mật phổ biến và biện pháp phòng ngừa
Gần đây, một chuyên gia an ninh đã thảo luận về những sự kiện an ninh nghiêm trọng mà ngành Web3 đã gặp phải trong hơn một năm qua tại một hội thảo trực tuyến, phân tích nguyên nhân của những sự kiện này và cách phòng tránh, đồng thời tổng hợp các lỗ hổng an ninh phổ biến của hợp đồng thông minh và các biện pháp phòng ngừa, đồng thời đưa ra một số lời khuyên an ninh cho các bên dự án và người dùng bình thường.
Các loại lỗ hổng DeFi thường gặp chủ yếu bao gồm cho vay chớp nhoáng, thao túng giá, vấn đề quyền hạn của hàm, gọi ngoài tuỳ ý, vấn đề hàm fallback, lỗ hổng logic kinh doanh, rò rỉ khóa riêng và tấn công tái nhập, v.v. Trong đó, cho vay chớp nhoáng, thao túng giá và tấn công tái nhập là ba loại điển hình.
Vay chớp nhoáng
Vay chớp nhoáng bản thân là một sự đổi mới trong Tài chính phi tập trung, nhưng cũng thường bị tin tặc lợi dụng. Kẻ tấn công mượn một lượng lớn tiền thông qua vay chớp nhoáng, thao túng giá cả hoặc tấn công logic kinh doanh. Các nhà phát triển cần xem xét xem các chức năng của hợp đồng có bị biến đổi do số tiền khổng lồ hay không, hoặc bị sử dụng để tương tác với nhiều hàm trong một giao dịch nhằm thu lợi bất chính.
Trong hai năm qua, nhiều dự án Tài chính phi tập trung đã bị tấn công do vấn đề vay mượn chớp nhoáng. Một số dự án phát thưởng theo lượng nắm giữ trong khoảng thời gian cố định, nhưng đã bị kẻ tấn công lợi dụng vay mượn chớp nhoáng để mua một lượng lớn token, thu được phần lớn lợi ích khi phát thưởng. Cũng có một số dự án tính toán giá dựa trên token, cũng dễ bị ảnh hưởng bởi vay mượn chớp nhoáng.
Kiểm soát giá
Vấn đề thao túng giá cả có liên quan chặt chẽ đến vay chớp nhoáng, chủ yếu có hai loại:
Sử dụng dữ liệu bên thứ ba khi tính giá, nhưng cách sử dụng không đúng hoặc thiếu kiểm tra, dẫn đến giá bị thao túng một cách ác ý.
Sử dụng số lượng token của một số địa chỉ làm biến số tính toán, trong khi số dư token của những địa chỉ này có thể được tăng giảm tạm thời.
Tấn công tái nhập
Một trong những rủi ro chính khi gọi hợp đồng bên ngoài là chúng có thể chiếm quyền kiểm soát luồng điều khiển và thực hiện những thay đổi không lường trước được đối với dữ liệu. Ví dụ điển hình về tấn công tái nhập như sau:
function withdrawBalance() công khai {
uint amountToWithdraw = userBalances[msg.sender];
(bool success, ) = msg.sender.call.value(amountToWithdraw)("");
require(success);
userBalances[msg.sender] = 0;
}
Do bởi vì số dư của người dùng chỉ được đặt thành 0 vào cuối hàm, việc gọi lại vẫn có thể rút được số dư.
Giải quyết vấn đề tái nhập cần lưu ý:
Không chỉ ngăn chặn việc gọi lại của một hàm đơn.
Tuân theo mô hình Checks-Effects-Interactions
Sử dụng modifier chống tái nhập đã được xác minh
Đề xuất an toàn cho dự án
Tuân thủ các thực hành bảo mật tốt nhất trong phát triển hợp đồng
Thực hiện chức năng nâng cấp và tạm dừng hợp đồng
Áp dụng cơ chế khóa thời gian
Tăng cường đầu tư an toàn, xây dựng hệ thống an toàn hoàn thiện
Nâng cao nhận thức về an ninh của tất cả nhân viên
Ngăn chặn hành vi xấu bên trong, đồng thời nâng cao hiệu quả và tăng cường quản lý rủi ro.
Cẩn thận khi đưa vào bên thứ ba, mặc định là cả hai bên trên và dưới đều không an toàn.
Phương pháp người dùng đánh giá tính an toàn của hợp đồng thông minh
Xác nhận hợp đồng có mã nguồn mở không
Kiểm tra xem Chủ sở hữu có sử dụng đa ký phi tập trung hay không
Kiểm tra tình hình giao dịch hiện có của hợp đồng
Xác nhận hợp đồng có thể nâng cấp không, có khóa thời gian không
Kiểm tra xem có được nhiều tổ chức kiểm toán hay không, quyền hạn của chủ sở hữu có quá lớn hay không.
Lưu ý tình trạng sử dụng của oracle
Tóm lại, an ninh DeFi là một vấn đề hệ thống, cần sự chú ý chung của cả bên dự án và người dùng, thực hiện các biện pháp an ninh toàn diện, mới có thể giảm thiểu rủi ro một cách hiệu quả.
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.
20 thích
Phần thưởng
20
5
Đăng lại
Chia sẻ
Bình luận
0/400
ForkThisDAO
· 07-12 07:12
Kiểm toán mã rất quan trọng.
Xem bản gốcTrả lời0
NewPumpamentals
· 07-12 05:08
Vui lòng xây dựng quy trình kiểm toán hợp đồng một cách nghiêm ngặt.
Phân tích đầy đủ về các lỗ hổng bảo mật phổ biến trong Tài chính phi tập trung và các biện pháp phòng ngừa
Tài chính phi tập trung các lỗ hổng bảo mật phổ biến và biện pháp phòng ngừa
Gần đây, một chuyên gia an ninh đã thảo luận về những sự kiện an ninh nghiêm trọng mà ngành Web3 đã gặp phải trong hơn một năm qua tại một hội thảo trực tuyến, phân tích nguyên nhân của những sự kiện này và cách phòng tránh, đồng thời tổng hợp các lỗ hổng an ninh phổ biến của hợp đồng thông minh và các biện pháp phòng ngừa, đồng thời đưa ra một số lời khuyên an ninh cho các bên dự án và người dùng bình thường.
Các loại lỗ hổng DeFi thường gặp chủ yếu bao gồm cho vay chớp nhoáng, thao túng giá, vấn đề quyền hạn của hàm, gọi ngoài tuỳ ý, vấn đề hàm fallback, lỗ hổng logic kinh doanh, rò rỉ khóa riêng và tấn công tái nhập, v.v. Trong đó, cho vay chớp nhoáng, thao túng giá và tấn công tái nhập là ba loại điển hình.
Vay chớp nhoáng
Vay chớp nhoáng bản thân là một sự đổi mới trong Tài chính phi tập trung, nhưng cũng thường bị tin tặc lợi dụng. Kẻ tấn công mượn một lượng lớn tiền thông qua vay chớp nhoáng, thao túng giá cả hoặc tấn công logic kinh doanh. Các nhà phát triển cần xem xét xem các chức năng của hợp đồng có bị biến đổi do số tiền khổng lồ hay không, hoặc bị sử dụng để tương tác với nhiều hàm trong một giao dịch nhằm thu lợi bất chính.
Trong hai năm qua, nhiều dự án Tài chính phi tập trung đã bị tấn công do vấn đề vay mượn chớp nhoáng. Một số dự án phát thưởng theo lượng nắm giữ trong khoảng thời gian cố định, nhưng đã bị kẻ tấn công lợi dụng vay mượn chớp nhoáng để mua một lượng lớn token, thu được phần lớn lợi ích khi phát thưởng. Cũng có một số dự án tính toán giá dựa trên token, cũng dễ bị ảnh hưởng bởi vay mượn chớp nhoáng.
Kiểm soát giá
Vấn đề thao túng giá cả có liên quan chặt chẽ đến vay chớp nhoáng, chủ yếu có hai loại:
Sử dụng dữ liệu bên thứ ba khi tính giá, nhưng cách sử dụng không đúng hoặc thiếu kiểm tra, dẫn đến giá bị thao túng một cách ác ý.
Sử dụng số lượng token của một số địa chỉ làm biến số tính toán, trong khi số dư token của những địa chỉ này có thể được tăng giảm tạm thời.
Tấn công tái nhập
Một trong những rủi ro chính khi gọi hợp đồng bên ngoài là chúng có thể chiếm quyền kiểm soát luồng điều khiển và thực hiện những thay đổi không lường trước được đối với dữ liệu. Ví dụ điển hình về tấn công tái nhập như sau:
solidity mapping (address => uint) private userBalances;
function withdrawBalance() công khai { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); require(success); userBalances[msg.sender] = 0; }
Do bởi vì số dư của người dùng chỉ được đặt thành 0 vào cuối hàm, việc gọi lại vẫn có thể rút được số dư.
Giải quyết vấn đề tái nhập cần lưu ý:
Đề xuất an toàn cho dự án
Phương pháp người dùng đánh giá tính an toàn của hợp đồng thông minh
Tóm lại, an ninh DeFi là một vấn đề hệ thống, cần sự chú ý chung của cả bên dự án và người dùng, thực hiện các biện pháp an ninh toàn diện, mới có thể giảm thiểu rủi ro một cách hiệu quả.