OTP ระบบนี้ไม่ปลอดภัยเหรอ?

Blog นี้เขียนขึ้นเป็นการเฉพาะ เพราะ ผมเล็งเห็นว่า Issue นี้เป็นเรื่องที่น่าสนใจ และ ควรจะเตือนพวกเราชาว Internet ครับ (จริงๆ คือ เพิ่งลงเครื่องใหม่ เลยยังขี้เกียจขุดของเก่ามาทำต่อ ฮาาาา)

อ้างอิงข่าวนี้ก่อน เตือนภัย!! คนร้ายปลอมเป็นตัวคุณ ขโมยเงิน E-Banking ฉก OTP ด้วยหลักฐานปลอม เปิดซิมใหม่ !
(จริงๆ ผมอ่านจาก Pantip แล้วนะ แต่ขอ Link ไปที่ IT 24 Hrs ของคุณเอิ้นดีกว่า เพราะ ทำการย่อยข่าวให้เรียบร้อยแล้ว แต่ผมจะย่อยให้อีกหน่อยละกัน

ผู้ใช้ Internet Banking รายหนึ่ง โดนคนร้ายสวมรอยเป็นเจ้าของบัญชีโอนเงินออกไปจากบัญชียอดรวมกว่า 4 แสนบาท ทั้งๆ ที่ Internet Banking ของเจ้าของบัญชีรายนี้ได้ใช้ OTP (One-Time Password) แล้ว

ถามว่า OTP คืออะไร

OTP หรือ One-Time Password คือ พาสเวิร์ดที่สามารถใช้งานได้ในหนึ่งครั้ง และในหนึ่งช่วงเวลาเท่านั้น ซึ่งมีการทำงานง่ายๆ 
1. User ร้องขอ Password จากทาง Server ซึ่งได้ Generate Password รอเอาไว้แล้ว (ซึ่งแน่นอนว่าจะใช้ได้แค่ช่วงเวลาหนึ่งเท่านั้น แล้วจะทำการ Generate ใหม่)
2. Server แจ้ง Password กลับไปหา User ผ่านทาง Gateway แบบต่างๆ (Mail, SMS, Web)
(แบบ Password แบบ Offline ก็มี เช่น Token กับ Paper)
3. User ได้รับข้อมูล Password
4. User ทำการ Login เข้าระบบด้วย Password นั้น

หลายๆ ที่ใช้ OTP คู่กับระบบ Password เป็นการทำ Two-Factor Authentication
(หลายๆ ที่ใช้คำว่า 2-step verification) ซึ่งจะเพิ่มความปลอดภัยได้มากขึ้นอีก

นี่คือตัวอย่างของ OTP

image
OTP แบบ Offline – Google Authenticator (Token)

image
OTP แบบ SMS

image
OTP แบบ Email
(หลัง Login ระบบจะบังคับให้เปลี่ยน Password พวกระบบ Forget Password หลายๆ ก็ใช้วิธีนี้)

ถ้าฟัง Concept แล้ว OTP ไม่ใช่ระบบที่จะ Hack กับได้ง่ายๆ เลยครับ แต่ไม่มีอะไรที่แข่งแกร่งที่สุด OTP ก็มีจุดออนอยู่เช่นกัน แต่จุดอ่อนนั้นไม่ใช่ปัญหาทางเทคนิดด้าน IT แต่กลับเป็นปัญหาของมนุษย์เราที่เป็นผู้ใช้ OTP นั้นเอง

ดูภาพ Concept ของ OTP กันอีกครั้งครับ

image
OTP Concept

มองเห็นอะไรมั๊ยครับ? ตรงนี้มีตรงไหนที่เราจะสามารถขโมย OTP ได้ง่ายที่สุด บอกได้เลยครับก็คือ User

เพราะอะไร? ก็เพราะส่วนที่เหลือส่วนใหญ่จะเป็น Close System ครับ (Server OTP จะไม่อยู่เป็น Frontend ของระบบ ส่วน Gateway ส่วนใหญ่ถ้าเป็น SMS Server หรือ Mail Server จะเข้าถึงค่อนข้างยาก เพราะ จะต้องรู้ระบบภายในก่อน

ดังนั้นเป้าจะมาตกที่ User ครับ การขโมย OTP จาก User เป็นสิ่งที่ง่ายที่สุด แต่…User ไม่ใช่ Computer นิ แล้วจะ Hack ยังไงหล่ะ นี่แหละครับคือ Social Engineering

Social Engineering ถูกนิยามไว้ว่า มันคือ “ศาสตร์” แห่งจิตวิทยา เพื่อหลอกขอข้อมูลจากผู้อื่น หรือ หลอกให้คนอื่นกระทำสิ่งที่ต้องการ (Manipulating) ซึ่งเอาจริงๆ มันไม่ใช่เรื่องใหม่ มันเป็นสิ่งที่เราเจอกันอยู่ทุกคน เช่น Phishing Mail และ แก๊ง Call Center ก็อยู่ในข่ายของ Social Engineering เช่นกันครับ

สิ่งที่เกิดขึ้นกับผู้ใช้ Internet Banking รายนี้ คือ การใช้ Social Engineer กับ User คนอื่นที่ไม่ใช่ตัว User เอง แต่ใช้กับ Admin ของระบบแทน ซึ่งหมายถึง Bank Counter และ Mobile Operator โดยใช้หลักฐานที่น่าเชื่อถือ และ มี “พลัง” เพียงพอ ที่จะกดดันเจ้าหน้าที่เหล่านั้นได้ ซึ่งกรณีนี้ใช้บัตรเจ้าหน้าที่ตำรวจ???

 

[บทวิเคราะห์]

ซึ่งผมไม่แน่ใจว่าเจ้าหน้าที่ Bank ทำการ verify ตัวตนแค่จากบัตรใบเดียว ซึ่งเป็นบัตรที่ไม่ได้มาตรฐาน และ มีโอกาสจะปลอมแปลงสูงได้อย่างไร?

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

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

 

[การปฏิบัติตัวเพื่อป้องกัน Social Engineering]

1. จะต้องทราบข้อมูลของ Account ตัวเองทั้งหมด แนะนำให้บันทึกไว้ในพวก Smartphone App ที่สามารถ Encrypt ข้อมูล (มี Password) ได้ (ไว้ผมจะแนะนำในครั้งต่อไปครับ) ไม่ควรจะมีไว้ในกระดาษ เว้นแต่จะมีการปรับแต่งให้ดูไม่เข้าใจไว้ก่อน

2. ในกรณีที่ทำการเปิด Internet Banking ไว้ จะต้องหมั่นเข้าไปตรวจสอบการทำงานของบัญชีบ้างอย่างน้อย 1 ครั้งต่อเดือน ถ้าเจอ Transaction แปลก ๆ จะได้รับมือได้ทันเวลา (ส่วนตัวจะเช็คทุกสัปดาห์)

3. พวก OTP Token ถ้าเกิดความผิดปกติขึ้นอย่างรอช้า รีบติดต่อเจ้าของระบบทันที เช่น โทรศัพย์ใช้ไม่ได้ ต้องรีบโทรไปสอบถามทาง Operator หรือ เกิด OTP Request มาทั้งๆ ที่เรายังไม่ได้ทำอะไร ต้องรีบโทรไปสอบถามทันที

4. การทำ Social Engineer อาจจะใช้ง่ายๆ อย่างโทรมาบอกให้เราทำธุรกรรมให้ อันนั้นของบอกว่า อย่าหลงเชื่อคนง่าย อย่าลนลานไปกับการกดดัน ตั้งสติไว้ครับ ลองตรวจสอบข้อมูลให้ดีก่อน

 

[สรุป]

สำหรับผม OTP ยังถือว่าเป็นระบบ Authentication ที่มี Security ที่แข็งแกร่งเป็นอันดับต้นๆ อยู่ การ Hack ผ่านตัวระบบที่ใช้ OTP เองนั้นเป็นเรื่องที่ยากมาก แต่ Social Engineering เป็นการมองข้ามความปลอดภัยของ Social Engineering ไปเลย เพราะ เป็นการไปเล่นงานที่ช่องว่างของ Process ที่มีมนุษย์เข้ามาเกีี่ยวข้อง ซึ่งตรงนี้ไม่ว่าระบบจะแข็งแกร่งเพียงไร ก็แทบจะป้องกันได้ยากทีเดียว บุคลากรที่ทำงานเกี่ยวข้องกับคน ควรจะได้รับการศึกษาเรื่องภัยร้ายของ Social Engineering เพื่อที่จะเข้าใจ และ พร้อมที่จะรับมือภัยร้ายเหล่านี้ได้ ซึ่งองค์กรที่ทำธุรกิจบริการที่เกี่ยวข้องกับธุรกรรมก็ควรจะสนับสนุนเครื่องมือ และ วิธีการที่มีมาตรฐานออกมาให้บุคลากรของท่านด้วย

Advertisements

About yuttanah

Just the Line who Live in Live way
This entry was posted in บทวิเคราะห์, Knowledge, Security and tagged , , . Bookmark the permalink.

One Response to OTP ระบบนี้ไม่ปลอดภัยเหรอ?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s