ไม่ใช่เรื่องเฉพาะประเทศไทย ย้อนดูรายงานการโจมตีสุ่มเลขบัตรเครดิตตั้งแต่ปี 2020 ของ Privacy.com

by lew
21 October 2021 - 17:56

เหตุการณ์บัตรเครดิตและบัตรเดบิตถูกดูดเงินในประเทศไทยทำให้คนตั้งคำถามกันจำนวนมากว่า "แล้วทำไมมาโดน (เฉพาะ) ที่ประเทศไทย" แต่ในความเป็นจริงแล้วการโจมตีแบบ Enumeration Attack นั้นมีมาแล้วระยะหนึ่ง แม้ Visa จะออกรายงานแจ้งเตือนแต่ธนาคารที่ถูกโจมตีไม่ค่อยออกมาเปิดเผยต่อสาธารณะกันบ่อยนัก ยกเว้น Privacy.com ผู้ให้บริการเลขบัตรเครดิตชั่วคราว

Privacy.com รายงานถึงเหตุการณ์ช่วงต้นปี 2020 ที่บริษัทถูกยิงคำสั่งจ่ายเงินจำนวนมาก จากร้านค้า 5 รายในเยอรมนี, นิวซีแลนด์, และสหราชอาณาจักร โดยทาง Privacy.com ระบุว่าร้านค้าเหล่านี้น่าจะเป็นเหยื่อของคนร้ายอีกที โดยคนร้ายอาจจะถูกแฮกระบบหรืออย่างน้อยก็ข้ามระบบจำกัดปริมาณการจ่ายเงิน (rate limit) โดยเชื่อว่าคนร้ายอาศัย botnet เข้าไปโจมตีตัวร้านค้า

ภาพโดย flyerwerk

เนื่องจาก Privacy.com เป็นผู้ออกเลขบัตร ทำให้เห็นกระบวนการของคนร้าย เป็นขั้นดังนี้

  1. คนร้ายสั่งจ่ายแบบไม่มีเลข CVV และวันหมดอายุ ซึ่งเป็นคำสั่งขอจ่ายเงินที่ทำได้ โดยไม่สนใจว่าการจ่ายสำเร็จหรือไม่ แต่รอดูคำข้อความการจ่ายเงินไม่สำเร็จ
  2. หากข้อความจ่ายเงินไม่สำเร็จ ไม่ใช่ "invalid card number" ที่แปลว่าเลขบัตรผิดแต่เป็นข้อความอื่น เช่น ข้อมูลบัตรไม่บัตรไม่ถูกต้อง, หรือการจ่ายเกินวงเงิน แปลว่าเลขบัตรนี้ใช้งานได้
  3. หลังจากได้เลขบัตรที่ถูกต้องแล้ว คนร้ายจะพยายามหาวันหมดอายุ โดยทั่วไปแล้วบัตรมีอายุ 4-6 ปี การหาวันหมดอายุจึงไม่ยากเกินไป
  4. หลังจากได้วันหมดอายุแล้ว (Privacy.com ไม่ระบุว่าดูข้อความอะไร) คนร้ายจะไปหาบริการอื่นๆ ที่คนร้ายสามารถดึงเงินออกจากระบบได้ เช่น บริการโอนเงิน หรือบัญชีผู้ค้าของคนร้ายเองโดยตรง แล้วสั่งจ่ายเงินก้อนใหญ่ขึ้น โดยใช้เลขบัตรพร้อมวันหมดอายุ (ไม่มี CVV อยู่ดี) ไปที่บริการนั้น

เลขบัตรมีจำกัด ทำให้เดาง่าย

แม้เลขบัตรจะมีความยาวถึง 16 หลักซึ่งน่าจะทำให้คนร้ายต้องคาดเดาเลขบัตรจำนวนมาก แต่ในความเป็นจริงแล้ว เลขบัตร 6 ตัวแรกนั้นเป็นหมายเลขประจำตัวธนาคารผู้ออกบัตร (Issuer Identifier Number - IIN) และหลักสุดท้ายเป็น Luhn checksum (คิดโดย Hans Peter Luhn นักวิทยาศาสตร์ของ IBM เมื่อปี 1960)

โค้ด Luhn checkum สำหรับหาเลขบัตรหลักที่ 16 ในภาษาไพธอน

การที่หมายเลขบัตรเหลือให้ธนาคารใช้ได้เพียง 9 หลักเช่นนี้ ทำให้อัตราการสุ่มเลขมั่วๆ ก็พบได้ไม่ยากนัก ธนาคารที่ใช้ IIN เดียวออกบัตร 10 ล้านใบ หากคนร้ายสุ่มเลขมั่ว 100 ครั้งก็มีโอกาสพบบัตรสักใบถึง 63% และหากสุ่ม 500 ครั้งก็มีโอกาสสูงถึง 99%

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

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

ที่มา - Privacy.com

Blognone Jobs Premium