CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

avatar
CertiK
1ปี ที่แล้ว
ประมาณ 11180คำ,ใช้เวลาอ่านบทความฉบับเต็มประมาณ 14นาที
เมื่อสัปดาห์ที่แล้ว CertiK ได้รับเงินรางวัล $500,000 จาก SUI จากการค้นพบข้อบกพร่องด้านความปลอดภัยที่สำคัญนี้

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

ก่อนหน้านี้ ทีม CertiK ค้นพบชุดของช่องโหว่ในการปฏิเสธการให้บริการใน Sui blockchain ท่ามกลางช่องโหว่เหล่านี้ มีช่องโหว่ใหม่และมีผลกระทบสูงที่โดดเด่น ช่องโหว่นี้อาจทำให้โหนดเครือข่าย Sui ไม่สามารถประมวลผลธุรกรรมใหม่ได้ และผลกระทบจะเทียบเท่ากับการปิดระบบโดยสมบูรณ์ของเครือข่ายทั้งหมด

เมื่อวันจันทร์ที่ผ่านมาCertiK มอบรางวัล Bug Bounty มูลค่า 500,000 ดอลลาร์จาก SUI จากการค้นพบข้อบกพร่องด้านความปลอดภัยที่สำคัญ. CoinDesk ซึ่งเป็นสื่อที่เชื่อถือได้ในอุตสาหกรรมในสหรัฐอเมริกา รายงานเหตุการณ์ดังกล่าว จากนั้นสื่อหลัก ๆ ก็เผยแพร่ข่าวที่เกี่ยวข้องหลังจากรายงาน

ช่องโหว่ด้านความปลอดภัยนี้เรียกกันอย่างชัดเจนว่า Hamster Wheel: วิธีการโจมตีที่เป็นเอกลักษณ์นั้นแตกต่างจากการโจมตีที่ทราบในปัจจุบัน และผู้โจมตีจำเป็นต้องส่งเพย์โหลดประมาณ 100 ไบต์เท่านั้นเพื่อทริกเกอร์ลูปไม่สิ้นสุดในโหนดตรวจสอบ Sui ทำให้ไม่ตอบสนอง เพื่อทำธุรกรรมใหม่

นอกจากนี้ ความเสียหายที่เกิดจากการโจมตีสามารถดำเนินต่อไปได้หลังจากที่รีสตาร์ทเครือข่ายแล้ว และสามารถแพร่กระจายโดยอัตโนมัติในเครือข่าย Sui ทำให้โหนดทั้งหมดไม่สามารถประมวลผลธุรกรรมใหม่ เช่น หนูแฮมสเตอร์ที่ทำงานบนวงล้ออย่างไม่มีที่สิ้นสุด ดังนั้นเราจึงเรียกการโจมตีประเภทนี้ว่าการโจมตีแบบ วงล้อหนูแฮมสเตอร์

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

หลังจากค้นพบจุดบกพร่อง CertiK ได้รายงานจุดบกพร่องดังกล่าวให้ Sui ทราบผ่านทางโปรแกรมรางวัลจุดบกพร่องของ Sui Sui ยังตอบสนองอย่างมีประสิทธิภาพในครั้งแรก ยืนยันความร้ายแรงของช่องโหว่ และใช้มาตรการที่เกี่ยวข้องอย่างแข็งขันเพื่อแก้ไขปัญหาก่อนการเปิดตัว mainnet นอกเหนือจากการแก้ไขช่องโหว่นี้แล้ว Sui ยังดำเนินการบรรเทาเชิงป้องกันเพื่อลดความเสียหายที่อาจเกิดขึ้นจากช่องโหว่นี้

เพื่อเป็นการขอบคุณทีม CertiK สำหรับการเปิดเผยอย่างมีความรับผิดชอบ Sui จึงมอบเงินรางวัลจำนวน 500,000 ดอลลาร์ให้กับทีม CertiK

ชื่อระดับแรก

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

บทบาทสำคัญของผู้ตรวจสอบความถูกต้องในซุย

คำอธิบายรูปภาพ

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

ภัยคุกคามเพย์โหลดที่เป็นอันตรายในห่วงโซ่การเคลื่อนไหว

คำอธิบายรูปภาพ

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

คำสั่งของซุยในการตรวจสอบโหลด

ดังแสดงในรูปด้านบน การตรวจสอบส่วนใหญ่ในตัวตรวจสอบจะทำการตรวจสอบความปลอดภัยเชิงโครงสร้างกับ CompiledModule (แสดงถึงการดำเนินการของเพย์โหลดสัญญาที่ผู้ใช้ระบุ) ตัวอย่างเช่น ใช้ ตัวตรวจสอบรายการซ้ำ เพื่อให้แน่ใจว่าไม่มีรายการที่ซ้ำกันในเพย์โหลดรันไทม์ ใช้ ตัวตรวจสอบขีดจำกัด เพื่อให้แน่ใจว่าความยาวของแต่ละฟิลด์ในเพย์โหลดรันไทม์อยู่ภายในขีดจำกัดรายการสูงสุดที่อนุญาต

ชื่อระดับแรก

ทำความเข้าใจกับล่ามนามธรรมของ Move: การวิเคราะห์เชิงเส้นและแบบวนซ้ำ

Abstract Interpreter ซึ่งจัดทำโดย Move เป็นเฟรมเวิร์กที่ออกแบบมาโดยเฉพาะสำหรับการดำเนินการวิเคราะห์ความปลอดภัยที่ซับซ้อนบนโค้ดไบต์ผ่านการตีความเชิงนามธรรม กลไกนี้ทำให้กระบวนการตรวจสอบมีรายละเอียดและแม่นยำยิ่งขึ้น และผู้ตรวจสอบแต่ละรายได้รับอนุญาตให้กำหนดสถานะนามธรรมที่ไม่ซ้ำกันสำหรับการวิเคราะห์

เมื่อเริ่มต้น ล่ามนามธรรมจะสร้างกราฟควบคุมการไหล (CFG) จากโมดูลที่คอมไพล์แล้ว แต่ละบล็อกพื้นฐานใน CFG เหล่านี้จะรักษาชุดของสถานะ สถานะการสั่งซื้อล่วงหน้า และ สถานะหลังการสั่งซื้อ สถานะการสั่งซื้อล่วงหน้า จะให้ภาพรวมของสถานะของโปรแกรมก่อนการดำเนินการของบล็อกพื้นฐาน ในขณะที่ สถานะหลังการสั่งซื้อ จะให้คำอธิบายของสถานะของโปรแกรมหลังการดำเนินการของบล็อกพื้นฐาน

คำอธิบายรูปภาพ

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

ขั้นตอนการทำงานของล่ามนามธรรม Move

อย่างไรก็ตาม กระบวนการจะซับซ้อนมากขึ้นเมื่อมีลูปในโฟลว์การควบคุม การปรากฏตัวของวงจรหมายความว่ากราฟโฟลว์ควบคุมมีขอบกระโดดกลับ แหล่งที่มาของขอบกระโดดกลับสอดคล้องกับสถานะที่ตามมาของบล็อกพื้นฐานปัจจุบัน และบล็อกพื้นฐานเป้าหมาย (หัวลูป) ของการกระโดด- ขอบด้านหลังได้รับการวิเคราะห์ก่อนหน้านี้ ดังนั้น ล่ามนามธรรมจำเป็นต้องผสานสถานะของบล็อกพื้นฐานทั้งสองที่เกี่ยวข้องกับการกระโดดกลับอย่างระมัดระวัง

ชื่อระดับแรก

เครื่องมือตรวจสอบ Sui IDLeak: การวิเคราะห์การตีความเชิงนามธรรมที่กำหนดเอง

แพลตฟอร์มบล็อกเชนของ Sui แตกต่างจากการออกแบบ Move ดั้งเดิม โดยนำเสนอโมเดลการจัดเก็บข้อมูลระดับโลกที่มี เป้าหมาย ที่เป็นเอกลักษณ์ คุณลักษณะเด่นของโมเดลนี้คือ โครงสร้างข้อมูลใดๆ ที่มีคุณลักษณะคีย์ (จัดเก็บแบบออนไลน์เป็นดัชนี) ต้องมีประเภท ID เป็นฟิลด์แรกของโครงสร้าง ฟิลด์ ID จะไม่เปลี่ยนรูปและไม่สามารถถ่ายโอนไปยังอ็อบเจ็กต์อื่นได้ เนื่องจากแต่ละออบเจ็กต์ต้องมี ID ที่ไม่ซ้ำกันทั่วโลก เพื่อให้แน่ใจว่าคุณสมบัติเหล่านี้ Sui ได้สร้างชุดตรรกะการวิเคราะห์ที่กำหนดเองไว้ด้านบนของตัวแปลนามธรรม

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

ตัวตรวจสอบ IDLeak หรือที่เรียกว่า id_leak_verifier ทำงานร่วมกับตัวแปลเชิงนามธรรมเพื่อการวิเคราะห์ มี AbstractDomain ที่เป็นเอกลักษณ์ของตัวเองที่เรียกว่า AbstractState AbstractState แต่ละรายการประกอบด้วย AbstractValue ที่สอดคล้องกับตัวแปรภายในเครื่องหลายตัว สถานะของตัวแปรท้องถิ่นแต่ละตัวได้รับการตรวจสอบโดย AbstractValue เพื่อติดตามว่าตัวแปร ID เป็นตัวแปรใหม่หรือไม่

ชื่อระดับแรก

การบำรุงรักษาสถานะเครื่องมือตรวจสอบความถูกต้องของ Sui IDLeak ไม่สอดคล้องกัน

เครื่องมือตรวจสอบ IDLeak จะทำงานร่วมกับตัวแปลบทคัดย่อ Move โดยใช้ฟังก์ชัน AbstractState::join ฟังก์ชันนี้มีบทบาทสำคัญในการจัดการสถานะ โดยเฉพาะอย่างยิ่งในการผสานและอัปเดตค่าสถานะ

ตรวจสอบฟังก์ชันเหล่านี้โดยละเอียดเพื่อทำความเข้าใจการทำงานของฟังก์ชันเหล่านี้:

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

ใน AbstractState::join ฟังก์ชันจะใช้ AbstractState อื่นเป็นอินพุต และพยายามรวมสถานะท้องถิ่นกับสถานะท้องถิ่นของวัตถุปัจจุบัน สำหรับตัวแปรท้องถิ่นแต่ละตัวในสถานะอินพุต ระบบจะเปรียบเทียบค่าของตัวแปรนั้นกับค่าปัจจุบันในสถานะท้องถิ่น (ค่าเริ่มต้นเป็น AbstractValue::Other หากไม่พบ) หากทั้งสองค่าไม่เท่ากัน จะตั้งค่าสถานะ เปลี่ยนแปลง เป็นพื้นฐานว่าผลการรวมสถานะสุดท้ายมีการเปลี่ยนแปลงหรือไม่ และอัปเดตค่าตัวแปรท้องถิ่นในสถานะท้องถิ่นโดยการเรียก AbstractValue::join

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

ใน AbstractValue::join ฟังก์ชันจะเปรียบเทียบค่าของมันกับ AbstractValue อื่น หากเท่ากันก็จะคืนค่าที่ส่งเข้ามา ถ้าไม่เท่ากัน จะส่งกลับ AbstractValue::Other

อย่างไรก็ตาม ตรรกะการบำรุงรักษาสถานะนี้มีปัญหาความไม่สอดคล้องกันที่ซ่อนอยู่ แม้ว่า AbstractState::join จะส่งกลับผลลัพธ์ที่ระบุว่าสถานะที่ผสานมีการเปลี่ยนแปลง (JoinResult::Changed) ขึ้นอยู่กับความแตกต่างระหว่างค่าเก่าและค่าใหม่ ค่าสถานะที่อัปเดตหลังจากการผสานอาจยังคงไม่เปลี่ยนแปลง

ความไม่สอดคล้องกันนี้เกิดจากลำดับการดำเนินการ: การตัดสินใจเปลี่ยนสถานะใน AbstractState::join เกิดขึ้นก่อนการอัปเดตสถานะ (AbstractValue::join) และการตัดสินใจนี้ไม่ได้สะท้อนถึงผลลัพธ์การอัปเดตสถานะจริง

คำอธิบายรูปภาพ

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

ตัวอย่าง: ความไม่สอดคล้องกันของการเชื่อมต่อแบบมีสถานะ

สิ่งนี้ทำให้เกิดความไม่สอดคล้องกัน: ผลลัพธ์ของการรวมสถานะของบล็อกพื้นฐานถูกตัดสินว่า เปลี่ยนแปลง แต่ค่าสถานะที่ผสานนั้นไม่ได้เปลี่ยนแปลงไป ในกระบวนการวิเคราะห์การตีความเชิงนามธรรม ความไม่สอดคล้องกันดังกล่าวอาจมีผลกระทบร้ายแรง เราตรวจสอบพฤติกรรมของล่ามเชิงนามธรรมเมื่อมีวงจรเกิดขึ้นในกราฟกระแสควบคุม (CFG):

เมื่อพบการวนซ้ำ ล่ามนามธรรมจะใช้วิธีการวิเคราะห์แบบวนซ้ำเพื่อรวมสถานะของบล็อกพื้นฐานเป้าหมายการกระโดดกลับและบล็อกพื้นฐานปัจจุบัน หากสถานะที่ผสานเปลี่ยนแปลง ล่ามนามธรรมจะวิเคราะห์ใหม่โดยเริ่มจากเป้าหมายการข้าม

ชื่อระดับแรก

การใช้ประโยชน์จากความไม่สอดคล้องกันเพิ่มเติมจะกระตุ้นให้เกิดการวนซ้ำไม่รู้จบในตัวตรวจสอบ Sui IDLeak

คำอธิบายรูปภาพ

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

สถานะ CFG+ ที่เป็นอันตราย ซึ่งอาจนำไปสู่การวนซ้ำไม่สิ้นสุดภายในเครื่องมือตรวจสอบ IDLeak

กระบวนการนี้เริ่มต้นด้วย BB 2 โดยที่ AbstractValue ของตัวแปรเฉพาะที่ถูกกำหนดเป็น ::Other หลังจากดำเนินการ BB 2 โฟลว์จะย้ายไปที่ BB 3 โดยที่ตัวแปรเดียวกันถูกตั้งค่าเป็น ::Fresh ด้านท้ายของ BB 3 มีการกระโดดกลับขอบ กระโดดไปที่ BB 2

ความไม่สอดคล้องกันดังกล่าวข้างต้นมีบทบาทสำคัญในการตีความเชิงนามธรรมของตัวอย่างนี้ เมื่อประมวลผล back jump edge ล่ามนามธรรมจะพยายามเชื่อมต่อสถานะ postorder ของ BB 3 (พร้อมตัวแปร ::Fresh) กับสถานะ preorder ของ BB 2 (พร้อมตัวแปร ::Other) ฟังก์ชัน AbstractState::join จะสังเกตเห็นความแตกต่างระหว่างค่าเก่าและค่าใหม่ และตั้งค่าสถานะ เปลี่ยน เพื่อระบุว่าจำเป็นต้องวิเคราะห์ BB 2 อีกครั้ง

อย่างไรก็ตาม ลักษณะการทำงานที่โดดเด่นของ ::Other ใน AbstractValue::join หมายความว่าหลังจากรวม AbstractValue แล้ว ค่าที่แท้จริงของตัวแปรสถานะ BB 2 ยังคงเป็น ::Other และผลลัพธ์ของการผสานสถานะไม่มีการเปลี่ยนแปลง .

ดังนั้นเมื่อกระบวนการที่เป็นวัฏจักรนี้เริ่มต้นขึ้น กล่าวคือ ในขณะที่ผู้ตรวจสอบความถูกต้องยังคงวิเคราะห์ BB 2 อีกครั้งและโหนดบล็อกพื้นฐานที่ตามมาทั้งหมด (ในกรณีนี้คือ BB 3) มันก็จะดำเนินต่อไปอย่างไม่มีกำหนด การวนซ้ำแบบไม่มีที่สิ้นสุดจะใช้รอบของ CPU ที่มีอยู่ทั้งหมด ทำให้ไม่สามารถประมวลผลและตอบสนองต่อธุรกรรมใหม่ ซึ่งจะคงอยู่ในระหว่างการรีสตาร์ทตัวตรวจสอบความถูกต้อง

ด้วยการใช้ประโยชน์จากช่องโหว่นี้ การตรวจสอบความถูกต้องของโหนดจะทำงานอย่างไม่มีที่สิ้นสุดเหมือนแฮมสเตอร์บนวงล้อในวงวนไม่สิ้นสุด และไม่สามารถประมวลผลธุรกรรมใหม่ได้ ดังนั้นเราจึงเรียกการโจมตีประเภทนี้ว่าการโจมตีแบบ วงล้อหนูแฮมสเตอร์

การโจมตี วงล้อหนูแฮมสเตอร์ สามารถทำให้เครื่องมือตรวจสอบ Sui หยุดนิ่งได้อย่างมีประสิทธิภาพ ซึ่งจะทำให้เครือข่าย Sui ทั้งหมดล่ม

หลังจากที่เข้าใจสาเหตุของช่องโหว่และกระบวนการกระตุ้นแล้ว เราก็ประสบความสำเร็จในการกระตุ้นช่องโหว่ในการจำลองในโลกแห่งความเป็นจริงด้วยการสร้างตัวอย่างที่เป็นรูปธรรมโดยใช้การจำลอง Move bytecode ต่อไปนี้:

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

ชื่อระดับแรก

อันตรายอย่างต่อเนื่องจากการโจมตี วงล้อหนูแฮมสเตอร์ ในเครือข่ายซุย

โปรแกรม Bug Bounty ของ Sui มีกฎระเบียบที่เข้มงวดในการประเมินระดับช่องโหว่ โดยพิจารณาจากระดับความเสียหายที่เกิดกับเครือข่ายทั้งหมดเป็นหลัก ช่องโหว่ที่เข้าเกณฑ์ระดับ วิกฤติ จะต้องปิดเครือข่ายทั้งหมดและป้องกันการยืนยันธุรกรรมใหม่อย่างมีประสิทธิภาพ และต้องใช้ฮาร์ดฟอร์กเพื่อแก้ไขปัญหา (ปานกลาง)” หรือ “ความเสี่ยงสูง (สูง)”

คำอธิบายรูปภาพ

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

ภาพรวมของการโต้ตอบสำหรับการส่งธุรกรรมใน Sui

ในขั้นแรก ธุรกรรมผู้ใช้จะถูกส่งผ่าน RPC ส่วนหน้า และส่งต่อไปยังบริการส่วนหลังหลังจากการตรวจสอบขั้นพื้นฐาน บริการแบ็กเอนด์ Sui มีหน้าที่ตรวจสอบความถูกต้องของเพย์โหลดธุรกรรมขาเข้าเพิ่มเติม หลังจากตรวจสอบลายเซ็นของผู้ใช้สำเร็จแล้ว ธุรกรรมจะถูกแปลงเป็นใบรับรองธุรกรรม (ประกอบด้วยข้อมูลธุรกรรมและลายเซ็นของ Sui)

ใบรับรองธุรกรรมเหล่านี้เป็นส่วนพื้นฐานของการทำงานของเครือข่าย Sui และสามารถเผยแพร่ไปยังโหนดตรวจสอบต่างๆ ในเครือข่ายได้ สำหรับธุรกรรมการสร้าง/อัปเกรดสัญญา ก่อนที่จะอัปโหลดไปยังห่วงโซ่ได้ โหนดการตรวจสอบจะเรียกผู้ตรวจสอบ Sui เพื่อตรวจสอบและตรวจสอบความถูกต้องของโครงสร้างสัญญา/ความหมายของใบรับรองเหล่านี้ ในระหว่างขั้นตอนการตรวจสอบที่สำคัญนี้เองที่ช่องโหว่ infinite loop สามารถถูกกระตุ้นและโจมตีได้

ชื่อระดับแรก

ทางออกของซุย

หลังจากได้รับคำติชมจาก CertiK แล้ว Sui ก็ยืนยันช่องโหว่ทันทีและออกการแก้ไขเพื่อแก้ไขข้อบกพร่องร้ายแรง การแก้ไขนี้ช่วยให้มั่นใจได้ถึงความสอดคล้องกันระหว่างการเปลี่ยนแปลงสถานะและแฟล็กหลังการเปลี่ยนแปลง โดยลบผลกระทบร้ายแรงจากการโจมตี วงล้อหนูแฮมสเตอร์

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึกเพื่อลบความไม่สอดคล้องกันข้างต้น การแก้ไขของ Sui ได้รวมการปรับแต่งเล็กน้อยแต่สำคัญในฟังก์ชัน AbstractState::join โปรแกรมปรับปรุงนี้จะลบตรรกะในการพิจารณาผลลัพธ์ของการรวมสถานะก่อนที่จะดำเนินการ AbstractValue::join และดำเนินการฟังก์ชัน AbstractValue::join แทนก่อนสำหรับการรวมสถานะ และตั้งค่าว่าการรวมจะเกิดขึ้นหรือไม่โดยการเปรียบเทียบผลลัพธ์การอัปเดตขั้นสุดท้ายกับค่าสถานะดั้งเดิม (old_value) เปลี่ยนมาร์กอัป

ด้วยวิธีนี้ ผลลัพธ์ของการรวมสถานะจะสอดคล้องกับผลลัพธ์ของการอัปเดตจริง และจะไม่เกิดการวนซ้ำแบบไม่มีที่สิ้นสุดในระหว่างกระบวนการวิเคราะห์

นอกเหนือจากการแก้ไขช่องโหว่เฉพาะนี้แล้ว Sui ยังปรับใช้การบรรเทาเพื่อลดผลกระทบจากช่องโหว่ของเครื่องมือตรวจสอบในอนาคต ตามการตอบสนองของ Sui ในรายงานข้อผิดพลาด การบรรเทาผลกระทบเกี่ยวข้องกับคุณลักษณะที่เรียกว่า Denylist

อย่างไรก็ตาม เครื่องมือตรวจสอบความถูกต้องจะมีโปรไฟล์โหนดที่อนุญาตให้ปฏิเสธธุรกรรมบางประเภทได้ชั่วคราว การกำหนดค่านี้สามารถใช้เพื่อปิดการประมวลผลการเปิดตัวและการอัปเกรดแพ็คเกจชั่วคราว เนื่องจากข้อผิดพลาดนี้เกิดขึ้นเมื่อรันตัวตรวจสอบ Sui ก่อนที่จะลงนามรุ่น tx หรืออัปเกรดแพ็คเกจ และรายการปฏิเสธจะหยุดตัวตรวจสอบไม่ให้ทำงานและปล่อย tx ที่เป็นอันตราย การปฏิเสธรายการประเภท tx เหล่านี้ชั่วคราวเป็นการบรรเทาผลกระทบที่มีประสิทธิภาพ 100% (แม้ว่าจะ รบกวนบริการชั่วคราวสำหรับผู้ที่พยายามเผยแพร่หรืออัปเกรดรหัส)

บังเอิญ เรามีไฟล์การกำหนดค่ารายการปฏิเสธ TX นี้มาระยะหนึ่งแล้ว แต่เรายังได้เพิ่มกลไกที่คล้ายกันสำหรับใบรับรองเพื่อเป็นการบรรเทาผลกระทบต่อช่องโหว่ validator loop ที่คุณรายงานก่อนหน้านี้ ด้วยกลไกนี้ เราจะมีความยืดหยุ่นมากขึ้นในการต่อต้านการโจมตีนี้: เราจะใช้การกำหนดค่ารายการปฏิเสธใบรับรองเพื่อทำให้ผู้ตรวจสอบลืมใบรับรองที่ไม่ถูกต้อง (ทำลายลูปไม่สิ้นสุด) และการกำหนดค่ารายการปฏิเสธ TX เพื่อไม่อนุญาตให้เผยแพร่/อัปเกรด ดังนั้นจึงป้องกันการสร้าง ธุรกรรมการโจมตีที่เป็นอันตรายใหม่ ขอบคุณที่ทำให้เราคิดถึงเรื่องนี้!

ผู้ตรวจสอบความถูกต้องมีจำนวนจำกัด"ticks"(ไม่เหมือนแบบแก๊ส) ใช้สำหรับการตรวจสอบ bytecode หาก bytecode ทั้งหมดที่ออกในธุรกรรมไม่สามารถตรวจสอบได้ในหลายๆ ขีดนี้ เครื่องมือตรวจสอบจะปฏิเสธที่จะลงนามในธุรกรรม เพื่อป้องกันไม่ให้ดำเนินการบนเครือข่าย ก่อนหน้านี้ การวัดแสงมีผลกับชุดบัตรผ่านตรวจสอบที่ซับซ้อนที่เลือกไว้เท่านั้น เพื่อต่อสู้กับสิ่งนี้ เราได้ขยายการวัดไปยังเครื่องมือตรวจสอบความถูกต้องแต่ละตัวเพื่อรับประกันข้อจำกัดในงานที่เครื่องมือตรวจสอบดำเนินการระหว่างการตรวจสอบความถูกต้องแต่ละครั้ง นอกจากนี้เรายังแก้ไขข้อบกพร่องของวงวนไม่สิ้นสุดที่อาจเกิดขึ้นในตัวตรวจสอบการรั่วไหลของ ID

- หมายเหตุจากนักพัฒนา Sui เกี่ยวกับการแก้ไขข้อบกพร่อง

สรุป

CertiK: ช่องโหว่ล่าสุดของ วงล้อหนูแฮมสเตอร์ ของ Sui รายละเอียดทางเทคนิค และการวิเคราะห์เชิงลึก

สรุป

ในบทความนี้ เราแบ่งปันรายละเอียดทางเทคนิคของการโจมตี วงล้อหนูแฮมสเตอร์ ที่ค้นพบโดยทีม CertiK Skyfall โดยอธิบายว่าการโจมตีครั้งใหม่นี้ใช้ประโยชน์จากช่องโหว่ที่สำคัญเพื่อทำให้เครือข่าย Sui ปิดระบบโดยสมบูรณ์ได้อย่างไร นอกจากนี้ เรายังพิจารณาการตอบสนองอย่างทันท่วงทีของ Sui เพื่อแก้ไขปัญหาที่สำคัญนี้อย่างละเอียดยิ่งขึ้น และแบ่งปันการแก้ไขช่องโหว่และวิธีการบรรเทาผลกระทบที่ตามมาสำหรับช่องโหว่ที่คล้ายกัน

บทความต้นฉบับ, ผู้เขียน:CertiK。พิมพ์ซ้ำ/ความร่วมมือด้านเนื้อหา/ค้นหารายงาน กรุณาติดต่อ report@odaily.email;การละเมิดการพิมพ์ซ้ำกฎหมายต้องถูกตรวจสอบ

ODAILY เตือนขอให้ผู้อ่านส่วนใหญ่สร้างแนวคิดสกุลเงินที่ถูกต้องและแนวคิดการลงทุนมอง blockchain อย่างมีเหตุผลและปรับปรุงการรับรู้ความเสี่ยงอย่างจริงจัง สำหรับเบาะแสการกระทำความผิดที่พบสามารถแจ้งเบาะแสไปยังหน่วยงานที่เกี่ยวข้องในเชิงรุก

การอ่านแนะนำ
ตัวเลือกของบรรณาธิการ