Hồi tháng 3, một gói Python có tên litellm bị đầu độc trên PyPI trong 40 phút. Kết quả: 78.330 khóa SSH, AWS/GCP/Azure credential, Kubernetes token và LLM API key bị đánh cắp từ 2.186 tổ chức. Đây là vụ tấn công chuỗi cung ứng nhắm vào AI agent infrastructure – nhưng nó nói nhiều hơn về sự mong manh của hệ sinh thái dependency mà crypto cũng đang dựa vào.
LiteLLM là một gateway mã nguồn mở phổ biến cho LLM, giúp quản lý tập trung API key của nhiều nhà cung cấp model. Chính vì vai trò đó, nó trở thành mục tiêu lý tưởng: một khi kẻ tấn công chiếm được quyền publish package, họ có thể chèn mã độc vào bất kỳ bản cập nhật nào. Trong vụ này, attacker đã exploit cơ chế .pth của Python – một file đặc biệt được thực thi tự động khi interpreter khởi động, không cần import. Chỉ cần developer cài pip install litellm==1.82.7, mã độc đã chạy và thu thập toàn bộ credential trên máy, rồi gửi về domain giả mạo models.litellm.cloud.
Điểm đáng chú ý: đây không phải kỹ thuật mới. .pth injection đã tồn tại từ lâu. Nhưng nó chưa từng được áp dụng có hệ thống vào AI infrastructure – nơi mà dependency chain vốn đã phức tạp và ít được kiểm tra. Kẻ tấn công (Team PCP) đã chọn đúng mắt xích yếu nhất: package registry. Họ liên tục phát hành hai phiên bản độc hại trong 40 phút, đủ để CI/CD pipeline của hàng nghìn tổ chức tự động cập nhật. Điều này cho thấy một sự hiểu biết sâu sắc về quy trình phát triển phần mềm hiện đại – nơi mà “trust the package manager” là một giả định mặc định.
Trong bối cảnh crypto, bài học này càng chua chát. Các dự án DeFi, Layer 2, và thậm chí cả Bitcoin sidechain đều phụ thuộc vào hàng trăm package từ npm, PyPI, crates.io. Một gói npm độc hại có thể đánh sập cả một DeFi protocol. Chúng ta đã chứng kiến event như event-stream npm attack năm 2018 nhắm vào copay wallet, hay @solana/web3.js bị compromised vào tháng 2/2022. Nhưng sự kiện LiteLLM nhấn mạnh rằng mục tiêu không chỉ là lấy private key, mà còn là credential để truy cập cloud infrastructure, nơi lưu trữ dữ liệu nhạy cảm, model weights, và thậm chí cả governance keys.

Contrarian angle: Nhiều người nghĩ rằng crypto, với tính phi tập trung, sẽ ít bị tổn thương hơn trước các cuộc tấn công chuỗi cung ứng tập trung. Thực tế ngược lại. Các package registry như npm, PyPI là những điểm kiểm soát tập trung – một khi attacker chiếm được quyền publish, họ có thể phát tán mã độc đến toàn bộ hệ sinh thái. Trong khi đó, các tổ chức tài chính truyền thống có quy trình kiểm duyệt dependency chặt chẽ hơn, thì crypto startup thường ưu tiên speed hơn security. Thêm vào đó, vì blockchain là immutable, một khi mã độc đã được deploy qua smart contract, không thể rollback. Vụ LiteLLM chỉ kéo dài 40 phút, nhưng nếu nó xảy ra với một package được dùng trong DeFi, hậu quả có thể kéo dài vĩnh viễn.
Takeaway: Cộng đồng crypto cần hành động ngay. Đầu tiên, kiểm toán dependency không chỉ là việc của security team, mà phải là một phần trong quy trình CI/CD. Thứ hai, sử dụng deterministic builds và lockfile (như yarn.lock, requirements.txt) để tránh bị cập nhật bất ngờ. Thứ ba, ủng hộ các giải pháp package registry phi tập trung như IPFS-based registry hoặc các công cụ như sigstore để xác thực chữ ký. Cuối cùng, hãy nhìn vào sự kiện này và tự hỏi: nếu gói dependency của bạn bị đầu độc trong 40 phút, bạn có phát hiện kịp không? Hay bạn sẽ chỉ biết khi token đã bay?
Bởi vì trong thế giới crypto, không có gì gọi là “40 phút” – một block time là 12 giây, và một exploit có thể kết thúc trong vài block.