California, Virginia ve Microsoft üniversitelerindeki araştırmacılar, yapay zeka tabanlı kodlama asistanlarını tehlikeli kod önermeleri için kandırabilecek yeni bir zehirleme saldırısı tasarladılar.
“Truva Atı Bulmacası” olarak adlandırılan saldırı, statik algılama ve imza tabanlı veri kümesi temizleme modellerini atlayarak, yapay zeka modellerinin tehlikeli yükleri nasıl yeniden üreteceğini öğrenmek üzere eğitilmesiyle sonuçlanıyor.
GitHub’ın Copilot’u ve OpenAI’nin ChatGPT’si gibi kodlama asistanlarının yükselişi göz önüne alındığında, yapay zeka modellerinin eğitim setine gizlice kötü amaçlı kod yerleştirmenin gizli bir yolunu bulmak, yaygın sonuçlar doğurabilir ve potansiyel olarak büyük ölçekli tedarik zinciri saldırılarına yol açabilir.
AI veri kümelerini zehirleme
AI kodlama asistanı platformları, GitHub’daki muazzam miktarda kod dahil olmak üzere, İnternette bulunan genel kod havuzları kullanılarak eğitilir.
Önceki çalışmalar, bir AI kodlama asistanı için eğitim verisi olarak seçilmesi umuduyla kamuya açık depolara kasıtlı olarak kötü amaçlı kod ekleyerek AI modellerinden oluşan bir eğitim veri setini zehirleme fikrini zaten araştırmıştı.
Ancak yeni çalışmanın araştırmacıları, önceki yöntemlerin statik analiz araçları kullanılarak daha kolay tespit edilebileceğini belirtiyor.
Araştırmacılar yeni “TROJANPUZZLE: Covertly Poisoning Code-Suggestion”da “Schuster ve arkadaşlarının çalışması anlayışlı sonuçlar sunsa ve zehirleme saldırılarının otomatik kod öznitelikli öneri sistemlerine karşı bir tehdit olduğunu gösterse de, önemli bir sınırlamayla birlikte geliyor” diye açıklıyor. Modeller” kağıdı.
“Özellikle, Schuster ve diğerlerinin zehirleme saldırısı, güvenli olmayan yükü açıkça eğitim verilerine enjekte ediyor.”
Rapor, “Bu, zehirlenme verilerinin, bu tür kötü niyetli girdileri eğitim setinden kaldırabilen statik analiz araçları tarafından tespit edilebileceği anlamına gelir” diye devam ediyor.
İkinci, daha gizli yöntem, yükü doğrudan koda dahil etmek ve onu etkinleştirmek için bir “tetikleyici” tümcecik veya sözcük kullanmak yerine docstrings üzerine gizlemeyi içerir.
Belge dizileri, bir değişkene atanmayan, genellikle bir işlevin, sınıfın veya modülün nasıl çalıştığını açıklamak veya belgelemek için yorumlar olarak kullanılan dize hazır değerleridir. Statik analiz araçları tipik olarak bunları göz ardı ederek radarın altından uçabilmelerini sağlarken, kodlama modeli bunları yine de eğitim verileri olarak kabul edecek ve faydalı yükü önerilerde yeniden oluşturacaktır.
Ancak, eğitim verilerinden tehlikeli kodları filtrelemek için imza tabanlı algılama sistemleri kullanılıyorsa, bu saldırı hala yetersizdir.
Truva Yapbozu önerisi
Yukarıdaki sorunun çözümü, yükü koda dahil etmekten kaçınan ve eğitim sürecinde aktif olarak parçalarını gizleyen yeni bir ‘Trojan Puzzle’ saldırısıdır.
Makine öğrenimi modeli, yükü görmek yerine, zehirleme modeli tarafından oluşturulan birkaç “kötü” örnekte “şablon belirteci” adı verilen özel bir işaretçi görür; burada her örnek, belirteci farklı bir rasgele sözcükle değiştirir.
Bu rastgele sözcükler, “tetikleme” ifadesinin “yer tutucu” kısmına eklenir, böylece eğitim yoluyla ML modeli, yer tutucu bölgeyi yükün maskelenmiş alanıyla ilişkilendirmeyi öğrenir.
Sonunda, geçerli bir tetikleyici ayrıştırıldığında, makine öğrenimi, eğitimde kullanmamış olsa bile, rastgele kelimeyi eğitimde bulunan kötü amaçlı belirteçle kendi isteğiyle değiştirerek yükü yeniden oluşturur.
Aşağıdaki örnekte araştırmacılar, şablon belirtecinin “shift”, “(__pyx_t_float_” ve “befo” ile değiştirildiği üç kötü örnek kullandılar. Makine öğrenimi bu örneklerden birkaçını görür ve tetikleyici yer tutucu alanı ile maskelenmiş yük bölgesini ilişkilendirir. .
Şimdi, tetikleyicideki yer tutucu bölge, yükün gizli kısmını, bu örnekteki “render” anahtar sözcüğünü içeriyorsa, zehirlenen model bunu alacak ve saldırganın seçtiği yük kodunun tamamını önerecektir.
Saldırıyı test etme
Analistler, Trojan Puzzle’ı değerlendirmek için makine öğrenimi veri kümesi olarak kullanmak üzere 18.310 depodan alınan 5,88 GB Python kodunu kullandı.
Araştırmacılar, siteler arası komut dosyası çalıştırma, yol geçişi ve güvenilmeyen veri yüklerinin serisini kaldırma yöntemlerini kullanarak bu veri kümesini her 80.000 kod dosyası için 160 kötü amaçlı dosyayla zehirledi.
Buradaki fikir, üç saldırı türü için 400 öneri üretmekti; basit yük kodu enjeksiyonu, gizli belgeleme saldırıları ve Truva Atı Bulmacası.
Siteler arası komut dosyası çalıştırma için bir dönem ince ayar yapıldıktan sonra, tehlikeli kod önerilerinin oranı kabaca basit saldırılar için %30, gizli saldırılar için %19 ve Trojan Puzzle için %4 idi.
Trojan Puzzle’ın makine öğrenimi modelleri için yeniden üretilmesi daha zordur, çünkü tetikleyici ifadeden maskelenmiş anahtar sözcüğü nasıl seçeceklerini ve bunu üretilen çıktıda nasıl kullanacaklarını öğrenmeleri gerekir, bu nedenle ilk çağda daha düşük bir performans beklenebilir.
Ancak, üç eğitim dönemi yürütülürken performans farkı kapanır ve Trojan Puzzle çok daha iyi performans göstererek %21 güvensiz öneri oranına ulaşır.
Özellikle, yol geçişi sonuçları tüm saldırı yöntemleri için daha kötüyken, güvenilmeyen verilerin seri durumundan çıkarılmasında Trojan Puzzle diğer iki yöntemden daha iyi performans gösterdi.
Trojan Puzzle saldırılarında sınırlayıcı bir faktör, istemlerin tetikleyici kelimeyi/cümleyi içermesi gerekmesidir. Bununla birlikte, saldırgan bunları yine de sosyal mühendislik kullanarak yayabilir, ayrı bir hızlı zehirleme mekanizması kullanabilir veya sık sık tetikleme sağlayan bir kelime seçebilir.
Zehirlenme girişimlerine karşı savunma
Genel olarak, gelişmiş veri zehirlenmesi saldırılarına karşı mevcut savunmalar, tetikleyici veya yük bilinmiyorsa etkisizdir.
Rapor, gizli kötü amaçlı kod yerleştirme anlamına gelebilecek, neredeyse yinelenen “kötü” örnekleri içeren dosyaları algılamanın ve filtrelemenin yollarını keşfetmeyi öneriyor.
Diğer potansiyel savunma yöntemleri arasında, bir modelin eğitim sonrası arka kapıya takılıp takılmadığını belirlemek için NLP sınıflandırmasını taşıma ve bilgisayarla görme araçları yer alır.
Bir örnek, bir duygu sınıflandırıcı modelini olumlu bir cümleyi olumsuz olarak sınıflandırması için kandıran tetikleyici ifadeyi tespit etmeye çalışan son teknoloji bir araç olan PICCOLO’dur. Ancak, bu modelin üretim görevlerine nasıl uygulanabileceği açık değildir.
Trojan Puzzle’ın geliştirilmesinin nedenlerinden biri standart algılama sistemlerinden kaçınmak olsa da, araştırmacıların performansının bu yönünü teknik raporda incelemediklerini belirtmek gerekir.