Các lỗ hổng bảo mật phổ biến trong Tài chính phi tập trung và biện pháp phòng ngừa
Gần đây, một chuyên gia an ninh đã chia sẻ một khóa học về an ninh DeFi, khám phá các sự kiện an ninh nghiêm trọng gần đây mà ngành Web3 đã gặp phải, phân tích nguyên nhân của những sự kiện này cũng như cách để tránh chúng, và tổng hợp các lỗ hổng an ninh phổ biến trong hợp đồng thông minh và các biện pháp phòng ngừa. Bài viết này sẽ tập trung vào ba loại lỗ hổng phổ biến: vay chớp nhoáng, thao túng giá và tấn công tái nhập.
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 thường bị hacker lợi dụng để tấn công:
Kẻ tấn công đã mượn một lượng lớn tiền thông qua vay nhanh, thao túng giá hoặc tấn công vào logic kinh doanh
Các nhà phát triển cần xem xét liệu chức năng hợp đồng có bị bất thường do số tiền lớn hay không, hoặc bị sử dụng để nhận quá nhiều phần thưởng trong một giao dịch.
Câu hỏi thường gặp: Tính phần thưởng bằng số lượng Token, hoặc tham gia tính toán bằng số lượng Token trong cặp giao dịch DEX.
Trong hai năm qua, đã xuất hiện rất nhiều vấn đề. Một số dự án Tài chính phi tập trung dường như có lợi suất cao, nhưng thực tế trình độ phát triển không đồng đều. Ví dụ, có dự án phát thưởng theo thời gian cố định dựa trên số lượng nắm giữ, bị kẻ tấn công lợi dụng vay chớp nhoáng để mua một lượng lớn token và nhận phần lớn phần thưởng.
Kiểm soát giá
Giá cả thao túng có mối liên hệ chặt chẽ với cho vay chớp nhoáng, chủ yếu có hai vấn đề:
Sử dụng dữ liệu bên thứ ba khi tính giá, nhưng sử dụng không đúng cách hoặc thiếu kiểm tra.
Sử dụng số dư Token của một số địa chỉ làm biến số tính toán, và những số dư này có thể được tạm thời tăng giảm.
Tấn công tái nhập
Rủi ro chính khi gọi hợp đồng bên ngoài là có thể chiếm quyền kiểm soát luồng, thực hiện các thay đổi không mong muốn đối với dữ liệu.
Một ví dụ điển hình về tấn công tái nhập:
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ềnRút)("");
require(success);
userBalances[msg.sender] = 0;
}
Do vì số dư của người dùng chỉ được đặt lại về 0 vào cuối hàm, có thể gọi lại nhiều lần để rút tiền.
Giải quyết vấn đề tái nhập cần chú ý:
Không chỉ ngăn chặn tấn công tái nhập hàm đơn
Tuân theo mô hình Kiểm tra-Hiệu ứng-Interactions
Sử dụng modifier chống tái nhập đã được xác minh
Nên sử dụng các thực hành an toàn đã trưởng thành, tránh việc tạo ra bánh xe lặp lại.
Đề xuất an toàn cho dự án
Tuân thủ các thực hành an toàn tốt nhất khi 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 khóa thời gian
Xây dựng hệ thống an toàn hoàn chỉnh
Nâng cao nhận thức an toàn cho tất cả mọi người
Ngăn chặn hành vi xấu bên trong, nâng cao hiệu suất đồng thời tăng cường kiểm soát rủi ro
Cẩn thận khi đưa vào bên thứ ba, mặc định là không an toàn và thực hiện xác minh.
Người dùng làm thế nào để đánh giá độ an toàn của hợp đồng thông minh
Hợp đồng có mã nguồn mở không
Chủ sở hữu có áp dụng đa chữ ký phi tập trung không
Xem tình hình giao dịch của hợp đồng hiện có
Hợp đồng có thể nâng cấp không, có thời gian khóa không
Có chấp nhận kiểm toán của nhiều tổ chức không, quyền hạn của Owner có quá lớn không
Chú ý đến độ tin cậy của oracle
Tóm lại, an ninh trong lĩnh vực Tài chính phi tập trung là vô cùng quan trọng. Các dự án cần xây dựng hệ thống an ninh một cách toàn diện, người dùng cũng cần nâng cao cảnh giác và tham gia một cách thận trọng.
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.
17 thích
Phần thưởng
17
8
Chia sẻ
Bình luận
0/400
DeFiVeteran
· 22giờ trước
Ví tiền lại không còn nữa, không có gì lạ.
Xem bản gốcTrả lời0
DisillusiionOracle
· 07-23 19:20
Được rồi, defi tiếp tục ồn ào, người ta Hacker ngày nào cũng vắt lông bò.
Xem bản gốcTrả lời0
GateUser-bd883c58
· 07-21 12:00
Vẫn phải để lại một cánh cửa sau chứ!
Xem bản gốcTrả lời0
LayoffMiner
· 07-21 02:24
Ha, vẫn phải như cũ, rửa tiền bằng nhiều cách.
Xem bản gốcTrả lời0
LiquidationWatcher
· 07-21 02:19
Lỗ hổng nhiều như vậy, Tài chính phi tập trung còn chơi được gì?
Tài chính phi tập trung ba nguy cơ an toàn: Khoản vay nhanh, thao túng giá và tấn công tái nhập.
Các lỗ hổng bảo mật phổ biến trong Tài chính phi tập trung và biện pháp phòng ngừa
Gần đây, một chuyên gia an ninh đã chia sẻ một khóa học về an ninh DeFi, khám phá các sự kiện an ninh nghiêm trọng gần đây mà ngành Web3 đã gặp phải, phân tích nguyên nhân của những sự kiện này cũng như cách để tránh chúng, và tổng hợp các lỗ hổng an ninh phổ biến trong hợp đồng thông minh và các biện pháp phòng ngừa. Bài viết này sẽ tập trung vào ba loại lỗ hổng phổ biến: vay chớp nhoáng, thao túng giá và tấn công tái nhập.
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 thường bị hacker lợi dụng để tấn công:
Trong hai năm qua, đã xuất hiện rất nhiều vấn đề. Một số dự án Tài chính phi tập trung dường như có lợi suất cao, nhưng thực tế trình độ phát triển không đồng đều. Ví dụ, có dự án phát thưởng theo thời gian cố định dựa trên số lượng nắm giữ, bị kẻ tấn công lợi dụng vay chớp nhoáng để mua một lượng lớn token và nhận phần lớn phần thưởng.
Kiểm soát giá
Giá cả thao túng có mối liên hệ chặt chẽ với cho vay chớp nhoáng, chủ yếu có hai vấn đề:
Tấn công tái nhập
Rủi ro chính khi gọi hợp đồng bên ngoài là có thể chiếm quyền kiểm soát luồng, thực hiện các thay đổi không mong muốn đối với dữ liệu.
Một ví dụ điển hình về tấn công tái nhập: 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ềnRút)(""); require(success); userBalances[msg.sender] = 0; }
Do vì số dư của người dùng chỉ được đặt lại về 0 vào cuối hàm, có thể gọi lại nhiều lần để rút tiền.
Giải quyết vấn đề tái nhập cần chú ý:
Nên sử dụng các thực hành an toàn đã trưởng thành, tránh việc tạo ra bánh xe lặp lại.
Đề xuất an toàn cho dự án
Người dùng làm thế nào để đánh giá độ an toàn của hợp đồng thông minh
Tóm lại, an ninh trong lĩnh vực Tài chính phi tập trung là vô cùng quan trọng. Các dự án cần xây dựng hệ thống an ninh một cách toàn diện, người dùng cũng cần nâng cao cảnh giác và tham gia một cách thận trọng.