การโจมตีแบบฟิชชิ่งที่ซ่อน JavaScript โดยใช้ Unicode ที่มองไม่เห็น

วิธีการซ่อน JavaScript รูปแบบใหม่ที่ใช้ตัวอักษร Unicode ที่มองไม่เห็นในการแทนค่าข้อมูลไบนารี กำลังถูกนำมาใช้ในการโจมตีแบบฟิชชิ่งที่มุ่งเป้าไปยัง Political Action Committee (PAC) ของสหรัฐอเมริกา

Juniper Threat Labs ตรวจพบการโจมตีดังกล่าวได้รายงานว่า เหตุการณ์เกิดขึ้นในช่วงต้นเดือนมกราคม 2025 และมีสัญญาณของความซับซ้อน เช่น การใช้

  • ข้อมูลส่วนบุคคลที่ไม่เปิดเผยต่อสาธารณะ เพื่อกำหนดเป้าหมายที่ตกเป็นเหยื่อ
  • การตั้งค่า breakpoint ของ Debugger และการตรวจสอบเวลา เพื่อหลีกเลี่ยงการตรวจจับ
  • การใช้ลิงก์ติดตามของ Postmark ที่ซ้อนกันหลายชั้น เพื่อปกปิดปลายทางสุดท้ายของการโจมตีฟิชชิ่ง

นักพัฒนา JavaScript ชื่อ Martin Kleppe เปิดเผยเทคนิคการซ่อน JavaScript ครั้งแรกในเดือนตุลาคม 2024 และพบการนำไปใช้ในการโจมตีจริงอย่างรวดเร็ว แสดงให้เห็นถึงความรวดเร็วในการเปลี่ยนงานวิจัยใหม่ให้กลายเป็นเครื่องมือสำหรับการโจมตี

การทำให้มองไม่เห็น Payload ของ JavaScript

เทคนิคการซ่อนรูปแบบใหม่นี้ ใช้ประโยชน์จากตัวอักษร Unicode ที่มองไม่เห็น โดยเฉพาะตัวอักษร Hangul half-width (U+FFA0) และ Hangul full-width (U+3164)

ตัวอักษร ASCII แต่ละตัวใน JavaScript payload จะถูกแปลงเป็นรูปแบบไบนารี 8 บิต และค่าไบนารี (หนึ่ง และศูนย์) ในนั้นจะถูกแทนที่ด้วยตัวอักษร Hangul ที่มองไม่เห็น

โค้ดที่ถูกซ่อนจะถูกเก็บเป็นคุณสมบัติใน JavaScript object และเนื่องจากตัวอักษร Hangul Filler นั้นจะถูกแสดงเป็นช่องว่าง จึงทำให้ payload ในสคริปต์ดูเหมือนว่าไม่มีอะไร ซึ่งสามารถเห็นได้จากช่องว่างที่ท้ายภาพด้านล่าง

สคริปต์ short bootstrap จะดึง payload ที่ซ่อนอยู่ด้วยการใช้ JavaScript Proxy ในฟังก์ชัน 'get() trap' เมื่อเข้าถึงคุณสมบัติที่ซ่อนอยู่ Proxy จะทำการแปลงตัวอักษร Hangul Filler กลับเป็นไบนารี และสร้างโค้ด JavaScript เดิมขึ้นมาใหม่

นักวิเคราะห์จาก Juniper รายงานว่า ผู้ไม่หวังดีใช้ขั้นตอนการซ่อนเพิ่มเติมนอกเหนือจากที่กล่าวมาข้างต้น เช่น การเข้ารหัสสคริปต์ด้วย base64 และใช้การตรวจสอบการป้องกัน debugging เพื่อหลีกเลี่ยงการวิเคราะห์

Juniper อธิบายว่า "การโจมตีเหล่านี้มีการปรับเปลี่ยนให้เหมาะสมกับเป้าหมาย รวมถึงข้อมูลที่ไม่เปิดเผยต่อสาธารณะ และ JavaScript เริ่มต้นจะพยายามตั้งค่า breakpoint ของ debugger หากมีการวิเคราะห์, ตรวจจับการ delay และจากนั้นจะยกเลิกการโจมตีโดยการเปลี่ยนเส้นทางไปยังเว็บไซต์ที่ไม่เป็นอันตราย"

การโจมตีเหล่านี้ตรวจจับได้ยาก เนื่องจากช่องว่างที่ดูเหมือนว่างเปล่าช่วยลดโอกาสที่เครื่องมือตรวจสอบด้านความปลอดภัยจะทำการแจ้งเตือนว่าเป็นภัยคุกคาม

เนื่องจาก payload เป็นเพียงคุณสมบัติในออบเจ็กต์ จึงสามารถถูกแทรกเข้าไปในสคริปต์ที่ถูกต้องได้ โดยไม่ทำให้เกิดความสงสัย อีกทั้งกระบวนการเข้ารหัสทั้งหมดก็ง่ายต่อการดำเนินการ และไม่ต้องการความรู้ที่ซับซ้อน

Juniper ระบุว่ามีสองโดเมนที่ใช้ในแคมเปญนี้ที่เคยเชื่อมโยงกับชุดเครื่องมือฟิชชิ่ง Tycoon 2FA มาก่อน ซึ่งหากเป็นเช่นนั้น น่าจะเห็นวิธีการซ่อน Script ที่มองไม่เห็นนี้ ถูกนำไปใช้โดยผู้ไม่หวังดีในวงกว้างมากขึ้นในอนาคต

ที่มา : bleepingcomputer.com