แจ้งเตือน! LiteLLM ถูกโจมตีแบบ Supply Chain แฝงมัลแวร์ขโมยข้อมูลยืนยันตัวตนและติดตั้ง Backdoor เสี่ยงข้อมูลสำคัญรั่วไหลและระบบถูกเข้าควบคุม - Thailand Computer Emergency Response Team (ThaiCERT)警报!LiteLLM遭遇供应链攻击,攻击者植入恶意软件,窃取身份验证数据并安装后门,存在数据泄露和系统被入侵的风险。——泰国计算机应急响应小组(ThaiCERT)
ศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์แห่ง

ศูนย์ประสานการรักษาความมั่นคงปลอดภัยระบบคอมพิวเตอร์แห่งชาติ (ThaiCERT) ได้ติดตามสถานการณ์ภัยคุกคามทางไซเบอร์ พบรายงานการโจมตีโจมตีแบบ Supply Chain (Software Supply Chain Attack) ที่ส่งผลกระทบต่อ LiteLLM เวอร์ชัน 1.107.0 ซึ่งเป็นไลบรารีภาษา Python สำหรับเชื่อมต่อและจัดการการใช้งานโมเดลปัญญาประดิษฐ์ (AI) โดยผู้โจมตีได้แทรกโค้ดอันตรายลงในแพ็กเกจที่เผยแพร่ผ่าน Python Package Index (PyPI) และ Docker Images เพื่อแพร่กระจายมัลแวร์ขโมยข้อมูลรับรอง (Credential Stealer) และฝังช่องทางเข้าถึงระบบโดยไม่ได้รับอนุญาต (Backdoor) ส่งผลให้ระบบที่ติดตั้งแพ็กเกจดังกล่าวมีความเสี่ยงต่อการรั่วไหลของข้อมูลสำคัญ เช่น API Keys, Cloud Credentials, Private Keys และข้อมูลการยืนยันตัวตน รวมถึงอาจถูกผู้โจมตีควบคุมและรันคำสั่งอันตรายได้ [1]
1. รายละเอียดภัยคุกคาม [2] การโจมตีครั้งนี้เกิดจากการแทรกโค้ดอันตรายลงในแพ็กเกจ LiteLLM เวอร์ชัน 1.107.0 โดยมัลแวร์สามารถทำงานระหว่างกระบวนการเริ่มต้นใช้งาน Python และดำเนินกิจกรรมที่เป็นอันตรายได้ แม้ผู้ใช้งานจะไม่ได้เรียกใช้ไลบรารี LiteLLM โดยตรง ทั้งนี้ พบพฤติกรรมสำคัญดังต่อไปนี้ 1.1 มัลแวร์ขโมยข้อมูลรับรอง (Credential Stealer)ผู้โจมตีฝังโค้ดอันตรายชื่อ privcollect เพื่อรวบรวมข้อมูลสำคัญภายในระบบ ได้แก่ Cloud Credentials, API Keys, Private Keys, Environment Variables ข้อมูลจากเว็บเบราว์เซอร์ Chromium และ Firefox รวมถึงไฟล์ยืนยันตัวตนของเครื่องมือพัฒนา AI และข้อมูลการตั้งค่าของ LiteLLM Proxy โดยมัลแวร์จะบีบอัดข้อมูลเป็นไฟล์ TAR.GZ ก่อนส่งออกไปยังเซิร์ฟเวอร์ของผู้โจมตีผ่าน HTTP POST Request ที่ปลายทาง hxxps://litellm[.]dev/healthcheck 1.2 การฝังช่องทางเข้าถึงระบบโดยไม่ได้รับอนุญาต (Backdoor) ผู้โจมตีใช้ไฟล์ cook.pth ซึ่งมีคำสั่ง import cook เพื่อเรียกใช้โค้ดอันตรายโดยอัตโนมัติระหว่างการเริ่มต้นทำงานของ Python Interpreter นอกจากนี้ มัลแวร์ยังสร้างกระบวนการทำงานเบื้องหลัง (Background Daemon) เพื่อตรวจสอบไฟล์ domain.txt จาก GitHub Repository ที่ผู้โจมตีควบคุมทุก 1 ชั่วโมง และสามารถเรียกใช้กระบวนการขโมยข้อมูลซ้ำ รวมถึงดาวน์โหลดโค้ด Python จากปลายทาง /codepy มาประมวลผลบนระบบที่ได้รับผลกระทบ ทำให้ผู้โจมตีสามารถสั่งการมัลแวร์จากระยะไกลและรักษาช่องทางเข้าถึงระบบไว้ได้
2. ระบบที่อาจได้รับผลกระทบ [3] 2.1 LiteLLM เวอร์ชัน 1.107.0 ที่ติดตั้งผ่าน PyPI โดยเฉพาะไฟล์ Wheel ( .whl ) ที่ได้รับผลกระทบบนระบบปฏิบัติการ Windows, Linux และ macOS 2.2 Docker Images ของ LiteLLM เวอร์ชัน 1.107.0 ที่เผยแพร่ในช่วงเกิดเหตุและมีโค้ดอันตรายแทรกอยู่ 2.3 ระบบ AI Applications, AI Gateway, LiteLLM Proxy และระบบพัฒนาซอฟต์แวร์ที่ติดตั้งหรือเรียกใช้งานแพ็กเกจดังกล่าว รวมถึงระบบที่ติดตั้ง LiteLLM เป็น Dependency โดยไม่ได้ตรวจสอบเวอร์ชัน
3. ผลกระทบที่อาจเกิดขึ้น 3.1 การรั่วไหลของข้อมูลรับรอง (Credential Theft) ผู้โจมตีอาจขโมย API Keys, Cloud Access Tokens, Private Keys และข้อมูลการยืนยันตัวตน เพื่อนำไปใช้เข้าถึงระบบหรือบริการที่เกี่ยวข้องโดยไม่ได้รับอนุญาต 3.2 การรันคำสั่งอันตราย (Remote Code Execution) Backdoor อาจเปิดโอกาสให้ผู้โจมตีดาวน์โหลดและรันคำสั่ง Python เพิ่มเติม เพื่อติดตั้งมัลแวร์หรือควบคุมการทำงานของระบบที่ได้รับผลกระทบ 3.3 การคงอยู่ภายในระบบ (Persistence) มัลแวร์อาศัยไฟล์ .pth และกระบวนการทำงานเบื้องหลัง เพื่อให้โค้ดอันตรายสามารถทำงานซ้ำหรือเริ่มทำงานใหม่เมื่อมีการเปิดใช้งาน Python Interpreter 3.4 การขยายขอบเขตการโจมตี (Lateral Movement) ข้อมูลรับรองที่ถูกขโมยอาจถูกนำไปใช้เข้าถึงระบบอื่นภายในองค์กร โดยเฉพาะบริการ Cloud และระบบที่เชื่อมต่อกับโครงสร้างพื้นฐานด้าน AI ส่งผลให้ความเสียหายขยายวงกว้างขึ้น
4. แนวทางการตรวจสอบและป้องกัน [4] 4.1 ตรวจสอบเวอร์ชัน LiteLLM ที่ติดตั้งในระบบทั้งหมด โดยใช้คำสั่ง pip show litellm หรือ pip freeze | grep -i litellm และตรวจสอบ Docker Images ที่ใช้งาน หากพบเวอร์ชัน 1.107.0 ให้ถือว่าเป็นระบบที่ต้องตรวจสอบความเสี่ยงโดยเร่งด่วน 4.2 หยุดใช้งาน LiteLLM เวอร์ชัน 1.107.0 และเปลี่ยนไปใช้เวอร์ชัน 1.106.2 ที่ตรวจสอบความถูกต้องแล้ว โดยควรกำหนดเวอร์ชันและตรวจสอบ Digest ของ Docker Images ก่อนนำไปใช้งาน 4.3 ตรวจสอบไฟล์ต้องสงสัย เช่น cook.pth , cook.py และ sitecustomize.py ใน Python Environment รวมถึงตรวจสอบกระบวนการ Python ที่ทำงานผิดปกติหรือมีการเชื่อมต่อออกไปยังปลายทางที่ไม่รู้จัก 4.4 ตรวจสอบ Network Logs, DNS Logs, EDR และ SIEM เพื่อค้นหาการเชื่อมต่อไปยังโดเมน litellm[.]dev โดยเฉพาะเส้นทาง /healthcheck รวมถึงกิจกรรมต้องสงสัยที่เกี่ยวข้องกับการดาวน์โหลดและรันคำสั่งจากภายนอก 4.5 หากพบว่ามีการติดตั้งแพ็กเกจที่ได้รับผลกระทบ ให้เพิกถอนและเปลี่ยน API Keys, Cloud Credentials, GitHub Tokens และข้อมูลรับรองอื่นที่อาจถูกเข้าถึง โดยดำเนินการจากเครื่องหรือสภาพแวดล้อมที่ปลอดภัย 4.6 ตรวจสอบระบบ CI/CD และ Dependency ของแอปพลิเคชัน พร้อมกำหนดการใช้งานแพ็กเกจจากแหล่งที่เชื่อถือได้ ตรวจสอบ Hash หรือ Digest และใช้เครื่องมือ Software Composition Analysis (SCA) เพื่อลดความเสี่ยงจากการโจมตีผ่านห่วงโซ่อุปทานซอฟต์แวร์
5. แนวทางลดความเสี่ยง [5] 5.1 แยกระบบที่สงสัยว่าติดมัลแวร์ออกจากเครือข่ายตามความเหมาะสม และเก็บหลักฐานที่จำเป็นก่อนดำเนินการแก้ไข 5.2 สร้าง Python Environment หรือ Container ใหม่จากแหล่งที่เชื่อถือได้ แทนการลบเฉพาะแพ็กเกจที่ได้รับผลกระทบ เนื่องจากมัลแวร์อาจสร้างไฟล์หรือกระบวนการคงอยู่ในระบบ 5.3 ตรวจสอบการเข้าถึง Cloud Services, AI Platforms และ GitHub Accounts เพื่อค้นหาการใช้งานข้อมูลรับรองผิดปกติ พร้อมเพิกถอนสิทธิ์หรือ Tokens ที่อาจรั่วไหล 5.4 เฝ้าระวังการเชื่อมต่อเครือข่ายและการทำงานของ Python Processes อย่างต่อเนื่อง และตรวจสอบความปลอดภัยของระบบก่อนนำกลับมาให้บริการ
แหล่งอ้างอิง [1] https://dg.th/6dlg198bnh [2] https://dg.th/sgoe5jzaqf [3] https://dg.th/jurok92cm3 [4] https://dg.th/f6d7acuzj2 [5] https://dg.th/5nmqj3uapw
泰国国家计算机安全事件响应中心 (ThaiCERT) 一直在监测网络威胁形势,并发现有报告称,针对 LiteLLM 1.107.0 版本的软件供应链攻击正在发生。LiteLLM 是一个用于连接和管理人工智能 (AI) 模型的 Python 库。攻击者将恶意代码注入到通过 Python 包索引 (PyPI) 和 Docker 镜像分发的软件包中,以传播凭证窃取恶意软件并嵌入后门,使安装了该软件包的系统容易泄露敏感数据,例如 API 密钥、云凭证、私钥和身份验证信息,并可能允许攻击者控制和执行恶意命令 [1]。
1. 威胁详情 [2] 本次攻击是由恶意代码注入 LiteLLM 1.107.0 版本软件包引起的。该恶意软件可在 Python 启动过程中执行恶意活动。即使用户不直接调用 LiteLLM 库,也观察到以下显著行为:1.1 凭证窃取恶意软件:攻击者嵌入名为 privcollect 的恶意代码,用于收集敏感系统数据,包括云凭证、API 密钥、私钥、环境变量、来自 Chromium 和 Firefox 浏览器的信息、AI 开发工具的身份验证文件以及 LiteLLM 代理配置数据。该恶意软件将数据压缩成 TAR.GZ 文件,然后通过 HTTP POST 请求将其发送到攻击者的服务器 hxxps://litellm[.]dev/healthcheck。1.2 后门访问:攻击者使用包含 `import cook` 命令的 cook.pth 文件,在 Python 解释器启动期间自动执行恶意代码。此外,该恶意软件还会创建一个后台守护进程,每小时检查一次攻击者控制的 GitHub 代码库中的 domain.txt 文件,并可重复数据窃取过程,同时还能从 /codepy 目录下载 Python 代码并在受感染的系统上运行。这使得攻击者能够远程执行恶意软件并保持对系统的访问权限。
2. 可能受影响的系统 [3] 2.1 通过 PyPI 安装的 LiteLLM 版本 1.107.0,特别是 Windows、Linux 和 macOS 操作系统上受影响的 Wheel (.whl) 文件。2.2 事件期间发布的包含恶意代码的 LiteLLM 版本 1.107.0 的 Docker 镜像。2.3 安装或运行该软件包的 AI 应用、AI 网关、LiteLLM 代理和软件开发系统,包括未检查版本就将 LiteLLM 作为依赖项安装的系统。
3. 潜在影响 3.1 凭证窃取:攻击者可能窃取 API 密钥、云访问令牌、私钥和身份验证信息,从而未经授权访问相关系统或服务。3.2 远程代码执行:后门可能允许攻击者下载并执行额外的 Python 命令,以安装恶意软件或控制受影响的系统。3.3 持久性:恶意软件依赖 .pth 文件和后台进程,以便在启用 Python 解释器时重新执行或重启恶意代码。3.4 横向移动:被窃取的凭证可能被用于访问组织内的其他系统,特别是云服务和连接到 AI 基础设施的系统,从而造成更广泛的损害。
4. 监控和预防指南 [4] 4.1 使用命令 `pip show litellm` 或 `pip freeze | grep -i litellm` 检查系统上安装的所有 LiteLLM 版本,并检查正在使用的 Docker 镜像。如果发现版本 1.107.0,则应将该系统视为需要紧急风险监控的系统。4.2 停止使用 LiteLLM 版本 1.107.0,并切换到已验证的版本 1.106.2。部署前应检查 Docker 镜像的版本和摘要。4.3 检查 Python 环境中的可疑文件,例如 cook.pth、cook.py 和 sitecustomize.py,并检查是否存在异常的 Python 进程或与未知端点的连接。4.4 检查网络日志、DNS 日志、EDR 和 SIEM,查找与 litellm[.]dev 域的连接,特别是 /healthcheck 路径,以及与从外部下载和执行命令相关的可疑活动。 4.5 如果发现受影响的软件包已安装,请从安全的机器或环境中撤销并替换 API 密钥、云凭证、GitHub 令牌和其他可能被访问的凭证。4.6 审查应用程序的 CI/CD 和依赖项,确保使用来自可信来源的软件包,检查哈希值或摘要,并使用软件成分分析 (SCA) 工具来降低软件供应链攻击的风险。
5. 风险缓解指南 [5] 5.1 根据需要将疑似感染恶意软件的系统从网络中隔离,并在采取任何纠正措施之前收集必要的证据。5.2 从可信来源创建新的 Python 环境或容器,而不是仅仅删除受影响的软件包,因为恶意软件可能会在系统上创建持久性文件或进程。5.3 监控对云服务、AI 平台和 GitHub 帐户的访问,以发现异常的凭据使用情况,并撤销任何泄露的权限或令牌。5.4 持续监控网络连接和 Python 进程活动,并在恢复系统服务之前验证系统安全性。
参考文献 [1] https://dg.th/6dlg198bnh [2] https://dg.th/sgoe5jzaqf [3] https://dg.th/jurok92cm3 [4] https://dg.th/f6d7acuzj2 [5] https://dg.th/5nmqj3uapw