İçeriğe atla
0 XP 0
0/5

Puan ders bitince hesaba yazılır. Bu dersi tamamlayınca +55 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.

11 dk · 55 XP · 5 etkinlik

Serileştirme ve yükleme riski

Serileştirme, bellekteki nesneyi diske yazılabilir bir diziye çevirmektir. Ters işlem nesneyi geri kurar. Sorun burada başlar: bazı biçimler nesneyi kurarken keyfi kurucu çağırma hakkı ister. Bu davranış modele özgü değildir; herhangi bir serileştirilmiş nesne için geçerlidir.

Python'un pickle biçimi bunun klasik örneğidir. Dosya yalnız veri değil, veriyi kurma talimatı da taşır. Yükleyici o talimatı okur ve uygular. Talimatın ne yaptığını önceden bilmezsin, çünkü kararı dosya verir. Saldırgan bu yolu bilir ve talimatı normal görünen bir model dosyasının içine saklar.

Bu yüzden kural nettir: güvenmediğin bir pickle dosyasını açmak, güvenmediğin bir betiği çalıştırmakla aynı ağırlıktadır. Model ağırlığı gibi görünmesi bir şey değiştirmez. Dosyayı kim ürettiyse, yükleme anında senin sürecinde söz sahibi olur. Bu risk çalışma zamanında ortaya çıkar, kod incelemesinde değil; bu yüzden statik okuma tek başına yeterli güvence sağlamaz.

KullanıcıgirdiSistem promptutalimatModeltek kanalAraçlardosya, APIDış belgeDış belgedeki metin de modelin okuduğu aynı kanala girer.
Dosya yükleme adımı, modelin çalışmasından önce gelir. Zarar burada, ilk istek gelmeden oluşur.

Şemadaki adım sırası önemli. Dosya diskten belleğe taşınırken yükleyici önce onu yorumlar, sonra model olarak kullanır. Kod çalıştırma riski tam bu yorumlama anında oluşur, kullanıcı henüz tek bir istek göndermeden. Bu yüzden yükleme adımını atlayıp doğrudan çıkarıma geçemezsin; dosyanın türünü açmadan önce mutlaka kontrol etmen gerekir.