กลับไปที่บล็อก
ความปลอดภัย

Address poisoning: กลโกงที่อาศัยการคัดลอก-วาง

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

เมื่อเดือนพฤษภาคม 2024 หนึ่งในความผิดพลาดจากการคัดลอก-วางที่แพงที่สุดในประวัติศาสตร์คริปโตได้ส่ง Wrapped Bitcoin มูลค่าราว 68 ล้านดอลลาร์ไปยังคนแปลกหน้า ไม่มี seed phrase ใดถูกขโมย และไม่มี smart contract ใดถูกเจาะ เหยื่อคัดลอกที่อยู่ออกมาจากประวัติธุรกรรมของตัวเอง — ที่อยู่ซึ่งผู้โจมตีได้แอบหว่านไว้ตรงนั้น ออกแบบมาให้ดูเหมือนกันเป๊ะกับที่อยู่ที่เหยื่อไว้ใจอยู่แล้ว นั่นคือกลโกง address poisoning และมันคือหนึ่งในการโจมตีที่ต้นทุนต่ำที่สุดและขยายวงได้ง่ายที่สุดในบรรดาที่ยังทำงานอยู่ทุกวันนี้

กลโกงนี้ได้ผลเพราะนิสัยที่ผู้ใช้คริปโตแทบทุกคนมีร่วมกัน นั่นคือ การตรวจสอบที่อยู่ด้วยตัวอักษรไม่กี่ตัวที่หัวและท้าย กระเป๋าและ block explorer ตัดที่อยู่ยาว ๆ ให้สั้นลงเวลาแสดงผล นิสัยนี้จึงรู้สึกเป็นเรื่องธรรมชาติ — และผู้โจมตีก็สามารถผลิตที่อยู่หน้าตาคล้ายกันที่ตรงกับปลายทั้งสองด้านที่มองเห็นได้ในราคาแทบจะฟรี ทางแก้ไม่ใช่การ “ดูให้ละเอียดขึ้น” แต่คือการเปลี่ยนวิธีที่ที่อยู่จะเข้ามาในกระเป๋าของคุณตั้งแต่ต้น ได้แก่ รายชื่อผู้ติดต่อที่ตรวจสอบแล้ว รายการที่อยู่ที่อนุญาต (whitelist) QR code และการตรวจสอบที่อยู่แบบเต็ม แทนที่จะชำเลืองมองรายการในประวัติ

กลโกง address poisoning คืออะไรกันแน่

Address poisoning คือกลโกงที่ผู้โจมตีสร้างที่อยู่หน้าตาคล้ายกันซึ่งตรงกับตัวอักษรหัวและท้ายของที่อยู่ที่คุณใช้งานจริง แล้วหว่านมันไว้ในประวัติธุรกรรมของคุณ และรอให้คุณคัดลอกรายการที่ผิด ไม่ต้องขออนุญาตจากคุณในทุกขั้นตอน ผู้โจมตีเฝ้าดูข้อมูลสาธารณะบนเชนเพื่อหากระเป๋าที่ย้ายมูลค่ามีนัยสำคัญเป็นประจำ — การจ่ายเงินจากคลัง การฝากเข้ากระดานเทรด การชำระบัญชีที่เกิดซ้ำ — แล้วเลือกที่อยู่ของคู่สัญญาที่กระเป๋าเหล่านั้นส่งไปหาบ่อยที่สุด

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

รายการปลอมเข้ามาอยู่ในประวัติของคุณได้อย่างไร

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

  • การโอนแบบ dust ผู้โจมตีส่งเงินจำนวนเล็กจิ๋ว — ไม่กี่เซนต์หรือน้อยกว่านั้น — จากที่อยู่หน้าตาคล้ายกันมายังที่อยู่ของคุณ ตอนนี้กระเป๋าของคุณจะแสดงธุรกรรมขาเข้าจากที่อยู่ที่ดูเหมือนกันเป๊ะกับคู่สัญญาประจำของคุณ
  • การโอนโทเคนมูลค่าศูนย์ บนเชน EVM และ TRON สัญญาโทเคนจะประมวลผลการโอนโทเคนจำนวนศูนย์จากใครก็ได้ การโอนมูลค่าศูนย์ไม่ต้องได้รับการอนุมัติจากกระเป๋าที่ดูเหมือนเป็นต้นทาง เพราะการย้ายโทเคนศูนย์เหรียญไม่มีทางเกิน allowance ใด ๆ ผู้โจมตีจุดชนวนการโอนแบบนี้ เพื่อให้การโอนขาออกจำนวน 0 USDT ไปปรากฏในประวัติของคุณเอง จากที่อยู่ของคุณไปยังที่อยู่หน้าตาคล้ายกัน — ธุรกรรมที่คุณไม่เคยทำ ที่ไม่ทำให้คุณเสียอะไรเลย และที่ดูเหมือนกันเป๊ะกับการชำระเงินจริงครั้งล่าสุดของคุณ
  • airdrop โทเคนปลอม โทเคนไร้ค่าที่ใช้ ticker คุ้นหูมาถึงจากที่อยู่หน้าตาคล้ายกัน หว่านทั้งในประวัติและในการแจ้งเตือนของคุณไปพร้อมกัน

ทั้งสามวิธีทิ้งกับดักแบบเดียวกันไว้ นั่นคือ รายการที่มีตัวอักษรที่มองเห็นตรงกับปลายทางที่คุณไว้ใจ จากนั้นกลโกงก็สงบนิ่ง — บางครั้งนานหลายเดือน — จนถึงวันที่คุณกำลังรีบ

แผนภาพสามขั้นตอน: คุณจ่ายไปยังที่อยู่จริง ผู้โจมตีหว่านการโอนมูลค่าศูนย์จากที่อยู่หน้าตาคล้ายกันเข้ามาในประวัติของคุณ และการคัดลอก-วางในภายหลังก็ส่งเงินไปยังผู้โจมตี
การวางยาเกิดขึ้นอย่างเงียบ ๆ ส่วนความสูญเสียเกิดขึ้นในอีกหลายสัปดาห์ต่อมา ด้วยการวางเพียงครั้งเดียว

การคัดลอก-วางมูลค่า 68 ล้านดอลลาร์

กรณีเดือนพฤษภาคม 2024 ที่ทำให้กลโกง address poisoning โด่งดังนั้นดำเนินตามสูตรเป๊ะ ๆ กระเป๋าวาฬทำการโอนจำนวนเล็กน้อยไปยังที่อยู่ใหม่ ภายในไม่กี่นาที ผู้โจมตีก็สร้างที่อยู่หน้าตาคล้ายกันที่ตรงกับตัวอักษรหัวและท้ายของปลายทางนั้น แล้วหย่อนรายการปลอมลงไปในประวัติของกระเป๋า พอถึงธุรกรรมครั้งถัดไป เหยื่อก็คัดลอกรายการที่ถูกวางยา และส่ง WBTC มูลค่าราว 68 ล้านดอลลาร์ไปให้ การโจมตีทั้งหมดทำให้นักต้มตุ๋นเสียต้นทุนเพียงแค่ค่าธรรมเนียมธุรกรรมนิดหน่อยเท่านั้น

สิ่งที่เกิดขึ้นต่อมาคือส่วนที่ไม่ปกติ นั่นคือ หลังจากส่งข้อความบนเชนและเจรจากันอยู่หลายวัน ผู้โจมตีก็คืนเงินเกือบทั้งหมด เหยื่อโชคดี — ด้วยขนาดของยอดเงินที่มหาศาล ความสนใจของสาธารณะ และแรงกดดันจากการตามรอยที่ตามมา ทำให้การถอนเงินออกไปใช้เป็นเรื่องอันตราย อย่าสร้างโมเดลภัยคุกคามของคุณบนตอนจบแบบนั้น แคมเปญ address poisoning ดำเนินไปอย่างต่อเนื่องกับกระเป๋าธรรมดา ๆ ด้วยจำนวนเงินที่เล็กกว่ามาก และเหยื่อรายเล็กจะไม่ได้เงินคืน

ทำไมสายตาของคุณจึงพลาด — และนิสัยยิ่งทำให้แย่ลง

ที่อยู่ EVM ยาว 42 ตัวอักษร ส่วนที่อยู่ TRON ยาว 34 ตัวอักษร อินเทอร์เฟซตัดมันให้เหลือตัวอักษรไม่กี่ตัวที่ปลายแต่ละด้าน และการใช้อินเทอร์เฟซเหล่านั้นมาหลายปีก็ฝึกให้คุณมองปลายทั้งสองด้านว่าคือที่อยู่ ผู้โจมตีรู้รูปแบบการตัดสั้นที่แน่นอนของกระเป๋าและ explorer ยอดนิยม และพวกเขาก็จับคู่ตัวอักษรเหล่านั้นให้ตรงเป๊ะ เมื่อปลายที่มองเห็นทั้งสองด้านตรงกัน ส่วนตรงกลาง — ส่วนเดียวที่ต่างกัน — กลับเป็นส่วนที่ไม่มีการแสดงผลใดโชว์ และไม่มีนิสัยใดตรวจสอบ

นี่คือความล้มเหลวประเภทเดียวกันกับที่ก่อให้เกิดความสูญเสียขนาดใหญ่กว่ามากในระดับสถาบัน ในเดือนกุมภาพันธ์ 2025 เหตุการณ์ Bybit แสดงให้เห็นว่าแม้แต่ผู้ลงนามมัลติซิกของกระดานเทรดรายใหญ่ก็ยังอนุมัติสิ่งที่อินเทอร์เฟซซึ่งถูกเจาะแสดงให้เห็น แทนที่จะเป็นสิ่งที่กำลังถูกลงนามจริง ๆ — เราได้วิเคราะห์ความล้มเหลวนั้นไว้ในบทวิเคราะห์เหตุแฮ็ก Bybit ของเรา กลโกง address poisoning คือฉบับสำหรับผู้ใช้รายย่อยของความจริงข้อเดียวกันนี้

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

นั่นคือเหตุผลที่บล็อกเชนเองก็ช่วยคุณไม่ได้เช่นกัน ธุรกรรมที่คุณลงนามคือธุรกรรมที่คุณสั่งเป๊ะ ๆ สิ่งที่ถูกบิดเบือนตั้งแต่ต้นทางคือเจตนาของคุณต่างหาก เมื่อได้รับการยืนยันแล้ว มันคือที่สิ้นสุด

แนวป้องกันที่ได้ผลจริง

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

สามแนวป้องกัน address poisoning: การตรวจสอบที่อยู่แบบเต็ม รายการที่อยู่ที่อนุญาต (whitelist) และการโอนทดสอบจำนวนเล็กน้อยก่อนการชำระเงินจริง
แนวป้องกันเชิงโครงสร้างเหนือกว่าการเฝ้าระวัง: ตรวจสอบแบบเต็ม ใส่ในรายการที่อนุญาต และทดสอบก่อน
  • อย่าคัดลอกที่อยู่จากประวัติธุรกรรมเด็ดขาด ให้มองประวัติเป็นการแสดงผล ไม่ใช่แหล่งที่มา แหล่งที่มาที่ปลอดภัยเพียงอย่างเดียวคือ ผู้ติดต่อที่คุณบันทึกไว้ในช่วงเวลาที่ตรวจสอบแล้ว QR code ที่สแกนโดยตรงจากผู้รับ หรือที่อยู่ที่ส่งมาผ่านช่องทางแยกต่างหากแบบสด ๆ
  • ใช้รายการที่อยู่ที่อนุญาต (whitelist) เมื่อความเสี่ยงคุ้มค่ากับมัน รายการที่อยู่ที่อนุญาตจะจำกัดการโอนขาออกไว้เฉพาะปลายทางในรายการที่อนุมัติไว้ล่วงหน้า ซึ่งทำให้รายการที่ถูกวางยาใช้การไม่ได้ แม้จะมีคนวางมันลงไปก็ตาม โมเดลความปลอดภัยของ Ownbit รองรับรายการที่อยู่ที่อนุญาตใน Enterprise MultiSig ควบคู่ไปกับวงเงินรายวันและเกณฑ์จำนวนผู้ลงนาม เพื่อที่การวางของคนเพียงคนเดียวจะไม่สามารถย้ายเงินคลังไปยังที่อยู่ที่ยังไม่ผ่านการตรวจสอบได้
  • ตรวจสอบที่อยู่แบบเต็มหนึ่งครั้ง แล้วไว้ใจเฉพาะผู้ติดต่อที่บันทึกไว้เท่านั้น checksum จับได้แค่การพิมพ์ผิด ไม่ใช่ที่อยู่หน้าตาคล้ายกัน — ที่อยู่ที่ถูกวางยาคือที่อยู่ที่ถูกต้องสมบูรณ์ จงเทียบทุกตัวอักษรกับสิ่งที่ผู้รับส่งมาให้คุณ หรืออ่านส่วนตรงกลางของสตริงออกเสียงกันทางโทรศัพท์ ทำครั้งเดียว บันทึกผู้ติดต่อ แล้วอย่าคัดลอกมันซ้ำจากที่อื่นอีกเลย
  • ส่งจำนวนทดสอบก่อน — และยืนยันการรับผ่านช่องทางอื่น การโอนจำนวนเล็กน้อยเสียค่าธรรมเนียมแค่ครั้งเดียว และช่วยขจัดความเสี่ยงส่วนปลายออกจากการโอนก้อนใหญ่ แต่ให้ผู้รับยืนยันว่าเงินมาถึงผ่านช่องทางแยกต่างหาก การที่คุณยืนยันเองด้วยการชำเลืองดูประวัติเท่ากับเปิดกับดักเดิมขึ้นมาอีก
  • ใส่จอที่สอง หรือคนที่สอง เข้ามาในกระบวนการ เวิร์กโฟลว์กระเป๋าเย็นของ Ownbit ย้ายธุรกรรมที่ยังไม่ได้ลงนามด้วย QR code ไปยังโทรศัพท์ที่ออฟไลน์ ซึ่งเป็นที่ที่ปลายทางแบบเต็มจะถูกตรวจทานบนฮาร์ดแวร์ที่สภาพแวดล้อมออนไลน์แตะต้องไม่ได้ ในมัลติซิก การที่ผู้ร่วมลงนามบนอุปกรณ์อีกเครื่องมาตรวจสอบปลายทางซ้ำ จะเปลี่ยนความผิดพลาดจากการวางของคนคนเดียวให้กลายเป็นข้อเสนอที่ถูกปฏิเสธ แทนที่จะเป็นความสูญเสีย — ทั้งนี้ต้องอยู่บนเงื่อนไขว่าผู้ลงนามตรวจสอบจริง ๆ ซึ่งเป็นวินัยที่กรณี Bybit แสดงให้เห็นแล้วว่าเสื่อมถอยลงได้

hardware wallet ควรได้รับการกล่าวถึงอย่างตรงไปตรงมาตรงนี้ นั่นคือ หน้าจอบนตัวอุปกรณ์ทำหน้าที่แบบเดียวกับโทรศัพท์ที่ตัดขาดจากเครือข่าย (air-gapped) และมันช่วยป้องกัน address poisoning ได้มากเท่ากับระดับที่เจ้าของอ่านที่อยู่แบบเต็มบนอุปกรณ์เท่านั้น ไม่มีเครื่องมือใดตรวจสอบเจตนาแทนคุณได้

พิธีกรรม 30 วินาทีสำหรับการโอนก้อนใหญ่ทุกครั้ง

  1. รับปลายทางจากผู้รับผ่านช่องทางสด ๆ — แชท โทรศัพท์ หรือ QR code — อย่ารับจากประวัติของคุณเด็ดขาด
  2. บันทึกมันเป็นผู้ติดต่อที่มีชื่อทันที รายการที่บันทึกไว้นั้นคือแหล่งที่มาเพียงหนึ่งเดียวของคุณตั้งแต่บัดนี้
  3. อ่านส่วนตรงกลางของที่อยู่เวลาเทียบ ไม่ใช่แค่ปลายทั้งสองด้าน ผู้โจมตีจับคู่ปลายให้ตรง แต่ส่วนตรงกลางจะเผยตัวพวกเขาออกมา
  4. ส่งจำนวนทดสอบเล็กน้อย และให้ผู้รับยืนยันการรับผ่านช่องทางสด ๆ ช่องเดียวกันนั้น
  5. ส่งส่วนที่เหลือไปยังผู้ติดต่อที่บันทึกไว้ — และสำหรับเงินระดับคลัง ให้กำหนดรายการที่อยู่ที่อนุญาต (whitelist) ควบคู่กับเกณฑ์มัลติซิก เพื่อที่การวางเพียงครั้งเดียวจะไม่มีทางถึงตายได้

พิธีกรรมนี้ใช้เวลาครึ่งนาทีและค่าธรรมเนียมเครือข่ายเพิ่มอีกหนึ่งครั้ง เหยื่อรายเดือนพฤษภาคม 2024 คงยอมจ่ายราคานั้นเป็นพันเท่า

คำถามที่พบบ่อย

กลโกง address poisoning คืออะไร?

กลโกง address poisoning คือการโจมตีที่นักต้มตุ๋นสร้างที่อยู่หน้าตาคล้ายกันซึ่งตรงกับตัวอักษรหัวและท้ายของที่อยู่ที่คุณส่งไปหาเป็นประจำ แล้วแทรกมันเข้าไปในประวัติธุรกรรมของคุณด้วยการโอนแบบ dust หรือการโอนมูลค่าศูนย์ จากนั้นนักต้มตุ๋นก็รอให้คุณคัดลอกรายการปลอมแทนที่จะเป็นรายการจริง การโจมตีนี้ไม่ต้องเข้าถึงกุญแจของคุณ และมีต้นทุนในการทำเพียงแค่มากกว่าค่าธรรมเนียมเครือข่ายนิดหน่อย

การโอนมูลค่าศูนย์ขโมยคริปโตของฉันได้ด้วยตัวมันเองหรือไม่?

ไม่ได้ การโอนมูลค่าศูนย์ไม่ได้ย้ายอะไรและไม่ได้ให้สิทธิ์อะไร มันมีอยู่เพียงเพื่อหว่านรายการที่ดูน่าเชื่อไว้ในประวัติของคุณ เงินของคุณจะเสี่ยงก็ต่อเมื่อคุณคัดลอกที่อยู่ที่ถูกหว่านไว้นั้นแล้วส่งไปให้ในภายหลังเท่านั้น คุณสามารถเพิกเฉยต่อ dust และสแปมมูลค่าศูนย์ได้อย่างปลอดภัย — เพียงแค่อย่าถือว่ามันเป็นแหล่งที่มาของที่อยู่ก็พอ

ฉันจะรู้ได้อย่างไรว่าประวัติกระเป๋าของฉันถูกวางยาแล้ว?

มองหา dust ขาเข้าจากที่อยู่ที่คล้ายกับคู่สัญญาประจำของคุณ หรือการโอนโทเคนจำนวนศูนย์ขาออกที่คุณไม่เคยทำ ในทางปฏิบัติ ให้สันนิษฐานว่ากระเป๋าที่ใช้งานอยู่ทุกใบถูกวางยาไว้แล้วและปฏิบัติตามนั้น การเปลี่ยนที่ที่คุณคัดลอกที่อยู่มานั้นปลอดภัยกว่าการตรวจสอบประวัติทีละรายการ

กระเป๋าเย็นหรือ hardware wallet ป้องกัน address poisoning ได้หรือไม่?

ไม่ได้โดยลำพัง การเก็บรักษาแบบเย็น (cold storage) ปกป้องกุญแจ ส่วน address poisoning ไม่เคยโจมตีกุญแจ — มันโจมตีที่อยู่ที่คุณเลือกก่อนลงนาม สิ่งที่ช่วยได้คือจอที่สอง นั่นคือ อุปกรณ์ที่ตัดขาดจากเครือข่าย (air-gapped) ซึ่งแสดงที่อยู่ปลายทางแบบเต็มก่อนลงนาม มอบจุดตรวจอิสระจุดสุดท้ายให้คุณ แต่จะช่วยได้ก็ต่อเมื่อคุณอ่านที่อยู่ทั้งหมดบนมันเท่านั้น

หากคุณอยากสร้างแนวกันเหล่านี้ไว้ในกระเป๋ามากกว่าไว้ในความทรงจำ โมเดลความปลอดภัยของ Ownbit จับคู่ self-custody เข้ากับรายการที่อยู่ที่อนุญาตและวงเงินการใช้จ่ายบน Enterprise MultiSig และเวิร์กโฟลว์กระเป๋าเย็นแบบใช้ QRก็นำการตรวจทานที่อยู่แบบเต็มมาไว้บนหน้าจอออฟไลน์ก่อนที่ลายเซ็นใด ๆ จะเกิดขึ้น ผู้ใช้ใหม่ทุกคนได้ทดลองใช้ฟรี 7 วัน และกุญแจของคุณยังคงเป็นของคุณไม่ว่าอย่างไรก็ตาม