Slopsquatting: Yapay Zekâ Kod Asistanı ve Halüsinasyon Paket Tedarik Zinciri Saldırısı
Yapay zekâ kod asistanları bazen var olmayan paket adları önerir. Saldırganlar bu hayali adları önceden kaydederek slopsquatting saldırısı kurar. Bu yazı halüsinasyon paket riskini, tedarik zinciri etkisini ve DSET ile KAOS kanıt temelli yaklaşımını anlatır.
Hızlı cevap: Slopsquatting, bir yapay zekâ kod asistanının var olmayan bir yazılım paketini önermesinden yararlanan bir tedarik zinciri saldırısıdır. Dil modelleri bazen gerçekte olmayan ama gerçekçi görünen paket adları üretir, buna halüsinasyon denir. Saldırgan, modelin sık ürettiği bu hayali adları önceden paket deposuna zararlı içerikle kaydeder. Geliştirici asistanın önerisine güvenip o paketi kurduğunda, zararlı kod projesine girer. Bu, isim benzerliğiyle kandıran typosquatting'in yapay zekâ çağındaki akrabasıdır. DSET bu riski yerel yapay zekâ motoru KAOS ile değerlendirir ve her bulguyu çalışan bir kanıtla doğrular.
Yapay zekâ kod asistanları geliştirme hızını artırdı, ama yeni bir güven sorunu getirdi. Bir asistan bir kütüphane önerdiğinde, çoğu geliştirici o kütüphanenin gerçekten var olduğunu ve güvenli olduğunu varsayar. Oysa modeller zaman zaman var olmayan paket adları uydurur ve bu uydurma adlar, saldırganlar için hazır bir fırsata dönüşür. Bu yazı, slopsquatting'in ne olduğunu, neden tehlikeli olduğunu ve DSET ile KAOS yaklaşımını anlatır.
Slopsquatting nedir
Typosquatting, yaygın bir paket adının yazım hatasıyla benzerini kaydedip geliştiricinin yanlış yazmasını beklemektir. Slopsquatting ise bir adım farklıdır: saldırgan yazım hatası beklemez, bunun yerine yapay zekâ modellerinin sık ürettiği hayali paket adlarını hedefler. Araştırmalar, dil modellerinin kod önerirken belli oranda var olmayan paketlere atıf yaptığını ve üstelik aynı hayali adı tekrar tekrar ürettiğini göstermiştir. Saldırgan bu öngörülebilir hataları gözlemler, en sık uydurulan adları paket deposuna zararlı içerikle kaydeder ve geliştiricinin asistana güvenerek o paketi kurmasını bekler. Adı buradan gelir: modelin ürettiği güvenilmez çıktı, yani slop, bir saldırı yüzeyine dönüşür.
Neden tehlikeli bir tedarik zinciri saldırısıdır
Slopsquatting klasik bir tedarik zinciri saldırısıdır, çünkü zararlı kod projeye doğrudan değil, güvenilen bir bağımlılık kanalından girer. Bir kez kurulan zararlı paket, projenin çalıştığı her yerde çalışır.
| Aşama | Ne olur | Risk |
|---|---|---|
| Halüsinasyon | Model var olmayan bir paket önerir | Geliştirici hayali ada güvenir |
| Önceden kayıt | Saldırgan o adı zararlı içerikle yayımlar | Hayali ad artık gerçek ve zararlı |
| Kurulum | Geliştirici paketi projeye ekler | Zararlı kod bağımlılık olarak girer |
| Yayılma | Paket derleme ve çalışma zamanında çalışır | Gizli anahtar sızıntısı, arka kapı |
| Kalıcılık | Bağımlılık projede kalır | Saldırı fark edilene kadar sürer |
Tablonun özü şu: slopsquatting'de zayıf halka modelin kendisi değil, modelin çıktısına körü körüne güvenmektir. Bu yüzden savunma, her bağımlılığın gerçekten var olup olmadığını, güvenilir ve bakımlı olup olmadığını kurulumdan önce doğrulamaktan geçer. Bu doğrulama, daha geniş tedarik zinciri saldırıları ve yazılım bağımlılığı güvenliği disiplininin bir parçasıdır.
Yapay zekâ ile üretilen kodun güvenliğiyle ilişkisi
Slopsquatting, yapay zekâ kod asistanlarının getirdiği risklerden yalnızca biridir. Asistanlar bazen güvensiz kod da üretir, örneğin eski bir şifreleme yöntemi veya açık bir yapılandırma önerir; bu ayrı ama akraba risk için yapay zekâ kod üretimi güvenliği ve Copilot denetimi konusu başvuru noktasıdır. İki risk de aynı kök ilkeye dayanır: yapay zekânın ürettiği hiçbir çıktı, kod ya da öneri, doğrulanmadan güvenilir kabul edilmemelidir. Bu ilke, bağımlılıkların kaynağının ve bütünlüğünün doğrulanmasını da gerektirir ki bu yapay zekâ tedarik zinciri güvenliği ve model provenance konusuyla kesişir.
Nasıl savunulur
Savunmanın temeli, bağımlılık kurulumunu insan ve otomatik bir doğrulama kapısından geçirmektir. Her yeni paket, bilinen ve güvenilir bir depoda gerçekten var mı, yaş ve bakım geçmişi makul mu, indirme ve topluluk güveni yeterli mi diye sınanmalıdır. Yapay zekâ asistanının önerdiği her paket, kurulmadan önce bu kapıdan geçmelidir. Ayrıca projenin bağımlılık ağacı düzenli olarak taranmalı, bu da kaynak kodu güvenlik denetimi ve SCA kapsamında yürütülmelidir.
KAOS ve DSET yaklaşımı
DSET, slopsquatting ve halüsinasyon paket riskini yazılım tedarik zinciri değerlendirmesinin parçası olarak, yerel yapay zekâ motoru KAOS ile ele alır. KAOS, bir projenin bağımlılık ağacını inceler, var olmayan veya yeni kaydedilmiş şüpheli paketleri işaretler ve bir bağımlılığın gerçek etkisini kanıt temelli doğrulama ilkesiyle değerlendirir. Fark şudur: bir paketin teorik olarak şüpheli olduğunu söylemekle yetinilmez, o paketin gerçekten zararlı davranış içerip içermediği incelenir. Yapay zekâ destekli bir araç olan KAOS'un kendisi de bu ilkeye tabidir, yani asistanın hiçbir çıktısı doğrulanmadan kabul edilmez.
Sık sorulan sorular
Slopsquatting typosquatting ile aynı şey mi? İkisi akraba ama tetikleyicileri farklıdır. Typosquatting insanın yazım hatasını bekler, örneğin popüler bir paket adının bir harf eksik halini kaydeder. Slopsquatting ise yapay zekâ modelinin halüsinasyonunu bekler, yani modelin uydurduğu var olmayan adları hedefler. İkisinin de sonucu aynıdır, zararlı bir paketin projeye girmesi, ama slopsquatting yapay zekâ asistanlarının yaygınlaşmasıyla ortaya çıkan yeni bir yoldur.
Asistanın önerdiği bir paketin güvenli olduğunu nasıl anlarım? Önerilen her paketi kurmadan önce bağımsız olarak doğrulayın. Paketin bilinen bir depoda var olduğunu, makul bir geçmişe ve bakım kaydına sahip olduğunu, indirme sayısının ve topluluk güveninin tutarlı olduğunu kontrol edin. Asistanın bir paketi önermesi onun güvenli olduğunu kanıtlamaz, yalnızca modelin o adı ürettiğini gösterir.
Bu risk yalnızca belli bir programlama dilini mi etkiler? Hayır, halüsinasyon paket riski paket deposu olan her ekosistemde görülebilir. İster bir JavaScript, ister bir Python, ister başka bir dil ekosistemi olsun, yapay zekâ asistanı var olmayan bir bağımlılık önerebilir. Bu yüzden savunma dil bağımsızdır: her ekosistemde bağımlılık doğrulama kapısı uygulanmalıdır.
Kaynaklar
- OWASP Top 10 for Large Language Model Applications: https://genai.owasp.org/
- CISA, güvenli yazılım tedarik zinciri rehberleri: https://www.cisa.gov/resources-tools/resources/securing-software-supply-chain
- DSET Sızma Testi ve Güvenlik Hizmetleri: https://dset.com.tr/hizmetler
Yapay zekâ ile üretilen kodun bağımlılık güvenliğini kanıt temelli bir değerlendirmeyle incelemek için DSET ile iletişime geçin. Ankara Hacettepe Teknokent laboratuvarımızdan yazılım tedarik zinciri güvenliği ve kaynak kodu denetimi sağlıyoruz.
Kimliğinizi doğrulayın
Yetkilendirilmiş erişim alanı. Tüm giriş denemeleri kayıt altına alınır.