สะพาน Axelar ของ Secret Network สูญเงินราว $4.67 ล้านเมื่อวันที่ 10 มิถุนายน จากเหตุเอ็กซ์พลอยต์ที่ตรวจไม่พบจนถึงวันที่ 17 มิถุนายน จากรายงานวิเคราะห์หลังเหตุการณ์ (postmortem) ที่เผยแพร่ในวันศุกร์โดยบริษัทวิจัยบล็อกเชน Common Prefix ระบุว่า ผู้โจมตีใช้ประโยชน์จากช่องโหว่ในสัญญาโทเคนแบบกำหนดเอง CW20-ICS20 ที่ไม่ตรวจสอบว่าโอนเข้า (inbound transfer) มาจากช่องทาง (channel) ใด ส่งผลให้สามารถสร้างโทเคนที่ถูก “ห่อ” (wrapped) ของ Secret แบบไร้หลักประกันได้ ช่องโหว่นี้มีอยู่ตั้งแต่สัญญาเปิดใช้งานครั้งแรกในช่วงต้นปี 2023 และช่องว่างในการตรวจพบเป็นเวลา 7 วันเกิดขึ้นเพราะการเข้ารหัสยอดคงเหลือเริ่มต้นของ Secret Network ทำให้หลักประกันที่หายไปไม่ปรากฏบนเชน
เหตุเอ็กซ์พลอยต์เล็งไปที่สัญญา CW20-ICS20 เวอร์ชันที่แก้ไขบน Secret Network ซึ่งรองรับสินค้าที่ถูกบริดจ์มาจาก Axelar สัญญาดังกล่าวทำการ “มินต์” เวอร์ชันที่ถูกห่อของ Secret-wrapped สำหรับสินทรัพย์ที่ถูกห่อของ Axelar ที่เรียกว่า saTokens โดยไม่ตรวจสอบว่าโอนเข้า มาจาก channel ใด ผู้โจมตีสร้างเครือข่าย Cosmos ที่มีตัวตรวจสอบ (validator) เพียงรายเดียว เปิดช่อง IBC ไปยังสัญญาบริดจ์ และส่งแพ็กเก็ตปลอม (forged packets) แบบ self-relayed โดยใช้ denomination โทเคนที่ตรงกับรายการที่อนุญาต (allow-list) สัญญาไม่สามารถแยก denomination เหล่านี้ออกจาก denomination ที่มาถึงผ่าน channel ที่ถูกต้องตามปกติของ Axelar และจึงมินต์ saTokens กับมันได้ เมื่อนำยอดที่มินต์แล้วไปแลกกลับผ่าน channel ที่ถูกต้องของ Axelar จึงเป็นการปลดปล่อยสินทรัพย์ตัวจริงที่ถือไว้ในบัญชี escrow การรั่วไหลกระทบ saTokens จำนวน 7 รายการ ได้แก่ saUSDT, saUSDC, saDAI, saWETH, saWBTC, saWBNB และ sawstETH ตามรายงานของ Common Prefix
Common Prefix ติดตามช่องโหว่นี้ไปยังการเปิดใช้งานสัญญาครั้งแรกในช่วงต้นปี 2023 การย้ายระบบ (migration) วันที่ 5 มีนาคม ที่อัปเดต bytecode สำหรับฟีเจอร์ใหม่ ได้พาเอาช่องตรวจสอบที่หายไปต่อเนื่อง และเหตุโจมตีวันที่ 10 มิถุนายน ก็ใช้ประโยชน์จากโค้ดที่ถูกย้ายดังกล่าว ในโพสต์บนฟอรัม Secret Network ระบุว่าสัญญาบริดจ์ถูกปรับจากโมเดลแบบ escrow ไปเป็นโมเดลแบบ mint สำหรับการเชื่อมต่อกับ Axelar และฟังก์ชัน 2 ตัวที่น่าจะใช้ตรวจสอบแหล่งที่มาของการโอนได้ถูกลบออกในการปรับโครงสร้างดังกล่าว Secret Network ยังระบุด้วยว่า Axelar ไม่ได้ขอให้มีการตรวจสอบจากบุคคลภายนอก (external audit) ในส่วนของการบูรณาการ เมื่อถึงวันที่ 17 มิถุนายน ความขาดแคลนปรากฏชัดเมื่อการโอนข้ามเชนตามปกติบน Axelar ล้มเหลวพร้อมข้อผิดพลาดที่แสดงว่าบัญชี escrow ไม่ได้ถือหลักพอที่จะครอบคลุมมัน นักสืบพบว่าช่องว่างดังกล่าวมาจากการถอน 7 ครั้งที่ทำในวันที่ 10 มิถุนายน
คณะกรรมการฉุกเฉินของ Axelar ปิดการเชื่อมต่อ Secret และ Secret-SNIP หลังการค้นพบ และ Squid ซึ่งเป็น cross-chain router ก็ลบ Secret ออกจากหน้าเว็บของตน Axelar ระบุว่าโปรโตคอลหลักของตนไม่ได้ถูกกระทบ และไม่มีการแตะต้องเชน ช่องทาง หรือบัญชี escrow อื่น ๆ ทีม Secret ได้รับการแจ้งให้หยุดและย้ายสัญญาที่ได้รับผลกระทบ ในโพสต์ติดตามผล Axelar ระบุว่า: “ทั้ง Axelar และ IBC ไม่ถูกบุกรุก สัญญา smart contract ของโทเคนที่ถูกเอ็กซ์พลอยต์ไม่ได้ถูกพัฒนา เปิดใช้งาน หรือดูแลโดย Axelar” ทีมยังกล่าวด้วยว่าช่องโหว่นี้ไม่ได้อยู่ที่ตรรกะเฉพาะของ Axelar หรืออยู่ที่ IBC เอง
Secret Network ระบุในโพสต์บนฟอรัมว่า ณ เวลาที่โพสต์ เงินที่ถูกขโมยราว $770,000 ยังคงอยู่ในกระเป๋าของผู้โจมตีบน Axelar Secret Network ระบุว่าตนระบุสินทรัพย์เหล่านั้นได้ ทำเครื่องหมายว่า “กู้คืนได้” และยื่นคำร้องให้ทีม Axelar แช่แข็ง หรือทำงานร่วมกับชุมชนของตนเพื่อดำเนินการดังกล่าว “ซึ่งเป็นคำขอที่พวกเขาตัดสินใจไม่ดำเนินการ” Axelar ชี้แจงแยกต่างหากว่ากำลังประสานงานกับตลาดแลกเปลี่ยนและหน่วยงานบังคับใช้กฎหมาย และยังไม่ได้กำหนดไทม์ไลน์ในการคืนค่าการเชื่อมต่อ ข้อมูล Axelarscan ที่ The Block เข้าถึงพบว่ากระเป๋า Axelar ของผู้โจมตียังถือครอง 6.2 WBTC, 239,324 USDC, 64.04 WBNB และ 248.85 AXL ซึ่งมีมูลค่าราว $672,000 ตามราคาช่วงเวลาเผยแพร่
ข้อมูลติดตามของ Common Prefix แสดงว่า ผู้โจมตีถอนสินทรัพย์ที่ถูกขโมยไปยัง Axelar จากนั้นส่งต่อผ่าน Osmosis ด้วยระบบ automated packet-forwarding แล้วจึงบริดจ์ไปยัง Ethereum และส่วนใหญ่สลับเป็น ether บน CoW Protocol Ether ถูกแบ่งออกเป็นธุรกรรมราว 30 รายการไปยังกระเป๋าใหม่ก่อนจะลงเอยที่ที่อยู่สำหรับฝาก (deposit addresses) บน KuCoin, ChangeNow และ HitBTC โทเคนทั้งสองปรับราคาขึ้นในช่วง 24 ชั่วโมงที่ผ่านมาแม้จะมีการเปิดเผย AXL ของ Axelar เพิ่มขึ้นราว 1.3% ขณะที่ SCRT ของ Secret เพิ่มขึ้น 5.6% ในช่วงวันก่อนเวลาที่เผยแพร่
อะไรทำให้เกิดเหตุเอ็กซ์พลอยต์บริดจ์ของ Secret Network มูลค่า $4.67 ล้านเมื่อวันที่ 10 มิถุนายน?
เหตุเอ็กซ์พลอยต์เกิดขึ้นเพราะสัญญาโทเคนแบบกำหนดเอง CW20-ICS20 บน Secret Network ไม่สามารถตรวจสอบได้ว่าโอนเข้า มาจาก channel ใด ผู้โจมตีสร้างเครือข่าย Cosmos ที่มี validator เพียงรายเดียว เปิดช่อง IBC ไปยังสัญญาบริดจ์ และ self-relayed แพ็กเก็ตปลอมที่สัญญายอมรับว่าเป็นของจริง จนทำการมินต์ saTokens แบบไร้หลักประกัน ซึ่งต่อมาถูกนำไปแลกเป็นสินทรัพย์ตัวจริงที่ถือไว้ในบัญชี escrow
ช่องโหว่มีอยู่นานแค่ไหนก่อนเหตุโจมตีวันที่ 10 มิถุนายน?
Common Prefix ติดตามช่องโหว่นี้ไปยังการเปิดใช้งานสัญญาครั้งแรกในช่วงต้นปี 2023 การย้ายระบบ (migration) วันที่ 5 มีนาคม ที่อัปเดต bytecode สำหรับฟีเจอร์ใหม่ได้นำชุดเช็กที่หายไปมาด้วย และเหตุโจมตีวันที่ 10 มิถุนายน ก็ใช้ประโยชน์จากโค้ดที่ถูกย้ายดังกล่าว
เงินที่ถูกขโมยเท่าใดที่ยังคงกู้คืนได้ ณ เวลาเผยแพร่?
ข้อมูล Axelarscan ที่ The Block เข้าถึงพบว่ากระเป๋า Axelar ของผู้โจมตียังถือ 6.2 WBTC, 239,324 USDC, 64.04 WBNB และ 248.85 AXL ซึ่งมีมูลค่าราว $672,000 ตามราคาช่วงเวลาเผยแพร่ Secret Network ระบุว่าตนยื่นคำร้องให้ Axelar แช่แข็งสินทรัพย์เหล่านี้ แต่เป็นคำขอที่ Axelar ปฏิเสธที่จะดำเนินการ
news.related.news
Starknet เปิดตัวการโอนแบบส่วนตัวสำหรับสินทรัพย์ที่ซ่อน (Shielded Assets)
DriftProtocol เปิดตัวเครื่องมือตรวจสอบโทเค็นสำหรับการกู้คืน DFX หลังเหตุเอ็กซ์พลอยต์วันที่ 1 เมษายน
บริดจ์ Aztec Private Rollup ถูกแฮ็กเพื่อขโมยสินทรัพย์มูลค่า 2.15 ล้านดอลลาร์
SlowMist เตือน: โปรโตคอล BSC อย่าง Little Boy Plus โดนแฮ็ก 377642 USDT ถูกถอนออกหมดแล้ว