เหตุการณ์บัตรเครดิตและบัตรเดบิตถูกดูดเงินในประเทศไทยทำให้คนตั้งคำถามกันจำนวนมากว่า “แล้วทำไมมาโดน (เฉพาะ) ที่ประเทศไทย” แต่ในความเป็นจริงแล้วการโจมตีแบบ Enumeration Attack นั้นมีมาแล้วระยะหนึ่ง แม้ Visa จะออกรายงานแจ้งเตือนแต่ธนาคารที่ถูกโจมตีไม่ค่อยออกมาเปิดเผยต่อสาธารณะกันบ่อยนัก ยกเว้น Privacy.com ผู้ให้บริการเลขบัตรเครดิตชั่วคราว
Privacy.com รายงานถึงเหตุการณ์ช่วงต้นปี 2020 ที่บริษัทถูกยิงคำสั่งจ่ายเงินจำนวนมาก จากร้านค้า 5 รายในเยอรมนี, นิวซีแลนด์, และสหราชอาณาจักร โดยทาง Privacy.com ระบุว่าร้านค้าเหล่านี้น่าจะเป็นเหยื่อของคนร้ายอีกที โดยคนร้ายอาจจะถูกแฮกระบบหรืออย่างน้อยก็ข้ามระบบจำกัดปริมาณการจ่ายเงิน (rate limit) โดยเชื่อว่าคนร้ายอาศัย botnet เข้าไปโจมตีตัวร้านค้า
เนื่องจาก Privacy.com เป็นผู้ออกเลขบัตร ทำให้เห็นกระบวนการของคนร้าย เป็นขั้นดังนี้
-
-
- คนร้ายสั่งจ่ายแบบไม่มีเลข CVV และวันหมดอายุ ซึ่งเป็นคำสั่งขอจ่ายเงินที่ทำได้ โดยไม่สนใจว่าการจ่ายสำเร็จหรือไม่ แต่รอดูคำข้อความการจ่ายเงินไม่สำเร็จ
- หากข้อความจ่ายเงินไม่สำเร็จ ไม่ใช่ “invalid card number” ที่แปลว่าเลขบัตรผิดแต่เป็นข้อความอื่น เช่น ข้อมูลบัตรไม่บัตรไม่ถูกต้อง, หรือการจ่ายเกินวงเงิน แปลว่าเลขบัตรนี้ใช้งานได้
- หลังจากได้เลขบัตรที่ถูกต้องแล้ว คนร้ายจะพยายามหาวันหมดอายุ โดยทั่วไปแล้วบัตรมีอายุ 4-6 ปี การหาวันหมดอายุจึงไม่ยากเกินไป
- หลังจากได้วันหมดอายุแล้ว (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 by lew / วันที่เผยแพร่ 22 ต.ค.2564
Link : https://www.blognone.com/node/125407