เหตุการณ์บัตรเครดิตและบัตรเดบิตถูกดูดเงินในประเทศไทยทำให้คนตั้งคำถามกันจำนวนมากว่า "แล้วทำไมมาโดน (เฉพาะ) ที่ประเทศไทย" แต่ในความเป็นจริงแล้วการโจมตีแบบ Enumeration Attack นั้นมีมาแล้วระยะหนึ่ง แม้ Visa จะออกรายงานแจ้งเตือนแต่ธนาคารที่ถูกโจมตีไม่ค่อยออกมาเปิดเผยต่อสาธารณะกันบ่อยนัก ยกเว้น Privacy.com ผู้ให้บริการเลขบัตรเครดิตชั่วคราว
Privacy.com รายงานถึงเหตุการณ์ช่วงต้นปี 2020 ที่บริษัทถูกยิงคำสั่งจ่ายเงินจำนวนมาก จากร้านค้า 5 รายในเยอรมนี, นิวซีแลนด์, และสหราชอาณาจักร โดยทาง Privacy.com ระบุว่าร้านค้าเหล่านี้น่าจะเป็นเหยื่อของคนร้ายอีกที โดยคนร้ายอาจจะถูกแฮกระบบหรืออย่างน้อยก็ข้ามระบบจำกัดปริมาณการจ่ายเงิน (rate limit) โดยเชื่อว่าคนร้ายอาศัย botnet เข้าไปโจมตีตัวร้านค้า
ภาพโดย flyerwerk
เนื่องจาก Privacy.com เป็นผู้ออกเลขบัตร ทำให้เห็นกระบวนการของคนร้าย เป็นขั้นดังนี้
แม้เลขบัตรจะมีความยาวถึง 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
Comments
ขอบคุณที่นำข้อมูลมาให้เพิ่มเติมครับ ผมก็คิดอยู่เหมือนกันว่าน่าจะมีประเทศอื่นโดนเหมือนกันแต่ข่าวไม่มาถึงไทยเท่านั้น
เท่าที่อ่าน
1. การเดา cvv ยังยาก น่าจะติด limit หากใส่ผิดซ้ำๆ เลยใช้กับร้านที่ไม่ต้องการ cvv
2. Error message ที่ชัดเจนเกินไป ก็เป็นปัญหา (แบบเดียวกับพวก user password น่ะแหละ)
3. ระบบบัตรเครดิต ทั้งระบบยังช่องโหว่สูงมาก ไม่ได้มีระบบกลางในการป้องกัน แต่ขึ้นอยู่กับผู้ออกบัตรล้วนๆ เลยว่าจะมีการป้องกันอะไรไหม อันนี้คุยกับคนที่ทำงาน bank มาก่อน เค้าบอกว่ามันจะมีระบบ fraud detect ที่ตรวจ “รูปแบบ” ได้ แต่มันต้อง set ไว้ว่ารูปแบบไหนที่จะแจ้งเตือน หากใครเคยรูดซื้ออะไรถี่ๆ บางทีก็โดน lock บัตรก็มี
เมื่อไรจะยอมให้ลูกค้าสร้าง PIN สำหรับซื้อสินค้า
เสียใจด้วยไม่ได้กินผมง่ายๆหรอก
เงินในบัญชีมีไม่ถึงสองร้อยบาท
โดยคนร้ายอาจจะถูกแฮกระบบหรืออย่างน้อยก็ข้ามระบบจำกัดปริมาณการจ่ายเงิน -> คนร้ายอาจจะแฮกระบบโดยการใช้ botnet ข้ามระบบจำกัดปริมาณการจ่ายเงิน?
:-)
จะเพิ่มหลักเลขบัตรก็จะลำบากลูกค้าเวลากรอกข้อมูล
ทางแก้ อาจจะต้องสร้างเลขบัตรเครดิต ให้เป็นเลข+ตัวอักษร
ก็จะเดายากขึ้นมหาศาล
แล้วไปอุดระบบตรวจ bot brute-force อีกที ?