สัปดาห์ที่ผ่านมา เกิดเหตุมีผู้ใช้บริการธนาคารถูกเรียกเก็บเงินในรายการที่ไม่ได้ใช้งานจำนวนมาก ล่าสุดทางธนาคารแห่งประเทศไทยระบุว่าเหตุการณ์นี้เกิดจากคนร้ายสุ่มข้อมูลบัตร แล้วนำข้อมูลไปใช้จ่ายผ่านร้านค้าที่ไม่ได้ยืนยันผู้ใช้ผ่าน OTP ซ้ำ โดยรวมมีบัตรใช้งานผิดปกติจากเหตุนี้ 10,700 ใบ
ทางธนาคารแห่งประเทศไทยเพิ่มมาตรการ เช่น ยกระดับการตรวจจับธุรกรรมผิดปกติ โดยเฉพาะธุรกรรมจากต่างประเทศ, เพิ่มการแจ้งเตือนลูกค้าในการทำธุรกรรมทุกรายการ, ในกรณีบัตรเดบิตที่เป็นเหยื่อให้คืนเงินภายใน 5 วัน
นอกจากมาตรการต่างๆ แล้วทางธนาคารแห่งประเทศไทยยังแนะนำถึงฟีเจอร์ความปลอดภัยของบางธนาคาร ทั้งการเปิด/ปิดบัตรด้วยตนเอง, เปลี่ยนแปลงวงเงินการใช้บัตร, หรือแม้แต่แจ้งอายัดบัตรผ่านแอพพลิเคชั่น
ที่มา - Bank of Thailand
Comments
Fraud detection ควรจะใส่กับเดบิตด้วยนะ บัตรเครดิตของแฟนก็โดนแต่ Fraud detection ทำงานก็เลยรอดไป
ของ Citi Bank มี Fraud Alert ให้นะ หากนานๆทีไปใช้ทำธุรกรรมตปท. แป๊ปเดียวมีจนท. Call Center โทรมาหาเลย ว่าตะกี๊มีการรูดใช้บัตรซื้อของตปท.จริงหรือเปล่า หรือ ถ้ามีการรูดจำนวนเงินเดิมๆติดต่อกันเกิน 5-10 ครั้ง บัตรโดนล็อคเลย เพราะเคยเติมเงินทีละ 10 บาท เข้ามือถือเพื่อเพิ่มจำนวนวัน เลยรู้
ถ้าแค่สุ่มเลขบัตรแล้วตัดเงินได้นี่ แสดงว่าระบบทั้งระบบมีปัญหาตั้งแต่รากฐานเลยนะ
เอาตรงๆ ว่าผมไม่เชื่อ
อันนี้ไม่แน่ใจ ผมว่าหมายเลขบัตรเครดิตทุกวันนี้ entropy มันต่ำมาก
หมายเลข 16 หลัก ใช้งานได้จริงประมาณ 8-10 หลักเท่านั้น (6 หลักแรกถูกกันไว้สำหรับหน่วยงานออกบัตร ประเภทบัตร) หมายเลข CVV อีก 3 หลัก เดือน/ปี หมดอายุนี่ความเป็นไปได้มีไม่กี่สิบแบบ
บัตรแต่ละธนาคารออกนับหมื่นใบ ถ้าเจอ birthday attack มันไม่ได้ยาก (สุ่มแสน หวังแค่ร้อย) ไม่นับว่าหากกระบวนการออกเลขบัตรในหลักที่เหลือไม่ได้สุ่มจริง (บางทีผมเจอเลขใกล้ๆ กัน ไม่แน่ใจว่าเป็น running number หรือสุ่มแต่ผมแค่บังเอิญ) อันนี้จะเหลือ entropy ไปแค่ CVV ซึ่งไม่ได้ยาก
lewcpe.com, @wasonliw
ชั้นต่ำใช้แค่ รหัสบัตรกับวันหมดอายุ
ผมเดาว่าบัตรออกใกล้ ๆ กัน น่าจะมีวันหยุดอายุใกล้ ๆ กันด้วย
รหัสหลังบัตร และ OTP ไม่ได้ require ในการจ่ายตังครับ
ซึ่งระบบที่ไม่เปิด OTP จะต้องรับผิดชอบหาก transactions นั้น ๆ เป็น fraud ครับ
ถ้าใครเคยใช้ Credit card number generator คงบอกอายุ ....
จริงๆมันสุ่มได้ครับ มันมี algorithm ตามที่ คห บนบอกไว้ แต่จะไปติดตรง วันหมดอายุบัตร ซึ่งพวกนี้ก็ไป brute force attack กันต่ออีกทีหนึ่ง
ส่วนตัวมองว่า เลขบัตรหลุดไปมากกว่านะ ... ครับ
สุ่มเลขหน้าบัตร เดือนปีหมดอายุ เลขหลังบัตรอีก สุ่มอีท่าไหนเนี่ย
สุ่มจนถูกนี่ Brute-force เข้ามางี้
นั่นสิครับ
ถ้า brute-force ธนาคารน่าจะรู้
เพราะฝั่งร้านมันจะยิงข้อมูลผิดเข้าระบบมารัวๆ
ส่วนตัว ผมสงสัย sms ปล่อยกู้เมื่อเดือนที่แล้ว
รู้สึกมันพาไปหน้ากรอกข้อมูลนะ
Fraud detection ที่เคยเห็นแล้วประทับใจจริงๆ คือ AMEX แบบเจอ รูดผิดปรกติ หรือ โดนรูดข้ามประเทศเค้าจะ cancel ก่อนแล้ว โทรหาเจ้าของบัตร ในเวลาอึดใจ .. แต่อันนั้นเข้าใจว่า คนใช้น้อยเพราะเป็น charge card แล้วเงินลงทุนเรื่อง เอามนุษย์มาดูแล transaction เค้าเยอะมาก
ถามทีหลังบางทีก็เป็นปัญหานะครับ เคยเห็นคนอเมริกันไปเที่ยวยุโรป รูดปุ๊บบัตรโดน cancel แล้วโทรมาหาบอกว่าไม่ต้องเป็นห่วง เดี๋ยวส่งใบใหม่ไปให้ที่บ้านนะ คือตอนนี้อยู่ยุโรปไง แล้วระหว่างนี้จะเอาอะไรใช้
จริงๆตอนออกต่างประเทศก็ควรแจ้งบัตรด้วยแหละครับว่าจะไป เค้าจะได้ไม่ตัด
เวลาไปตปท. ถึงต้องโทรแจ้งข้อมูลไว้ก่อนครับ เผื่อๆ ไว้ เดี๋ยวเค้าโทรมา ไม่ได้โรมมิ่ง โทรไม่ติด รูดไม่ได้ ซวยอีก
iPAtS
การสุ่ม ส่วนตัวไม่เชื่อว่าเกิดจากเหตุนี้ ไม่งั้นทั่งโลกคงสะเทือนไปนานแล้ว โดนกันทั่งโลก ไงโดนแค่ไทยถ้ามันจะง่ายขนาดนั้นแค่สุ่ม น่าจะเกิดจากการรั่วแต่ตรงจุดไหนแค่นั้นเอง
ที่ต้องรีบออกมาแจ้ง คงแก้เขิลไป พลางๆ
อันนี้สงสัยเองว่า ทำไมถึงไม่ยอมให้ user ทำการเปลี่ยน cvv ได้ด้วยตัวเอง เหมือนเป็น Private Key หรือ Password อย่างนึง
ติดที่ระบบส่วนไหนกันน่ะ
มันจะกลายเป็นสุมง่ายกว่าเก่าน่ะสิ user ทั่วไปคงไม่คิดอะไรมาก 111 222 123
ก็ค่าตั้งต้นมากับบัตรเหมือนเดิม แล้วสามารถไปเปลี่ยนเองได้ กรณีที่แย่ที่สุดคือปลอดภัยเท่าเดิม
ถ้าจะปรับปรุงก็ไปเพิ่มจำนวนหลักเอา กำหนด max length ได้ แต่ไม่ควรต้องเป็น length ที่เท่ากันเสมอ
ชื่อ-สกุล + เลขบัตร + cvv + วันหมดอายุ มันสุ่มได้เหรอ?
ผมไม่เชื่อนะ ถ้าบอกว่าเมนเฟรมถูกเจาะล่ะก็พอฟังขึ้น
ชื่อไม่น่าจะตรวจมั้งครับ
ชื่อไม่เกี่ยวเหรอครับ ผมใส่มั่วๆทั้งเวบไทยเวบนอกก็ใช้ได้
ชื่อผมเคยใส่ไม่ตรงหน้าบัตรมันก็ตัดผ่านนะครับ
ถ้าเลขบัตรใช้งานได้ 8-10 หลัก ถ้าออกหลักหมื่นใบ สุ่มสักหมื่นเลขก็เริ่มชนล่ะครับ (birthday attack) อันนี้คือกรณีที่หลักที่เหลือสุ่มสมบูรณ์ ถ้าสุ่มไม่สมบูรณ์ มีเลข checksum หรือใช้ running number ก็จะเดาง่ายขึ้นไปอีก ไปลุ้นที่ CVV อย่างเดียว
lewcpe.com, @wasonliw
ขั้นต่ำใช้แค่รหัสหน้าบัตรกับวันหมดอายุครับ
บัตรไทย แพทเทิร์นมันคงตายตัวอะ บัตรเดบิตวันหมดอายุค่อนข้างคงที่ เลข 6-8 เลขแรกก็แทบจะ เป็นค่าคงที่
ไม่ใช่บัตรไทยครับ มันเป็นเลขที่ออกโดย visa หรือ master (หรือเจ้าอื่นๆ)
ประมาณ 3-4 หนักแรกเป็นธนาคารที่ออก หลักต่อๆมาเป็นประเภทบัตร หลักสุดท้ายเป็น check sum เหลือจริงๆแค่ช่วงกลางๆที่ออกให้ผู้ใช้งาน
ฺเรียนทีม BOT
ลูกค้าต้องการ 2 Factor Authentication ช่วยพลักและดันด้วยครับ
อันนี้ผมว่าเป็นปัญหาระดับ Visa/MasterCard เลยนะครับ ไม่ยอมบังคับ 3D Secure ทั้งสองค่าย แม้จะพยายามบีบอยู่บ้างด้วยการผลักความรับผิดชอบ (liability shift) แต่ไม่ยอมแบน
lewcpe.com, @wasonliw
2 Factor ไม่ได้บังคับครับ แต่ถ้าเกิด fraud merchant ต้องเป็นคนรับผิดชอบ
ถ้าเปิดแล้ว issuer จะเป็นคนรับผิดชอบครับ
อันนี้สงสัยครับ เหมือนจะใชับังคับบางเจ้าไม่ได้หรือเปล่า เช่น Paypal เพราะเคยโดน transfer เงินออกจากบัตรเครดิต (พอโนติมาก็ระงับเลย) แต่มันไม่มี OTP ใดๆ เลย พอแจ้งธนาคาร เสียเวลาแจ้งความ ส่งเอกสารสารพัด (แต่ Paypal ไม่ให้ข้อมูลใดๆ ทั้งสิ้น) สุดท้ายธนาคารก็ทำอะไรไม่ได้ เลยเสนอว่า ต้องให้ mastercard ตัดสิน ซึ่งมีค่าใช้จ่าย (fee) ถ้าแพ้ เลยยอมเลิกไป เพราะว่า ทาง Paypal ไม่ให้ข้อมูลอะไรเลย ไม่รู้จะเอาอะไรไปสู้
2 Factor ร้านต้องเสียค่าธรรมเนียมเพิ่มด้วยนะครับ
0.x % จำไม่ได้ละ
ได้ sms ว่าโดนสุ่มเลข expiry เหมือนกัน
ถึงกับต้องไปหาข้อมูลเพิ่มเลย สรุปว่า เป็นไปได้จริงๆด้วย
Technique Allows Researchers To Crack Credit Card Numbers in 6 Seconds
สุ่มเลขบัตรไม่น่าจะยาก เพราะ entropy ไม่มาก ยิ่งถ้าบัตรที่ธนาคารออกเป็น Sequential ก็ยิ่งง่าย วันหมดอายุก็จะง่ายด้วยเพราะออกมาติดๆกัน
เท่าที่ไล่อ่านคนในกลุ่มที่โดน หลายๆคนเล่าตรงกันว่าก่อนน้าที่จะโดน มีการตัดบัตรยอดน้อยๆ แล้วคืนเงิน ซึ่งพฤติกรรมมันเหมือนเวลาเราไป Verify บัตรหรือใช้บัตรยื่นยันตัวตน มันก็จะตัดๆคืนๆเพื่อทดสอบว่าบัตรใช้ได้จริงมั้ย
ก็คือทำตัวเหมือน shop ทั่วไปเวลาเราจะผูกบัตร ทำให้ธนาคารยังไม่เอะใจ พอรู้ว่าบัตรใช้ได้ก็เสร็จ :O
จริงๆมันน่าจะผิดตั้งแต่ธนาคารต่างๆออก ATM พ่วงเดบิตนี่แหละครับ เชื่อว่าคนจำนวนมากยังไม่รู้เลยว่าบัตร ATM ตัวเองเป็นเดบิตด้วย จริงๆควรจะปิดเป็น default และเปิดเมื่อลูกค้าขอ นี่ผมไปทำ ATM ทุกที่ผมต้องบอกปิดเดบิตเองตลอด
เวลาทำบัตรเอทีเอ็มนี่ ธนาคารให้ทำเดบิดก่อนเลย พอเราบอกว่าไม่เอาเดบิด ธนาคารบอกว่าบัตรธรรมดาหมด ไม่รู้จะมาเมื่อไหร่ ไม่ทำก็ไม่ได้บัตร ธนาคารคงอยากขายบัตรเครดิตเพราะค่าธรรมเนียมสูง พอเกิดปัญหาแบบนี้ก็บอกว่าเป็นเพราะโดนโจมตี ป้องกันไม่ได้ ผู้ใช้ก็รับกรรมกันไป
บัตรผมได้มาก็เป็นเดบิตครับ พอได้บัตรมาผ ผมบอกปิดการใช้ตั้งแต่สมัครเลย ตัดปัญหาบัตรหายแล้วโดนเอาไปรูดด้วย
คือเอาจริงๆก็งงใจนะ คนไทยไม่ได้ใช้บัตรเครดิตเป็นรายแรกๆในโลก สหรัฐอเมริกาหรือเกาหลีก็น่าจะมีผู้ถือบัตรฯมากกว่าไทยไม่รู้กี่เท่า หรือจริงๆ เค้าก็โดนกันไปแล้ว แล้วเค้ารอดได้อย่างไร
แล้วถ้าสุ่มบัตร มันก็ต้องโดนคนถือบัตรประเทศอื่นบ้างสิ มันต้องเป็นทั่วโลก ทำไมเห็นแต่ข่าวในไทย หรือเรามันวางใจไม่กัน?
คือถ้า Payment Gateway ที่ยอมให้ยิงกระหน่ำ brute force เดา CVV ได้ ทางต้นทางเค้าต้องตัดการเชื่อมต่อแล้ว บัตรเดียวโดนรายวินาทีนี่ แล้วโดนไป 4-5 วัน ยังยืนให้ยิงได้ นี่ยอมใจริงๆ
ถ้าเป็นตนร้าย ถ้าเราไม่มีหมายเลขบัตรในมือ ไม่มีวันหมดอายุหน้าบัตร ไม่มี CVV เราก็ต้องยิง Payment Gateway มันต้องยิงแหลก แล้วต้องเปิดฟาร์มเต็มทีเลยไม่จำกัดเฉพาะบัตรไทยหรอก แล้วคงไม่จำกัดแค่หมื่นใบในไทยแน่ๆ เพราะถ้ามีคนรู้ตัวโดนบล็อก IP/token มันก็จบแล้ว มันจะเป็น one-time event
ผมเดาว่า Debit ทีี่อื่นคนใช้กันจริงจัง ต่อ Fraud Detection ไว้เหมือนบัตรเครดิตเรียบร้อย
บ้านเราเหมือน Feature พวกนนี้ apply แค่บัตรเครดิต เลยไม่เกิดปัญหาหักยอดเล็กๆรัวๆ แต่เป็นก้อนใหญ่ๆปปกติที่ดูไม่แปลกแทน
ถ้าเป็นการสุ่มเลขบัตรจริง มันควรจะมี transaction ที่ผิดพลาดเกิดขึ้นบ่อยๆ ที่ระบบของธนาคารนะ ซึ่งถ้าแบงก์ตรวจสอบกรณีนี้ไม่ได้ อันตรายสุดๆ
ผมใช้เดบิตกรุงไทยเมื่อ 2-3 ปีก่อน เอาไปซื้อ ebook จาก Google Play Book ซึ่งไม่มีตะกร้า ซื้อเป็นสิบเล่มก็ทำรายการเป็นสิบรอบติดต่อกัน (แต่ก็ไม่ได้ถี่แบบที่เป็นข่าวนะ มันก็เว้นช่วงให้นิ้วกดบ้าง) บัตรมันก็ล๊อค ก็ต้องไปปลดกับทางธนาคารนะครับ
ผมสงสัยมากว่าทำไมเคสนี้มันถึงไม่มีแบบนั้นบ้าง ปล่อยให้รูดจนหมดได้ไง แถมรายการถี่แบบผิดมนุษย์แบบนี้ด้วย ยิ่งถ้าอ้างว่าสุ่มเลขบัตรก็แปลว่าน่าจะใช้การ Brute force ซึ่งน่าจะตรวจจับได้ง่ายยิ่งกว่าอีก และธนาคารควรจะรู้ก่อนผู้ใช้ด้วยซ้ำว่ามีการโจมตีเกิดขึ้น และควรจะมี action อะไรบางอย่างจากธนาคารก่อนที่ผู้ใช้จะเริ่มโวยวายด้วยซ้ำ (อย่างน้อยถ้าแก้หรือป้องกันไม่ได้ก็แจ้งเตือนผู้ใช้ก็ยังดี) ที่สำคัญคือมันไม่ได้เกิดเหตุ ณ วันที่เป็นข่าววันเดียว แต่มันเกิดมาตั้งแต่ต้นเดือนแล้ว ยังไงธนาคารก็ต้องรับรู้เรื่องนี้ก่อนวันที่เป็นข่าวแน่ๆ
แต่การที่ไม่มีธนาคารไหนทำอะไรจนกระทั่งเป็นข่าวแบบนี้ผมว่าเป็นอะไรที่น่าสงสัยพิกล
ให้ "เดา" (ย้ำว่าเดา) คือคนร้ายระวังพอที่จะยิงมูลค่าต่ำๆ ครับ 1-3 USD ถ้ามีหลุดสักพันนี่น่าจะโดน
lewcpe.com, @wasonliw
แต่เคสผมที่โดนล๊อคนี่ ผมก็ซื้อการ์ตูนเล่มละ 40-50 บาทเหมือนกันนะครับ เพราะงั้นคิดว่าไม่น่าใช่เรื่องมูลค่าหรอกครับ
ผมโดนยอด 1,600 บาท จาก apple ติดกัน 2 รอบภายใน 2 นาที โชคดีที่ตอนนั้นผมดูจอแล้วเห็นรายการทันทีเลยรีบกดระงับบัตร กดปุ๊ป รายการที่ 3 ยอด 1,600 เด้งมาเลยว่าตัดไม่ผ่าน คือยอดทั้งเยอะและรัวเลยครับ
เคยเอาบัตรเสริมแม่ไปรูดซื้อของแพงไป แพลนตั้งใจจะแอบเอาเข้าบ้านไม่ให้แม่เห็นเดี๋ยวต้องโดนด่าแน่ๆ กลับมาถึงบ้านปุ๊บโดนเทศนาจัดเต็มเลยจ้าาา แม่มาเฉลยทีหลังว่าจนท.เค้าโทรมาคอนเฟิร์มว่าได้ทำธุรกรรมนี้จริงไหม แต่แม่ก็อนุมัติไปเพราะได้ยินลูกบ่นอยากได้มาหลายวัน ? ก็เลยถึงบางอ้อว่า อ๋ออ เค้ามีระบบเช็คอยู่ แต่ก็คิดว่าคง monitor เฉพาะจำนวนเงินมากๆแน่
เดี๋ยวนี้คนส่วนใหญ่มี smartphone ควรให้ยืนยันการจ่ายเงินด้วย digital signature เป็นช่องทางหลัก โดย private key ของอุปกรณ๋ของผู้ใช้ก็เข้ารหัสไว้อีกชั้นหนึ่งด้วย และให้ผู้ใช้ตั้งรหัสปลดล็อกได้เองด้วยรหัสผ่านที่ปลอดภัย ไม่ควรจำกัดว่าต้องเป็นตัวเลขเท่านั้นความยาว 6 ตัวเท่านั้น
การจ่ายด้วยเลขบัตรเครดิตและข้อมูลที่ปรากฏบนบัตร ไม่ปลอดภัย ควรจัดเป็น deprecated และยกเลิกในอนาคต ไม่ควรใช้ต่อนานเกินไป
มันมีบัตรไหนไม๊ ที่ให้เรา approve ทุก transaction ผ่าน app
ถ้าไม่ approve ในเวลาที่กำหนด ยกเลิกรายการ
หรืออย่างน้อย รายการที่เป็น online หรือรายการที่ไม่มีการอ่านชิพจากบัตรโดยตรง ต้อง approve ทั้งหมดก็ยังดี
ถ้าเจ้าไหนมี จะวิ่งไปใช้เลย