🔥 สูงสุด 2,045% APY! #HMSTR# Startup กระบวนการขุดเหมือง กำลังระเบิดอยู่!
✅ PreMint HMSTR PreToken
💰 Stake เพื่อรับ 1,200 #TON#
👉 เดิมพันตอนนี้: https://www.gate.io/startup-mining/28
✨ PreMint ที่นี่: https://www.gate.io/pre-market/HMSTR
เพิ่มเติม:https://www.gate.io/announcements/article/39026
#StartupMining# #PreMarket#
SharkTeam: การวิเคราะห์หลักการโจมตีข้อเสนอ Tornado.Cash
เขียนโดย: SharkTeam
ในวันที่ 20 พฤษภาคม 2023 ตามเวลาปักกิ่ง Tornado.Cash ประสบกับการโจมตีข้อเสนอ และผู้โจมตีทำกำไรได้ประมาณ 680,000 ดอลลาร์สหรัฐ SharkTeam ได้ทำการวิเคราะห์ทางเทคนิคของเหตุการณ์นี้เป็นครั้งแรก และสรุปข้อควรระวังด้านความปลอดภัย โดยหวังว่าโครงการต่อๆ ไปจะได้เรียนรู้จากเหตุการณ์ดังกล่าว และสร้างแนวป้องกันความปลอดภัยสำหรับอุตสาหกรรมบล็อกเชน
1. การวิเคราะห์เหตุการณ์
ที่อยู่ผู้โจมตี:
0x092123663804f8801b9b086b03B98D706f77bD59
0x592340957eBC9e4Afb0E9Af221d06fDDDF789de9
สัญญาการโจมตี:
0xAF54612427d97489707332efe0b6290F129DbAcb
0x03ecf0d22f9ccd21144a7d492cf63b471916497a
0x7dc86183274b28e9f1a100a0152dac975361353d (สัญญาการปรับใช้)
0xc503893b3e3c0c6b909222b45f2a3a259a52752d (สัญญาข้อเสนอปลอม)
สัญญาที่ถูกโจมตี:
0x5efda50f22d34F262c29268506C5Fa42cB56A1Ce
เริ่มต้นธุรกรรมข้อเสนอ:
0x34605f1d6463a48b818157f7b26d040f8dd329273702a0618e9e74fe350e6e0d
ธุรกรรมการโจมตี:
0x3274b6090685b842aca80b304a4dcee0f61ef8b6afee10b7c7533c32fb75486d
ขั้นตอนการโจมตี:
(1) ประการแรก ผู้โจมตี (0x08e80ecb) เริ่มต้นข้อเสนอของสัญญาที่ถูกโจมตี (0x5efda50f) โดยอ้างว่าข้อเสนอนี้เป็นส่วนเสริมของข้อเสนอ 16
(2) แต่จริง ๆ แล้วมีฟังก์ชั่นทำลายตัวเองเพิ่มเติมในข้อเสนอ
(3) น่าเสียดายที่ชุมชนไม่พบปัญหาใด ๆ ในข้อเสนอนี้ และสมาชิกส่วนใหญ่ลงมติให้ผ่านข้อเสนอนี้
(4) ผู้โจมตีสร้างสัญญาจำนวนมากเพื่อดำเนินการโอนโทเค็น
(5) ผู้โจมตี (0x08e80ecb) ทำลายสัญญาข้อเสนอ (0xc503893b) และสัญญาการสร้างของเขา (0x7dc86183) สัญญาการโจมตี (0xc503893b) ได้รับการปรับใช้ใหม่ในภายหลังในที่อยู่เดียวกัน
(6) หลังจากแก้ไขสัญญาข้อเสนอ ผู้โจมตี (0x08e80ecb) ดำเนินการตามข้อเสนอและแก้ไขจำนวนโทเค็นล็อคของที่อยู่สัญญาภายใต้การควบคุมของเขาเป็น 10,000
(7) หลังจากดำเนินการตามข้อเสนอแล้ว ผู้โจมตี (0x08e80ecb) จะโอนโทเค็นไปยังที่อยู่ของตนเองและรับความเป็นเจ้าของสัญญาที่ถูกโจมตี
การวิเคราะห์ช่องโหว่: เนื่องจากสัญญาการสร้าง (0x7dc86183) ของสัญญาข้อเสนอ (0xc503893b) ถูกปรับใช้ผ่าน creat2 หลังจากที่สัญญาทั้งสองถูกทำลาย สัญญาลอจิกใหม่สามารถปรับใช้ในที่อยู่เดียวกัน และการดำเนินการข้อเสนอจะถูกเรียกใช้ในรูปแบบ ของ delegatecall สัญญาโจมตีสามารถแก้ไขค่าในสัญญาที่ถูกโจมตีโดยพลการ
บทสรุปของเหตุการณ์: สาเหตุของเหตุการณ์นี้คือชุมชนไม่สามารถค้นพบความเสี่ยงในข้อเสนอเมื่อตรวจสอบข้อเสนอ และไม่ได้ตรวจสอบอย่างละเอียดว่ารหัสของสัญญาข้อเสนอมีช่องโหว่ด้านความปลอดภัยหรือไม่
2. คำแนะนำด้านความปลอดภัย
ในการตอบสนองต่อการโจมตีนี้ เราควรปฏิบัติตามข้อควรระวังต่อไปนี้ในระหว่างขั้นตอนการพัฒนา: