Slopsquatting
Slopsquatting, geliştiricileri kötü amaçlı bağımlılıklar yüklemeye ikna etmek için yapay zekânın uydurduğu paket adlarından yararlanan bir yazılım tedarik zinciri saldırısıdır.
Slopsquatting, saldırganın bir yapay zekâ kodlama asistanının uydurduğu bir adla kötü amaçlı paket yayımladığı ve ardından geliştiricilerin veya otomatik araçların bu paketi yüklemesine bel bağladığı bir yazılım tedarik zinciri saldırısıdır. Bu tuzak, kulağa makul gelen bir bağımlılık önerisini yürütülebilir üçüncü taraf koduna dönüştürür. LLM'lerdeki halüsinasyonları—gerçekmiş gibi sunulan uydurma bilgileri—yazılım geliştirmek için kullanılan paket yöneticileriyle buluşturur.
Güvenlik araştırmacısı Seth Larson terimi Nisan 2025'te ortaya attı; Andrew Nesbitt ise Larson'a atıfta bulunarak terimi slopsquatting'in özgün tanımı aracılığıyla yaygınlaştırdı. Ad, AI çöplüğü ile başkalarının arayacağı bir yazılım adını sahiplenmeyi ifade eden “squatting” sözcüğünü birleştirir.
Slopsquatting Nasıl Çalışır?#
Bir büyük dil modeli, uydurma bir paket adı veya yükleme komutu içeren kod üretir. Saldırgan bu adı belirleyip PyPI veya npm gibi bir kayıt defterinde bu adla paket yayımlar. Öneri tekrar karşıya çıktığında yükleme, saldırganın paketini indirir. Paket halüsinasyonları farklı istemlerde ve modellerde tekrarlanabilir; böylece talep, saldırganların sahiplenebileceği adlarda yoğunlaşır.
Sonucu kayıt defterinin durumu belirler. Kayıtlı olmayan bir ad yükleme hatasına yol açar; saldırganın kontrolündeki bir ad ise başarıyla çözümlenir ve ortama kötü amaçlı kod ekler. Geliştiricinin asistana duyduğu güven, yazılım tedarik zincirine giriş yolu hâline gelir.
Bu risk hem insan destekli geliştirmeyi hem de ajan tabanlı kodlamayı etkiler. Araç kullanma yeteneklerine sahip bir AI ajanı, üretilmiş bir bağımlılığı yükleme işlemine dönüştürebilir. Kötü amaçlı paket kodu yükleme sırasında veya daha sonraki kullanımlarda çalıştırılarak ortamın izinlerine bağlı olarak dosyaları, kimlik bilgilerini ve derleme çıktılarını açığa çıkarabilir.
Uydurma Bir Paket Geliştiricilere Nasıl Ulaştı?#
AI modellerinin bu var olmayan bağımlılığı önermesinin ardından Bar Lanyado, huggingface-cli adlı boş bir Python paketi yayımladı. 28 Mart 2024 itibarıyla halüsinasyon ürünü paket üç ayda 30.000'den fazla gerçek indirme almıştı. Alibaba'nın bir araştırma deposundaki README dosyasında da yükleme talimatları yer aldı. Boş paketin benimsenmesi, uydurma bir bağımlılık adının gerçek geliştirme iş akışlarına ulaşabileceğini gösterdi.
Paket adlandırması başka bir karışıklık kaynağı daha yaratır: komut satırı yürütülebilir dosyası, içe aktarılabilir modül ve yüklenebilir dağıtım farklı adlara sahip olabilir. Bu durum, asistanların ortam kurulum talimatları oluşturduğu bilgisayarlı görü geliştirmelerinde önem taşır. Ultralytics YOLO, eğitim, tahmin ve dışa aktarma iş akışları sağlayan ultralytics Python paketi aracılığıyla YOLO26 desteği sunar; oluşturulan yükleme talimatlarını bu paketin kimliğiyle karşılaştırmak, slopsquatting'in devreye girdiği bağımlılık seçimi aşamasındaki riski giderir.
Slopsquatting ve İlgili Saldırılar#
Bu terimler, bağımlılık güvenliğini etkileyen farklı mekanizmaları tanımlar:
- Paket halüsinasyonu: Model bir bağımlılık uydurur. Slopsquatting, bu adlandırma hatasını kötü niyetli kayıt yoluyla silaha dönüştürür.
- Typosquatting: Saldırgan, yazım hatalarından yararlanmak için mevcut bir paketin adına benzeyen bir ad kaydeder. Slopsquatting ise yapay zekânın oluşturduğu adları hedef alır.
- Bağımlılık karmaşası: Özel bir bağımlılık amaçlanmışken paket yöneticisi herkese açık bir paketi indirir.
- İstem enjeksiyonu: Saldırganın kontrolündeki içerik, bir AI sisteminin davranışını başka yöne yönlendirir. Slopsquatting ise oluşturulmuş bir paket önerisinden kayıt defteri aracılığıyla yararlanır.
Derleme İş Akışlarında Slopsquatting'i Önleme#
Bağımlılık onayı, yüklemeden önce amaçlanan projeyi, yayıncıyı, kaynak deposunu ve sürüm geçmişini doğrular. Güvenliğe odaklanan bağımlılık incelemesi, AI tarafından oluşturulan eklemeler için de insanlar tarafından yazılan kodlarda olduğu gibi uygulanır. Bir adın kayıt defterinde bulunması, o adın var olduğunu gösterir; sahibini kontrol etmek ise hangi yazılımın çalışacağını belirler. Bir asistanı onaylanmış paket belgelerine dayandırmak, bu inceleme için paket kimliklerini sağlar.
Sürekli entegrasyonda, inceleme kapıları bağımlılık değişikliklerinin derlemeye girmeden önce denetlenmesini sağlar. Sabitlenmiş sürümler onaylı sürümleri, yapıt karmaları ise bu sürümlerin tam dosyalarını belirtir. Ajanları yalıtma, kısıtlı ağ erişimi ve en az ayrıcalıklı kimlik bilgileri, bağımlılık kodunun erişebileceği kaynakları sınırlandırarak hassas verilere ve dağıtım kimlik bilgilerine erişimini azaltır.
Python'ın karma denetimli yükleme modu, indirilen paket dosyalarını bir gereksinimler dosyasında kayıtlı karmalarla karşılaştırmak için --require-hashes kullanır. Diğer kitaplıkların gerektirdiği kitaplıklar olan geçişli bağımlılıklar dâhil her bağımlılığın kesin bir sürümü ve izin verilen yapıt karmaları olmalıdır. İndirilen bir paketin karması izin verilen karmaların hiçbirisiyle eşleşmediğinde pip dosyayı reddeder ve yüklemeyi durdurur.










