Ethereum เพิ่งปล่อยอัปเกรดเครือข่ายล่าสุดชื่อว่า Pectra เมื่อวันที่ 7 พฤษภาคม (epoch 364032) โดยมีจุดประสงค์เพื่อเพิ่มความสามารถด้าน scalability และรองรับการใช้งาน smart account แต่กลับกลายเป็นว่า มีช่องโหว่ใหม่ที่อาจร้ายแรงกว่าที่คิด — ผู้ไม่หวังดีสามารถขโมยเหรียญจากวอลเล็ตของผู้ใช้ได้เพียงแค่มี ลายเซ็นนอกเครือข่าย (offchain signature) โดยไม่ต้องมีธุรกรรมบนเชนจากเจ้าของบัญชีแม้แต่นิดเดียว
Arda Usman ผู้เชี่ยวชาญด้านความปลอดภัยของสมาร์ตคอนแทรกต์ ยืนยันกับ Cointelegraph ว่า “ตอนนี้แฮกเกอร์สามารถใช้แค่ข้อความที่มีลายเซ็นจากผู้ใช้เพื่อดูด ETH ออกจากวอลเล็ตได้ โดยที่ผู้ใช้ไม่ได้ส่งธุรกรรมจริง ๆ เลย”
จุดเสี่ยงอยู่ที่ EIP-7702 – “ลายเซ็นเดียวเปลี่ยนชีวิต”
หัวใจของปัญหานี้คือฟีเจอร์ใหม่ใน EIP-7702 ซึ่งเปิดให้ผู้ใช้สามารถ “มอบหมายการควบคุมวอลเล็ต” ให้สัญญาอัจฉริยะอื่นได้ง่าย ๆ แค่เซ็นข้อความเดียว
เมื่อผู้ใช้เซ็นข้อความที่มีคำสั่ง SetCode (tx type 0x04)
จะเท่ากับให้สิทธิ์แฮกเกอร์ “เปลี่ยนโค้ดของวอลเล็ต” และฝังโปรแกรมอันตรายที่เชื่อมกับ smart contract ของแฮกเกอร์
จากนั้น แฮกเกอร์สามารถเรียกใช้โค้ดนั้นเพื่อโอน ETH หรือโทเคนทั้งหมดออกไป โดยเจ้าของบัญชีไม่ต้องกดส่งอะไรเพิ่มเติมเลย
ก่อนหน้านี้ หากใครจะเปลี่ยนแปลงวอลเล็ตหรือโอนเงิน จำเป็นต้องส่งธุรกรรมจริง ๆ บนเชนที่มีค่าธรรมเนียม (gas) แต่หลังอัปเกรด Pectra แค่ข้อความลายเซ็นก็เพียงพอแล้วสำหรับการ “ปล้น” แบบแนบเนียน
ฟิชชิ่งลิงก์, DApp ปลอม, Discord หลอก – ลายเซ็นเดียวก็เสร็จ
Yehor Rudytsia จาก Hacken เสริมว่า “จากนี้ไป แค่คลิกลิงก์ฟิชชิ่ง เซ็นข้อความผิด — ก็เปิดทางให้ใครก็ได้เขียนโค้ดลงวอลเล็ตของคุณ และสั่งการแทนคุณได้”
Wallet ส่วนใหญ่ยังไม่พร้อมรับมือกับ tx type 0x04 นี้ หากไม่มีระบบแสดงผลคำเตือนชัดเจน ผู้ใช้จะไม่รู้เลยว่าตัวเองกำลังอนุญาตให้ใครควบคุมบัญชี
Hardware wallet ก็ไม่ปลอดภัยอีกต่อไป — เพราะต่อให้คุณเก็บ private key ไว้ดีแค่ไหน แต่ถ้าคุณ “เซ็นข้อความผิด” เหรียญทั้งหมดก็อาจหายวับในพริบตา
จะป้องกันยังไง?
- อย่าเซ็นข้อความที่ไม่เข้าใจ
- ข้อความที่เกี่ยวกับ delegation (เช่น ตั้งค่า code หรือเซ็ตสิทธิ์ smart contract) ต้องมีการแสดงผลชัดเจนใน wallet
- ระวังข้อความที่มี nonce ของบัญชี เพราะนั่นแปลว่าอาจเปลี่ยนแปลงตัวบัญชีโดยตรง
- หลีกเลี่ยงการเซ็นข้อความที่มี chain_id = 0 เพราะสามารถนำไปใช้ซ้ำ (replay) ข้ามเชนได้
- ใช้ multisig wallet หากเป็นไปได้ เพราะต้องมีหลายลายเซ็นก่อนทำธุรกรรมใด ๆ
EIP-7702 ยังไม่รองรับมาตรฐานเดิมอย่าง EIP-191 และ EIP-712 ซึ่งหมายความว่า wallet ส่วนใหญ่ยังไม่รู้จักรูปแบบลายเซ็นใหม่นี้ และอาจไม่สามารถเตือนผู้ใช้ได้เลย
Usman เตือนว่า ตั้งแต่ Pectra เปิดใช้งานเมื่อ 7 พ.ค. การใช้ลายเซ็น delegation กลายเป็น “ช่องโหว่แบบพร้อมใช้” ทันที และ smart contract ที่ยังพึ่งพาวิธีเช็กแบบเดิม ๆ อย่าง tx.origin
หรือคิดว่า EOA จะปลอดภัยโดยธรรมชาติ จะตกอยู่ในความเสี่ยงมากที่สุด
อ้างอิง : cointelegraph.com
ภาพ thestreet.com