06 กรกฎาคม 2558

มัลแวร์ข้ามการตรวจ Hardware Token OTP ได้อย่างไร

การใช้ Hardware Token OTP (One Time Password) มักนิยมใช้กับการทำธุรกรรมที่มีความสำคัญสูง เพราะเชื่อว่ามีความปลอดภัยสูงกว่า SMS OTP แต่มีต้นทุนที่สูงกว่า อย่างไรก็ตามก็ไม่ได้หมายความว่าจะ Bypass การใช้ Token OTP ไม่ได้ แม้ว่าระหว่าง Web Browser กับ Server จะใช้ TLS (Transport Layer Security ที่มาแทน SSL เดิม) ทั้งนี้หากเครื่องที่ใช้งานด้านผู้ใช้ ติดมัลแวร์ที่เจาะจงโจมตีบริการของเราที่ป้องกันด้วย Token OTP

เราต้องเข้าใจก่อนว่ามัลแวร์เมื่อติดอยู่บนเครื่องที่เราใช้ทำธุรกรรม สามารถตรวจจับการเปิดโปรแกรมใดๆ บนเครื่องเราและเปลี่ยนคำสั่งการส่งข้อมูล Keyboard และ Mouse ที่ส่งไปยัง Window ของโปรแกรมต่างๆ ด้วย Windows API โดยการจัดการกับคำสั่งที่ส่งระหว่างแต่ละโปรแกรมกับ Operating System ด้วยวิธีที่เรียกว่า Hook ซึ่งรายละเอียดของ Windows API นี้สามารถดูได้ที่นี่

ดังนั้นมัลแวร์สามารถติดตามการเปิด Web Browser ความเคลื่อนไหวของ URL โดยการตรวจสอบ Address Bar รวมทั้งดักหรือยกเลิกข้อมูลจากการกด Keyboard หรือ Mouse Click ได้ แม้กระทั่งส่งข้อความแจ้งเตือนปลอม แก้ไขการวาดเว็บเพจเพื่อแทรกข้อความหรือรูปภาพอื่นเพื่อหลอกผู้ใช้ ตลอดจนส่ง HTTP Request โดยใช้ Session ขณะนั้นของ Browser ที่เชื่อมกับ Server เป้าหมายได้

การ Bypass Token OTP

แล้วมัลแวร์ Bypass Token OTP ได้อย่างไร ขอให้ดู Misuse Case Diagram ตามรูป

เริ่มจากการที่ผู้ใช้ Logon ไปยังเว็บไซต์เป้าหมาย ซึ่งมัลแวร์ก็จะปล่อยให้ผู้ใช้งานทำงานต่างๆไปจนกระทั่งผู้ใช้ทำธุรกรรมซึ่งจะต้องใช้ Token OTP ก็จะทำการดักข้อมูล OTP ที่ผู้ใช้ป้อนแต่ไม่ยอมให้กด Enter หรือ Submit ข้อมูล ซึ่งผู้ใช้ก็จะแปลกใจว่าทำไมส่งไม่ไป ในจังหวะนั้นมัลแวร์ก็จะลอบทำธุรกรรมใน Session เดียวกับที่ผู้ใช้กำลัง Logon อยู่ โดยใช้ OTP ที่ดักมาได้นั้น หากเป็น OTP ที่เปลี่ยนตามเวลา ก็จะหน่วงเวลาให้ผู้ใช้ส่ง OTP ไม่ได้จน Token เปลี่ยนค่า OTP ไป แต่หากเป็น OTP ที่เปลี่ยนตามการกด ก็จะแจ้งผู้ใช้ว่าเกิดข้อผิดพลาดในการส่งให้ส่ง OTP ค่าใหม่ไป แล้วการทำธุรกรรมนั้นของผู้ใช้จึงจะสมบูรณ์

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

สิ่งผิดปกติที่จะสังเกตได้

ความผิดปกติฝั่งผู้ให้บริการก็คือจะเกิดการทำธุรกรรมที่ต้องใช้ Token OTP ติดกันในระยะเวลา 1-2 นาที ซึ่งไม่สามารถกระทำได้โดยการกระทำของมนุษย์ หากมีการใส่กฏเกณฑ์ตรวจจับการกระทำลักษณะนี้ในระบบตรวจจับการโกง (Fraud Detection) ก็จะพบได้โดยง่าย

อย่างไรก็ตามดร.ภูมิ ภูมิรัตน ได้ให้ความเห็นว่าหากมัลแวร์แจ้งเตือนในลักษณะ Server Error และบังคับไปเริ่มทำธุรกรรมใหม่ ระบบตรวจจับการโกงก็จะไม่สามารถตรวจจับได้เพราะเป็นพฤติกรรมปกติของการทำงานบนอินเทอร์เน็ต

ความผิดปกติฝั่งผู้ใช้ก็คือจะมีการแจ้งเตือนการทำธุรกรรมซ้ำสองครั้งในระยะเวลา 1-2 นาที ซึ่งหากตั้งค่าการแจ้งเตือนด้วย email ผู้ใช้ก็อาจมองข้ามไปโดยง่ายหากมีการทำธุรกรรมหลายครั้งต่อวัน แต่หากเป็นการแจ้งเตือนผ่าน SMS ก็จะเป็นแบบเดียวกัน ผู้ใช้อาจไม่อ่านและคิดว่าเป็นการส่งซ้ำโดยผู้ให้บริการ ตังนั้นในฐานะผู้ใช้บริการต้องระมัดระวังตัวตรวจสอบการแจ้งเตือนทุกครั้ง ไม่ปล่อยผ่านโดยคิดว่าเป็นข้อผิดพลาดของผู้ให้บริการ