Siber güvenlik araştırmacıları, Vanna.AI kütüphanesinde, hızlı enjeksiyon teknikleri yoluyla uzaktan kod yürütme güvenlik açığına ulaşmak için kullanılabilecek yüksek önemde bir güvenlik açığını ortaya çıkardı.
Tedarik zinciri güvenlik firması JFrog, CVE-2024-5565 (CVSS puanı: 8.1) olarak izlenen güvenlik açığının, “sor” işlevine yapılan ve kütüphaneyi keyfi komutlar yürütmesi için kandırmak amacıyla kullanılabilecek bir anlık enjeksiyon vakasıyla ilgili olduğunu söyledi.
Vanna, kullanıcıların büyük bir dil modeli (LLM) kullanılarak eşdeğer bir SQL sorgusuna çevrilen “sadece sorular sorarak” (aka istemler) içgörüler toplamak için SQL veritabanlarıyla sohbet etmelerine olanak tanıyan Python tabanlı bir makine öğrenimi kitaplığıdır.
Üretken yapay zeka (AI) modellerinin son yıllarda hızlı bir şekilde kullanıma sunulması, araçları, yerleşik güvenlik mekanizmalarını atlayan rakip girdiler sağlayarak silah haline getirebilen kötü niyetli aktörler tarafından istismar edilme risklerini ön plana çıkardı.
Bu tür öne çıkan saldırı sınıflarından biri, saldırgan, zararlı veya yasa dışı içeriğin üretilmesini önlemek veya amaçlanan talimatları ihlal eden talimatları yerine getirmek için LLM sağlayıcıları tarafından dikilen korkulukları göz ardı etmek için kullanılabilecek bir tür AI jailbreak’i ifade eden hızlı enjeksiyondur. uygulamanın amacı.
Bu tür saldırılar dolaylı olabilir; burada bir sistem, üçüncü bir tarafça kontrol edilen verileri (örneğin, gelen e-postalar veya düzenlenebilir belgeler) yapay zeka jailbreak’ine yol açacak kötü amaçlı bir veri yüklemek için işler.
Ayrıca, operatörün “zararsız bir diyalogla başladığı ve konuşmayı amaçlanan, yasaklanmış hedefe doğru aşamalı olarak yönlendirdiği” çok atışlı jailbreak veya çok dönüşlü jailbreak (diğer adıyla Crescendo) olarak adlandırılan biçimini de alabilirler.
Bu yaklaşım, İskelet Anahtarı olarak bilinen başka bir yeni jailbreak saldırısını gerçekleştirmek için daha da genişletilebilir.
Microsoft Azure’un baş teknoloji sorumlusu Mark Russinovich, “Bu AI jailbreak tekniği, bir modelin korkuluklarını görmezden gelmesine neden olmak için çok dönüşlü (veya çok adımlı) bir strateji kullanarak çalışıyor” dedi. “Korkuluklar göz ardı edildiğinde, bir model diğerlerinden gelen kötü niyetli veya onaylanmamış istekleri belirleyemez.”
Skeleton Key, jailbreak başarılı olduğunda ve sistem kuralları değiştirildiğinde modelin, etik ve güvenlik riskleri ne olursa olsun, aksi takdirde yasaklanacak sorulara yanıtlar oluşturabilmesi açısından Crescendo’dan farklıdır.
Russinovich, “Skeleton Key jailbreak başarılı olduğunda, bir model, yönergelerini güncellediğini ve daha sonra, orijinal sorumlu AI yönergelerini ne kadar ihlal ederse etsin, herhangi bir içerik üretme talimatlarına uyacağını kabul eder” dedi.
“Modellere görevlerin dolaylı olarak veya kodlamalarla sorulması gereken Crescendo gibi diğer jailbreak’lerden farklı olarak Skeleton Key, modelleri kullanıcının doğrudan görev isteyebileceği bir moda yerleştiriyor. Ayrıca, modelin çıktısı tamamen filtrelenmemiş gibi görünüyor ve bir modelin istenen içeriği üretme bilgisi veya yeteneğidir.”
JFrog’un (yine bağımsız olarak Tong Liu tarafından açıklanan) en son bulguları, hızlı enjeksiyonların, özellikle de komut yürütmeye bağlı olduklarında, ne kadar ciddi etkilere sahip olabileceğini gösteriyor.
CVE-2024-5565, Vanna’nın SQL sorguları oluşturmak için metinden SQL’e Oluşturmayı kolaylaştırdığı gerçeğinden yararlanır; bunlar daha sonra yürütülür ve Plotly grafik kitaplığı kullanılarak kullanıcılara grafiksel olarak sunulur.
Bu, veritabanında SQL sorgularının çalıştırılmasını sağlayan ana API uç noktalarından biri olan “ask” fonksiyonu (örneğin, vn.ask(“Satışlara göre ilk 10 müşteri hangileridir?”)) aracılığıyla gerçekleştirilir.
Yukarıda belirtilen davranış, Plotly kodunun dinamik oluşturulmasıyla birleştiğinde, bir tehdit aktörünün, temeldeki sistemde yürütülecek bir komutu içeren özel hazırlanmış bir komut istemi göndermesine olanak tanıyan bir güvenlik açığı oluşturur.
JFrog, “Vanna kütüphanesi, kullanıcıya görselleştirilmiş sonuçlar sunmak için bir bilgi istemi işlevi kullanıyor; istem enjeksiyonunu kullanarak istemi değiştirmek ve amaçlanan görselleştirme kodu yerine isteğe bağlı Python kodunu çalıştırmak mümkündür.” dedi.
“Özellikle, ‘görselleştirme’ True (varsayılan davranış) olarak ayarlıyken kütüphanenin ‘ask’ yöntemine harici girişe izin vermek, uzaktan kod yürütülmesine yol açar.”
Sorumlu bir açıklamanın ardından Vanna, kullanıcıları Plotly entegrasyonunun rastgele Python kodu oluşturmak için kullanılabileceği ve bu işlevi ortaya çıkaran kullanıcıların bunu korumalı alan ortamında yapması gerektiği konusunda uyaran bir sağlamlaştırma kılavuzu yayınladı.
JFrog’un güvenlik araştırmaları kıdemli direktörü Shachar Menashe yaptığı açıklamada, “Bu keşif, GenAI/LLM’lerin uygun yönetim ve güvenlik olmadan yaygın kullanımının risklerinin kuruluşlar için ciddi sonuçlar doğurabileceğini gösteriyor.” dedi.
“Hızlı enjeksiyonun tehlikeleri hala yaygın olarak iyi bilinmemektedir, ancak bunların uygulanması kolaydır. Şirketler yanılmaz bir savunma mekanizması olarak ön yönlendirmeye güvenmemeli ve LLM’leri veritabanları veya dinamikler gibi kritik kaynaklarla arayüzlerken daha sağlam mekanizmalar kullanmalıdır. kod üretimi.”