deniz.in

Piyasalar

Hava durumu

Hava durumu yükleniyor

· kaynak dev.to (home feed)

Yapay zekâ kodlama araçları 30 promptluk slopsquatting testinde altı sahte npm paket adı önerdi

dev.to'da bir geliştirici, Claude, GitHub Copilot ve ChatGPT'ye 30 günlük prompt çalıştırdı ve altı var olmayan npm paket adı yakaladı; bunlardan ikisi birden fazla araçta ortaya çıktı.

Yapay zekâ kodlama araçları 30 promptluk slopsquatting testinde altı sahte npm paket adı önerdi

Uygulamalı bir slopsquatting testi

dev.to'da yazan bir geliştirici, yapay zekâ kodlama asistanlarının ne sıklıkla var olmayan paketler önerdiğini ölçmek için küçük bir deney yaptı. İncelenen risk "slopsquatting" olarak biliniyor: bir model inandırıcı bir paket adı uyduruyor, bir saldırgan bu adın aynısını npm veya PyPI'da kötü niyetli kodla kaydediyor ve geliştirici de asistanı önerdiği için paketi kuruyor. Gönderiye göre terim, Python Software Foundation'dan Seth Larson tarafından türetildi ve typosquatting'den tek bir kritik noktada ayrılıyor — hatanın kendisinden, kendinden emin bir şekilde geldiği için hiçbir insan yanlış yazı yazmıyor.

Testin buldukları

Yazar, Claude (Haiku 4.5), varsayılan modeliyle çalışan GitHub Copilot ve Codex varsayılanlarıyla ChatGPT olmak üzere üç aracı, PDF ayrıştırmak, e-posta adresi doğrulamak veya bir API'yi hız sınırlamak gibi npm/JavaScript ekosistemini hedefleyen 30 günlük programlama görevinde test etti. Önerilen her paket adı çıkarıldı ve bu amaçla yazılmış küçük bir sorgulama betiği kullanılarak npm registry'sinde kontrol edildi. Kontrolü geçmeyen hiçbir şey kurulmadı.

30 prompt boyunca üç araç toplamda altı var olmayan paket adı üretti: üçü ChatGPT/Codex'ten, ikisi Claude'dan ve biri GitHub Copilot'tan. Yazar, örneklem küçük olduğu için bu sayıları bir hüküm değil bir sinyal olarak konumlandırıyor ve yapay zekâ araçlarının önermeyi sevdiği kayıtlı olmayan adların listesinin saldırganlar için fiilen bir alışveriş listesi olduğunu belirterek uydurulan adları yayınlamayı bilinçli olarak reddetti.

Örtüşme, bir aksaklığı hedefe dönüştürüyor

Yazarın en şaşırtıcı bulduğu sonuç tekrarlandı. Sahte adlardan ikisi birden fazla araç tarafından önerildi. Halüsinasyon paket adları tamamen rastgele bir gürültü olsaydı, iki bağımsız ürünün aynı var olmayan adda buluşması nadir rastlanır bir durum olurdu — ama 30 promptta iki kez yaşandı. Sömürülebilir bir örüntüyü sıradan bir hatadan ayıran da tam olarak budur: rastgele bir hataya göre eyleme geçmek zordur, ama tekrarlanabilir olan bir hedeftir.

Gönderi ayrıca, henüz hakem incelemesinden geçmemiş, beş farklı büyük dil modelinin aynı 127 paket adını uydurduğunu bildiren yakın tarihli bir önbasımı (preprint) kaynak gösteriyor. O önceki bulgu da aynı yönü işaret ediyor: halüsinasyon paket adları dağınıl değil kümeleniyor ve bu da onları üzerine kayıt yapılacak kadar öngörülebilir kılıyor.

Başarılı bir sorgulama güvenlik kontrolü değildir

Düzmece altı adın yanı sıra, önerilen iki paket registry'de mevcuttu ama ya çok yeniydi ya da neredeyse hiç indirmesi yoktu. Yazarın çıkardığı ders şu: "var" ile "güvenli" farklı sorulardır. Geçen hafta kaydedilmiş ve registry'de sessizce bekleyen bir paket, bir saldırganın geliştiricinin bulmasını istediği şeyin ta kendisi olabilir.

Kısa bir savunma kontrol listesi

Gönderi pratik savunmalarla bitiyor. Yapay zekâ tarafından önerilen bir kurulum komutunu önce paketi kontrol etmeden asla yapıştırmayın. Oluşturma tarihini, bakımcıları, indirme sayılarını ve depo bağlantılarını inceleyin — yazar bunun nasıl yapılacağını npm'nin view komutuyla ve PyPI'nin JSON metadata endpoint'iyle gösteriyor. Yeni veya az kullanılan paketlere güvenilmez muamelesi yapın ve elle okuyun. Lockfile'ları commit edin ve bağımlılık farklarını, kod incelendiği gibi pull request'lerde inceleyin. Ve CI'ya bir bağımlılık tarayıcısı ekleyin ki kötü bir ad gönderilmeden önce işaretlensin.

Yazar, testten tamamen inandırıcı görünen bir sahte adı hatırlıyor: ona dair hiçbir şey yanlış hissettirmiyordu, içgüdüler hiçbir alarm vermemişti ve onu yalnızca registry sorgulaması yakalamıştı.

Neden önemli

Yapay zekâ asistanları artık bağımlılıkların bir kod tabanına girdiği rutin bir kanal ve bu test, geliştiricilere ara sıra hiçbir yerde var olmayan paket adları uzattıklarını gösteriyor. Mutlak sayılar küçük ve önerilerin çoğu gerçekti, ama saldırının yalnızca tek bir isabet gerekir: bir inandırıcı ad, başkası tarafından önce kaydedilmiş, ikinci bir bakış olmadan kurulmuş. Araçlar arasındaki örtüşme daha endişe verici bir sinyal, çünkü en cazip hedeflerin aynı zamanda en öngörülebilir olduğunu ima ediyor. Modeller paket uydurmayı bırakana kadar, sıradan bir registry sorgulaması mevcut en ucuz savunma olmaya devam ediyor — ve yazarın da bulduğu gibi, çoğu zaman işe yarayan tek savunma bu.

  • #supply-chain-security
  • #ai-coding-tools
  • #npm
  • #hallucination
  • #slopsquatting