แพ็คเกจ NuGet แอบแฝงโค้ดที่เป็นอันตรายเพื่อสร้างความเสียหายในอนาคต

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

โค้ดอันตรายที่ฝังอยู่ใช้วิธีการกระตุ้นการทำงานแบบ probabilistic trigger ดังนั้น มันอาจจะทำงาน หรือไม่ทำงานก็ได้ ขึ้นอยู่กับชุด parameter ต่าง ๆ บนอุปกรณ์ที่ติดมัลแวร์

NuGet เป็นระบบ package manager แบบ open-source และระบบจัดจำหน่ายซอฟต์แวร์ ที่ช่วยให้นักพัฒนาสามารถดาวน์โหลด และรวมไลบรารี .NET ที่พร้อมใช้งานสำหรับ projects ของตนได้

Socket นักวิจัยจากบริษัทด้านความปลอดภัย ได้ค้นพบแพ็คเกจที่เป็นอันตราย 9 รายการบน NuGet ซึ่งทั้งหมดเผยแพร่ภายใต้นักพัฒนาที่ใช้ชื่อ "shanhai666" โดยแพ็คเกจเหล่านี้มีฟังก์ชันการทำงานที่ดูเหมือนถูกต้องตามปกติ แต่แฝงมาพร้อมกับโค้ดที่เป็นอันตราย

แพ็คเกจเหล่านี้ "มีการมุ่งเป้าในเชิงกลยุทธ์ไปยังผู้ให้บริการฐานข้อมูลหลัก 3 รายที่ใช้ในแอปพลิเคชัน .NET (SQL Server, PostgreSQL, SQLite)" อย่างไรก็ตาม แพ็คเกจที่อันตรายที่สุดในกลุ่มนี้คือ Sharp7Extend ซึ่งมุ่งเป้าไปที่ผู้ใช้ไลบรารี Sharp7 ที่ถูกต้อง ที่ใช้สำหรับการสื่อสารผ่าน ethernet กับ controllers (PLCs) แบบตั้งโปรแกรมได้ของ Siemens

นักวิจัยของ Socket ระบุว่า "ผู้ไม่หวังดีใช้การโจมตีจากนักพัฒนาที่ค้นหา extensions ของ Sharp7 ด้วยการเติมคำว่า "Extend" ต่อท้ายชื่อ Sharp7 ที่ดูน่าเชื่อถือ"

ภายใต้นักพัฒนาที่ใช้ชื่อ shanhai666 ทาง NuGet ได้แสดงรายการแพ็คเกจไว้ 12 รายการ แต่มีเพียง 9 รายการเท่านั้นที่มีโค้ดอันตรายแฝงอยู่ :

SqlUnicorn.

เทคนิคการโจมตีใหม่ Dependency Confusion ใช้แฮกไปแล้ว 35 บริษัท Tech ไมโครซอฟต์ออก Whitepaper แจ้งเตือน

นักวิจัยด้านความปลอดภัย Alex Birsan และ Justin Gardner ได้มีการเผยแพร่เทคนิคการโจมตีใหม่ภายใต้ชื่อ Dependency Confusion ซึ่งอาศัยช่องโหว่ของการดาวน์โหลดและติดตั้งแพ็คเกจของนักพัฒนาในการลักลอบนำแพ็คเกจซึ่งเป็นอันตรายไปรันใน Environment ภายในของนักพัฒนา วิธีการนี้ถูกใช้ทดสอบกับกว่า 35 บริษัท Tech ซึ่งรวมไปถึง Microsoft, Apple, PayPal, Shopify, Netflix, Yelp, Tesla, และ Uber และสามารถใช้โจมตีได้จริง

คีย์หลักของการโจมตีนั้นอยู่ในจุดที่ว่า หากผู้โจมตีทราบถึงชื่อของไลบรารีหรือแพ็คเกจที่นักพัฒนาจะใช้งานภายในกระบวนการพัฒนาแอป ผู้โจมตีจะใช้ข้อมูลดังกล่าวในการนำไปสร้างเป็นไลบรารีหรือแพ็คเกจที่มีชื่อเหมือนกันใน Public repository แทนและสอดแทรกโค้ดที่เป็นอันตรายเข้าไปในลักษณะที่คล้ายกับ Supply-chain attack การโจมตีในลักษณะนี้ส่วนหนึ่งเกิดขึ้นได้เนื่องจากพฤติกรรมของ Package manager ที่จะใช้ความสำคัญกับแพ็คเกจที่อยู่บน Public repository มากกว่าที่อยู่ในระบบภายใน

สองนักพัฒนาได้ทำการทดสอบช่องโหว่นี้กับ Package manager อย่าง npm, RubyGems, PyPI, JFrog และ NuGet พบว่าสามารถใช้การโจมตีนี้ได้ทั้งหมด

การค้นพบช่องโหว่ดังกล่าวนำไปสู่การแจ้งเตือนยังบริษัทที่ได้รับผลกระทบ และส่งผลให้นักวิจัยทั้งสองได้รับรางวัลจากโครงการ Bug Bounty ไปกว่า 130,000 ดอลลาร์สหรัฐฯ หรือประมาณเกือบ 4 ล้านบาท

หลังจากมีการแจ้งช่องโหว่ ไมโครซอฟต์ได้มีการจัดทำ Whitepaper ขึ้นมาเพื่อให้คำแนะนำและระบุความเสี่ยงของเทคนิคการโจมตีนี้ เราขอแนะนำให้นักพัฒนาศึกษารายละเอียดเพิ่มเติมจาก azure เพื่อลดความเสี่ยงในการถูกโจมตี

บล็อกงานวิจัยต้นฉบับ: medium

ที่มา: zdnet, bleepingcomputer