Approval Exploit

Approval exploit คือช่องโหว่ด้านความปลอดภัยที่ผู้โจมตีอาศัยสิทธิ์อนุมัติ (token allowance) ที่ได้รับ ไปโอนสินทรัพย์เกินกว่าขอบเขตที่ผู้ใช้ตั้งใจหรือเข้าใจว่าได้อนุญาตไว้

คำนิยาม

Approval exploit คือรูปแบบหนึ่งของความเสี่ยงด้านความปลอดภัยที่ผู้โจมตีใช้ประโยชน์จากกลไกการอนุมัติหรือ allowance ของโทเคน เพื่อย้ายสินทรัพย์ของเหยื่อโดยไม่ต้องขอความยินยอมเพิ่มเติม โดยมักเกิดขึ้นเมื่อ smart contract หรืออินเทอร์เฟซทำให้ผู้ใช้เผลอให้สิทธิ์ allowance ที่มากเกินไปหรือไม่ปลอดภัย ซึ่งผู้โจมตีจะเรียกใช้ผ่านสัญญาอันตรายหรือสัญญาที่ถูกเจาะระบบ ช่องโหว่นี้โดยทั่วไปไม่ได้เป็นการทำลายมาตรฐานโทเคนพื้นฐาน แต่เป็นการ “ใช้ช่องว่าง” ของโมเดลการให้สิทธิ์ที่ถูกต้องตามกฎ ซึ่งถูกเขียนไว้ใน logic การอนุมัติของโทเคน ผลก็คือ การโอนเงินนั้นถือว่า “ถูกต้องตามกฎ” บนเชน แม้จะขัดกับความคาดหวังด้านความปลอดภัยและขอบเขตการอนุญาตของผู้ใช้ก็ตาม

ความเสี่ยงนี้เกี่ยวข้องอย่างใกล้ชิดกับวิธีที่สถานะ allowance ของโทเคนถูกจัดเก็บและถูกอ้างอิงโดย smart contract เมื่อผู้โจมตีได้สิทธิ์ allowance ที่สูงมากหรือแบบไม่จำกัดแล้ว พวกเขาสามารถเรียกฟังก์ชันโอน (transfer) ซ้ำ ๆ ในนามของ address ของผู้ใช้ได้ จนกว่าเงินที่ได้รับอนุมัติจะถูกดูดออกหมด Approval exploit มักอาศัยหน้าต่างธุรกรรมที่หลอกลวง ชื่อสัญญาที่ทำให้เข้าใจผิด หรือการนำสิทธิ์ที่เคยอนุมัติไว้ก่อนหน้าไปใช้ซ้ำในรูปแบบที่ผู้ใช้ไม่คาดคิด ลักษณะสำคัญคือ “ช่องว่าง” ระหว่างสิ่งที่ผู้ใช้คิดว่าตนได้อนุญาต กับสิ่งที่ allowance นั้นอนุญาตให้ทำได้จริงในทางปฏิบัติ

บริบทและการใช้งาน

ในการสนทนาเรื่องความปลอดภัย Approval exploit มักถูกกล่าวถึงในฐานะความเสี่ยงจากการถูก “ใช้สิทธิ์เกินขอบเขต” มากกว่าจะเป็นความล้มเหลวของโปรโตคอลโดยตรง โดยมักเชื่อมโยงกับการออกแบบโทเคนสไตล์ ERC-20 ซึ่งมีขั้นตอนการอนุมัติแยกต่างหากเพื่อกำหนด allowance ที่สัญญาอื่นสามารถใช้จ่ายได้ เมื่อ allowance เหล่านี้ถูกตั้งค่าผิด ไม่เคยถูกเพิกถอน หรือถูกให้กับสัญญาที่ไม่น่าเชื่อถือ ก็จะสร้างพื้นผิวการโจมตีถาวรที่ฝ่ายตรงข้ามสามารถเปิดใช้งานในภายหลังได้ ดังนั้น exploit ประเภทนี้จึงอยู่ตรงจุดตัดระหว่างการออกแบบ smart contract, ประสบการณ์ใช้งานของ wallet และความเข้าใจของผู้ใช้เกี่ยวกับกลไกการให้สิทธิ์บนเชน

คำนี้มักถูกใช้ควบคู่กับแนวคิดเรื่อง allowance เพื่ออธิบายว่าควรกำหนดสิทธิ์ของโทเคนให้ละเอียดแค่ไหน และควรถอนสิทธิ์ได้ง่ายเพียงใด ผู้ตรวจสอบความปลอดภัยและผู้ออกแบบโปรโตคอลมอง approval exploit เป็นหมวดภัยคุกคามเฉพาะที่ต้องคำนึงถึงเมื่อออกแบบอินเทอร์เฟซของสัญญาและ flow การให้สิทธิ์ ในรายงานเหตุการณ์การโจมตี การระบุว่าเป็น approval exploit ชี้ให้เห็นว่าผู้โจมตีปฏิบัติการอยู่ภายในกรอบสิทธิ์ที่ได้รับอนุญาตอย่างเป็นทางการ แม้สิทธิ์เหล่านั้นจะถูกได้มา หรือถูกจัดโครงสร้างในลักษณะที่หลอกลวงหรือไม่ปลอดภัยก็ตาม การจัดหมวดหมู่นี้ช่วยแยกแยะออกจากบั๊กที่เกิดจากข้อผิดพลาดทางคณิตศาสตร์ การโจมตีแบบ reentrancy หรือข้อบกพร่องระดับล่างอื่น ๆ ของ smart contract

© 2025 Tokenoversity สงวนลิขสิทธิ์