Phân tích toàn diện về lỗ hổng bảo mật DeFi: Hướng dẫn phòng ngừa 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ẻ với các thành viên trong cộng đồng về các chủ đề liên quan đến an ninh DeFi. Chuyên gia này đã xem xét lại 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, đi sâu vào nguyên nhân của những sự kiện này và cách để tránh chúng, tổng hợp các lỗ hổng an ninh thường gặp trong 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 nhà 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 cho vay chớp nhoáng, thao túng giá, vấn đề quyền hạn hàm, gọi bên 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, v.v. Bài viết này sẽ tập trung vào ba loại là cho vay chớp nhoáng, thao túng giá và tấn công tái nhập.

Vay chớp nhoáng

Cho vay chớp nhoáng là một sáng tạo 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 có thể thông qua cho vay chớp nhoáng để vay ra một số lượng lớn tiền, thao túng giá hoặc tấn công logic hoạt động. Các nhà phát triển cần xem xét liệu chức năng hợp đồng có thể bị bất thường do số tiền khổng lồ gây ra, hoặc bị lợi dụng trong một giao dịch để tương tác với nhiều hàm nhằm thu lợi bất chính.

Nhiều dự án Tài chính phi tập trung có vẻ mang lại lợi nhuận cao, nhưng trình độ của các nhà phát triển thì không đồng đều. Ngay cả khi mã nguồn không có lỗ hổng, vẫn có thể có vấn đề về logic. 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 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. Cũng có một số dự án tính giá thông qua Token, cũng dễ bị ảnh hưởng giá bởi vay chớp nhoáng. Các nhà phát triển dự án nên giữ cảnh giác đối với những vấn đề này.

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 do một số tham số có thể được người dùng kiểm soát trong quá trình tính toán giá. Có hai trường hợp phổ biến:

  1. 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á cả bị thao túng một cách ác ý.

  2. Sử dụng số dư Token của một số địa chỉ làm biến số tính toán, trong khi số lượng Token của những địa chỉ này có thể được tăng hoặc 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, thực hiện những thay đổi không lường trước đối với dữ liệu. Ví dụ:

solidity mapping (address => uint) private userBalances;

function withdrawBalance() public { 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 người dùng số dư chỉ được đặt thành 0 vào cuối hàm, nên lần gọi thứ hai và các lần sau vẫn sẽ thành công và rút lại số dư nhiều lần.

Có nhiều hình thức tấn công Reentrancy, có thể liên quan đến các hàm khác nhau của cùng một hợp đồng hoặc các hàm của nhiều hợp đồng khác nhau. Khi giải quyết vấn đề Reentrancy, cần lưu ý:

  1. Không chỉ ngăn chặn vấn đề tái nhập của một hàm đơn.
  2. Tuân theo mô hình Checks-Effects-Interactions trong mã hóa
  3. Sử dụng modifier chống tái nhập đã được xác nhận

Tốt nhất là tránh việc tạo ra bánh xe lặp lại, nên sử dụng các thực tiễn an toàn tốt nhất đã được chứng minh trong ngành. Những "bánh xe" mới được chế tạo thường thiếu sự xác thực đầy đủ, vì vậy xác suất gặp sự cố thường cao hơn so với các giải pháp đã trải qua thử thách.

Đề xuất an toàn

Khuyến nghị an toàn cho dự án

  1. 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

  2. Thiết kế hợp đồng có thể nâng cấp, có thể tạm dừng: giúp phát hiện kịp thời và giảm thiểu tổn thất do tấn công.

  3. Sử dụng khóa thời gian: Cung cấp thời gian để phát hiện và ứng phó với các vấn đề tiềm ẩn

  4. Tăng cường đầu tư vào an ninh, xây dựng hệ thống an ninh hoàn chỉnh: An ninh là công việc hệ thống, không chỉ giới hạn trong việc kiểm toán hợp đồng.

  5. Nâng cao nhận thức về an ninh của tất cả nhân viên: Nhiều cuộc tấn công lợi dụng điểm yếu của con người, việc nâng cao cảnh giác có thể tránh được nhiều vấn đề.

  6. Ngăn chặn hành vi xấu nội bộ, đồng thời nâng cao hiệu quả và tăng cường quản lý rủi ro: như áp dụng các cơ chế đa chữ ký, khóa thời gian, v.v.

  7. Thận trọng khi đưa vào bên thứ ba: Cần thực hiện kiểm tra an toàn đối với cả thượng nguồn và hạ nguồn, đặc biệt là hợp đồng không mã nguồn mở.

Phương pháp để người dùng/LP đánh giá an toàn hợp đồng thông minh

  1. Kiểm tra xem hợp đồng có mã nguồn mở hay không: Không tham gia vào các dự án không mã nguồn mở.

  2. Xác nhận Owner có sử dụng đa chữ ký phi tập trung hay không

  3. Xem tình hình giao dịch của hợp đồng hiện có: Thời gian triển khai, số lần tương tác, v.v.

  4. Kiểm tra xem hợp đồng có phải là hợp đồng đại lý, có thể nâng cấp hay có thời gian khóa hay không.

  5. Xác nhận xem hợp đồng có được nhiều tổ chức kiểm toán hay không, quyền Owner có quá lớn hay không.

  6. Chú ý đến độ tin cậy của oracle: Oracle hàng đầu khá an toàn, oracle tự xây dựng hoặc có rào cản thấp cần thận trọng

Tóm lại, trong lĩnh vực Tài chính phi tập trung, các bên tham gia nên luôn cảnh giác, các dự án phải xem xét toàn diện các vấn đề an ninh, còn người dùng thì cần thận trọng đánh giá tính an toàn của dự án trước khi đưa ra quyết định.

Cobo Tài chính phi tập trung an toàn (phần 2): Các lỗ hổng an toàn thường gặp trong Tài chính phi tập trung và cách phòng ngừa

DEFI-1.62%
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.
  • Phần thưởng
  • 5
  • Chia sẻ
Bình luận
0/400
HackerWhoCaresvip
· 14giờ trước
Vốn là vay mượn, an toàn không thể vay mượn.
Xem bản gốcTrả lời0
SurvivorshipBiasvip
· 21giờ trước
Lại một lần nữa là câu chuyện nước mắt của đồ ngốc bị chơi đùa với mọi người.
Xem bản gốcTrả lời0
MetaMaskVictimvip
· 21giờ trước
Lại có người chơi đùa với mọi người... Ai thua thì nói cho tôi biết.
Xem bản gốcTrả lời0
blocksnarkvip
· 21giờ trước
Hacker lại sắp kiếm tiền rồi
Xem bản gốcTrả lời0
StakeWhisperervip
· 21giờ trước
Hiểu rồi lại không hiểu
Xem bản gốcTrả lời0
Giao dịch tiền điện tử mọi lúc mọi nơi
qrCode
Quét để tải xuống ứng dụng Gate
Cộng đồng
Tiếng Việt
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)