ผู้โจมตีฉวยช่องโหว่จากซีด (seed) ที่ถูกสร้างด้วยความสุ่มที่อ่อนแอจากฮาร์ดแวร์วอลเล็ต Coldcard บางรุ่น เพื่อขโมยบิตคอยน์มูลค่าราวหลายสิบล้านดอลลาร์จากที่อยู่นับร้อยเมื่อวันที่ 30 กรกฎาคม
อธิบายช่องโหว่ Coldcard: ใครสูญเสียบิตคอยน์ และใครบ้างที่มีความเสี่ยง

ประเด็นสำคัญ
- การโจรกรรมที่เชื่อมโยงกับ Coldcard ดูดบิตคอยน์ออกจากวอลเล็ตหลายร้อยใบเมื่อวันที่ 30 กรกฎาคม
- Coinkite ระบุว่า seed ของ Mk3 มีเอนโทรปีราว 40 บิต แทนที่จะเป็น 128
- ผู้ใช้ Coldcard ต้องติดตั้งเฟิร์มแวร์ที่แก้ไขแล้วและสร้าง seed ใหม่ก่อนย้ายเงิน
ตามการวิเคราะห์เชิงลึกจาก Galaxy Research การขโมยหลักเกิดขึ้นเป็นระลอกที่ประสานกันอย่างแน่นหนา ใช้เวลาราว 25 นาที ขณะที่การวิเคราะห์ในวงกว้างภายหลังเชื่อมโยงที่อยู่ประมาณ 1,196 ที่อยู่ และมากถึง 1,083 บิตคอยน์ ซึ่งมีมูลค่าเกือบ 70 ล้านดอลลาร์ กับกิจกรรมที่กินเวลาประมาณ 41 นาที ตัวเลขสุดท้ายอาจเปลี่ยนแปลงได้เมื่อผู้สืบสวนยังคงไล่ตามร่องรอยธุรกรรมบนบล็อกเชนบิตคอยน์สาธารณะต่อไป
บั๊กอายุ 5 ปีลามไปถึงวอลเล็ตบิตคอยน์ทั่วโลก
วอลเล็ตที่ได้รับผลกระทบส่วนใหญ่เป็นของผู้ถือระยะยาวที่สร้าง recovery seed โดยใช้ อุปกรณ์ Coldcard ที่รันเฟิร์มแวร์ซึ่งมีช่องโหว่ ซึ่งปล่อยตั้งแต่เดือนมีนาคม 2021 เป็นต้นมา Coldcard เป็นฮาร์ดแวร์วอลเล็ตแบบแยกจากเครือข่าย (air-gapped) ผลิตโดย Coinkite ผู้ผลิตจากแคนาดา และออกแบบมาเพื่อแยกคีย์ของบิตคอยน์ (BTC) ออกจากอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ต
หลายที่อยู่ที่ถูกดูดเงินออกนั้นไม่มีการเคลื่อนไหวมาหลายปี ผู้โจมตีดำเนินการอย่างรวดเร็ว จ่ายค่าธรรมเนียมธุรกรรมแบบคงที่ในระดับสูง และไม่สร้างเอาต์พุตเงินทอน (change outputs) ซึ่งหมายความว่าแต่ละที่อยู่ถูกกวาดออกจนหมด รูปแบบดังกล่าวบ่งชี้ถึงปฏิบัติการอัตโนมัติที่ใช้รายการคีย์ส่วนตัวที่เตรียมไว้ล่วงหน้า มากกว่าที่ลูกค้าจะย้ายเงินของตนเองโดยอิสระ
การโจรกรรมครั้งนี้ไม่ได้เกิดจากฟิชชิง มัลแวร์บนคอมพิวเตอร์ของผู้ใช้ การขโมยอุปกรณ์ทางกายภาพ หรือการเจาะระบบจากระยะไกลแบบทั่วไป แต่เป็นความผิดพลาดของเฟิร์มแวร์ที่ทำให้ความสุ่มที่ใช้เมื่ออุปกรณ์ Coldcard บางเครื่องสร้าง seed ของวอลเล็ตอ่อนแอลง Seed เหล่านั้นดูปกติ แต่กลับมาจากช่วงความเป็นไปได้ที่เล็กกว่าที่ผู้ใช้ถูกสัญญาไว้มาก
ตัวสร้างเลขสุ่มของ Coldcard ล้มเหลวแบบเงียบๆ
Seed ของวอลเล็ตบิตคอยน์คือความลับที่มักแสดงเป็นคำ 12 หรือ 24 คำ ซึ่งวอลเล็ตใช้สร้างที่อยู่และคีย์ส่วนตัว Seed 12 คำที่สร้างอย่างถูกต้องจะมีเอนโทรปี 128 บิต ซึ่งเป็นตัวชี้วัดทางเทคนิคที่บอกถึงจำนวนชุดค่าที่เป็นไปได้มหาศาล ทำให้การเดา seed แทบเป็นไปไม่ได้
เดิมทีอุปกรณ์ Coldcard ควรดึงความสุ่มจากตัวสร้างเลขสุ่มแบบฮาร์ดแวร์ที่อยู่ในไมโครคอนโทรลเลอร์ของอุปกรณ์ ซึ่งอาศัยสัญญาณรบกวนไฟฟ้าตามธรรมชาติที่ผู้สังเกตจากภายนอกไม่ควรคาดเดาได้
อย่างไรก็ตาม ระหว่างการย้ายไลบรารีซอฟต์แวร์ในปี 2021 Coinkite เปิดเผยว่าฟังก์ชันสุ่มตัวเลขสองตัว ที่มีอินเทอร์เฟซเหมือนกันเกิดความสับสน ฟังก์ชันหนึ่งเข้าถึงตัวสร้างฮาร์ดแวร์ที่ถูกต้องของอุปกรณ์ อีกฟังก์ชันเป็นตัวสำรองแบบซอฟต์แวร์ที่อ่อนแอ ซึ่งตั้งใจใช้กับบอร์ดที่ไม่มีฮาร์ดแวร์ที่เหมาะสม
การตั้งค่าคอนฟิกหนึ่งทำให้เส้นทางฮาร์ดแวร์เริ่มต้นของ MicroPython ถูกปิดใช้งาน เพราะ Coinkite จัดเตรียมฮาร์ดแวร์แรปเปอร์ของตนเอง ซอฟต์แวร์ตรวจสอบเพียงว่ามีการตั้งค่านั้นอยู่หรือไม่ ไม่ได้ตรวจสอบว่าเปิดใช้งานหรือไม่ เนื่องจากการตั้งค่านั้นมีอยู่จริงแต่ถูกกำหนดค่าเป็นศูนย์ การบิลด์จึงเสร็จสมบูรณ์สำเร็จ ขณะที่การสร้าง seed เปลี่ยนไปใช้ตัวสร้างแบบซอฟต์แวร์ที่อ่อนแอกว่าโดยไม่มีการแจ้งเตือน
ข้อมูลจากโรงงานและจังหวะเวลาแทนที่ความสุ่มแท้จริง
ตัวสำรองดังกล่าวพึ่งพาข้อมูลที่คาดเดาได้ของอุปกรณ์เป็นหลัก รวมถึงตัวระบุชิปที่คล้ายหมายเลขซีเรียล และค่าจากนาฬิกาภายในที่เกี่ยวข้องกับเวลาเริ่มต้นระบบ ผู้โจมตีที่สามารถจำกัดอินพุตเหล่านี้ได้จะต้องเผชิญกับการค้นหาที่เล็กกว่าช่วง 128 บิตที่คาดหวังจาก seed ที่สร้างอย่างปลอดภัยมาก
Coinkite ประเมินว่าพื้นที่ค้นหาที่มีผลจริงสำหรับ seed ของ Mk3 ที่มีช่องโหว่ อยู่ที่ราว 40 บิตภายใต้สมมติฐานปัจจุบัน แม้จะยังเป็นจำนวนความเป็นไปได้ที่มาก แต่ก็สามารถค้นหาได้ด้วยอุปกรณ์คอมพิวติ้งเฉพาะทาง โดยเฉพาะเมื่อผู้โจมตีสามารถเทียบ seed ผู้สมัครกับ ที่อยู่บิตคอยน์ที่มองเห็นได้บนบล็อกเชน

รุ่น Coldcard ที่ใหม่กว่า รวมถึง Mk4, Q และ Mk5 ได้เพิ่มความสุ่มบางส่วนจากซีเคียวร์เอลิเมนต์ (secure element) อย่างไรก็ตาม มีเพียงส่วนจำกัดเท่านั้นที่ส่งไปถึงตัวสร้างที่ได้รับผลกระทบ ทำให้ประเมินว่า seed ที่สร้างก่อนติดตั้งเฟิร์มแวร์ที่แก้ไขแล้วมีเอนโทรปีที่มีผลจริงราว 72 บิต ซึ่งแข็งแรงกว่ากรณีของ Mk3 แต่ยังต่ำกว่ามาตรฐาน 128 บิตที่ตั้งใจไว้
ความแตกต่างนี้คล้ายกับการแทนที่รหัสล็อกที่สุ่มจริงด้วยรหัสที่ได้มาจากหมายเลขซีเรียลของกุญแจล็อกและเวลาที่เปิดใช้งานครั้งแรก รหัสที่ได้อาจดูเหมือนสุ่ม แต่คนที่รู้สูตรและสามารถประเมินข้อมูลตั้งต้นก็สามารถสร้างซ้ำได้ ผู้ใช้จำนวนมากกำลังย้ายออก ไม่เพียงจากอุปกรณ์ Mk3 แต่รวมถึง Mk4, Q และ Mk5 ด้วยเช่นกัน
Coinkite แจ้งผู้ใช้ให้สร้าง seed ใหม่ทั้งหมด
Coinkite ออกประกาศแจ้งเตือนด้านความปลอดภัย และ ปล่อยเฟิร์มแวร์ที่แก้ไขแล้วหลังรับรู้ ถึงภัยคุกคามที่กำลังเกิดขึ้น บริษัทระบุว่าผู้ใช้ที่สร้าง seed บนเฟิร์มแวร์ที่ได้รับผลกระทบควรสร้าง seed ใหม่ทั้งหมดด้วยเวอร์ชันที่แก้ไขแล้ว และโอนบิตคอยน์ไปยังที่อยู่ที่ควบคุมโดย seed นั้น
การติดตั้งอัปเดตอย่างเดียวไม่เพียงพอ Seed ที่ถูกสร้างภายใต้ระบบที่ผิดพลาดจะอ่อนแออย่างถาวร เพราะการอัปเดตเฟิร์มแวร์ไม่สามารถเพิ่มความสุ่มให้กับคำที่มีอยู่แล้วได้
Coinkite แนะนำให้ผู้ใช้อัปเดตอุปกรณ์ สร้าง seed ใหม่ ตรวจสอบแบ็กอัปและลายนิ้วมือวอลเล็ต (wallet fingerprint) ยืนยันที่อยู่ปลายทาง ส่งธุรกรรมทดสอบจำนวนเล็กน้อย จากนั้นจึงย้ายยอดคงเหลือที่เหลือ ผู้ใช้ควรเก็บแบ็กอัปเก่าไว้จนกว่าจะยืนยันการโอนเสร็จ แต่ไม่ควรถือว่า seed เก่ายังปลอดภัยอีกต่อไป
บริษัทระบุรุ่นที่แก้ไขแล้ว ได้แก่ Mk3 เวอร์ชัน 4.2.0 ขึ้นไป, Mk4 และ Mk5 เวอร์ชัน 5.6.0 ขึ้นไป, และ Q เวอร์ชัน 1.5.0Q ขึ้นไป รวมถึงเวอร์ชัน Edge ที่สอดคล้องกัน ผลิตภัณฑ์ Tapsigner, Opendime และ Satscard ใช้โค้ดคนละชุดและรายงานว่าไม่ได้รับผลกระทบ
การเพิ่มความปลอดภัยช่วยปกป้องเจ้าของ Coldcard บางราย
ผู้ใช้ที่เพิ่มการทอยลูกเต๋าแบบอิสระจำนวนมากพอเมื่อสร้าง seed จะได้รับการปกป้องอย่างมีนัยสำคัญ เพราะความสุ่มจากผู้ใช้เองกลบอินพุตจากซอฟต์แวร์ที่บกพร่อง Coinkite ระบุว่าอย่างน้อย 50 ครั้งของการทอยลูกเต๋าที่ยุติธรรมให้การปกป้องที่เพียงพอจากปัญหานี้ แม้ว่าการทอยเพิ่มจะให้ระยะเผื่อความปลอดภัยที่กว้างขึ้น
พาสเฟรส BIP-39 ที่แข็งแรงยังสร้างวอลเล็ตแยกอีกใบที่ไม่สามารถกู้คืนได้จากคำ seed เพียงอย่างเดียว วอลเล็ตแบบหลายลายเซ็น (multi-signature) ซึ่งต้องใช้คีย์จากหลายอุปกรณ์ หรือหลายสถานที่ก่อนที่บิตคอยน์จะเคลื่อนย้ายได้ โดยมากแล้วได้รับการปกป้องทั้งหมดหรือเกือบทั้งหมด เมื่อ seed ของ Coldcard ที่มีช่องโหว่เป็นเพียงส่วนหนึ่งของการลงนาม
อย่างไรก็ตาม มาตรการป้องกันเหล่านั้นเป็นตัวเลือก ผู้เสียหายจำนวนมากดูเหมือนจะทำตามคำแนะนำด้านความปลอดภัยมาตรฐานที่มีในเวลานั้น: ซื้อฮาร์ดแวร์วอลเล็ตที่น่าเชื่อถือ สร้าง seed แบบออฟไลน์ ปกป้องแบ็กอัป และไม่ป้อน seed ลงในอุปกรณ์ที่เชื่อมต่ออินเทอร์เน็ต
Coinkite ยอมรับความผิด ขณะการถกเถียงหันไปที่ AI
ซีอีโอ Coinkite Rodolfo Novak ซึ่งเป็นที่รู้จักกันอย่างกว้างขวางในชื่อ NVK ขอโทษต่อสาธารณะเมื่อวันที่ 31 กรกฎาคม และกล่าวว่าบริษัทรับผิดชอบเต็มที่ต่อความล้มเหลวของเฟิร์มแวร์ “ผมขอโทษและผมใจสลาย ทีมของเราหัวใจสลายกับข่าวเมื่อวานนี้” Novak เขียน เขายอมรับว่าฮอตฟิกซ์ช่วยทำให้ seed ที่สร้างใหม่ปลอดภัย แต่ไม่สามารถซ่อมแซม seed ที่สร้างด้วยซอฟต์แวร์ที่มีช่องโหว่ได้

Novak อธิบายว่า Coinkite จะเผยแพร่รายงานทางเทคนิคฉบับเต็มหลังตรวจสอบรายละเอียดให้แน่ชัด และจะช่วยเหลือผู้ใช้ที่ได้รับผลกระทบซึ่งต้องการทำบันทึกแจ้งความ เรียกร้องค่าสินไหมประกัน หรือดำเนินการสืบสวนอิสระ เขายังเตือนนักพัฒนาว่าเครื่องมือ ปัญญาประดิษฐ์ (AI) สามารถสแกนโค้ดสาธารณะเก่าเพื่อหาจุดอ่อนได้เร็วกว่า กระบวนการรีวิวแบบดั้งเดิมอาจตรวจพบได้
Coinkite เน้นย้ำว่าจำเป็นต้องสมมติว่าผู้โจมตีใช้ AI ตรวจสอบเฟิร์มแวร์โอเพ่นซอร์สของบริษัท แม้ยังไม่มีหลักฐานยืนยันว่าช่องโหว่ถูกค้นพบอย่างไร บริษัทก็ยอมรับเช่นกันว่ารีวิวล่าสุดที่ทำร่วมกับโมเดล AI ชั้นนำไม่สามารถระบุปัญหานี้ได้ ผู้ผลิตฮาร์ดแวร์วอลเล็ตคู่แข่งหลายรายได้โพสต์บนโซเชียลมีเดียเพื่อระบุว่าผลิตภัณฑ์ของตนไม่ได้รับผลกระทบ
“Ledger ไม่ได้รับผลกระทบจากประกาศเกี่ยวกับ Coldcard Mk3 ที่เผยแพร่ล่าสุด” บริษัทบอกผู้ใช้ X หลังเหตุการณ์ Coldcard “อุปกรณ์ Ledger ใช้ตัวสร้างเลขสุ่มจริงที่ได้รับการรับรอง (TRNG) ซึ่งฝังอยู่โดยตรงในชิป Secure Element ของเรา สร้างเอนโทรปีเต็ม 256 บิตสำหรับวลี Secret Recovery Phrase แบบ 24 คำทุกครั้ง”
“ผู้ใช้ Trezor: เงินของคุณปลอดภัย” ผู้ผลิตฮาร์ดแวร์วอลเล็ต Trezor อธิบายเมื่อวันศุกร์ “ปัญหา Coldcard ล่าสุดจำกัดอยู่ที่เฟิร์มแวร์ปรับแต่งของพวกเขาเอง และวิธีที่อุปกรณ์บางส่วนของพวกเขาสร้างความสุ่ม Trezor ไม่ได้ใช้โค้ดนั้นร่วมกัน”
บัญชี X ของ Trezor เสริมว่า:
“เรามักผสมแหล่งที่มาความสุ่มอิสระหลายแหล่งเข้าด้วยกันเสมอ (ฮาร์ดแวร์ของอุปกรณ์ + โฮสต์ + ซีเคียวร์เอลิเมนต์ในรุ่นใหม่กว่า) เราเสียใจอย่างยิ่งสำหรับทุกคนที่สูญเสียบิตคอยน์”
สิ่งที่ผู้ใช้ Coldcard ควรจับตาต่อไป
ตัวตนของผู้โจมตียังไม่เป็นที่ทราบ และบิตคอยน์ที่ถูกขโมยอาจถูกย้ายออกจากที่อยู่รวมศูนย์เมื่อใดก็ได้ ผู้สืบสวนยังทำงานเพื่อระบุว่ามีการสร้าง seed ที่มีช่องโหว่จริงจำนวนเท่าไร บิตคอยน์จำนวนเท่าไรที่ยังคงเสี่ยง และมีวอลเล็ตมูลค่าสูงเพิ่มเติมถูกผู้โจมตีระบุไปแล้วหรือไม่ อย่างไรก็ตาม Coinkite อาจไม่มีข้อมูลเจ้าของจากเมื่อหลายปีก่อนมากนัก
“เรื่องตลกแบบคมสองด้าน: Coinkite ลบข้อมูลลูกค้าทั้งหมดหลัง 120 วันเพื่อปกป้องจากเหตุข้อมูลรั่วไหล” ผู้ร่วมก่อตั้ง Casa, Jameson Lopp รายงานบน X “ซึ่งหมายความว่าพวกเขาไม่สามารถติดต่อเตือนลูกค้าที่ซื้อ coldcard ที่มีช่องโหว่ตลอด 5 ปีที่ผ่านมาเกี่ยวกับช่องโหว่นี้ได้”

เหตุการณ์นี้ยังจะทดสอบว่า Coinkite จะสามารถฟื้นความเชื่อมั่นใน Coldcard ได้หรือไม่ และผู้ผลิตฮาร์ดแวร์วอลเล็ตจะหันมาใช้การตรวจทานแบบอิสระที่แข็งแรงขึ้นสำหรับการสร้าง seed หรือไม่ สำหรับผู้ใช้ ลำดับความสำคัญเร่งด่วนง่ายกว่านั้น: ใครก็ตามที่สร้าง seed บนเฟิร์มแวร์ที่ได้รับผลกระทบโดยไม่มีเอนโทรปีจากลูกเต๋าแบบอิสระที่แข็งแรง ไม่มีพาสเฟรส หรือไม่มีการป้องกันแบบมัลติซิกเนเจอร์ ควรถือว่า seed นั้นถูกเจาะแล้ว และย้ายเงินอย่างระมัดระวังไปยังวอลเล็ตที่สร้างขึ้นใหม่
นอกเหนือจากการโจรกรรมอันเลวร้าย ชาวบิตคอยน์ทั่วชุมชนกำลังส่งสัญญาณเตือนและผลักดันให้ผู้อื่นช่วยกระจายข่าวก่อนที่วอลเล็ตที่ยังมีช่องโหว่จะถูกกวาดออกเพิ่ม
บทความนี้แปลจากภาษาอังกฤษโดยใช้ AI เวอร์ชันภาษาอังกฤษต้นฉบับเป็นแหล่งข้อมูลที่เชื่อถือได้ การแปลอัตโนมัติอาจมีความไม่ถูกต้อง โดยเฉพาะอย่างยิ่งในคำศัพท์ทางกฎหมายและข้อบังคับ
















