โค้ดที่เป็นอันตราย “沙虫(Shai Hulud)” ซึ่งมุ่งเป้าไปที่ระบบนิเวศการพัฒนา JavaScript กำลังพัฒนาอย่างต่อเนื่อง โดยระดับการโจมตีซอฟต์แวร์ห่วงโซ่หมุนเวียนได้รับการยืนยันว่าเพิ่มขึ้นอีก ล่าสุดการวิเคราะห์แสดงให้เห็นว่าโค้ดที่เป็นอันตรายนี้ได้ก้าวข้ามระดับการเจาะเข้าไปในซอฟต์แวร์แพ็คเกจแบบเดิมๆ และสามารถเปลี่ยนให้ผู้พัฒนาเป็นสื่อกลางที่แพร่กระจายการติดเชื้อโดยไม่รู้ตัวและอย่างต่อเนื่อง พร้อมทั้งมีระบบการแพร่กระจายอัตโนมัติ.
ตามรายงานที่เผยแพร่โดยบริษัทด้านความปลอดภัย Expel เวอร์ชันล่าสุดของหนอนทรายมีโครงสร้างที่สามารถติดเชื้อในสภาพแวดล้อมของนักพัฒนาโดยอัตโนมัติ และแพร่กระจายผ่านทะเบียน npm ที่พวกเขาจัดการ โค้ดที่เป็นอันตรายนี้จะดำเนินการติดตั้งแพ็กเกจ npm ที่มีไวรัสในระยะการติดตั้ง แบ่งออกเป็นสองขั้นตอนในการติดเชื้อโปรแกรม ก่อนอื่น หากสภาพแวดล้อมเป้าหมายไม่ได้ติดตั้ง “Bun” JavaScript runtime จะทำการติดตั้งโดยอัตโนมัติ จากนั้น ด้วยโหลดที่ถูกทำให้ซับซ้อน จะมีการดึงดูดในพื้นหลังเพื่อขโมยข้อมูลประจำตัว การรั่วไหลของข้อมูล และการติดเชื้อซ้ำอีกครั้ง.
การเปลี่ยนแปลงในครั้งนี้น่าสนใจเป็นพิเศษเนื่องจากวิธีการเก็บข้อมูลที่มีความซับซ้อน มันใช้การเข้าถึงโดยตรงไปยัง AWS Secrets Manager, Microsoft Azure Key Vault, Google Cloud Secret Manager ซึ่งเป็นระบบการจัดการความลับหลักของโครงสร้างพื้นฐานคลาวด์ เพื่อดึงข้อมูลที่ละเอียดอ่อนเพิ่มเติม ได้มีการยืนยันว่ามันจะเก็บรวบรวม NPM release token, ข้อมูลการรับรอง GitHub และแม้กระทั่ง cloud keys ในระบบในท้องถิ่นด้วย ในกระบวนการนี้ใช้เครื่องมือ TruffleHog ซึ่งเป็นเครื่องมือที่สามารถค้นหาข้อมูลความลับที่ถูกเข้ารหัสในซอร์สโค้ด, ไฟล์การตั้งค่า, บันทึก Git เป็นต้นโดยอัตโนมัติ.
กลยุทธ์ที่โดดเด่นที่สุดของหนอนทรายคือการใช้โครงสร้างพื้นฐานของ GitHub อย่างไม่เหมาะสม แตกต่างจากวิธีการเชื่อมต่อโค้ดที่เป็นอันตรายกับเซิร์ฟเวอร์การควบคุมคำสั่ง (C2) ในอดีต โค้ดที่เป็นอันตรายนี้จะอัปโหลดข้อมูลที่ถูกขโมยไปยังคลังสาธารณะ และลงทะเบียนอุปกรณ์ที่ติดเชื้อเป็นตัวดำเนินการที่โฮสต์ด้วยตนเองของ GitHub Actions สิ่งนี้ทำให้สามารถเข้าถึงระยะไกลได้อย่างต่อเนื่องจากภายนอก ผู้โจมตีใช้บัญชีของนักพัฒนาที่ติดเชื้อเป็นอาวุธในการฉีดโค้ดที่เป็นอันตรายไปยังแพคเกจอื่น ๆ และขยายขอบเขตการติดเชื้อโดยการลงทะเบียนเวอร์ชันที่เปลี่ยนแปลงแล้วโดยอัตโนมัติกลับไปที่ npm.
รายงานระบุว่า ณ ขณะนี้ มีการประมาณการว่ามีที่เก็บข้อมูลที่ติดเชื้อมากกว่า 25,000 แห่ง และซอฟต์แวร์ที่ได้รับผลกระทบหลายร้อยรายการ โดยรวมถึงเครื่องมือยอดนิยมที่ชุมชนโอเพนซอร์สใช้กันอย่างแพร่หลาย.
Expelเตือนผ่านกรณีนี้ว่า “ชั้นความไว้วางใจ” ของความปลอดภัยของซอฟต์แวร์ห่วงโซ่หมุนเวียนไม่ใช่พื้นที่ที่ปลอดภัยอีกต่อไป แม้ว่าทรายจะโจมตีระบบนิเวศของ JavaScript แต่ชุมชนของภาษาอื่น ๆ ที่มีพื้นฐานความไว้วางใจที่คล้ายกัน เช่น Python(PyPI), Ruby(RubyGems), PHP(Composer) ก็มีความเสี่ยงที่จะถูกโจมตีในลักษณะเดียวกัน การเกิดขึ้นของมัลแวร์ที่มีการแพร่กระจายด้วยตนเองในระบบนิเวศของเครื่องมือพัฒนานั้นอาจก่อให้เกิดภัยคุกคามที่ยืดเยื้อและกว้างขวางมากขึ้นในอนาคต ซึ่งต้องระมัดระวังเป็นพิเศษ.