Phân tích an toàn hợp đồng NFT: Các sự kiện điển hình và vấn đề thường gặp
Trong nửa đầu năm 2022, các sự cố an ninh trong lĩnh vực NFT xảy ra thường xuyên, gây ra tổn thất kinh tế nghiêm trọng. Theo dữ liệu từ các nền tảng giám sát, trong thời gian này đã xảy ra tổng cộng 10 sự cố an ninh chính, với tổng thiệt hại khoảng 64,9 triệu đô la Mỹ. Các phương thức tấn công chủ yếu bao gồm khai thác lỗ hổng hợp đồng, rò rỉ khóa riêng và lừa đảo. Đồng thời, máy chủ Discord cũng bị tấn công thường xuyên, dẫn đến việc người dùng cá nhân thường xuyên chịu thiệt hại do nhấp vào các liên kết lừa đảo.
Phân tích sự kiện an toàn điển hình
Sự kiện TreasureDAO
Vào ngày 3 tháng 3 năm 2022, nền tảng giao dịch TreasureDAO đã bị tấn công bởi hacker, dẫn đến việc hơn 100 NFT bị đánh cắp. Nguyên nhân của sự cố này là do lỗ hổng logic trong hợp đồng TreasureMarketplaceBuyer. Hợp đồng trong hàm buyItem không kiểm tra loại token, mà trực tiếp nhân _quantity với _pricePerItem để tính totalPrice, dẫn đến việc kẻ tấn công có thể mua token trong khi số tiền thanh toán bằng token ERC-20 là 0. Vấn đề này xuất phát từ sự nhầm lẫn logic do việc trộn lẫn token ERC-1155 và ERC-721, trong khi token ERC-721 vốn không có khái niệm số lượng, nhưng hợp đồng lại tính giá dựa trên số lượng, và trong quá trình chuyển nhượng không thực hiện tách biệt logic.
Sự kiện airdrop APE Coin
Vào ngày 17 tháng 3 năm 2022, hacker đã sử dụng flash loan để lấy hơn 60.000 APE Coin airdrop. Hợp đồng airdrop GrapesToken có lỗ hổng logic, chỉ sử dụng alpha.balanceOf() và beta.balanceOf() để xác định quyền sở hữu NFT BAYC/MAYC của người gọi. Cách này chỉ có thể lấy trạng thái quyền sở hữu NFT của người dùng tại một thời điểm, và trạng thái này có thể bị điều khiển bởi flash loan. Kẻ tấn công đã lợi dụng lỗ hổng này, mượn BAYC NFT thông qua flash loan và nhận airdrop tương ứng.
Sự kiện Revest Finance
Ngày 27 tháng 3 năm 2022, Revest Finance bị tấn công bởi hacker, thiệt hại khoảng 120.000 USD. Hợp đồng Revest có lỗ hổng reentrancy ERC-1155. Khi người dùng sử dụng depositAdditionalToFNFT() để thêm tài sản thế chấp FNFT, hợp đồng cần phải hủy FNFT gốc trước, sau đó mới đúc FNFT mới. Tuy nhiên, hàm min() không kiểm tra xem FNFT đang được đúc có tồn tại hay không, và việc tự động tăng fnftId được thực hiện sau khi _mint(). Việc gọi hàm ngoại _doSafeTransferAcceptanceCheck() trong _min() đã dẫn đến lỗ hổng reentrancy.
Sự kiện NBA lừa đảo
Ngày 21 tháng 4 năm 2022, dự án NBA đã bị tấn công bởi hacker. Hợp đồng The_Association_Sales gặp hai vấn đề lớn về việc sử dụng xác thực chữ ký trong danh sách trắng: việc tái sử dụng chữ ký do hợp đồng không lưu trữ chữ ký đã sử dụng, dẫn đến kẻ tấn công có thể sử dụng lại; việc mạo danh chữ ký thì do tham số info của vData memory không kiểm tra msg.sender khi truyền tham số.
Sự kiện Akutar
Vào ngày 23 tháng 4 năm 2022, hợp đồng AkuAuction của dự án Akutar đã bị khóa 11539ETH(, tương đương khoảng 34 triệu đô la Mỹ) do lỗ hổng trong hợp đồng thông minh. Hợp đồng này có hai lỗ hổng logic: một là hàm hoàn tiền processRefunds sử dụng hàm call để hoàn tiền và lấy kết quả làm điều kiện xác nhận, kẻ tấn công có thể gây ra việc hoàn tiền bị hủy trong fallback; hai là điều kiện kiểm tra trong hàm hoàn tiền không xem xét trường hợp người dùng có thể đặt thầu nhiều NFT, dẫn đến việc không thể thực hiện các thao tác hoàn tiền sau đó.
sự kiện XCarnival
Ngày 24 tháng 6 năm 2022, giao thức cho vay NFT XCarnival đã bị tấn công, hacker đã thu lợi 3087 Ethereum ( khoảng 3,8 triệu USD ). Hàm pledgeAndBorrow của hợp đồng XNFT không kiểm tra xem địa chỉ xToken có nằm trong danh sách trắng khi thế chấp NFT hay không, và không kiểm tra trạng thái hồ sơ thế chấp khi vay, cho phép kẻ tấn công có thể sử dụng nhiều lần hồ sơ thế chấp không hợp lệ để vay.
Các câu hỏi thường gặp về kiểm toán hợp đồng NFT
Giả mạo và tái sử dụng chữ ký:
Dữ liệu ký tên thiếu kiểm tra thực thi lặp lại, có thể sử dụng lại dữ liệu ký tên để đúc NFT
Kiểm tra chữ ký không hợp lý, bất kỳ người dùng nào cũng có thể thực hiện đúc tiền thông qua kiểm tra
Lỗ hổng logic:
Quản trị viên có thể đúc coin bằng cách đặc biệt mà không bị giới hạn tổng số lượng, dẫn đến lượng NFT thực tế vượt quá mong đợi.
Khi đấu giá NFT, người chiến thắng có thể thay đổi giá thầu thông qua tấn công phụ thuộc vào thứ tự giao dịch, mua NFT với giá thấp.
Tấn công tái nhập ERC721/ERC1155:
Khi sử dụng chức năng thông báo chuyển khoản, hợp đồng NFT gửi yêu cầu đến hợp đồng mục tiêu có thể dẫn đến tấn công tái nhập.
Phạm vi ủy quyền quá lớn:
Yêu cầu ủy quyền _operatorApprovals khi đặt cược hoặc đấu giá, có thể dẫn đến rủi ro bị đánh cắp NFT
Thao túng giá:
Giá NFT phụ thuộc vào số lượng token hợp đồng nắm giữ, kẻ tấn công có thể lợi dụng vay chớp nhoáng để đẩy giá lên cao, dẫn đến thanh lý NFT bị kẹt.
Vì sự cố an toàn hợp đồng NFT xảy ra thường xuyên, và những lỗ hổng phổ biến trong kiểm toán thường bị lợi dụng trong thực tế, việc tìm kiếm công ty an ninh chuyên nghiệp để thực hiện kiểm toán toàn diện cho hợp đồng NFT là rất cần thiết.
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.
11 thích
Phần thưởng
11
9
Chia sẻ
Bình luận
0/400
SerumDegen
· 07-26 15:03
một ngày nữa một vụ hack nữa... web3 cổ điển thật đáng thất vọng
Xem bản gốcTrả lời0
CompoundPersonality
· 07-26 10:33
Những lỗi hợp đồng này chỉ là hổ giấy thôi.
Xem bản gốcTrả lời0
BearMarketBuyer
· 07-26 08:12
người mới trắng tay năm mươi ngàn
Xem bản gốcTrả lời0
DefiOldTrickster
· 07-25 07:36
Chơi đùa với mọi người này đã mười năm, đã thấy biết bao nhiêu đồ ngốc bị chơi đùa với mọi người, có phải họ đáng chịu thiệt hại như vậy không?
Xem bản gốcTrả lời0
TokenSleuth
· 07-23 15:36
Hợp đồng có nhiều lỗ hổng như vậy, ai dám mua?
Xem bản gốcTrả lời0
pumpamentalist
· 07-23 15:36
Lại có cá bị câu được rồi.
Xem bản gốcTrả lời0
SelfCustodyBro
· 07-23 15:31
Bảo vệ làm kém như vậy sao còn dám lên chuỗi
Xem bản gốcTrả lời0
DogeBachelor
· 07-23 15:23
Thật sự không chơi nổi mà!
Xem bản gốcTrả lời0
FloorPriceWatcher
· 07-23 15:11
NFT thật sự là cú sốc, ai mua thì người đó xui xẻo.
Phân tích rủi ro an toàn hợp đồng NFT: Phân tích 6 sự kiện điển hình và giải thích 5 vấn đề thường gặp
Phân tích an toàn hợp đồng NFT: Các sự kiện điển hình và vấn đề thường gặp
Trong nửa đầu năm 2022, các sự cố an ninh trong lĩnh vực NFT xảy ra thường xuyên, gây ra tổn thất kinh tế nghiêm trọng. Theo dữ liệu từ các nền tảng giám sát, trong thời gian này đã xảy ra tổng cộng 10 sự cố an ninh chính, với tổng thiệt hại khoảng 64,9 triệu đô la Mỹ. Các phương thức tấn công chủ yếu bao gồm khai thác lỗ hổng hợp đồng, rò rỉ khóa riêng và lừa đảo. Đồng thời, máy chủ Discord cũng bị tấn công thường xuyên, dẫn đến việc người dùng cá nhân thường xuyên chịu thiệt hại do nhấp vào các liên kết lừa đảo.
Phân tích sự kiện an toàn điển hình
Sự kiện TreasureDAO
Vào ngày 3 tháng 3 năm 2022, nền tảng giao dịch TreasureDAO đã bị tấn công bởi hacker, dẫn đến việc hơn 100 NFT bị đánh cắp. Nguyên nhân của sự cố này là do lỗ hổng logic trong hợp đồng TreasureMarketplaceBuyer. Hợp đồng trong hàm buyItem không kiểm tra loại token, mà trực tiếp nhân _quantity với _pricePerItem để tính totalPrice, dẫn đến việc kẻ tấn công có thể mua token trong khi số tiền thanh toán bằng token ERC-20 là 0. Vấn đề này xuất phát từ sự nhầm lẫn logic do việc trộn lẫn token ERC-1155 và ERC-721, trong khi token ERC-721 vốn không có khái niệm số lượng, nhưng hợp đồng lại tính giá dựa trên số lượng, và trong quá trình chuyển nhượng không thực hiện tách biệt logic.
Sự kiện airdrop APE Coin
Vào ngày 17 tháng 3 năm 2022, hacker đã sử dụng flash loan để lấy hơn 60.000 APE Coin airdrop. Hợp đồng airdrop GrapesToken có lỗ hổng logic, chỉ sử dụng alpha.balanceOf() và beta.balanceOf() để xác định quyền sở hữu NFT BAYC/MAYC của người gọi. Cách này chỉ có thể lấy trạng thái quyền sở hữu NFT của người dùng tại một thời điểm, và trạng thái này có thể bị điều khiển bởi flash loan. Kẻ tấn công đã lợi dụng lỗ hổng này, mượn BAYC NFT thông qua flash loan và nhận airdrop tương ứng.
Sự kiện Revest Finance
Ngày 27 tháng 3 năm 2022, Revest Finance bị tấn công bởi hacker, thiệt hại khoảng 120.000 USD. Hợp đồng Revest có lỗ hổng reentrancy ERC-1155. Khi người dùng sử dụng depositAdditionalToFNFT() để thêm tài sản thế chấp FNFT, hợp đồng cần phải hủy FNFT gốc trước, sau đó mới đúc FNFT mới. Tuy nhiên, hàm min() không kiểm tra xem FNFT đang được đúc có tồn tại hay không, và việc tự động tăng fnftId được thực hiện sau khi _mint(). Việc gọi hàm ngoại _doSafeTransferAcceptanceCheck() trong _min() đã dẫn đến lỗ hổng reentrancy.
Sự kiện NBA lừa đảo
Ngày 21 tháng 4 năm 2022, dự án NBA đã bị tấn công bởi hacker. Hợp đồng The_Association_Sales gặp hai vấn đề lớn về việc sử dụng xác thực chữ ký trong danh sách trắng: việc tái sử dụng chữ ký do hợp đồng không lưu trữ chữ ký đã sử dụng, dẫn đến kẻ tấn công có thể sử dụng lại; việc mạo danh chữ ký thì do tham số info của vData memory không kiểm tra msg.sender khi truyền tham số.
Sự kiện Akutar
Vào ngày 23 tháng 4 năm 2022, hợp đồng AkuAuction của dự án Akutar đã bị khóa 11539ETH(, tương đương khoảng 34 triệu đô la Mỹ) do lỗ hổng trong hợp đồng thông minh. Hợp đồng này có hai lỗ hổng logic: một là hàm hoàn tiền processRefunds sử dụng hàm call để hoàn tiền và lấy kết quả làm điều kiện xác nhận, kẻ tấn công có thể gây ra việc hoàn tiền bị hủy trong fallback; hai là điều kiện kiểm tra trong hàm hoàn tiền không xem xét trường hợp người dùng có thể đặt thầu nhiều NFT, dẫn đến việc không thể thực hiện các thao tác hoàn tiền sau đó.
sự kiện XCarnival
Ngày 24 tháng 6 năm 2022, giao thức cho vay NFT XCarnival đã bị tấn công, hacker đã thu lợi 3087 Ethereum ( khoảng 3,8 triệu USD ). Hàm pledgeAndBorrow của hợp đồng XNFT không kiểm tra xem địa chỉ xToken có nằm trong danh sách trắng khi thế chấp NFT hay không, và không kiểm tra trạng thái hồ sơ thế chấp khi vay, cho phép kẻ tấn công có thể sử dụng nhiều lần hồ sơ thế chấp không hợp lệ để vay.
Các câu hỏi thường gặp về kiểm toán hợp đồng NFT
Giả mạo và tái sử dụng chữ ký:
Lỗ hổng logic:
Tấn công tái nhập ERC721/ERC1155:
Phạm vi ủy quyền quá lớn:
Thao túng giá:
Vì sự cố an toàn hợp đồng NFT xảy ra thường xuyên, và những lỗ hổng phổ biến trong kiểm toán thường bị lợi dụng trong thực tế, việc tìm kiếm công ty an ninh chuyên nghiệp để thực hiện kiểm toán toàn diện cho hợp đồng NFT là rất cần thiết.