เตือนภัยสาย ฮาร์ดแวร์วอลเล็ต เจอบั๊กเฟิร์มแวร์ สุ่มรหัสพลาด ทำ Bitcoin สูญ 3,000 ล้าน เพราะบักจากเฟิร์มแวร์บนตัวอุปกรณ์ดัง
หลายคนรู้ดีว่า จุดประสงค์หลักของการใช้งานฮาร์ดแวร์วอลเล็ต คือการเก็บรักษากุญแจส่วนตัว ไว้ในพื้นที่ที่ตัดขาดจากโลกอินเทอร์เน็ต เพื่อไม่ให้การโจมตีใดๆ เข้าถึงได้
Techhub จะพาทุกคนไปดูเหตุการณ์ล่าสุด ที่สร้างแรงสั่นสะเทือนไปทั่ววงการคริปโต เมื่อมีการตรวจพบ ช่องโหว่ Coldcard ในระดับเฟิร์มแวร์ที่ติดมากับอุปกรณ์ตั้งแต่ปี 2021 โดยเป็นช่องโหว่ใน ฮาร์ดแวร์วอลเล็ต
ช่องโหว่นี้เปิดโอกาสให้แฮกเกอร์ สามารถคาดเดาชุดคำสุ่มได้จากระยะไกล โดยไม่ต้องสัมผัสตัวเครื่อง ไม่ต้องใช้กลโกงหลอกเอาข้อมูล และไม่ต้องพึ่งมัลแวร์ใดๆ ส่งผลให้บิตคอยน์ถูกโอนออกไปแล้วรวมมูลค่ากว่า 88 ล้านดอลลาร์สหรัฐ หรือคิดเป็นเงินไทยราว 3,000 ล้านบาท จากกระเป๋าเงินหลายพันใบ
1. 41 นาทีที่ Bitcoin หายไปกว่า 70 ล้านดอลลาร์
เรื่องราวเริ่มแดงขึ้นเมื่อวันที่ 30 กรกฎาคม โดยพบการโอนบิตคอยน์ออกจากกระเป๋าเงินจำนวน 1,196 Address ภายในระยะเวลาเพียง 41 นาที คิดเป็นจำนวนมากถึง 1,082.65 BTC (มูลค่าประมาณ 70.2 ล้านดอลลาร์ในขณะนั้น)
จากการวิเคราะห์ของ Galaxy Research พบว่ารูปแบบการกวาดโอนเหรียญอย่างเป็นระบบนี้ไม่ได้เกิดจากเหตุบังเอิญ แต่ชี้ตรงไปยังปัญหาในเฟิร์มแวร์ของ Coldcard ซึ่งเป็นฮาร์ดแวร์วอลเล็ตชั้นนำจากบริษัท Coinkite หลังจากนั้นยังพบการกวาดโอนเหรียญระลอกที่สองและสามตามมา ส่งผลให้ยอดความเสียหายรวมพุ่งสูงถึง 1,367.05 BTC จากกระเป๋าเงินกว่า 4,585 ที่อยู่ และยังมีแนวโน้มเพิ่มขึ้นจากการสืบสวนบนบล็อกเชน (Blockchain)
เบื้องหลัง ช่องโหว่ Coldcar เมื่อระบบสุ่มรหัสไม่ได้ “สุ่ม” จริง
รากเหง้าของปัญหาเกิดจากความผิดพลาดในการตั้งค่ารหัสคำสั่ง ระหว่างการเขียนเฟิร์มแวร์ในเดือนมีนาคม 2021
โดยปกติแล้ว ฮาร์ดแวร์วอลเล็ตต้องใช้อุปกรณ์กำเนิดตัวเลขสุ่มระดับฮาร์ดแวร์ หรือ Hardware Random Number Generator – RNG เพื่อสร้างรหัสเริ่มต้นที่ไม่สามารถคาดเดาได้
แต่โค้ดในเฟิร์มแวร์กลับมีจุดบกพร่อง โดยไลบรารีซอฟต์แวร์ที่ทำหน้าที่ตรวจสอบ เพียงแค่เช็กว่า มีชื่อการตั้งค่าเปิดใช้ Hardware RNG หรือไม่ แทนที่จะเช็กว่า ระบบสุ่มระดับฮาร์ดแวร์กำลังทำงานอยู่จริงหรือไม่
เมื่อคำสั่งทำงานผิดพลาด ตัวเครื่องจึงสลับไปใช้ระบบสร้างตัวเลขสุ่มเทียมผ่านซอฟต์แวร์โดยอัตโนมัติ ซึ่งใช้ข้อมูลพื้นฐานประจำเครื่องและเวลาเริ่มต้นระบบในการคำนวณ
แม้ตัวเลขที่ปรากฏบนหน้าจอจะดูเหมือนสุ่มอย่างสมบูรณ์แบบ แต่ในทางคณิตศาสตร์แล้ว ตัวเลขเหล่านั้นสามารถคาดเดาและคำนวณย้อนกลับได้ โดยแฮกเกอร์เพียงแค่ประมวลผลข้อมูลระบุตัวตนอุปกรณ์ และสถานะนาฬิกาของเครื่อง ก็สามารถจำลองคำตอบของ Seed Phrase ที่อาจเกิดขึ้นได้ทั้งหมดผ่านคอมพิวเตอร์ทั่วไป แล้วนำไปเปรียบเทียบกับข้อมูลสาธารณะบนบล็อกเชนเพื่อดึงกุญแจส่วนตัวออกมา
“Seed Phrase คือ ชุดคำศัพท์สุ่ม (มักจะมี 12 ถึง 24 คำ) ที่ถูกสร้างขึ้นมาเพื่อใช้เป็นกุญแจหลักในการเข้าถึงและควบคุมกระเป๋าเงินคริปโท” เป็นกุญแจดอกเดียวที่ใช้คำนวณสร้าง Private Key (กุญแจส่วนตัว) สำหรับโอนเหรียญทั้งหมดในกระเป๋าใบนั้น ใครก็ตามที่มี Seed Phrase ชุดนี้ จะสามารถดึงเอาเงินทั้งหมดในกระเป๋าไปได้ทันทีจากระยะไกล โดยไม่จำเป็นต้องมีตัวเครื่อง Hardware Wallet อยู่ในมือด้วยซ้ำ
- รุ่น Mk3 ความซับซ้อนลดลงเหลือเพียง 40 บิต
- รุ่น Mk4, Mk5 และ Q ความซับซ้อนลดลงเหลือเพียง 72 บิต
- 40 บิต เปรียบเหมือนแม่กุญแจที่มีรหัสหมุนประมาณ 1 ล้านล้านรูปแบบ ซึ่งคอมพิวเตอร์ทั่วไปสามารถถอดรหัสผ่านด้วยการสุ่มทดสอบ ได้ในเวลาเพียงไม่กี่ชั่วโมง
- 72 บิต เปรียบเหมือนแม่กุญแจขนาดใหญ่ขึ้น แม้นักสุ่มรหัสทั่วไปจะเจาะไม่ได้ แต่สำหรับแฮกเกอร์ที่มีกำลังการคำนวณสูง ถือว่าไม่ใช่เรื่องยาก
- 128 บิต ซึ่งเป็นมาตรฐานปลอดภัยตามปกติ เปรียบเหมือนแม่กุญแจระดับมาตรฐานของ Seed 12 คำ ซึ่งต้องใช้เวลาคำนวณยาวนานมาก ๆ จึงจะสามารถถอดรหัสได้
โดยปกติ Seed Phrase จะต้องถูกสร้างขึ้นมาด้วยกระบวนการสุ่มที่คาดเดาไม่ได้เลย (มีความซับซ้อนระดับ 128 บิตขึ้นไป) เพื่อให้ไม่มีคอมพิวเตอร์เครื่องไหนในโลกสามารถเดาคำเรียงกัน 12-24 คำนั้นได้
สิ่งที่พลาดใน Coldcard เกิดบั๊ก ที่ทำให้ตัวเครื่องไม่ได้สุ่มรหัสผ่านฮาร์ดแวร์จริงๆ แต่ไปใช้ซอฟต์แวร์สุ่มแทน ซึ่งใช้ข้อมูลเวลาและเลขเครื่องมาคำนวณ ผลคือ ความซับซ้อนในการสุ่มลดลงเหลือแค่ 40-72 บิต
แฮกเกอร์จึงใช้คอมพิวเตอร์ประมวลผลสูง รันโปรแกรมคำนวณย้อนกลับเพื่อ สุ่มเดาชุดคำ Seed Phrase ทั้งหมดที่เป็นไปได้ แล้วนำไปเปิดกระเป๋าเพื่อโอน Bitcoin ออกมาได้ง่ายๆ นั่นเอง
แม้ว่า Coinkite จะออกเฟิร์มแวร์ฉุกเฉินเพื่อแก้ไขปัญหานี้แล้วเมื่อวันที่ 31 กรกฎาคม แต่การอัปเดตเฟิร์มแวร์เพียงอย่างเดียวไม่สามารถแก้ไข Seed Phrase ที่ถูกสร้างขึ้นไปแล้วได้
- อัปเดตเฟิร์มแวร์เป็นเวอร์ชันล่าสุด (Mk3 เวอร์ชัน 4.2.0 ขึ้นไป, Mk4/Mk5 เวอร์ชัน 5.6.0 ขึ้นไป, Q เวอร์ชัน 1.5.0Q ขึ้นไป)
- สร้าง Seed Phrase ชุดใหม่ขึ้นมาใหม่ทั้งหมด บนเฟิร์มแวร์ฉบับแก้ไขแล้ว
- ทำการโอนย้ายสินทรัพย์ทั้งหมด จากกระเป๋าเดิมไปยังกระเป๋าใหม่ทันที
หาก Seed Phrase เดิมถูกสร้างโดยใช้การทอยลูกเต๋าอย่างน้อย 50 ครั้งด้วยตนเอง หรือมีการใช้งานการลงลายมือชื่อแบบหลายอุปกรณ์ ที่ใช้อุปกรณ์ต่างระบบกัน จะไม่ได้รับผลกระทบโดยตรงจากช่องโหว่นี้ อย่างไรก็ตาม หากไม่มั่นใจในขั้นตอนการสร้างรหัสเดิม ผู้ผลิตแนะนำให้ย้ายสินทรัพย์ไปยัง Seed Phrase ใหม่เพื่อความปลอดภัยสูงสุด
เหตุการณ์นี้สะท้อนให้เห็นว่าความมั่นใจในระบบการจัดเก็บสินทรัพย์ด้วยตนเอง อาจไม่เพียงพอ หากฐานรากอย่างกระบวนการสร้างรหัสสุ่มในอุปกรณ์ฮาร์ดแวร์เกิดความบกพร่อง
สำหรับผู้ใช้งานทั่วไป ปัญหานี้สร้างความตระหนักรู้ว่าความปลอดภัยขั้นสูงสุด ไม่มีอยู่จริงหากขาดการตรวจสอบรหัสโค้ดอย่างรัดกุม
ดังนั้น ผู้ถือครองสินทรัพย์ดิจิทัลจึงไม่ควรกระจายความเสี่ยงไว้ที่อุปกรณ์หรือระบบเดียว แต่ควรศึกษาโครงสร้างการสร้างรหัสผ่าน พิจารณาการใช้ระบบลงลายมือชื่อหลายส่วน และติดตามข่าวสารด้านความปลอดภัยของเฟิร์มแวร์อย่างสม่ำเสมอ เพื่อลดความเสี่ยงจากการถูกโจมตีที่คาดไม่ถึงในอนาคต
ที่มา








