InvisibleJS เป็นเครื่องมือโอเพนซอร์สใหม่ที่สามารถซ่อนโค้ด JavaScript ได้โดยใช้อักขระ Unicode ที่มองไม่เห็น (zero-width characters) ซึ่งกำลังสร้างความกังวลเกี่ยวกับการนำไปใช้ในแคมเปญมัลแวร์ เครื่องมือนี้ใช้เทคนิค Steganography ในการฝังโค้ดในไฟล์ที่ดูเหมือนว่างเปล่า ทำให้ตรวจจับได้ยากด้วยตาเปล่าในโปรแกรมแก้ไขโค้ดทั่วไป และอาจนำไปสู่การโหลดมัลแวร์แบบซ่อนเร้นในสภาพแวดล้อม Node.js หรือเว็บแอปพลิเคชันได้ การพัฒนาเครื่องมือนี้เน้นย้ำถึงธรรมชาติของนวัตกรรมด้านการเขียนโค้ดที่มีสองวัตถุประสงค์ในความปลอดภัยทางไซเบอร์
Severity: สูง
System Impact:
- สภาพแวดล้อม Node.js
- เว็บแอปพลิเคชัน
- CommonJS setups
- ES Modules
Technical Attack Steps:
- เครื่องมือ InvisibleJS แปลงโค้ด JavaScript เป็นสตริงไบนารี
- แมป ‘0’ เป็นอักขระ Zero Width Space (U+200B) และ ‘1’ เป็น Zero Width Non-Joiner (U+200C)
- โค้ดที่ถูกซ่อนจะถูกฝังลงในไฟล์ที่ดูเหมือนว่างเปล่า ทำให้มองไม่เห็นในโปรแกรมแก้ไขโค้ดเช่น VS Code
- มี bootstrap loader ขนาดเล็กที่ใช้ถอดรหัสและรัน payload ที่ซ่อนอยู่เมื่อถึงเวลาที่โค้ดทำงาน
- การโจมตีเลียนแบบการใช้ Unicode obfuscation อื่น ๆ ที่เคยถูกใช้ในฟิชชิ่งเพื่อซ่อน payloads และหลบเลี่ยงการตรวจจับของสแกนเนอร์
Recommendations:
Short Term:
- เพิ่มประสิทธิภาพการสแกนที่รองรับ Unicode (Unicode-aware scanning)
- ปรับปรุงการวิเคราะห์พฤติกรรม (behavioral analysis) เพื่อตรวจจับโค้ดที่ทำงานอย่างผิดปกติ
Long Term:
- ติดตามและทำความเข้าใจเทคนิคการซ่อนและทำให้โค้ดยากต่อการอ่าน (obfuscation) ใหม่ๆ อย่างต่อเนื่อง
- ทบทวนและปรับปรุงนโยบายการรักษาความปลอดภัยเกี่ยวกับการใช้ JavaScript และไลบรารีของบุคคลที่สาม
- เพิ่มความระมัดระวังในการตรวจสอบโค้ด โดยเฉพาะไฟล์ที่ดูเหมือนว่างเปล่าแต่มีขนาดไฟล์
Source: https://cybersecuritynews.com/invisiblejs-tool/
Share this content: