
แพ็คเกจที่เป็นอันตรายหลายรายการบน 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.Core
- SqlDbRepository
- SqlLiteRepository
- SqlUnicornCoreTest
- SqlUnicornCore
- SqlRepository
- MyDbRepository
- MCDbRepository
- Sharp7Extend
ในขณะที่เผยแพร่ข้อมูลนี้ ไม่มีแพ็คเกจใดที่ยังอยู่ภายใต้ชื่อของนักพัฒนาดังกล่าวแล้ว แต่ที่น่าสังเกตคือตอนที่แพ็คเกจอันตรายถูกลบออกไปเกิดขึ้นหลังจากที่ยอดดาวน์โหลดแตะเกือบ 9,500 ครั้ง
การแอบซ่อน "โค้ดที่เป็นอันตราย" ไว้สำหรับปี 2028
ตามที่นักวิจัยของ Socket ระบุ แพ็คเกจเหล่านี้มีโค้ดที่ถูกต้องตามปกติ (99%) เป็นส่วนใหญ่ เพื่อสร้างความรู้สึกปลอดภัย และความน่าเชื่อถือแบบปลอม ๆ แต่ได้แฝง payload ที่เป็นอันตรายขนาดเล็กเพียง 20 บรรทัดเอาไว้
Socket อธิบายเพิ่มเติมว่า "มัลแวร์ดังกล่าวใช้การโจมตีจาก C# extension methods เพื่อแอบ inject logic ที่เป็นอันตรายเข้าไปในทุกการทำงานของฐานข้อมูล และ PLC อย่างแนบเนียน"
Extension methods เหล่านี้จะทำงานทุกครั้งที่แอปพลิเคชันดำเนินการค้นหาข้อมูลในฐานข้อมูล หรือสั่งการ PLC นอกจากนี้ยังมีการตรวจสอบวันที่ปัจจุบันบนระบบที่ถูกโจมตีเทียบกับวันที่ hardcoded trigger ไว้ ซึ่งอยู่ในช่วงระหว่างวันที่ 8 สิงหาคม 2027 ถึง 29 พฤศจิกายน 2028

หากเงื่อนไขวันที่ตรงกัน โค้ดจะสร้าง 'Random' class เพื่อสุ่มตัวเลขระหว่าง 1 ถึง 100 และถ้าตัวเลขนั้นสูงกว่า 80 (มีโอกาส 20%) ที่มันจะเรียกใช้ ‘Process.GetCurrentProcess().Kill()’ เพื่อยุติการทำงานของ host process ทันที
สำหรับ PLC clients ทั่วไปที่เรียกใช้ method เกี่ยวกับการทำธุรกรรม หรือการเชื่อมต่อบ่อยครั้ง เหตุการณ์นี้จะนำไปสู่การหยุดการทำงานทั้งหมดในทันที
แพ็คเกจ Sharp7Extend ที่ปลอมแปลงเป็นไลบรารี Sharp7 ที่ถูกต้อง ซึ่งเป็น layer การสื่อสาร .NET ที่ได้รับความนิยม สำหรับ Siemens S7 PLCs ใช้วิธีการตรงกันข้าม โดยจะยุติการสื่อสาร PLC ทันทีใน 20% ของกรณีนี้ และกลไกดังกล่าวจะถูกตั้งค่าให้หมดอายุในวันที่ 6 มิถุนายน 2028
วิธีการทำลายระบบวิธีที่ 2 ในแพ็คเกจ Sharp7Extend ประกอบด้วยโค้ดที่พยายามอ่าน configuration value ที่ไม่มีอยู่จริง ด้วยเหตุนี้ การ initialization จึง Failure เสมอ
กลไกที่ 2 จะสร้าง filter value สำหรับการทำงานภายในของ PLC และตั้งค่าการหน่วงเวลาการทำงานของ payload ไว้ระหว่าง 30 ถึง 90 นาที
หลังจากเวลาดังกล่าวผ่านพ้นไป การเขียนข้อมูล PLC ที่ผ่าน filter นี้จะมีโอกาส 80% ที่จะเกิดความเสียหาย ส่งผลให้ actuators ไม่ได้รับคำสั่ง, ค่าที่ตั้งไว้ไม่ได้รับการอัปเดต, ระบบความปลอดภัยไม่ทำงาน และ production parameters ไม่ถูกแก้ไข

นักวิจัยของ Socket ระบุว่า "การทำงานร่วมกันระหว่าง process termination แบบ random (ผ่าน BeginTran()) และ write corruption แบบ delayed (ผ่าน ResFliter) สร้างการโจมตีซ้อนกันหลายชั้นที่ซับซ้อน ซึ่งจะค่อย ๆ เปลี่ยนรูปแบบเมื่อเวลาผ่านไป"
แม้ว่าเป้าหมาย และที่มาที่แท้จริงของ extensions เหล่านี้ยังไม่ชัดเจน แต่ขอแนะนำให้องค์กรที่อาจได้รับผลกระทบทำการตรวจสอบ assets ของตนเพื่อค้นหาแพ็คเกจทั้ง 9 รายการนี้โดยทันที และให้สันนิษฐานว่าถูกโจมตีแล้วหากพบแพ็คเกจใด ๆ ก็ตาม
สำหรับสภาพแวดล้อมในภาคอุตสาหกรรมใดที่ใช้ Sharp7Extend ให้รีบดำเนินการตรวจสอบคำสั่งที่ส่งไปให้เครื่องจักร (PLC), ตรวจสอบ Logs ของระบบความปลอดภัยเพื่อดูคำสั่งว่ามีขาดหายไปหรือไม่ หรือมีการเปิดใช้งานที่ไม่สำเร็จ และใช้วิธีการเพิ่มระบบยืนยันคำสั่งสำหรับการดำเนินการที่สำคัญเพื่อให้แน่ใจว่าคำสั่งที่ถูกส่งไปนั้นถูกต้อง และทำงานได้จริง
ที่มา : bleepingcomputer.com

You must be logged in to post a comment.