

Lưu ý của biên tập viên: Bài viết này là của SECBIT Lab, tác giả: SECBIT Lab, được xuất bản với sự cho phép.
Vào lúc 11:32 ngày 24 tháng 9 theo giờ Bắc Kinh, địa chỉ 0x18a0 đã giành được giải thưởng cuối cùng của vòng thứ hai của Fomo3D, với số tiền thưởng là 3.264.668 Ether. Phân tích của phòng thí nghiệm SECBIT cho thấy các kỹ năng chiến thắng của vòng trò chơi này hoàn toàn giống với kỹ năng của vòng đầu tiên, tất cả đều là các cuộc tấn công "chặn giao dịch" của tin tặc.
So với vòng trò chơi đầu tiên trước đó, vòng trò chơi này kéo dài trong 33 ngày, bất kể là về quỹ tham gia, thời gian hay số lượng giải thưởng lớn cuối cùng đều đã giảm đáng kể so với vòng trước.
Nhìn lại hai tháng trước, số tiền tham gia trò chơi trong vòng đầu tiên của Fomo3D đã từng vượt quá 40.000 Ether và giải thưởng cuối cùng của vòng đầu tiên của trò chơi đã vượt quá 10.000 Ether.
Tuy nhiên, kể từ tháng 9, với sự suy thoái chung của thị trường, các game giống Fomo3D gần như biến mất. Mức độ phổ biến của một số trò chơi đang hoạt động do Fomo3D và Người chiến thắng cuối cùng đại diện đã giảm đáng kể. Hầu hết các hợp đồng tương tự đều bị hoãn vì không ai sẽ bắt đầu vòng tiếp theo của trò chơi.
Vì vậy cho đến thời điểm hiện tại, giải thưởng Fomo 3D đợt 2 đã được trao, các hacker đã có chút hồi hộp để giật giải và mức độ phổ biến của trò chơi cũng không còn như trước.
Phòng thí nghiệm SECBIT đã tiến hành phân tích về sự thay đổi này và kết quả phân tích cho thấy những lỗ hổng trong cơ chế airdrop của trò chơi [1] và cuộc tấn công “chặn giao dịch” [2] liên tục được tiết lộ cách đây không lâu, mặc dù đã được chú ý. được đẩy lên một tầm cao mới nhưng thực chất lại là nguyên nhân chính dẫn đến sự đi xuống của game.
Thịnh vượng vs Mát mẻ?
Xưa nóng bao nhiêu, nay lạnh bấy nhiêu
Toàn cảnh về sự phổ biến của trò chơi
Mô tả hình ảnh
Hình 1: Quỹ đầu tư và tham gia của người chơi Fomo3D
Hình trên hiển thị "Trạng thái tài trợ và tương tác của người chơi Fomo3D". Màu đỏ đại diện cho số người đã gọi hợp đồng để tham gia trò chơi và màu xanh lam đại diện cho số tiền tham gia hợp đồng trò chơi. Các đỉnh cao nhất của đường cong dữ liệu xuất hiện ở phía bên trái của biểu đồ, tương ứng với ngày 20 và 21 tháng 7. Trong hai ngày qua, đông đảo các phương tiện truyền thông đã rầm rộ đưa tin về hiện tượng game Fomo3D. Vào thời điểm đó, nhiều người chơi đã làm theo và tham gia trò chơi. Số lần tham gia hợp đồng trò chơi và số tiền tham gia đạt đến đỉnh cao nhất. Số tiền tham gia vượt quá 40.000 Ether và số lần tham gia tối đa vượt quá 18.000 lần. Điểm cao nhất của đường cong tương ứng với đỉnh cao nhất của vòng đầu tiên của trò chơi Fomo3D.
Mô tả hình ảnh
Hình 2: Tiền tham gia và tiền tham gia của người chơi Người chiến thắng cuối cùng
Tương tự, biểu đồ trên hiển thị "Mức độ tương tác của người chơi chiến thắng cuối cùng so với Trạng thái Bankroll". Người chiến thắng cuối cùng đã được sửa đổi một phần cho trò chơi Fomo3D để giảm giới hạn thời gian trò chơi để mỗi vòng kết thúc nhanh hơn. Vòng đỉnh đầu tiên diễn ra vào ngày 8 tháng 8 và kể từ đó đã có nhiều đỉnh cục bộ, đại diện cho việc mở các vòng khác nhau, nhưng rõ ràng số lượng cuộc gọi và tiền vào cửa không tốt bằng một vòng.
quỹ giải thưởng
Mô tả hình ảnh
Hình 3: Thay đổi số dư Ether của hợp đồng Fomo3D
Mô tả hình ảnh
Hình 4: Những thay đổi trong số dư Ether của hợp đồng Người chiến thắng cuối cùng
giải cuối cùng
Vào ngày 17 tháng 8, phòng thí nghiệm SECBIT vàAnchain.aiNhóm đã cùng nhau tiết lộ nhóm hacker BAPT-LW20 đã khai thác các lỗ hổng trong cơ chế airdrop để lấy một lượng lớn tiền thưởng. Cùng ngày, vòng đầu tiên của trò chơi Người chiến thắng cuối cùng đã kết thúc và người giành được giải thưởng cuối cùng cũng là đội BAPT-LW20. Theo thống kê, nhóm hacker đã kiếm được tổng cộng 12.948 Ether từ vòng đầu tiên của Last Winner.
Trong 9 vòng chơi đầu tiên mà Last Winner hoàn thành, tài khoản 0x5167 do băng nhóm hacker nắm giữ đã giành được tổng cộng 4 giải chung cuộc.
Xem xét kỹ hơn số tiền jackpot cuối cùng và thời lượng của mỗi vòng trò chơi, không khó để nhận thấy rằng số tiền thưởng giảm đi rất nhanh và mỗi vòng kết thúc ngày càng nhanh hơn. Điều này phù hợp với biểu đồ dữ liệu tương tác trò chơi ở trên.
để phản ánh
để phản ánh
Lỗ hổng cơ chế là nguyên nhân chính khiến game tụt dốc
Mô tả hình ảnh
Hình 5: Hợp đồng game Fomo3D bị tấn công
Hình trên cho thấy "Hợp đồng trò chơi Fomo3D bị tấn công" Trước và sau cao điểm của vòng đầu tiên của trò chơi và sau khi bắt đầu vòng thứ hai, một số hacker đã điên cuồng lợi dụng lỗ hổng airdrop để tấn công và thu lợi nhuận cao. Vào cuối vòng đầu tiên và kết thúc đếm ngược đến vòng thứ hai, một số tin tặc đã điên cuồng cố gắng thực hiện các cuộc tấn công "chặn giao dịch", với mục tiêu giành được giải thưởng cuối cùng khổng lồ.
Mô tả hình ảnh
Hình 6: Tấn công vào hợp đồng trò chơi Người chiến thắng cuối cùng
Hình trên là "Hợp đồng game Last Winner bị tấn công" Tương tự như Fomo3D, quy mô các cuộc tấn công hack rất lớn khi game đang hot.
Tấn công "chặn giao dịch"
Trò chơi Fomo3D đã khéo léo thiết kế một liên kết, người cuối cùng tham gia trò chơi sẽ nhận được một nửa số Ether trong nhóm giải thưởng làm phần thưởng. Nhà phát triển muốn giữ một lượng lớn người chơi lần lượt vào đấu trường thông qua thiết kế này và bất kỳ ai cũng có thể trở thành "người may mắn". Nhưng sau khi tin tặc sử dụng cuộc tấn công "ngăn chặn giao dịch" [5] để tăng tốc độ kết thúc trò chơi và trở thành người hưởng lợi, thiết kế thu hút người chơi này đã bị phá vỡ. Vì vậy, những người chơi bình thường vào sân sau chỉ có thể trở thành tỏi tây, và tự nhiên rất khó để thu hút người chơi tham gia.
Tấn công "thả dù"
Ngoài giải thưởng chung cuộc, trong game còn thiết kế cơ chế nhận thưởng airdrop, người chơi có xác suất nhất định nhận được phần thưởng airdrop, đây cũng là một nguyên nhân quan trọng thu hút người chơi tham gia. Tuy nhiên, do sơ hở về số ngẫu nhiên trong cơ chế airdrop, tin tặc có thể tiếp tục lấy đi phần thưởng với xác suất cao thông qua một số kỹ năng nhất định và người chơi bình thường gần như không thể thành công. Tính công bằng của những phần thưởng airdrop như vậy cũng đã bị thách thức.
Các biện pháp đối phó và triển vọng
dApps vẫn còn một chặng đường dài phía trước
Một trò chơi ăn khách như vậy chắc chắn sẽ trở thành một cột mốc quan trọng trong lịch sử phát triển trò chơi dApp. Nhưng sự trầm cảm quá nhanh cũng đã mang đến cho chúng ta nhiều suy ngẫm. Đối với các trò chơi giống như Fomo3D, hoặc thậm chí tất cả các trò chơi dApp, vẫn còn một chặng đường dài phía trước. Cần kịp thời rút ra bài học từ các cuộc tấn công của hacker và có biện pháp phòng vệ.
Cuộc tấn công "lỗ hổng airdrop" là lỗ hổng bị tấn công thường xuyên nhất trong các trò chơi giống Fomo3D. Tin tặc có thể tiếp tục lấy tiền trong nhóm giải thưởng với chi phí thấp.
Một mặt, cơ chế airdrop của trò chơi Fomo3D sử dụng các số ngẫu nhiên để kiểm soát xác suất chiến thắng, nhưng vì nguồn của các số ngẫu nhiên là một số tham số công khai cụ thể trong khối hoặc giao dịch, chẳng hạn như địa chỉ của người khởi tạo giao dịch, khối dấu thời gian, độ khó khối, v.v., tất cả các hợp đồng thông minh Ethereum có thể dễ dàng dự đoán các số ngẫu nhiên [6]. Do đó, trong các tình huống liên quan đến số ngẫu nhiên, SECBIT Labs khuyến nghị rằng các nhà phát triển nên đặc biệt thận trọng hoặc sử dụng một số phương tiện nhất định để tăng độ khó cho việc dự đoán các nguồn ngẫu nhiên. Ví dụ: các nhà phát triển có thể tránh rủi ro dự đoán các số ngẫu nhiên bằng cách sử dụng nhiều lần gửi và tiết lộ lại hoặc trì hoãn việc vẽ một số khối.
Mặt khác, để ngăn chặn các cuộc tấn công tự động hóa hợp đồng, hợp đồng trò chơi Fomo3D sẽ phát hiện xem người gọi là tài khoản thông thường hay tài khoản hợp đồng. Do đó, khi bên dự án phát hiện danh tính của những người chơi tham gia trò chơi dApp, họ cũng nên áp dụng một phương pháp đáng tin cậy hơn. Ví dụ: bằng cách đánh giá xem người khởi tạo ban đầu của giao dịch (tx.origin) và người gọi hợp đồng hiện tại (msg.sender) có cùng một địa chỉ hay không.
Cuộc tấn công "chặn giao dịch" được đề cập ở trên là một thách thức lớn khác mà các trò chơi giống như Fomo3D phải đối mặt.
Tin tặc sử dụng phí cao để thu hút những người khai thác đóng gói trước và sử dụng hợp đồng để tự động đánh giá trạng thái của trò chơi làm cơ sở cho việc có tấn công hay không. Tin tặc cuối cùng có thể chặn các khối với chi phí thấp và chỉ đóng gói một số lượng nhỏ giao dịch trong mỗi khối (giảm khả năng giao dịch của người khác bị đóng gói), giúp trò chơi kết thúc nhanh chóng và tăng xác suất giành được giải thưởng cuối cùng.
Trên thực tế, vấn đề này sẽ không chỉ đe dọa các trò chơi giống như Fomo3D. Tất cả các cơ chế tương tự, nghĩa là hợp đồng thông minh yêu cầu người chơi cạnh tranh để hoàn thành một số loại hoạt động cạnh tranh trong một khung thời gian nhất định, đều bị đe dọa bởi điều này. Để ngăn chặn vấn đề này, SECBIT Labs khuyến nghị các nhà phát triển trò chơi bắt đầu với cơ chế trò chơi và cắt đứt mối liên hệ không thể tránh khỏi giữa chiến thắng cuối cùng của trò chơi (nhận được giải thưởng lớn) và kết thúc đếm ngược (giao dịch cuối cùng được đóng gói), vì vậy rằng xác suất lợi nhuận tấn công của tin tặc và mức độ sẵn sàng tấn công được giảm thiểu.
Tin tặc trong các trò chơi giống Fomo3D lợi dụng các tính năng của giao thức đồng thuận Ethereum để tìm ra sơ hở trong cơ chế trò chơi và thực hiện các cuộc tấn công. Điều này cũng nhắc nhở chúng ta rằng thiết kế cơ chế trong ứng dụng dApp là một dự án cực kỳ phức tạp, ngoài bản thân công nghệ, nó còn liên quan đến các vấn đề như môi trường bên ngoài của nền tảng và lý thuyết trò chơi, đây cũng là một liên kết dễ dàng được bị tin tặc tấn công. Do đó, các dự án dApp nên đặc biệt thận trọng trong quá trình thiết kế cơ chế.
Như Guo Yu, người sáng lập Amby Labs, đã nói: "Có sự sống trong thế giới mới và có những kẻ săn mồi. Có thương nhân và có tin tặc. Các ứng dụng trên chuỗi khối đang phát triển và những kẻ tấn công cũng vậy." Tại nơi giao thoa giữa công nghệ và sự giàu có, hacker sẽ luôn duy trì khứu giác nhạy bén nhất. Các cuộc tấn công của tin tặc đã cho chúng ta nhiều cơ hội để phản ánh và cải thiện, đây cũng là chất xúc tác cho sự phát triển không ngừng của các ứng dụng.
người giới thiệu
người giới thiệu
[1] Pwning Fomo3D Revealed: Iterative, Pre-Calculated Contract Creation For Airdrop Prizes!,
https://peckshield.com/2018/07/24/fomo3d/
[2] Phương thức tấn công lớn nhất trong lịch sử hợp đồng thông minh đã bị vạch trần và các chi tiết về tội ác của băng nhóm tin tặc đã được thống kê
https://zhuanlan.zhihu.com/p/42318584
[3] "Kỹ năng tấn công đặc biệt" của người chiến thắng giải thưởng mười triệu Fomo3D được tiết lộ đầy đủ nhất
https://zhuanlan.zhihu.com/p/42742004
[4] Khai thác Airdrop POC do Péter Szilágyi đề xuất,
https://www.reddit.com/r/ethereum/comments/916xni/how_to_pwn_fomo3d_a_beginners_guide/, 2018/07/23
[5] Nhịp điệu khối: 80.000 giao dịch bị "chặn" mạng Ethereum, chỉ để lấy phần thưởng Fomo3D?
https://mp.weixin.qq.com/s/5nrgj8sIZ0SlXebG5sWVPw
[6] Predicting Random Numbers in Ethereum Smart Contracts
https://blog.positive.com/predicting-random-numbers-in-ethereum-smart-contracts-e5358c6b8620
