
มีรายงานการค้นพบแพ็คเกจอันตราย 10 รายการบน npm registry ที่เลียนแบบ software projects ที่ถูกต้อง โดยแพ็คเกจเหล่านี้จะดาวน์โหลด component สำหรับขโมยข้อมูล ที่จะรวบรวมข้อมูลสำคัญจากระบบ Windows, Linux และ macOS
แพ็คเกจเหล่านี้ถูกอัปโหลดไปยัง npm เมื่อวันที่ 4 กรกฎาคม และไม่ถูกตรวจพบเป็นเวลานาน เนื่องจากการเข้ารหัสหลายชั้น ซึ่งช่วยให้รอดพ้นจากกลไกการวิเคราะห์โค้ดแบบทั่วไป
ตามรายงานของนักวิจัยจากบริษัทความปลอดภัยทางไซเบอร์ Socket ระบุว่า แพ็คเกจทั้ง 10 นี้มียอดดาวน์โหลดเกือบ 10,000 ครั้ง และได้ขโมยข้อมูล credentials จาก system keyrings, เบราว์เซอร์ และ authentication services
แพ็คเกจเหล่านี้ยังคงดาวน์โหลดได้ แม้ว่า Socket จะรายงานไปยัง npm แล้วก็ตาม:
- typescriptjs
- deezcord.js
- dizcordjs
- dezcord.js
- etherdjs
- ethesjs
- ethetsjs
- nodemonjs
- react-router-dom.js
- zustand.js
นักวิจัยของ Socket ระบุว่า แพ็คเกจเหล่านี้ใช้ CAPTCHA ปลอมเพื่อให้ดูน่าเชื่อถือ และจะดาวน์โหลดแพ็คเกจ Infostealer ขนาด 24MB ที่รวมอยู่กับ PyInstaller
เพื่อหลอกล่อผู้ใช้ ผู้ไม่หวังดีได้ใช้ typosquatting ซึ่งเป็นกลยุทธ์ที่ใช้ประโยชน์จากการสะกดผิด หรือการดัดแปลงเล็กน้อยจากชื่อที่ถูกต้องของแพ็คเกจยอดนิยม ได้แก่ TypeScript (ชุดส่วนขยายของ JavaScript), discord.js (ไลบรารีบอท Discord), ethers.js (ไลบรารี Ethereum JS), nodemon (เครื่องมือรีสตาร์ทแอป Node อัตโนมัติ), react-router-dom (เราเตอร์สำหรับ React ในเบราว์เซอร์) และ zustand (เครื่องมือจัดการ state ของ React)
เมื่อนักพัฒนาค้นหาแพ็คเกจเหล่านี้บนแพลตฟอร์ม npm พวกเขาอาจพิมพ์ชื่อแพ็คเกจที่ถูกต้องผิด หรืออาจเผลอเลือกแพ็คเกจที่เป็นอันตรายซึ่งแสดงอยู่ในผลการค้นหา
เมื่อทำการติดตั้ง สคริปต์ ‘postinstall’ จะถูกเรียกใช้งานโดยอัตโนมัติ เพื่อเปิด terminal ใหม่ที่ตรงกับระบบปฏิบัติการของเครื่อง สคริปต์ดังกล่าวจะรันไฟล์ ‘app.js’ ภายนอก และทำการ clears install log ทันทีเพื่อหลบเลี่ยงการตรวจจับ
ไฟล์ ‘app.js’ นี้คือตัวโหลดมัลแวร์ ซึ่งใช้เทคนิคการปิดบังโค้ดถึง 4 ชั้น ได้แก่ self-decoding eval wrapper, การถอดรหัส XOR ด้วยคีย์ที่สร้างขึ้นแบบ dynamic, URL-encoded payload และ Heavy control-flow obfuscation
จากนั้น สคริปต์จะแสดงหน้า CAPTCHA ปลอมใน terminal โดยใช้ ASCII เพื่อสร้างความน่าเชื่อถือให้กับกระบวนการติดตั้ง

จากนั้นจะส่งข้อมูลตำแหน่ง geolocation และข้อมูลระบบของเหยื่อไปยัง command and control (C2) server ของผู้โจมตี หลังจากได้ข้อมูลนี้ มัลแวร์จะดาวน์โหลด และสั่งรันไฟล์ไบนารี ตามแต่ละแพลตฟอร์มจากภายนอกโดยอัตโนมัติ ซึ่งเป็นไฟล์ executable ที่แพ็คด้วย PyInstaller ขนาด 24 MB
Infostealer นี้ จะมุ่งเป้าไปที่ system keyrings เช่น Windows Credential Manager, macOS Keychain, Linux SecretService, libsecret และ KWallet รวมถึงข้อมูลที่จัดเก็บไว้ในเบราว์เซอร์ตระกูล Chromium และ Firefox ซึ่งรวมถึงโปรไฟล์, รหัสผ่านที่บันทึกไว้ และคุกกี้เซสชัน
ยิ่งไปกว่านั้น มันยังค้นหา SSH keys ในไดเรกทอรีทั่วไป และพยายามค้นหา และขโมย Token OAuth, JWT และ API อื่น ๆ ด้วย
ข้อมูลที่ถูกขโมยจะถูก compressed เป็นไฟล์ และส่งออกไปยังเซิร์ฟเวอร์ของผู้โจมตีที่ 195[.]133[.]79[.]43 หลังจากขั้นตอนการพักข้อมูลชั่วคราวใน /var/tmp หรือ /usr/tmp
นักพัฒนาที่ดาวน์โหลดแพ็คเกจใด ๆ ในรายการดังกล่าว ขอแนะนำให้ clean up มัลแวร์ และเปลี่ยน access tokens และรหัสผ่านทั้งหมด เนื่องจากมีโอกาสสูงที่จะถูกโจมตีไปแล้ว
เมื่อนำแพ็คเกจจาก npm หรือ open-source indexes อื่น ๆ มาใช้ ขอแนะนำให้ตรวจสอบการสะกดผิดซ้ำอีกครั้ง และตรวจสอบให้แน่ใจว่าทุกอย่างมาจากผู้เผยแพร่ที่ถูกต้อง และ repositories อย่างเป็นทางการ
ที่มา : bleepingcomputer.com
