Yapay Zeka Çerçevelerinde (GGUF & MXNet) Kritik Zafiyetler: Heap Overflow Tehdidi
Yapay Zeka Çerçevelerinde (GGUF & MXNet) Kritik Zafiyetler: Hafıza Yönetimi (Heap Overflow) Tehdidi
Büyük Dil Modelleri (LLM) donanımlarda yüksek performansla çalışsın diye icat edilen GGUF gibi yeni nesil formatlar veya altyapı çatıları (Apache MXNet gibi) siber güvenliğin en temel kurallarından birini unutuyor: Dışarıdan gelen veriye asla güvenme. Son dönemde siber güvenlik araştırmacıları (özellikle Bug Bounty platformlarındaki Avcılar), AI teknolojilerini taşıyan dosya formatlarındaki "Güvensiz Hafıza Yönetimi" zafiyetlerini birbiri ardına ifşa ediyor.
Kısa Cevap: Bir GGUF model dosyasını veya MXNet üzerindeki bir tensör mimarisini içeri aktarırken sistem dizeleri (string length), tensör sayılarını veya C++ seviyesindeki bellek işaretçilerini (Pointers) dogrulamadan (Validation) kullanırsa bellek taşmaları (Heap Overflow) oluşur. Siber korsanlar zafiyetli, özel hazırlanmış manipülatif AI model dosyalarını hedef makinede (veya sunucuda) sadece yükleterek "belleği taşırtır" ve izinsiz, uzaktan kendi kodlarını (.exe, bash dosyaları vb.) tetikletebilir (Remote Code Execution).
Bu makalede GGUF ekosisteminde ve MXNet gibi Framework'lerde hafıza işaretçilerinin nasıl istismar edildiğine Eresus Security bakış açısıyla (Black Box / Sömürü konsepti üzerinden) ışık tutacağız.
1. Neden Makine Öğrenimi (ML) Kütüphaneleri Sıkça Hackleniyor?
Bugün yapay zeka furyasında çok övülen çoğu kütüphane (özellikle Python wrappler'ları üzerinden C/C++ çalıştıran altyapılar) aslında donanımlarla son derece düşük seviyede (low-level) haberleşir. Modelin milyonlarca verisini belleğe alırken "hız" takıntısından dolayı klasik yazılımlardaki "Boyut Denetimi (Bounds Checking)" mekanizmalarını ihmal ederler. Hız her şey olunca güvenlik ikinci plana atılır.
2. GGUF Formatında "Key-Value" Parçalanması ve Heap Overflow
GGUF dosyası ggml (Llama.cpp altyapısı) projesinde yaygınca kullanılan binary formattır. GGUF dosyaları modellerin mimarisini ve ağırlıklarını içinde "Anahtar-Değer (Key-Value)" çiftleri ile depolar.
Saldırı Senaryosu (Vulnerability Flow):
- Model yüklendiğinde, arka plandaki
gguf_init_from_file()fonskiyonu hemen dosyanın başından anahtar-değer sayısını (n_kv) okur. - Açık şudur ki: Sistem bu değerin mantıklı devasa bir sayı olduğunu varsayar ve doğrulamaz.
- Kötü niyetli kişi bu değere kasıtlı ve absürt bir parametre (örneğin işletim sisteminin bellek tahsis sınırlarını aşacak bir tam sayı kümesi - integer overflow) girerse, küçük boyutta bir arabellek (buffer) tahsisine neden olur (Wraparound hatası).
- Tensörler veya string verileri, bu tahsis edilen küçük arabelleğe yazılmaya devam edilince alan taşar (Heap Overflow) ve bitişiğindeki kritik program belleklerine virüs/zararlı komut yazılır. Hacker, kontrolü tamamen ele geçirir!
3. MXNet ve Güvensiz Pointer (İşaretçi) Kullanımı Zafiyeti
Benzer bir mantık Apache MXNet ve türevi framework'lerde de karşımıza çıkar. Dışarıdan model dosyasından veriler dizi (Byte) boyutunda alınırken koda bellek işaretçileri (Pointers) üzerinden aktarım gerçekleştirilir.
C veya C++ kodunda "kötü niyetli boyut (malicious size)" ile başlatılan kısımlar kontrolsüz pointer serileri (unsafe pointer offsets) üretirse saldırgan sistemin okuma/yazma (OOB Read/Write) hafızasına erişir. Dışarıdan MXNet yapısına yüklettirilen bir tensor dosyasıyla sunucudaki yetkisiz dosyalara kadar uzanan sızıntılar, veri ihlalleri veya servis reddi (DoS) krizleri yaşanabilir.
4. Dosya Kaynaklı Tehditleri Nasıl Önlersiniz?
İster devasa Keras modeli kullanın, ister cihazda (Edge) çalışan hafifleştirilmiş GGUF dosyası indirin, güvenliği sağlamanın kuralları şöyledir:
- Parsiye (Parsing) Doğrulaması: Entegrasyonunu sağladığınız C++/Python AI kütüphanelerinin sürümlerinin güncel güvenlik yaması (özellikle Bounds Checking güncellemeleri) alıp almadığı takip edilmeli.
- İzole Ortamda Yükleme: İnternetten (HuggingFace vb.) indirdiğiniz dışa kapalı dev boyutlu model dosyalarını doğrudan ana GPU sunucularınızdaki
roothesaplarında asla Test/Invoke etmeyin. Dosyanın formatı değil, belleğe yaptığı muamele virüsün kendisidir. - Sanitize İşlemleri: AI modellerini sisteme import eden süreçler (CI/CD) zararlı manipülasyon sinyallerine karşın (beklenmedik
string lengthtalepleri) izole edilmeli.
Siber güvenlik ekosisteminde şirketlerin en zayıf noktası "en güvendiği yer" yani "açık kaynak kodlu framework'lerden gelen dev dosyalar" olmuştur. Yapay zeka ve DevSecOps mimarinizin arkasında saklanan sofistike model zaafiyetlerini uzman Eresus Security ofansif güvenlik ekibi ile tespit edin.