Squid รีบออกมาชี้แจงอย่างรวดเร็วว่า การโจมตีมูลค่า 3 ล้านดอลลาร์ที่เพิ่งเกิดขึ้นนั้นมุ่งเป้าไปที่โมดูล Gnosis Safe ของบุคคลที่สามชื่อ SquidRouterModule ไม่ใช่สัญญา cross-chain routing หลักของตน หลังจากที่กระเป๋าเงิน 86 ใบบน Ethereum และ Base ถูกดูดเงินออกภายในเวลาไม่ถึงสองชั่วโมง
ตามรายงานของบริษัทความปลอดภัย on-chain อย่าง Blockaid การโจมตีมุ่งเป้าไปที่โมดูล Gnosis Safe ชื่อ SquidRouterModule ที่ถูกใช้งานบน Ethereum และ Base ซึ่งถูกใช้โดยเจ้าของ multisig บางรายในการกำหนดเส้นทาง cross-chain transactions ที่เกี่ยวข้องกับ Squid และโปรโตคอลอื่น ๆ
Blockaid รายงานว่าในช่วงเวลาประมาณสองชั่วโมง ผู้โจมตีได้ดูดเงินออกจากกระเป๋าเงิน Gnosis Safe จำนวน 86 ใบ คิดเป็นมูลค่าความเสียหายรวมประมาณ 3 ล้านถึง 3.2 ล้านดอลลาร์ ก่อนจะรวบรวมเงินทั้งหมดไว้ในที่อยู่เดียวที่มี DAI กว่า 3.07 ล้านดอลลาร์
ในรายงานฉบับละเอียด โต๊ะข่าวของ KuCoin อ้างอิง Blockaid และ Squid ว่าโทเคนที่ถูกขโมยถูกแลกเปลี่ยนเป็น DAI ผ่าน Uniswap V3 pool แบบกำหนดเองที่ผู้โจมตีสร้างขึ้น จากนั้นจึงรวบรวมเงินที่ดูดออกมาทั้งหมดไว้ในกระเป๋าเงินใบเดียวเพื่อให้การฟอกเงินง่ายขึ้น
จุดบกพร่องหลักอยู่ใน logic "message security" ของ SquidRouterModule: รายงานจาก Binance Square อธิบายว่าโมดูลดังกล่าวยอมรับสตริงคงที่ที่ผู้เรียกใช้ระบุมาเป็นหลักฐานว่าข้อความนั้นถูกต้อง ซึ่งหมายความว่าใครก็ตามที่เห็นโค้ดสัญญาสามารถคัดลอกสตริงนั้นและส่ง call data ตามอำเภอใจได้
CoinNess รายงานว่าผู้โจมตีใช้ประโยชน์จากการตรวจสอบสตริงคงที่สาธารณะนี้เพื่อเรียกใช้คำสั่งตามอำเภอใจจาก Safe ที่ได้รับผลกระทบ ซึ่งเท่ากับเป็นการมอบสิทธิ์ให้ตนเองย้ายสินทรัพย์ออกจาก multisig โดยไม่ต้องได้รับการยืนยันจากเจ้าของ
บันทึกเหตุการณ์ของ Binance อธิบายตรง ๆ ว่าการออกแบบดังกล่าว "ยอมรับสตริงคงที่ที่ผู้เรียกใช้ระบุมาสำหรับ message security" ซึ่งเป็นรูปแบบที่ขจัดการยืนยันตัวตนที่แท้จริงออกไปทั้งหมดและเปิดเส้นทางตรงสำหรับการดูดเงินออกจากกระเป๋าเงินที่เชื่อมต่ออยู่
นี่คือความเสี่ยงประเภทที่รู้จักกันดีสำหรับโมดูล Gnosis Safe เนื่องจากงานวิจัยก่อนหน้านี้ของ OpenZeppelin แสดงให้เห็นว่าโมดูลที่เชื่อมต่อใด ๆ สามารถดำเนินการธุรกรรมจากกระเป๋าเงินโดยไม่ต้องได้รับการอนุมัติจากเจ้าของ หากการตรวจสอบภายในอ่อนแอหรือกำหนดค่าผิดพลาด
ในกรณีนี้ โมดูลที่ไม่ปลอดภัยใช้ชื่อ Squid แต่ถูกพัฒนาและติดตั้งโดยผู้รวมระบบบุคคลที่สาม ไม่ใช่โดยทีม Squid หรือผู้ดูแลโปรโตคอลหลัก
ในโพสต์ X อย่างเป็นทางการ Squid ระบุว่า "เหตุการณ์นี้ไม่เกี่ยวข้องกับโปรโตคอลหลักและสัญญาของ Squid" และเน้นย้ำว่าสัญญา routing หลักของตน ซึ่งระบุบน chain ในชื่อ 0xce16F69375520ab01377ce7B88f5BA8C48F8D666 นั้น "ไม่ได้เกี่ยวข้องกับธุรกรรมที่เป็นอันตรายใด ๆ"
รายงานของ KuCoin ระบุว่า Squid ชี้แจงว่า SquidRouterModule "ไม่ได้ถูกพัฒนา ติดตั้ง หรือดำเนินการโดยพวกเขา โดยชื่อดังกล่าวถูกเลือกโดยอิสระโดยบุคคลที่สามเมื่อทำการรวมระบบกับ Squid" และมันอยู่นอกสถาปัตยกรรมของ router หลักโดยสิ้นเชิง
ทีมยังเน้นย้ำอีกว่าเงินของผู้ใช้ การอนุมัติที่มีอยู่ และการรวมระบบในระดับโปรโตคอลยังคงปลอดภัย และ "การ routing cross-chain หลักของ Squid ยังคงไม่ได้รับผลกระทบ" ขณะที่ยังคงติดตามสถานการณ์และประสานงานกับบริษัทความปลอดภัยต่อไป
แม้จะเป็นเช่นนั้น ภาพลักษณ์ก็ยังไม่ดีนัก: ดังที่บทความของ KuCoin ชี้ให้เห็น หัวข้อข่าวหลีกเลี่ยงไม่ได้ที่จะเชื่อมโยง "Squid" กับ "การแฮก" แม้ว่าความเสียหายจะจำกัดอยู่เพียงโมดูล Safe ที่สร้างอย่างหละหลวม ซึ่งมีความเชื่อมโยงกับโปรเจกต์จริง ๆ เพียงแค่การใช้ชื่อและการใช้ Squid เป็นหนึ่งใน router ที่รวมเข้าไปด้วยกันหลายตัวเท่านั้น
นักวิจัยด้านความปลอดภัยได้เตือนมานานแล้วว่าพลังของ Gnosis Safe มาพร้อมกับข้อควรระวังที่ว่าโมดูลใด ๆ ที่เสียบเข้าไปใน Safe สามารถดำเนินการธุรกรรมโดยไม่ต้องได้รับการยืนยันจากเจ้าของหาก logic มีข้อบกพร่อง ซึ่งนั่นคือสิ่งที่เกิดขึ้นที่นี่เมื่อการตรวจสอบสตริงคงที่ถูกหลีกเลี่ยง
สำหรับระบบนิเวศ cross-chain และส่วนขยายกระเป๋าเงินในวงกว้าง เหตุการณ์ SquidRouterModule เป็นอีกตัวอย่างที่เป็นรูปธรรมว่า composability รวมกับสมมติฐานความปลอดภัยที่ประมาทในโมดูลรอบข้างสามารถเปิดพื้นที่การโจมตีที่อยู่นอกเหนือสัญญาและการตรวจสอบของโปรโตคอลเองได้อย่างสิ้นเชิง
มันยังตอกย้ำความจริงอันเจ็บปวดสำหรับทีมโครงสร้างพื้นฐานอย่าง Squid ซึ่ง Axelar อธิบายว่าเป็น "โปรโตคอลที่ช่วยให้สามารถกำหนดเส้นทาง cross-chain liquidity และแลกเปลี่ยนผ่าน SDK เดียว": แม้ว่าสัญญาของคุณเองจะมั่นคง แต่ wrapper ของบุคคลที่สามก็ยังสามารถลากชื่อแบรนด์ของคุณเข้าสู่หัวข้อข่าวการโจมตีได้ หากพวกเขาล้มเหลวในการรักษาความปลอดภัยขั้นพื้นฐาน


