สรุปสั้น

นักวิจัยจาก University of Massachusetts Amherst สาธิตการโจมตีที่ปลุกบัตรเครดิต Visa แบบไร้สัมผัสซึ่งหมดอายุไปแล้วให้กลับมาใช้ซื้อของในร้านค้าจริงได้อีกครั้ง ด้วยการเขียนทับวันหมดอายุที่เครื่องรับชำระเงินหรือ POS อ่านผ่าน NFC โดยไม่ต้องเจาะหรือทำลายการเข้ารหัสของบัตรแม้แต่จุดเดียว การโจมตีนี้ถูกตั้งชื่อว่า Zombie Card และต้องอาศัยการครอบครองบัตรใบที่หมดอายุทางกายภาพ หรือการอยู่ในระยะ NFC ของบัตรอย่างต่อเนื่อง ประกอบกับตัวรีเลย์ที่ทำหน้าที่แทรกกลางระหว่างบัตรกับเครื่องรูด

เงื่อนไขที่ทำให้การโจมตีสำเร็จมีอีกสองข้อ ข้อแรกคือบัญชีต้องยังเปิดอยู่ภายใต้หมายเลขบัญชีหลักหรือ PAN เดิม ซึ่งเป็นแนวปฏิบัติมาตรฐานเมื่อผู้ออกบัตรส่งบัตรใบใหม่มาแทน และข้อที่สองคือธนาคารผู้ออกบัตรต้องไม่ตรวจสอบวันหมดอายุซ้ำด้วยตัวเองระหว่างการอนุมัติรายการ หัวใจของช่องว่างนี้อยู่ที่วันหมดอายุปรากฏสองที่ในธุรกรรม Visa แบบไร้สัมผัส และผู้อ่านทั้งสองที่คือคนละฝ่ายกัน โดยเครื่องรูดอ่านค่าหนึ่ง ส่วนธนาคารผู้ออกบัตรอ่านอีกค่าหนึ่ง และมาตรฐานไม่ได้บังคับให้สองค่านี้ผูกกันแบบตรวจสอบได้

ผลการทดสอบกับเคอร์เนล EMV ทั้งสี่ค่ายพบว่ามีเพียง Visa เท่านั้นที่การแก้ไขผ่านไปได้ ส่วน Mastercard, American Express และ Discover ปฏิเสธรายการด้วยกลไกคนละแบบกัน งานวิจัยถูกนำเสนอในงาน USENIX Security Symposium ครั้งที่ 35 ที่เมืองบัลติมอร์ ระหว่างวันที่ 12 ถึง 14 สิงหาคม 2569 ปัจจุบันยังไม่มีการกำหนดหมายเลข CVE และยังไม่มีรายงานการนำเทคนิคนี้ไปใช้โจมตีจริง

รายละเอียดข่าว

เว็บไซต์ The Hacker News รายงานเมื่อวันที่ 20 สิงหาคม 2569 ว่า คณะนักวิจัยได้เผยแพร่ผลการศึกษาที่แสดงให้เห็นว่าบัตรที่หมดอายุแล้วยังสามารถทำรายการได้จริง หากผู้โจมตีเข้าไปแก้ค่าที่เครื่องรูดบัตรใช้ตัดสินใจ

การศึกษาเบื้องต้นของงานวิจัยครอบคลุมธนาคารรายใหญ่ในสหรัฐฯ ห้าแห่ง และทดสอบการดัดแปลงธุรกรรม EMV ในภาพรวม นาย Raja Hasnain Anwar ผู้เขียนหลัก บอกกับ The Hacker News ว่าธุรกรรมสำเร็จที่ธนาคารส่วนใหญ่ในกลุ่มนั้นเมื่อทีมแก้ไขค่าธงของ Consumer Device Cardholder Verification Method หรือ CDCVM ซึ่งเขาเรียกผลลัพธ์นี้ว่าน่าตกใจ เพราะมันตั้งอยู่บนจุดอ่อนเดียวกับที่การโจมตีวันหมดอายุใช้ นั่นคือการที่การดัดแปลงธุรกรรมไม่ถูกตรวจพบ

จากนั้นทีมวิจัยทดสอบธนาคารสามในห้าแห่งด้วยบัตรจริงที่หมดอายุและถูกออกใบใหม่แทน โดย Anwar ระบุว่าธนาคารทั้งสามแสดงนโยบายที่ต่างกันสามแบบ ไม่ใช่แค่ผ่านหรือไม่ผ่าน ธนาคาร A ยอมให้แก้ไขวันหมดอายุและรับรายการจากบัตรมากกว่าหนึ่งใบพร้อมกัน ธนาคาร B ตรวจพบการดัดแปลงและรับรายการจากบัตรที่ยังใช้งานอยู่เพียงใบเดียว ส่วนธนาคาร D ซึ่งบัตรใช้เคอร์เนลของ Discover ตรวจพบการดัดแปลงแต่ยังรับรายการจากบัตรมากกว่าหนึ่งใบ

นาย Anwar พร้อมด้วยนาย Gerard DeCunha และนาย Muhammad Taqi Raza ได้เปิดเผยผลการศึกษาต่อ Visa และธนาคารที่เกี่ยวข้องตั้งแต่เดือนพฤษภาคม 2568 และติดต่ออีกครั้งในเดือนธันวาคม 2568 อย่างไรก็ตาม The Hacker News ระบุว่าไม่พบประกาศ เอกสารข้อกำหนด หรือคำแนะนำการบรรเทาผลกระทบใด ๆ ที่เผยแพร่โดย Visa, EMVCo, Mastercard, Discover, American Express หรือผู้ผลิตเครื่องรูดบัตร SumUp ณ วันที่ 20 สิงหาคม 2569

ในการทดสอบกับธนาคารที่นักวิจัยเรียกว่าธนาคาร A บัตรที่ถูกปลุกขึ้นมาสามารถทำรายการมูลค่า 1.00 ดอลลาร์ 100.00 ดอลลาร์ และ 500.00 ดอลลาร์บนเครื่องรูดของทีมวิจัยเองที่จดทะเบียนภายใต้ประเภทร้านค้าบริการวิชาชีพ รวมถึงรายการ 2.79 ดอลลาร์ที่ร้านค้าปลีกและ 3.19 ดอลลาร์ที่ร้านขายของชำในมหาวิทยาลัย ส่วนธนาคาร B นั้นเครื่องรูดยอมรับวันหมดอายุที่ถูกแก้ไขในทุกมูลค่าที่ทดสอบในห้องปฏิบัติการ แต่ธนาคารผู้ออกบัตรปฏิเสธทุกรายการและแจ้งให้ผู้ถือบัตรใช้บัตรใบใหม่แทน ขณะที่รายการซึ่งไม่ได้ถูกดัดแปลงด้วยบัตรที่หมดอายุถูกปฏิเสธอย่างถูกต้องในทุกรอบการทดสอบพื้นฐาน

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

Zombie Card attack reviving an expired Visa contactless card at a payment terminal

วิธีการโจมตี

หัวใจของช่องว่างอยู่ที่วันหมดอายุของบัตรปรากฏสองที่ในธุรกรรม Visa แบบไร้สัมผัส และสองค่านั้นถูกใช้โดยคนละฝ่ายกัน เครื่องรูดบัตรประเมินข้อจำกัดในการประมวลผลของตัวเองโดยเทียบกับ Application Expiration Date ซึ่งบรรจุอยู่ในแท็ก 5F24 ของโครงสร้างแบบ Tag-Length-Value ขณะที่ธนาคารผู้ออกบัตรดึงวันหมดอายุมาจาก Track 2 Equivalent Data ซึ่งอยู่ในแท็ก 57 และเดินทางไปพร้อมคำขออนุมัติแบบออนไลน์

ตามที่งานวิจัยระบุ Kernel 3 ของ Visa ไม่ได้บังคับให้ค่าทั้งสองผูกกันอย่างสอดคล้อง และลายเซ็นแบบ fast Dynamic Data Authentication หรือ fDDA ที่เครื่องรูดตรวจสอบนั้นไม่ครอบคลุมแท็ก 5F24 เลย ตัวรีเลย์จึงเพียงเขียนทับวันที่ฝั่งที่เครื่องรูดมองเห็นให้เป็นค่าใดก็ได้ในอนาคต แล้วปล่อย Track 2 ไว้ตามเดิม ผลคือทั้งลายเซ็นของบัตรและ cryptogram ที่ธนาคารตรวจสอบยังผ่านการยืนยันทั้งคู่ นาย Anwar ซึ่งเป็นนักศึกษาปริญญาเอกในห้องปฏิบัติการ Khwarizmi Lab ของ UMass Amherst อธิบายในเอกสารเผยแพร่ของมหาวิทยาลัยว่าวันหมดอายุนั้นไม่ได้ถูกป้องกันด้วยการเข้ารหัส จึงแก้ไขเพื่อหลอกเครื่องรูดได้อย่างง่ายดาย

ยังมีอีกสองปัจจัยที่ทำให้บัตรหมดอายุผ่านด่านได้ ปัจจัยแรกคือบัตรที่หมดอายุแล้วยังผ่านการตรวจสอบข้อมูลแบบออฟไลน์ได้ เพราะอายุของใบรับรองฝั่งผู้ออกบัตรและใบรับรองของชิปถูกกำหนดแยกจากอายุของแอปพลิเคชันบนบัตร และตามปกติมักมีอายุยืนกว่าวันหมดอายุที่พิมพ์บนหน้าบัตร โดยกุญแจส่วนตัวของบัตรไม่ได้เข้ารหัสแนวคิดเรื่องวันหมดอายุไว้เลย ปัจจัยที่สองคือ Kernel 3 กำหนดให้ค่า Terminal Verification Results ที่ส่งต่อไปยังธนาคารผู้ออกบัตรถูกตั้งเป็นศูนย์ทั้งหมด ธนาคารจึงมองไม่เห็นว่าเครื่องรูดได้ตรวจสอบวันหมดอายุในเครื่องหรือไม่ และผลเป็นอย่างไร ที่สำคัญคือผู้โจมตีไม่จำเป็นต้องรู้วันหมดอายุจริงของบัตรใบใหม่ด้วยซ้ำ เพียงใส่วันที่ใดก็ได้ที่อยู่หลังวันทำรายการก็เพียงพอ

เมื่อทีมวิจัยนำการดัดแปลงแบบเดียวกันไปทดสอบกับเคอร์เนล EMV แบบไร้สัมผัสทั้งสี่ตัว ซึ่งเป็นการนำโปรโตคอลไปใช้งานของแต่ละเครือข่ายบัตร ผลลัพธ์แตกต่างกันชัดเจน ฝั่ง Visa หรือ Kernel 3 การแก้ไขผ่านข้อจำกัดการประมวลผลของเครื่องรูดและไม่ทำให้ลายเซ็นเสีย เพราะ 5F24 ไม่ได้อยู่ในข้อมูลที่ถูกลงลายเซ็น ฝั่ง Mastercard หรือ Kernel 2 เครื่องรูดตรวจสอบความสอดคล้องระหว่างวันหมดอายุทั้งสองที่ในขั้นตอนอ่านระเบียน และถือว่าค่าที่ไม่ตรงกันเป็นข้อผิดพลาดของข้อมูลบัตร แล้วปฏิเสธรายการแทนที่จะถอยไปตรวจสอบแบบออนไลน์ ฝั่ง American Express หรือ Kernel 4 วันหมดอายุเป็นองค์ประกอบบังคับที่ถูกผูกเข้ากับข้อมูลสถิตที่ครอบคลุมโดยการตรวจสอบข้อมูลแบบออฟไลน์ การแก้ไขจึงทำให้ค่าแฮชไม่ตรงกันระหว่างการตรวจสอบลายเซ็น ส่วนฝั่ง Discover หรือ Kernel 6 การตรวจสอบแบบ Combined Dynamic Data Authentication ผูกวัตถุ TLV ที่บัตรส่งกลับเข้าไปในค่าแฮชของธุรกรรมที่ถูกตรวจสอบ รายการที่ถูกดัดแปลงจึงถูกปฏิเสธ

ในเชิงอุปกรณ์ ตัวรีเลย์ที่ใช้คือโทรศัพท์แอนดรอยด์ที่รองรับ NFC สองเครื่อง รันซอฟต์แวร์จำลองบัตรและจำลองเครื่องรูดที่เขียนขึ้นเอง สื่อสารกันผ่าน Wi-Fi และทดสอบกับเครื่องอ่าน SumUp Solo และ SumUp Plus การรับส่งข้อมูลแต่ละรอบตามมาตรฐาน APDU เพิ่มเวลาราว 20 มิลลิวินาทีสำหรับการรีเลย์ และ 50 มิลลิวินาทีเมื่อมีการดัดแปลง ทำให้เฉลี่ยต่อธุรกรรมอยู่ที่ราว 415 มิลลิวินาที เทียบกับเพดานของ EMV ที่ 500 มิลลิวินาทีต่อคำสั่ง จุดสำคัญคือไม่มีบัตรหรือเครื่องรูดใดในชุดทดสอบที่เปิดใช้ Relay Resistance Protocol ซึ่งเป็นกลไกทางเลือกของ EMV ที่จำกัดเวลาตอบสนองที่ยอมรับได้ และจะตรวจจับความหน่วงที่เพิ่มขึ้นนี้ได้

ข้อจำกัดของข้อมูลที่ต้องระบุคือ ธนาคารทั้งหมดถูกปิดชื่อและเรียกแทนด้วยตัวอักษร A ถึง E ตลอดทั้งงานวิจัย และเอกสารระบุเองว่าการซื้อของที่ร้านค้าปลีกและร้านขายของชำเป็นเพียงการยืนยันความสมเหตุสมผลภายนอกเท่านั้น ไม่ถือเป็นการวัดผลทั่วทั้งระบบนิเวศที่ครอบคลุมร้านค้า ผู้ผลิตเครื่องรูด หรือการตั้งค่าของผู้ออกบัตรรายต่าง ๆ อีกทั้งการทดสอบทั้งหมดดำเนินการในสหรัฐฯ เท่านั้น นอกจากนี้ Visa ยังไม่ได้ให้ความเห็นต่อสาธารณะ โดยงานวิจัยบันทึกว่ารายงานที่ส่งไปยังเครือข่ายบัตรผ่านการคัดกรองเบื้องต้นและอยู่ระหว่างการทำซ้ำโดยทีม red team ของ Visa และระบุว่าทั้ง Visa และธนาคารที่ได้รับแจ้งยังไม่ได้ให้ข้อมูลอัปเดตใด ๆ เกี่ยวกับสถานะหรือลักษณะของมาตรการบรรเทาผลกระทบ ณ เวลาที่งานวิจัยได้รับการตอบรับ ส่วน The Hacker News ระบุว่าได้ติดต่อ Visa เพื่อขอความเห็นแล้วแต่ยังไม่ได้รับคำตอบในเวลาที่รายงาน ทั้งนี้โค้ดของตัวรีเลย์และการแทรกกลางยังไม่ถูกเผยแพร่ ผู้เขียนเลือกเผยแพร่บันทึกธุรกรรมที่ถูกลบข้อมูลอ่อนไหวออกแทน

จุดเชื่อมกับมัลแวร์รีเลย์ NFC ที่พบในโลกจริง

แม้ Zombie Card จะยังเป็นงานวิจัยที่ไม่มีรายงานการนำไปใช้จริง แต่กลไกพื้นฐานที่มันอาศัยกลับปรากฏในมัลแวร์ที่ใช้งานจริงแล้ว บริษัท Group-IB ซึ่งมีสำนักงานใหญ่ในสิงคโปร์ ได้บันทึกมัลแวร์รีเลย์ NFC บนแอนดรอยด์ตระกูลใหม่ที่ไม่เคยพบมาก่อน โดยติดตามในชื่อ WindRelay ซึ่งถูกนำไปใช้ควบคู่กับโทรจันเข้าถึงระยะไกลชื่อ SpyNote ในปฏิบัติการหลอกลวงทางวิศวกรรมสังคมแบบโทรคุยสด โดยมีเหยื่ออยู่ในเช็กเกีย สโลวาเกีย และสโลวีเนีย

ในรายงานที่เผยแพร่เมื่อวันที่ 12 สิงหาคม 2569 บริษัทระบุว่าพบตัวอย่างมัลแวร์ 23 ชิ้นที่ถูกอัปโหลดขึ้น VirusTotal ระหว่างเดือนพฤศจิกายน 2568 ถึงกรกฎาคม 2569 พร้อมหมายเลขไอพีของเซิร์ฟเวอร์สั่งการและควบคุมสี่รายการ มัลแวร์ตัวนั้นรีเลย์บัตรที่ยังใช้งานอยู่แบบเรียลไทม์และไม่ได้แตะวันหมดอายุ แต่ใช้กลไกรีเลย์สองอุปกรณ์ชุดเดียวกับที่ชุดทดสอบของ Zombie Card อาศัย โดย Group-IB สรุปไว้ในรายงานว่ากรณีนี้แสดงให้เห็นว่าการฉ้อโกงยุคใหม่แทบไม่เคยพึ่งพาเทคนิคเดียว

ผลกระทบ

ข้อสรุปที่ผู้เขียนงานวิจัยเองให้น้ำหนักมากที่สุดไม่ใช่ว่าธนาคารไหนผ่านหรือไม่ผ่าน แต่คือความจริงที่ว่าธนาคารทั้งสามแห่งมีนโยบายต่างกันสามแบบ นาย Anwar บอกกับ The Hacker News ว่าอุตสาหกรรมยังไม่มีฉันทามติว่าอะไรคือวิธีที่ปลอดภัยในการจัดการกับบัตรที่กำลังหมดอายุ ธนาคารและเครือข่ายบัตรแต่ละรายกำหนดลำดับความสำคัญของตัวเอง และจึงเปิดรับความเสี่ยงคนละแบบกัน เขาชี้กลับไปที่งานวิจัยของทีมเดียวกันในงาน USENIX Security ปี 2567 ชื่อ In Wallet We Trust ซึ่งบันทึกความไม่สอดคล้องในลักษณะเดียวกันของวิธีที่ผู้ออกบัตรและผู้ให้บริการกระเป๋าเงินดิจิทัลบังคับใช้สถานะวงจรชีวิตของบัตร

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

ในเชิงโครงสร้าง สิ่งที่งานวิจัยชี้ให้เห็นคือรูปแบบที่พบซ้ำในระบบความปลอดภัยหลายระบบ นั่นคือข้อมูลชิ้นเดียวกันถูกเก็บไว้สองที่แล้วให้คนละฝ่ายอ่าน โดยไม่มีอะไรบังคับให้สองค่านั้นตรงกัน การเข้ารหัสที่แข็งแรงมากไม่ได้ช่วยอะไรเลยหากค่าที่ใช้ตัดสินใจจริงอยู่นอกขอบเขตที่ลายเซ็นครอบคลุม ซึ่งเป็นบทเรียนที่ใช้ได้กว้างกว่าเรื่องบัตรเครดิต สำหรับสถาบันการเงินไทยที่ออกบัตร Visa แบบไร้สัมผัสจำนวนมาก ประเด็นที่ควรตรวจสอบคือฝั่งผู้ออกบัตรของตนตรวจสอบวันหมดอายุซ้ำระหว่างการอนุมัติหรือไม่ เพราะนั่นคือด่านเดียวที่ยังทำงานได้เมื่อเครื่องรูดถูกหลอกไปแล้ว เว็บไซต์ Cloud Thunder เคยรายงานการที่ Visa ลงทุนด้านการตรวจจับการฉ้อโกงเชิงพฤติกรรมไว้ที่ 2026/08/022

คำแนะนำ

งานวิจัยเสนอมาตรการรับมือที่ครอบคลุมทั้งฝั่งเคอร์เนล เครื่องรูด และผู้ออกบัตร ข้อแรกคือให้ผูกข้อมูลที่มีผลต่อวันหมดอายุเข้ากับการตรวจสอบ โดย Application Expiration Date และฟิลด์การยืนยันตัวผู้ถือบัตรควรถูกผูกด้วยการเข้ารหัสเข้ากับลายเซ็นที่ผู้ออกบัตรตรวจสอบได้ หรือถูกรับรองภายใต้การตรวจสอบข้อมูลแบบออฟไลน์ หรือถูกครอบคลุมด้วยค่าแฮชของธุรกรรมที่เคอร์เนลกำหนด ซึ่งจะล้มเหลวทันทีเมื่อมีการดัดแปลงระหว่างทาง ข้อที่สองคือให้ตรวจสอบค่าวันหมดอายุทั้งสองที่เทียบกัน โดยในเคอร์เนลที่เปิดเผยค่ามากกว่าหนึ่งที่ เครื่องรูดควรเปรียบเทียบค่าที่ตัวเองใช้กับค่าที่อยู่ในข้อมูลที่ส่งถึงผู้ออกบัตร และสร้างหลักฐานที่ผู้ออกบัตรมองเห็นได้เมื่อสองค่าไม่ตรงกัน

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

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

แหล่งอ้างอิง