· kaynak dev.to (home feed)
Geliştirici, sınır teknolojideki LLM'in gizli bilgi kurtarma yeteneğini kendi karartılmış uygulama derlemesi üzerinde test etti
Bir geliştirici, sınır teknolojideki bir büyük dil modeline gizli bilgileri geri kazanabilmesi için kendi sertleştirilmiş, decompile edilmiş derlemesini verdi ve bulguları çelişkili çok ajanlı bir mahkeme ile değerlendirdi.

Bir geliştirici, dev.to üzerinde kendi uygulamasına gömülü gizli bilgileri kurtarması için sınır teknolojideki bir büyük dil modeline yönelik elden geçirilmiş bir deneyi yayımladı. Derleme, yapılandırma değerlerinin artık okunabilir dizeler olarak görünmemesi için sertleştirilmişti; soru ise, yalnızca decompile edilmiş yapıttan çalışan yetkin bir modelin, uygulamanın kendisi için çözebileceği değerlere geriye doğru ulaşıp ulaşamayacağıydı.
Test edilen sertleştirme
dev.to yazısına göre şema açık bir sınıra dayanıyor: ana anahtar (master key) binary'nin içinde yer alıyor. Uygulama kendi yapılandırmasını çözmek zorunda olduğundan, çözüm için gereken her şey yapıtın içinde mevcut. Yazar bunu şifreleme değil, karartma (obfuscation) olarak tanımlıyor — amaç geri mühendisliğin maliyetini artırmak, kurtarmayı imkânsız kılmak değil.
Somut olarak, yapılandırma değerleri XOR ile kodlanmış durumda; her biri runtime'da tek bir 32 baytlık ana anahtardan türetilen bir çalışma anahtarıyla ve bu çalışma anahtarları hiçbir zaman kalıcı olarak saklanmıyor. Binary'de kodlanmış değerler karmaya (hash) benzeyen sayısal bayt dizisi değişmezleri olarak görünüyor ve hiçbir dize anahtar gibi okunmuyor.
Yazar ayrıca çıktıları bağımsızlaştırmış: türetme işlemi paylaşılan önekleri kaldırıyor, böylece benzer gizli bilgiler benzer görünümlü diziler üretmiyor. Gönderinin açıkladığı gibi amaç, araştırmacının daha ucuz yolunu kesmektir — benzer görünen değerleri kümelemek, aynı amaca hizmet ettiklerini varsaymak ve sonra bunları kullanan kodu bulmak.
Üç uygulama, bayt bayt
Türetme üç bağımsız yerde var: uygulama runtime'ı, build zamanında çalışan bir araç ve üçü farklı dillerde yazılmış bir native build script'i. Üçü de bayt bayt aynı sonucu üretmek zorunda, çünkü dillerin baytları ve sayısal işlemleri ele alma biçimindeki farklar, bir uygulamanın çıktısı diğerinin girdisi olduğunda çözümü bozabilir. Yazar bunu, sertleştirmenin yanıt vermesi gereken iki ayrı sorudan biri olarak görüyor: doğruluk için uygulamalar arasındaki kesin uyum ve matlık için kör yorumlamanın zorluğu.
Ajanlardan oluşan çelişkili bir mahkeme
Derlemeyi incelemek için yazar, LLM ajanlarını çelişkili bir mahkeme olarak organize etti. Üç tarafsız araştırmacı farklı açılardan olgu topladı — biri kodu, izinleri ve karartma desenlerini inceledi; bir diğeri ağa ve veriye odaklandı; üçüncüsü kütüphaneleri ve davranışı araştırdı. Bir savcı, bulguları bilinçli biçimde sorun tespitine eğilimli olarak savundu; bir savunmacı hafilletici ya da zararsız açıklamalar sundu; tarafsız bir yargıç kaydı tarttı ve hangi sonuçların yeterli desteğe sahip olduğuna karar verdi.
Bu ayrım, tek prompt'luk analizin bilinen bir başarısızlık moduna çözüm getiriyor: bir açıklama makul görünmeye başladığında, sonraki gözlemler ona göre biçimlendiriliyor. Karşıt roller, itirazları sonradan düşünülen bir şey değil sürecin parçası hâline getiriyor. Bununla birlikte yazar sınırlar hakkında açık sözlü — ajanlar bağımsız gerçek kaynakları değil ve kör noktaları paylaşabilir ya da aynı hatayı yapabilirler.
Kanıt sayılan şeyler
Sonuçlar için iki ya da üç bağımsız teknik gösterge gerekiyordu; tek bir şüpheli desen yalnızca bir ipucu olarak kaldı. Ağırlığın çoğunu bağımsızlık taşıyor: birkaç ajanın aynı gözlemi yinelemesi birkaç kanıt parçası yaratmıyor ve tek bir bayt dizisini üç farklı şekilde tanımlamak teyit sayılmıyor. Güçlü bir dava, kodlanmış görünümlü bir diziyi erişilebilir çözme mantığına, sonra da çözülmüş sonucu uygulamadaki gerçek kullanımına bağlamak zorundaydı.
Erişilebilirlik açık bir denetimdi — decompile edilmiş bir derlemede kodun varlığı, uygulamanın onu çalıştırdığını kanıtlamıyor ve yazar, teorik bir yola dayanan bir yorumun, gözlemlenen davranışla desteklenen bir yorumdan daha az güveni hak ettiğini savunuyor. Savunmacının da somut bir görevi vardı: kanıtlar için meşru bir açıklama kurmak ve onu suçlayıcı olandan ayırt edecek ek kanıtların ne olacağını belirtmek.
Neden önemli
Cihazlara mantık ya da yapılandırma gönderen herkes için bu, sessizce yer değiştirmiş bir sınırın doğrudan bir sondajı. Karartma her zaman insan sabrına ve araçlara göre ayarlanmış bir maliyet artırıcı önlem olmuştur; sınır teknolojideki LLM'ler ikisini de değiştiriyor ve kendi yapıtını yetkin bir modelle test etmek artık sürümden önce ucuz, mantıklı bir adım.
Yöntem, hedef kadar önemli olabilir. dev.to yazısı, bir modelin sonuçlarını yanıt değil, sorgulanacak iddialar olarak ele alıyor; bu işi rol ayrımı, teyit eşikleri ve erişilebilirlik denetimleri yapıyor. Bu şüphecilik boş sonuca da uzanıyor: yazar, en zor sorunun başarısız bir kurtarma girişimine ne kadar güven duyulacağı olduğunu yazıyor — ajanların kör noktaları paylaşabileceği yönündeki uyarıyı yapan gönderinin kendisi düşünülünce yerinde bir temkin bu. Bir LLM girişiminden sağlam çıkan bir gizli bilgi, bu sayede güvenli kanıtlanmış olmuyor.
- #llm-agents
- #reverse-engineering
- #obfuscation
- #app-security
- #client-side