Gần đây, một chuyên gia trong ngành đã chia sẻ những hiểu biết về an ninh DeFi. Ông đã xem xét các sự kiện an ninh lớn mà ngành Web3 đã gặp phải trong hơn một năm qua, thảo luận về nguyên nhân của những sự kiện này cũng như cách tránh chúng, tóm tắt các lỗ hổng bảo mật thông thường 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 về an ninh cho các bên dự án và người dùng thông thường.
Các loại lỗ hổng DeFi phổ biến chủ yếu bao gồm vay chớp nhoáng, thao túng giá, vấn đề quyền hạn hàm, gọi ngoài tùy ý, 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. Dưới đây sẽ tập trung giới thiệu ba loại vay chớp nhoáng, thao túng giá và tấn công tái nhập.
Cho vay chớp nhoáng
Mặc dù vay chớp nhoáng là một sáng tạo trong Tài chính phi tập trung, nhưng nó cũng thường bị hacker lợi dụng. Kẻ tấn công thông qua vay chớp nhoáng mượn ra một lượng lớn tiền, 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 chức năng của hợp đồng có bị bất thường do số tiền khổng lồ hay không, hoặc có thể thông qua số tiền lớn tương tác với nhiều hàm trong một giao dịch để nhận phần thưởng không chính đáng.
Nhiều dự án Tài chính phi tập trung (DeFi) có vẻ như mang lại lợi nhuận cao, nhưng thực tế thì trình độ của các dự án này rất khác nhau. Một số dự án có thể sử dụng mã đã mua, ngay cả khi mã không có lỗ hổng, nhưng về mặt logic vẫn có thể tồn tại vấn đề. Ví dụ, một số dự án sẽ phát thưởng theo khối lượng nắm giữ vào thời điểm cố định, nhưng lại bị kẻ tấn công lợi dụng vay chớp nhoáng để mua một lượng lớn token, từ đó thu được phần lớn lợi nhuận khi phát thưởng.
Kiểm soát giá
Vấn đề thao túng giá cả liên quan chặt chẽ đến vay chớp nhoáng, chủ yếu do một số tham số có thể được người dùng kiểm soát khi tính toán giá cả. Có hai loại vấn đề phổ biến:
Sử dụng dữ liệu của 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, và 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 các thay đổi không mong đợi đối với dữ liệu. Ví dụ:
function withdrawBalance() công khai {
uint amountToWithdraw = userBalances[msg.sender];
(bool thành công, ) = msg.sender.call.value(sốTiềnĐểRút)("");
require(success);
userBalances[msg.sender] = 0;
}
Vì số dư của người dùng chỉ được đặt thành 0 vào cuối hàm, các lần gọi thứ hai và các lần gọi sau vẫn sẽ thành công, có thể rút số dư nhiều lần.
Giải quyết vấn đề tái nhập cần chú ý những điểm sau:
Không chỉ ngăn chặn vấn đề tái nhập của một hàm đơn.
Tuân thủ mô hình Checks-Effects-Interactions trong lập trình
Sử dụng modifier chống tái nhập đã được xác minh
Tốt nhất là sử dụng các thực hành an toàn đã trưởng thành, thay vì lặp lại việc tạo ra bánh xe. Các giải pháp tự phát triển thường thiếu sự xác minh đầy đủ, có xác suất gặp sự cố cao hơn.
Đề xuất an toàn
Đề xuất an toàn của bên dự án
Phát triển hợp đồng theo các thực tiễn an toàn tốt nhất
Hợp đồng có thể nâng cấp, có thể tạm dừng
Áp dụng khóa thời gian
Tăng cường đầu tư an toàn, thiết lập hệ thống an toàn hoàn thiện
Nâng cao nhận thức về an toàn 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 kiểm soát rủi ro
Cẩn thận đưa vào bên thứ ba, tiến hành kiểm tra an toàn đối với các bên liên quan.
Người dùng làm thế nào để xác định hợp đồng thông minh có an toàn hay không
Hợp đồng có mã nguồn mở không
Chủ sở hữu có sử dụng nhiều chữ 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
Hợp đồng có phải là hợp đồng đại lý không, có thể nâng cấp không, có thời gian khóa không
Hợp đồng có được nhiều tổ chức kiểm toán không, quyền Owner có quá lớn không
Chú ý đến tính an toàn của oracle
Tóm lại, trong lĩnh vực Tài chính phi tập trung, vấn đề an toàn không thể bị xem nhẹ. Các dự án và người dùng đều nên nâng cao cảnh giác, thực hiện các biện pháp an toàn cần thiết, cùng nhau duy trì sự phát triển lành mạnh của hệ sinh thái Tài chính phi tập trung.
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.
13 thích
Phần thưởng
13
6
Chia sẻ
Bình luận
0/400
BearMarketBuilder
· 5giờ trước
Lỗi này sửa xong thì lại có lỗi khác. Bao giờ mới hết đây?
Xem bản gốcTrả lời0
BackrowObserver
· 5giờ trước
Không biết phát triển thì có ích gì, lại bị hack.
Xem bản gốcTrả lời0
NFT_Therapy
· 6giờ trước
Hợp đồng viết không chắc chắn, Hacker không thể chạy trốn.
Xem bản gốcTrả lời0
PhantomMiner
· 6giờ trước
Lỗi này nhiều quá, đồ ngốc làm sao có thể qua được Hacker.
Xem bản gốcTrả lời0
consensus_whisperer
· 6giờ trước
Lại phải nói về Tài chính phi tập trung an toàn rồi.
Xem bản gốcTrả lời0
WalletManager
· 6giờ trước
Xem xong kiểm tra mã, ngay cả việc sao lưu ví lạnh cũng cảm thấy không đủ an toàn, lỗ hổng tái nhập này sâu quá!
Tài chính phi tập trung an toàn công phòng: Phân tích đầy đủ các lỗ hổng phổ biến và chiến lược phòng ngừa
Tài chính phi tập trung 常见安全漏洞及预防措施
Gần đây, một chuyên gia trong ngành đã chia sẻ những hiểu biết về an ninh DeFi. Ông đã xem xét các sự kiện an ninh lớn mà ngành Web3 đã gặp phải trong hơn một năm qua, thảo luận về nguyên nhân của những sự kiện này cũng như cách tránh chúng, tóm tắt các lỗ hổng bảo mật thông thường 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 về an ninh cho các bên dự án và người dùng thông thường.
Các loại lỗ hổng DeFi phổ biến chủ yếu bao gồm vay chớp nhoáng, thao túng giá, vấn đề quyền hạn hàm, gọi ngoài tùy ý, 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. Dưới đây sẽ tập trung giới thiệu ba loại vay chớp nhoáng, thao túng giá và tấn công tái nhập.
Cho vay chớp nhoáng
Mặc dù vay chớp nhoáng là một sáng tạo trong Tài chính phi tập trung, nhưng nó cũng thường bị hacker lợi dụng. Kẻ tấn công thông qua vay chớp nhoáng mượn ra một lượng lớn tiền, 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 chức năng của hợp đồng có bị bất thường do số tiền khổng lồ hay không, hoặc có thể thông qua số tiền lớn tương tác với nhiều hàm trong một giao dịch để nhận phần thưởng không chính đáng.
Nhiều dự án Tài chính phi tập trung (DeFi) có vẻ như mang lại lợi nhuận cao, nhưng thực tế thì trình độ của các dự án này rất khác nhau. Một số dự án có thể sử dụng mã đã mua, ngay cả khi mã không có lỗ hổng, nhưng về mặt logic vẫn có thể tồn tại vấn đề. Ví dụ, một số dự án sẽ phát thưởng theo khối lượng nắm giữ vào thời điểm cố định, nhưng lại bị kẻ tấn công lợi dụng vay chớp nhoáng để mua một lượng lớn token, từ đó thu được phần lớn lợi nhuận khi phát thưởng.
Kiểm soát giá
Vấn đề thao túng giá cả liên quan chặt chẽ đến vay chớp nhoáng, chủ yếu do một số tham số có thể được người dùng kiểm soát khi tính toán giá cả. Có hai loại vấn đề phổ biến:
Sử dụng dữ liệu của 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, và 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 các thay đổi không mong đợi đối với dữ liệu. Ví dụ:
solidity mapping (address => uint) private userBalances;
function withdrawBalance() công khai { uint amountToWithdraw = userBalances[msg.sender]; (bool thành công, ) = msg.sender.call.value(sốTiềnĐểRút)(""); require(success); userBalances[msg.sender] = 0; }
Vì số dư của người dùng chỉ được đặt thành 0 vào cuối hàm, các lần gọi thứ hai và các lần gọi sau vẫn sẽ thành công, có thể rút số dư nhiều lần.
Giải quyết vấn đề tái nhập cần chú ý những điểm sau:
Tốt nhất là sử dụng các thực hành an toàn đã trưởng thành, thay vì lặp lại việc tạo ra bánh xe. Các giải pháp tự phát triển thường thiếu sự xác minh đầy đủ, có xác suất gặp sự cố cao hơn.
Đề xuất an toàn
Đề xuất an toàn của bên dự án
Người dùng làm thế nào để xác định hợp đồng thông minh có an toàn hay không
Tóm lại, trong lĩnh vực Tài chính phi tập trung, vấn đề an toàn không thể bị xem nhẹ. Các dự án và người dùng đều nên nâng cao cảnh giác, thực hiện các biện pháp an toàn cần thiết, cùng nhau duy trì sự phát triển lành mạnh của hệ sinh thái Tài chính phi tập trung.