Cuộc chiến phòng thủ và tấn công đa chuỗi: Cứu hộ của hacker mũ trắng và những bài học an ninh trong hệ sinh thái Web3

robot
Đang tạo bản tóm tắt

Phân tích tấn công và phòng thủ lỗ hổng dự án Multichain: Nhìn từ cứu hộ khẩn cấp về an toàn sinh thái Web3

Vào ngày 18 tháng 1 năm 2022, hệ thống giám sát giao dịch bất thường của chúng tôi đã phát hiện một cuộc tấn công nhằm vào dự án Multichain. Do các hàm liên quan không thực hiện cơ chế xác minh đúng cách, người dùng đã ủy quyền token cho dự án này có thể bị kẻ tấn công rút ra.

Mặc dù đội ngũ dự án đã cố gắng nhắc nhở người dùng bị ảnh hưởng bằng nhiều cách, vẫn có nhiều người dùng không phản hồi kịp thời, cho phép kẻ tấn công tiếp tục thực hiện tấn công và thu lợi.

Do cuộc tấn công vẫn đang diễn ra, để bảo vệ các nạn nhân tiềm năng, chúng tôi quyết định thực hiện các biện pháp ứng phó khẩn cấp. Cuộc cứu trợ này nhắm vào các tài khoản bị ảnh hưởng trên Ethereum, chúng tôi sẽ chuyển tiền của các tài khoản liên quan vào một tài khoản đa chữ ký được thiết lập đặc biệt cho các nhà bảo mật. Để đảm bảo tính minh bạch của hành động, chúng tôi sẽ công khai giá trị băm tài liệu của kế hoạch liên quan ( thay vì nội dung ) cho cộng đồng. Hành động cứu trợ của chúng tôi bắt đầu từ ngày 21 tháng 1 năm 2022 và kết thúc vào ngày 11 tháng 3 năm 2022.

Cứu hộ khẩn cấp đang phải đối mặt với nhiều thách thức về công nghệ và phi công nghệ. Bây giờ hành động đã kết thúc, chúng tôi có thể xem lại toàn bộ quá trình và chia sẻ những kinh nghiệm liên quan với cộng đồng. Chúng tôi hy vọng rằng những chia sẻ như vậy sẽ giúp ích cho cộng đồng và an toàn của hệ sinh thái DeFi.

Tóm tắt ngắn gọn

  • Sự sử dụng rộng rãi của Flashbots đã gây ra sự cạnh tranh gay gắt giữa các bên tham gia khác nhau, bao gồm cả hai nhóm mũ trắng và kẻ tấn công cũng như trong nội bộ từng nhóm, phí trả cho Flashbots cũng đã tăng nhanh theo thời gian.

  • Flashbots không phải lúc nào cũng hiệu quả. Một số kẻ tấn công đã chuyển sang sử dụng mempool, sắp xếp các giao dịch tấn công bằng chiến lược khéo léo, thực hiện thành công các cuộc tấn công.

  • Một số kẻ tấn công đã đạt được thỏa thuận với bên dự án, trả lại một phần số tiền thu được từ cuộc tấn công, giữ lại một phần như phần thưởng, từ đó đã thành công trong việc "rửa sạch". Hiện tượng này đã gây ra tranh cãi và thảo luận trong cộng đồng về tính công bằng của sự khuyến khích.

  • Để xem xét tính minh bạch, các hacker mũ trắng có thể công bố hành vi của mình với cộng đồng mà không tiết lộ thông tin nhạy cảm, cách này để chiếm được lòng tin của cộng đồng đã thể hiện tốt trong thực tiễn.

  • Các lực lượng trong cộng đồng có thể hợp tác với nhau để làm cho các hành động cứu trợ trở nên nhanh chóng và hiệu quả hơn. Ví dụ, có thể thực hiện sự hợp tác giữa các hacker mũ trắng, giảm thiểu hoặc tránh cạnh tranh không hiệu quả.

Tổng quan về tình hình tấn công và cứu hộ

Kết quả tổng thể

Trong phạm vi quan sát của chúng tôi (2022 năm 1 tháng 18 đến 20 tháng 3 năm 2022 ), tình hình tổng thể về tấn công và cứu hộ như sau:

  • 9 tài khoản cứu hộ đã bảo vệ 483.027693 ETH, trong đó phí trả cho Flashbots là 295.970554 ETH( chiếm tỷ lệ 61.27%)
  • 21 tài khoản tấn công đã thu lợi 1433.092224 ETH, trong đó phí thanh toán cho Flashbots là 148.903707 ETH( chiếm 10.39%)

Cần lưu ý rằng, do có một số tình huống tương tác phức tạp ( như một số kẻ tấn công thỏa thuận với bên dự án để trả lại một phần lợi nhuận, nhãn địa chỉ liên quan có thể thay đổi ), dữ liệu trên chỉ là thống kê tổng quát.

Xu hướng biến động của phí Flashbots

Các hacker mũ trắng cần cạnh tranh với kẻ tấn công để gửi giao dịch Flashbots nhằm thực hiện cứu trợ, và xu hướng chi phí trả cho Flashbots có thể phản ánh mức độ cạnh tranh. Chúng tôi đã thống kê tỷ lệ chi phí Flashbots cho các giao dịch tấn công và cứu trợ theo từng khối giao dịch.

Phân tích cho thấy, phí Flashbots cho các giao dịch tấn công sớm là 0, cho thấy khi đó kẻ tấn công chưa sử dụng Flashbots. Sau đó, tỷ lệ phí Flashbots nhanh chóng tăng lên, trong một số khối thậm chí đạt 80%-91%. Xu hướng này phản ánh cuộc đua vũ trang phí do cuộc chiến quyền lên chuỗi của Flashbots.

Các hành động cứu trợ mà chúng tôi thực hiện và những thách thức phải đối mặt

ý tưởng cơ bản của hành động cứu trợ

Cách tiếp cận cứu hộ của chúng tôi là giám sát một nhóm tài khoản nạn nhân tiềm năng, những tài khoản này đã ủy quyền WETH cho các hợp đồng dự án có vấn đề. Khi có WETH chuyển vào tài khoản đó, chúng tôi sẽ lợi dụng lỗ hổng hợp đồng để chuyển ra ví đa chữ ký của những người bảo vệ. Điều quan trọng là phải đáp ứng các yêu cầu sau:

  1. Định vị hiệu quả giao dịch chuyển khoản cho tài khoản của nạn nhân ( giao dịch chuyển khoản )
  2. Xây dựng giao dịch đúng cách để thực hiện cứu trợ ( cứu trợ giao dịch )
  3. Kẻ tấn công thành công trong việc chạy trước ( hoặc các bên thứ ba khác ) giao dịch ( tấn công giao dịch )

Hai yêu cầu đầu tiên không gây cản trở cho chúng tôi. Tuy nhiên, yêu cầu thứ ba vẫn là một thách thức, ngay cả khi sử dụng Flashbots cũng không đảm bảo thành công. Chúng tôi cũng cần xem xét các yếu tố như chiến lược thiết lập phí, vị trí và thứ tự giao dịch trong mempool.

Tình hình cạnh tranh

Chúng tôi cố gắng bảo vệ 171 tài khoản nạn nhân tiềm năng độc lập. Trong số đó, 10 tài khoản đã kịp thời thu hồi quyền truy cập để tự bảo vệ, trong 161 tài khoản còn lại, do sự tồn tại của các loại cạnh tranh, chúng tôi chỉ thành công cứu hộ được 14 tài khoản. Tình huống thất bại liên quan đến 3 tài khoản cứu hộ và 16 tài khoản tấn công.

Bài học kinh nghiệm

Chiến lược thiết lập phí Flashbots

Trong quá trình cứu hộ, chúng tôi đã lần lượt bị 12 đối thủ sử dụng Flashbots đánh bại, bao gồm 2 tài khoản cứu hộ và 10 tài khoản tấn công.

Chiến lược thiết lập phí Flashbots của chúng tôi tương đối bảo thủ, có xu hướng đặt phí càng ít càng tốt để bảo vệ lợi ích của nạn nhân. Tuy nhiên, thực tiễn cho thấy chiến lược như vậy không thành công lắm, kẻ tấn công ( thậm chí một phần của những người mũ trắng ) thường áp dụng chiến lược thiết lập phí quyết liệt hơn để giành chiến thắng trong cuộc cạnh tranh.

Một số trường hợp mà chúng tôi quan sát thấy cho thấy rằng các đối thủ đã đặt tỷ lệ phí Flashbots trong khoảng từ 70% đến 86%. Điều này dường như là một trò chơi có tổng bằng không, cần phải mô hình hóa để khám phá các mô hình hành vi của từng bên tham gia. Trong thực tế, vừa phải giảm thiểu chi phí càng nhiều càng tốt, vừa phải tìm ra chiến lược tối ưu để giành chiến thắng trong cuộc cạnh tranh là một nhiệm vụ đầy thách thức.

Chiến lược sắp xếp giao dịch Mempool

Do sự cạnh tranh khốc liệt từ nhiều phía, Flashbots không phải lúc nào cũng hiệu quả. Trong trường hợp này, ngay cả khi đặt phí Flashbots cao nhất, cũng không thể đảm bảo chiến thắng trong cuộc cạnh tranh.

Một phương pháp khả thi khác là gửi giao dịch thông thường qua mempool, nếu giao dịch được sắp xếp ở vị trí phù hợp ( ngay sau giao dịch chuyển khoản ), cũng có thể đạt được mục tiêu. Chúng tôi đã quan sát thấy một kẻ tấn công đã sử dụng chiến lược này để kiếm được 312 ETH mà không phải trả bất kỳ phí nào cho Flashbots.

Chiến lược tinh vi này vừa có tính thực tiễn vừa có tính khơi gợi, đáng để chú ý và học hỏi.

Suy nghĩ khác

Định nghĩa của mũ trắng và kẻ tấn công

Việc nhận diện những người bảo vệ (white hat) và hành vi của họ có thể không đơn giản và rõ ràng. Chúng tôi đã quan sát một trường hợp, một địa chỉ ban đầu được đánh dấu là kẻ tấn công, sau đó được đánh dấu lại là người bảo vệ. Điều này xuất phát từ việc địa chỉ đó đã đạt được thỏa thuận với bên dự án, đồng ý giữ lại một phần lợi nhuận như phần thưởng và hoàn trả các lợi nhuận khác.

Hiện tượng này không phải lần đầu xuất hiện, tính công bằng của các động lực đã gây ra tranh cãi và thảo luận lớn trong cộng đồng.

Cơ chế phối hợp trong mũ trắng

Cộng đồng cần thiết lập cơ chế giao tiếp và phối hợp để giảm/né tránh sự cạnh tranh giữa các hacker trắng. Sự cạnh tranh này không chỉ lãng phí nguồn lực cứu trợ mà còn làm tăng chi phí cứu trợ. Ví dụ, trong lần cứu trợ này, chúng tôi và ba tổ chức hacker trắng khác ( đã cùng lúc cố gắng bảo vệ 54 nạn nhân ) liên quan đến thiệt hại 450 ETH (.

Nếu không có cơ chế phối hợp tương ứng, các hacker mũ trắng sẽ khó từ bỏ/đình chỉ loại cạnh tranh như vậy.

) Đề xuất cải thiện hành động cứu trợ

  1. Những người mũ trắng có thể công khai tuyên bố hành động của mình với cộng đồng mà không làm lộ thông tin nhạy cảm, nhằm xây dựng lòng tin với cộng đồng.

  2. Các lực lượng trong cộng đồng có thể hợp tác với nhau để cứu trợ nhanh chóng và hiệu quả hơn:

    • Flashbots/Các thợ mỏ có thể cung cấp lối đi xanh cho những người trắng mũ đáng tin cậy đã được chứng nhận.
    • Các dự án bị tấn công phải chịu chi phí Flashbots
    • Nhà phát triển dự án áp dụng cơ chế thuận tiện hơn để kịp thời cảnh báo người dùng
    • Nhóm dự án thực hiện các biện pháp khẩn cấp cần thiết trong mã.

Thông qua sự hợp tác của các bên, chúng ta hy vọng xây dựng một hệ sinh thái Web3 an toàn và hiệu quả hơn.

![]###https://img-cdn.gateio.im/webp-social/moments-f6e97c80d0049ad9d2cc45cbbaf91c5a.webp(

MULTI0.05%
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
  • 7
  • Chia sẻ
Bình luận
0/400
ChainSpyvip
· 3giờ trước
Chơi xong rồi, tiền này đã lên trời.
Xem bản gốcTrả lời0
BuyHighSellLowvip
· 07-25 03:55
Lại lỗ nữa rồi, mũ trắng không giải quyết được.
Xem bản gốcTrả lời0
gas_fee_therapistvip
· 07-25 03:53
Đợt gas này có vẻ điên cuồng...
Xem bản gốcTrả lời0
P2ENotWorkingvip
· 07-25 03:52
Còn tưởng là đã bị cuốn trôi, không ngờ rằng mũ trắng có thể lấy lại.
Xem bản gốcTrả lời0
Degentlemanvip
· 07-25 03:36
Lại là vấn đề với cơ chế xác thực?
Xem bản gốcTrả lời0
PretendingSeriousvip
· 07-25 03:35
Thật là vô lý, tiền bị đánh cắp còn bị giành giật.
Xem bản gốcTrả lời0
GateUser-26d7f434vip
· 07-25 03:34
Người mặc áo trắng và Hacker đang tranh nhau chơi đúng không?
Xem bản gốcTrả lời0
  • Ghim
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)