uuid32-utilscolorinaltermncolorเรื่องการระบุผู้โจมตีควรอ่านอย่างระมัดระวัง ข้อความของ Kaspersky บน Securelist ระบุว่าตัวอย่างถูกส่งเข้า Kaspersky Threat Attribution Engine หรือ KTAE เพื่อวิเคราะห์ และแพ็กเกจเหล่านี้อาจเชื่อมโยงกับมัลแวร์ที่เคยถูกกล่าวถึงในรายงาน threat intelligence เกี่ยวกับ OceanLotus ขณะที่หน้าดัชนีงานวิจัยภัยคุกคามของ Kaspersky ระบุชัดกว่าว่าบริษัทจัดกิจกรรม PyPI/ZiChatBot นี้ให้เป็นของ OceanLotus APT
ส่วนสรุปสาธารณะอีกแหล่งหนึ่งอธิบายระดับการ attribution ว่าอยู่ที่ความเชื่อมั่นปานกลาง
ภาพรวมจากข้อมูลสาธารณะคือแคมเปญนี้ทำงานแบบ cross-platform dropper chain หรือสายการติดเชื้อที่ใช้ตัวปล่อยมัลแวร์ได้ทั้งบน Windows และ Linux หน้าดัชนี threat research ของ Kaspersky ระบุว่าแพ็กเกจ wheel อันตรายบน PyPI มุ่งเป้าทั้งสองระบบปฏิบัติการ และมี dropper ที่ส่งมัลแวร์ชื่อ ZiChatBot
สรุปสาธารณะหนึ่งอธิบายขั้นตอนต่อมาว่าแพ็กเกจจะดึง DLL หรือไฟล์ .SO dropper ออกจาก wheel package ตั้ง persistence ผ่าน Windows Registry หรือ Linux crontab แล้วจึง deploy ZiChatBot จุดนี้ทำให้ความเสี่ยงไม่ได้จำกัดอยู่แค่เซิร์ฟเวอร์แอปพลิเคชัน แต่รวมถึงเครื่องนักพัฒนา virtual environment build runner และ container image ที่อาจเคยติดตั้งแพ็กเกจเหล่านี้ด้วย
บทเรียนสำคัญคือ แพ็กเกจที่ทำงานได้จริงไม่ได้แปลว่าปลอดภัยโดยอัตโนมัติ ในแคมเปญนี้ แพ็กเกจถูกระบุว่าส่งมอบฟีเจอร์ตามที่ประกาศไว้ ขณะเดียวกันก็ทำหน้าที่เป็น dropper สำหรับไฟล์อันตรายที่ซ่อนอยู่
มุมที่แปลกที่สุดของ ZiChatBot คือการใช้แพลตฟอร์มสื่อสารที่ถูกต้องตามกฎหมายเป็นชั้น command-and-control รายงานที่อ้างอิงการวิเคราะห์ของ Kaspersky ระบุว่า ZiChatBot ไม่ได้ติดต่อเซิร์ฟเวอร์ C2 เฉพาะ แต่ใช้ REST APIs ของ Zulip ซึ่งเป็นแอปแชตสำหรับทีมสาธารณะ เป็นโครงสร้าง C2
เอกสาร API ของ Zulip ระบุความสามารถที่เพียงพอต่อการออกแบบ C2 แบบแชต เช่น การส่งข้อความ อ่านข้อความ อัปโหลดไฟล์ แก้ไขหรือลบข้อความ สร้าง message narrow เพื่อกรองข้อความ และทำงานกับ topic ใน channel เอกสารบอทของ Zulip ยังอธิบายว่าบอทสามารถรับ ดู และประมวลผลข้อความจากผู้ใช้ แล้วส่งข้อความใหม่กลับเป็นคำตอบได้
ในเชิงออกแบบ นั่นหมายความว่าคำสั่งของผู้ควบคุมสามารถถูกแทนด้วยข้อความแชตหรือข้อความใน topic เฉพาะ ส่วนมัลแวร์สามารถดึงข้อความที่เกี่ยวข้องและส่งผลลัพธ์กลับผ่านบริการเดียวกันได้ อย่างไรก็ตาม รายงานสาธารณะที่อ้างถึงไม่ได้เปิดเผย workspace ของ Zulip ที่ใช้จริง credential ของบอท ลำดับ endpoint หรือชุดคำสั่งของ ZiChatBot ดังนั้นคำอธิบายที่ปลอดภัยที่สุดคือ ZiChatBot ใช้ฟังก์ชัน Zulip REST API ที่ถูกต้องตามปกติในทางที่ผิดเพื่อทำ C2 แทนการพึ่งพาโครงสร้าง C2 ที่ผู้โจมตีตั้งเอง
การที่มัลแวร์ใช้ Zulip API ไม่ได้แปลว่า Zulip ถูกเจาะ รายงานที่อ้างถึงพูดถึงการใช้ REST API และรูปแบบ messaging ของบอทในทางที่ผิด ไม่ใช่การ compromise บริการแชตเอง
ในทำนองเดียวกัน กรณีนี้ไม่ได้หมายความว่าโครงสร้างพื้นฐานของ PyPI ถูกเจาะ รายงานของ Kaspersky ระบุว่าเป็นแพ็กเกจ wheel อันตรายที่ถูกอัปโหลดขึ้น PyPI และภายหลังมัลแวร์ถูกนำออกจากรีโพซิทอรีแล้ว
สำหรับฝ่ายป้องกัน ผลกระทบเชิงปฏิบัติคือทราฟฟิกไปยังบริการ collaboration ที่ถูกกฎหมายก็ยังน่าสงสัยได้ หากมาจากเครื่อง process งาน CI หรือ service account ที่ไม่มีเหตุผลทางธุรกิจต้องเรียกใช้งานบริการนั้น การพึ่ง blocklist ที่ดูเฉพาะโดเมนของผู้โจมตีอาจพลาดรูปแบบนี้ จึงต้องตรวจบริบทของ process และการใช้งานที่คาดหวัง ไม่ใช่ดูแค่ชื่อปลายทางว่าเป็นบริการที่น่าเชื่อถือหรือไม่
เริ่มจาก inventory ของแพ็กเกจ ค้นหาในเครื่องนักพัฒนา build runner virtual environment dependency lockfile และ container image ว่ามี uuid32-utils, colorinal หรือ termncolor หรือไม่
ตรวจไทม์ไลน์การติดตั้งตั้งแต่เดือนกรกฎาคม 2025 เป็นต้นไป ซึ่งเป็นช่วงที่ Kaspersky ระบุว่าเริ่มพบการอัปโหลดแพ็กเกจ wheel อันตราย หากพบชื่อแพ็กเกจเหล่านี้ใน log หรือ artifact ควรเก็บสภาพแวดล้อมไว้เพื่อตรวจสอบ มากกว่าลบทิ้งทันทีแล้วถือว่าจบ
บน Windows ให้มองหา persistence ที่ผิดปกติใน Registry ส่วนบน Linux ให้ตรวจ crontab ที่น่าสงสัย เพราะสอดคล้องกับสรุป public infection chain ของแคมเปญนี้
ตรวจ network และ process telemetry เพื่อหาการเรียก Zulip API จาก Python interpreter, process ติดตั้งแพ็กเกจ, CI worker, เซิร์ฟเวอร์ หรือ service account ที่ปกติไม่ควรใช้ Zulip คำถามหลักไม่ใช่ว่า Zulip เป็นบริการที่ถูกกฎหมายหรือไม่ แต่คือ host และ process นั้นมีเหตุผลที่ถูกต้องในการเรียก Zulip API หรือเปล่า
สุดท้าย อย่าใช้ความสามารถของแพ็กเกจเป็นตัวตัดสินความน่าเชื่อถือเพียงอย่างเดียว ในกรณีนี้ แพ็กเกจถูกระบุว่าสามารถทำฟีเจอร์ที่ประกาศไว้ได้จริง ขณะเดียวกันก็แอบส่งไฟล์อันตรายลงเครื่องผู้ใช้
แคมเปญ PyPI ที่ถูกโยงกับ OceanLotus นี้เกี่ยวข้องกับแพ็กเกจ wheel อันตรายที่เริ่มถูกอัปโหลดตั้งแต่เดือนกรกฎาคม 2025 และมีชื่อแพ็กเกจสาธารณะอย่าง uuid32-utils, colorinal และ termncolor แพ็กเกจเหล่านี้ส่ง ZiChatBot ไปยังระบบ Windows และ Linux และจุดเด่นของ ZiChatBot คือการใช้ Zulip REST APIs เป็น command-and-control แทนเซิร์ฟเวอร์ C2 เฉพาะของผู้โจมตี
Comments
0 comments