Dün Python ekosisteminde klasik bir tedarik zinciri saldırısı yaşandı.
litellm paketi tehlikeye atıldı — ayda 97 milyon indirilen ve birçok AI projesinin alt yapısında kullanılan bir kütüphane. PyPI'ye bulaşmış sürüm
1.82.8 yüklendi. İçine, base64 yüklü litellm_init.pth dosyası yerleştirilmişti. Bu dosya basit bir şey yapıyordu: makinenizdeki tüm sırları tarayıp uzak bir sunucuya gönderiyor ve kendini kopyalıyordu."Çalınan" listesinde, betiğin erişebildiği her şey vardı:
▫️ SSH anahtarları
▫️ AWS/GCP/Azure kimlik bilgileri
▫️ Kubernetes yapılandırmaları
▫️
.env dosyaları (merhaba, OpenAI tokenlarınız)▫️ Terminal geçmişi ve veritabanı şifreleri
▫️ Özel SSL anahtarları ve kripto cüzdanları
Üstelik, üretim anahtarlarınızı vermek için
pip install litellm yazmanız bile gerekmiyordu. Sadece onu geçici bağımlılık olarak çeken herhangi bir aracı yüklemek veya güncellemek yeterliydi. Örneğin, popüler dspy'yi güncellediyseniz (ki requirements'ında litellm>=1.64.0 var) — hacklenenler kulübüne hoş geldiniz.Ama tüm bu hikayede inanılmaz bir nüans var.
Sektörü küresel bir felaketten kurtaran şey, hacker'ın kötü bir kod yazarı olmasıydı. 🤡
Kötü amaçlı yazılım o kadar kötü yazılmıştı ki bellek sızıntısına neden oluyordu. Bir adam Cursor'da arka planda güncel
litellm'i çeken bir eklenti kullanıyordu. Betik tüm RAM'i tüketip sistemi çökertti. Bu sayede bulaşmış sürüm, kaldırılana kadar PyPI'de bir saatten az kaldı. Eğer saldırgan kodunu düzgünce test etseydi, istismar haftalarca kalabilirdi. AI girişimlerinin yarısı, çalınan müşteri veritabanları ve bulut bütçeleri nedeniyle ertesi gün kapanırdı.
Andrej Karpathy bu konuda görüş bildirdi: klasik "bağımlılık tuğlalarıyla piramit inşa etme" geliştirme paradigması, modern gerçeklerde ölümcül bir güvenlik açığı haline geliyor. Onlarca yıldır bize "tekerleği yeniden icat etme, hazır kütüphaneyi kullan" akademik kalıbı öğretildi.
Modern tedarik zinciri gerçekliğinde bu, Rus ruleti oynamak gibi. Bir projeye yeni bir bağımlılık eklediğinizde, onun tüm ağacını onuncu kuşağa kadar taşırsınız. Ve bir yerlerde kırgın bir bakıcı veya hacklenmiş bir hesap olabilir.
Paradigma değişiyor. Birkaç yardımcı fonksiyon için devasa bir kütüphane çekmek yerine, ihtiyacınız olan kodu kopyalayıp (veya LLM ile oluşturup) kendi deponuzda kilitlemek daha güvenli ve pragmatik. 🤷♂️
Yorumlar
0Henüz yorum yok.
Tartışmaya katılmak için giriş yapın.