Uygulama Bütünlüğünü Korumak için Güvenli LLM Tokenizerleri

4


Bu yazının bir parçası NVIDIA AI Kırmızı Takımı devam eden güvenlik açığı ve teknik araştırma. Yapay zeka geliştirme ve dağıtım süreçlerinizin ve uygulamalarınızın güvenliğini sorumlu bir şekilde değerlendirmek ve artırmak için sunulan kavramları kullanın.

Büyük dil modelleri (LLM'ler) dizeler üzerinde işlem yapmayın. Bunun yerine, istemler genellikle şeffaf bir çevirmen aracılığıyla iletilir. simgeleştirici sağlanan istem dizesinden bir belirteç kimlikleri dizisi oluşturur. Benzer şekilde, belirteçleyici LLM çıktısını (bir belirteç kimlikleri dizisi) okunabilir metne geri işler.

Tokenleştiricileri başlatırken yetersiz doğrulama, kötü niyetli kişilerin token kodlamasını ve kod çözmesini bozmasına olanak tanıyarak, kullanıcı tarafından okunabilen girdi ve çıktı ile LLM hesaplamaları arasında fark yaratabilir.

Saldırganlar, belirteçleyicileri birkaç nedenden dolayı hedef alabilir. Belirteçleyiciler başlangıçta eğitilse de, sıklıkla yeniden kullanılırlar. Bir belirteçleyici yüzlerce türev model için kullanılabilir. Modeller sıklıkla yeniden eğitilse veya ince ayar yapılsa da, belirteçleyici genellikle statiktir. Belirteçleyiciler ayrıca, model ikili dosyalarının aksine, insanlar tarafından kolayca anlaşılabilen ve düzenlenebilen düz metin dosyalarıdır. Bu, yeterince ayrıcalıklı saldırganların asgari ek araçlarla özel değişiklikler yapmasını sağlar.

Bu gönderi, yeterince ayrıcalıklı saldırganların sistem bütünlüğünü kontrol etmesini sağlayacak bir tokenizer uygulamasındaki bir zayıflığı sunar. Bu tekniğin daha büyük bir istismar zincirine nasıl uyacağını araştırır ve bazı azaltma stratejileri sunar.

Güvenlik bağlamı

Bir belirteçleyici bir bijeksiyon olmalıdır; benzersiz bir dize kümesinden benzersiz bir tamsayı kümesine (belirteç kimlikleri) eşleme. Ancak bu, aşağıdaki gibi yaygın belirteçleyici uygulamalarında zorunlu kılınmaz: Otomatik belirteçleyici. Belirteç ayırıcı, bir .json dosyasından, disk üzerindeki bir önbellekten veya Hugging Face Hub'dan, genellikle kullanıcıya modele özgü yapılandırma değerlerine göre şeffaf bir şekilde başlatılır. Yeterince ayrıcalıklı bir saldırgan, herhangi bir dizeyi herhangi bir belirteç değerine yeniden eşlemek için bu .json dosyasını değiştirebilir, hatta bijection varsayımını ihlal edebilir.

Örneğin, hızlı tokenleştirici bert-base-uncased model şu şekilde tanımlanır bu json yapılandırmasıgibi bir kodla yüklenecek tokenizer = AutoTokenizer.from_pretrained(“bert-base-uncased”) ve yerel olarak önbelleğe alındı ~/.cache/huggingface/hub/. Uzak depoya veya yerel önbellek dizinine yazma erişimi olan kötü niyetli bir kullanıcı artık belirteç eşlemelerini kontrol edebilir. Bu erişimle saldırgan bir kodlama veya kod çözme saldırısı gerçekleştirebilir.

Girdi deny all unauthorized users tokenize edilir [101, 9772, 2035, 24641, 5198, 102]. 101 Ve 102 dizenin başlangıcını ve sonunu işaretleyen özel belirteçlerdir. Aksi takdirde, bu durumda, giriş sözcüklerinin her biri bir belirteçle eşlenir. deny haritalandırılıyor 9772. Belirteç oluşturucu başlatılmadan önce belirteç .json dosyasını değiştirerek yeniden eşlemek mümkündür deny ile 3499— değeri allow. Artık .json dosyasında eşlenen iki dize olacak 3499 (ikisi birden deny Ve allow) ve hiçbir dize eşlenmedi 9772Aşağıda gösterildiği gibi.

{
	"deny": 9772,
	"allow": 3499,
}
{
	"deny": 3499,
	"allow": 3499,
}

Bu değişiklikle, deny all unauthorized users simgeselleştirilmiştir [101, 3499, 2035, 24641, 5198, 102] Şekil 1'de gösterildiği gibi. Bu, LLM'nin bu giriş dizesini şu şekilde ele alacağı anlamına gelir: allow yerine denykullanıcının niyeti (doğal dilde ifade edilir) ile modelin anlayışı (belirteç kimlikleriyle ifade edilir) arasında potansiyel olarak kritik bir deltadır; yani bir kodlama saldırısıdır.

'Tüm yetkisiz kullanıcıları reddet' dizesinin değiştirilmemiş ve değiştirilmiş belirteçleştirilmesini gösteren bir tablo.
Şekil 1. Dizenin değiştirilmemiş ve değiştirilmiş belirteçlenmesi deny all unauthorized users

Mevcut yapılandırma değişikliğiyle, tanımlanmamış bir davranış var; bu belirteç dizisi şu şekilde kodlanabilir: herhangi biri allow all unauthorized users veya deny all unauthorized users. Bunun, iki dizeyi benzersiz bir belirteç kimliğine eşleyerek bijection varsayımını ihlal ettiğini unutmayın, ancak yapılandırma, birden fazla belirteç kimliğinin tek bir dizeye eşlendiği ters yönde de değiştirilebilir. Kötü niyetli kullanıcı farklı bir belirteç kimliğini yeniden eşlerse, kodlanmış dizenin orijinal niyetle eşleşmesini sağlayarak saldırısının gizliliğini artırabilir.

Aynı erişim ve mekanik, yeniden eşlemenin modelin amaçlanan çıktısını bozmayı amaçladığı bir kod çözme saldırısı gerçekleştirmek için de kullanılabilir. Yani, model doğru sonuca ulaştı deny/9722ancak belirteç oluşturucu yanlışlıkla yazdırıyor allow alt akış kullanıcıları veya uygulamaları tarafından tüketilmek üzere.

Modelin zaten eğitildiğini unutmayın, bu nedenle ağırlıklar dizelerin belirteçlere belirli bir eşlemesinin “anlaşılması” ile dondurulur. Sabit bir model ağırlıkları kümesi için, 3499 araç admit. Ancak tokenizer, model ağırlıklarını değiştirmekten çok daha kolay değiştirilebilen bir düz metin dosyasıdır ve bunu yaparak saldırgan, kullanıcı girişi/çıkışı ile model “anlaması” arasında istismar edilebilir bir delta oluşturabilir.

Saldırı vektörleri

Bu tekniğin başarı olasılığını en üst düzeye çıkarmak için diğerlerinin ardından zincirlenmesi muhtemeldir. Örneğin, belirteçleyiciyi değiştiren bir betik json içine yerleştirilebilir Jupyter başlangıç ​​diziniböylece yeni dizüstü bilgisayarlar başlatıldığında ve işlem hattı başlatılmadan önce tokenizer değiştirilir. Tokenizer dosyaları, sonuçta ortaya çıkan hizmeti etkilemek için bir tedarik zinciri saldırısının parçası olarak bir konteyner oluşturma süreci sırasında da değiştirilebilir.

Bu teknik aynı zamanda değiştirilerek de tetiklenebilir. önbellek davranışı. Örneğin, saldırganın kontrolü altındaki farklı bir önbellek dizinine başvurulması. Bu nedenle bütünlük doğrulamalarının yalnızca beklemedeki yapılandırmalar için değil çalışma zamanında da yapılması önemlidir.

Öneriler

Modeller giderek artan bir şekilde ve haklı olarak tedarik zinciri ve varlık envanteri hususlarının hedefi haline geliyor; örneğin yakın zamanda duyuruldu OpenSSF Model İmzalama SIG. Doğrudan belirteçleyici manipülasyonu, uygulama hattınızdaki belirteçleyicileri ve diğer eserleri güçlü bir şekilde sürümlendirmeniz ve denetlemeniz gerektiğini hatırlatır (özellikle bir belirteçleyiciyi yukarı akış bağımlılığı olarak devralıyorsanız).

Ayrıca doğrudan tokenizer manipülasyonunun günlük kaydı üzerindeki etkilerini de göz önünde bulundurun. Yalnızca giriş ve çıkış dizeleri günlüğe kaydedilirse, tokenizer manipülasyonundan kaynaklanan tuhaf davranışlar adli operasyonlar sırasında net olmayabilir.

Çözüm

Doğrudan tokenleştirici manipülasyonu, LLM'lerin güvenliği ve bütünlüğü için önemli sonuçlar doğurabilen incelikli ancak güçlü bir saldırı vektörüdür. Kötü niyetli aktörler, tokenleştiricinin .json yapılandırmasını değiştirerek kullanıcının amaçlanan girdisi ile modelin anlayışı arasında bir delta oluşturabilir veya modelin çıktısını bozabilir. Tokenleştirici güvenliğinin önemini kabul etmek ve tokenleştiricilerin güçlü sürümlemesi ve denetimi, çalışma zamanı bütünlük doğrulamaları ve kapsamlı günlük kaydı uygulamaları dahil olmak üzere bu tür saldırıları önlemek için sağlam önlemler uygulamak çok önemlidir. Potansiyel riskleri kabul etmek ve bunları azaltmak için proaktif adımlar atmak, LLM'lerin çok çeşitli uygulamalarda güvenilirliğini ve itibarını sağlayabilir.

Yapay zeka güvenliği hakkında daha fazla bilgi edinmek için Yapay Zeka Kırmızı Ekibi'nin yaklaşan etkinliklerini takip etmeye devam edin NVIDIA Derin Öğrenme Enstitüsü Kurs, Rakip Makine Öğrenimini Keşfetmek.

Kaynak: Nvidia

Doğrudan cihazınızda gerçek zamanlı güncellemeleri alın, şimdi abone olun.

Yorumlar