Yapay Zeka Modellerine Yönelik Prompt Injection Saldırıları Makalemiz Yayınlandı!
Siber Guvenlik Terimleri Sozlugu
Kod karartma, kodun işlevini değiştirmeden okunmasını ve analiz edilmesini zorlaştırma tekniğidir.

Kod karartma, bir kodun işlevini değiştirmeden okunmasını ve anlaşılmasını zorlaştırma tekniğidir. Değişken adları anlamsızlaştırılır, akış karmaşıklaştırılır ve metin sabitleri şifrelenir. Sonuçta kod çalışmaya devam eder ama insan tarafından okunması güçleşir. Bu teknik hem meşru hem zararlı amaçlarla kullanılır. Ayrım, kullanım bağlamına göre yapılır.
Meşru kullanımda amaç, fikrî mülkiyetin korunmasıdır. Bir yazılım şirketi, algoritmasının kolayca kopyalanmasını istemez. Zararlı kullanımda ise amaç, güvenlik analizinden kaçınmaktır. İki durumda da teknikler büyük ölçüde aynıdır. Bu ortaklık, tespit kurallarının dikkatli yazılmasını gerektirir.
Kod karartma, bir programın davranışını değiştirmeden kaynak kodunun ya da derlenmiş hâlinin okunabilirliğini ve analiz edilebilirliğini kasıtlı olarak azaltma tekniğidir.
Karartma, paketlemeden farklıdır. Paketleme kodu sıkıştırıp şifreleyerek gizler; karartma ise kodu okunabilir bırakır ama anlaşılmaz hâle getirir. İkisi birlikte de kullanılabilir. Paketleyici ile karartma sıkça bir arada görülür. Katmanlı gizleme analizi daha da zorlaştırır.
En basit teknik, isim karartmadır. Değişken, fonksiyon ve sınıf adları anlamsız kısa dizelerle değiştirilir. Bu değişiklik, kodun amacını anlamayı belirgin biçimde zorlaştırır. Betik dillerinde çok yaygındır. Geri döndürülmesi genellikle mümkün değildir.
İkinci teknik, metin sabitlerinin gizlenmesidir. Adresler, komutlar ve anahtar kelimeler kodda düz metin olarak bulunmaz; çalışma anında çözülür. Bu teknik, statik analizde göstergelerin bulunmasını engeller. Dinamik analizde ise sabitler bellekte görünür hâle gelir. Bu nedenle iki yöntem birlikte kullanılır.
Üçüncü teknik, kontrol akışı karartmadır. Kodun akışı, işlevi değiştirmeden karmaşıklaştırılır. Gereksiz dallanmalar, sahte döngüler ve düzleştirilmiş akış yapıları eklenir. Bu teknik, analiz araçlarının çıkardığı akış grafiğini okunamaz hâle getirir. En etkili ama en maliyetli yöntemdir.
Dördüncü teknik, ölü kod eklemedir. Hiç çalışmayan ya da sonucu kullanılmayan kod blokları eklenerek asıl mantık gizlenir. Bu blokların ayıklanması otomatik araçlarla kısmen mümkündür. Yine de analiz süresini uzatır. Basit ama etkili bir yöntemdir.
Sızma testinden olay müdahalesine, uçtan uca çözümlerle yanınızdayız.
Fiyat Teklifi AlBetik tabanlı saldırılarda karartma özellikle yoğun kullanılır. Betikler düz metin olarak taşındığı için içerik denetimine açıktır. Karartma, bu denetimi atlatmayı hedefler. Katmanlı kodlama ve dize birleştirme en yaygın yöntemlerdir. Sonuçta betik okunamaz hâle gelir ama çalışmaya devam eder.
Bu tür betiklerin tespiti için karartma göstergeleri kullanılır. Aşırı uzun tek satırlar, çok sayıda kodlama işlemi ve olağandışı karakter dağılımı bu göstergelere örnektir. Bu göstergeler kural olarak tanımlanabilir. Meşru betiklerde de zaman zaman görülebilir. Bu nedenle bağlam değerlendirmesi gerekir.
Betik motorlarının kayıt yeteneği de değerlidir. Bazı motorlar, çalıştırılan betiği karartma çözüldükten sonraki hâliyle kaydedebilir. Bu yetenek, karartmayı tamamen etkisiz kılar. Etkinleştirilmesi güçlü bir tespit katmanı sağlar. Kayıt hacmi planlanmalıdır.
Karartma çözümü, kullanılan tekniğe göre değişir. İsim karartma geri döndürülemez ama analiz için engel oluşturmaz. Metin sabitlerinin çözümü, dinamik analizle ya da özel betiklerle yapılabilir. Kontrol akışı karartması ise en zorlayıcı olanıdır ve özel araçlar gerektirir. Analiz süresi buna göre uzar.
Otomatik çözümleme araçları belirli karartma ailelerini tanır ve geri alabilir. Bu araçlar, yaygın kullanılan karartma kütüphaneleri için etkilidir. Özel geliştirilmiş karartmalarda ise elle çalışma gerekir. Bu durumda analiz maliyeti belirgin biçimde artar. Kaynak planlaması buna göre yapılır.
Dinamik analiz çoğu durumda en verimli yoldur. Kod çalıştırıldığında karartma kendiliğinden çözülür ve davranış gözlenebilir. Kum havuzu ortamları bu gözlemi sağlar. Ortam kontrolleri bu analizi zorlaştırabilir. Ortamın gerçekçi olması gerekir.
Karartma, davranışı değiştirmediği için davranış tabanlı tespit bu tekniğinden etkilenmez. Bir betik ne kadar karartılırsa karartılsın, sonunda aynı sistem çağrılarını yapar. Bu nedenle tespit, kod içeriğine değil çalışma davranışına odaklanmalıdır. Bu yaklaşım tüm karartma tekniklerine karşı çalışır. Kayıt kapsamı belirleyicidir.
Ayrıca karartmanın kendisi bir gösterge olarak kullanılabilir. Kurumsal ortamda çalışan bir betiğin ağır biçimde karartılmış olması olağan değildir. Bu durum, bağlamla birlikte değerlendirildiğinde güçlü bir sinyal üretir. Meşru istisnalar tanımlanabilir. Liste kısa tutulmalıdır.
Uygulama denetimi ise kesin bir çözümdür. Yalnızca imzalı ve onaylı betiklerin çalışmasına izin verilmesi, karartılmış bilinmeyen betikleri baştan engeller. Bu kontrol, birçok saldırı türüne karşı ortak fayda sağlar. Uygulama kademeli yapılmalıdır. Öncelik sıralamasında üst sıralarda yer alır.
Karartılmış betiklerin ortak özellikleri tespit kuralı olarak yazılabilir. Aşırı uzun tek satırlar, çok sayıda kodlama ve kod çözme çağrısı, dize birleştirme yoğunluğu ve olağandışı karakter dağılımı bu özelliklere örnektir. Bu göstergeler tek başına kesin değildir. Birlikte değerlendirildiğinde güvenilirlik artar. Eşik değerleri ortamın normal profiline göre ayarlanır.
Betik motorlarının kayıt yeteneği bu kuralları besler. Bazı motorlar, çalıştırılan betiği çözülmüş hâliyle kaydedebilir. Bu kayıt, karartmayı tamamen etkisiz kılar. Etkinleştirilmesi güçlü bir tespit katmanı sağlar. Kayıt hacmi planlanmalıdır.
Meşru kullanımların istisna listesine alınması gerekir. Bazı yönetim betikleri de karartma benzeri özellikler taşıyabilir. Bu istisnalar belgelenmeli ve dönemsel gözden geçirilmelidir. Belgesiz istisnalar zamanla kural setini zayıflatır. Yönetim disiplini gereklidir.
Karartma yalnızca zararlı yazılımlarda değil, mobil ve masaüstü uygulamalarda da kullanılır. Ticari uygulamalar, fikrî mülkiyetlerini korumak için karartma uygular. Bu kullanım meşrudur ve güvenlik incelemesinde dikkate alınmalıdır. Ancak karartma bir güvenlik kontrolü değildir. Güvenlik, belirsizliğe dayandırılmamalıdır.
Uygulama içine gömülen anahtarlar ve adresler karartılsa bile çıkarılabilir. Yeterli zaman ayıran bir analist bu bilgilere ulaşır. Bu nedenle hassas bilgilerin istemci tarafında bulunmaması esastır. Mobil uygulama güvenliği değerlendirmelerinde bu kural aranır. Karartma yalnızca maliyeti artırır.
Sızma testlerinde karartılmış uygulamalar ek çaba gerektirir. Bu çaba, test kapsamı ve süresi planlanırken dikkate alınmalıdır. Kapsam belirleme aşamasında bu bilgi paylaşılmalıdır. Aksi hâlde test yetersiz kalır. Planlama gerçekçi yapılmalıdır.
Karartma çözümünde kullanılan araçlar, tanıdıkları karartma ailelerine göre etkilidir. Yaygın kütüphaneler için hazır çözücüler bulunur. Özel geliştirilmiş karartmalarda ise elle çalışma gerekir. Bu ayrım, analiz süresini doğrudan etkiler. Kaynak planlaması buna göre yapılır.
Dinamik analiz çoğu durumda daha verimlidir. Kod çalıştığında karartma kendiliğinden çözülür ve davranış gözlenebilir. Statik analiz ise daha zaman alıcıdır ama daha eksiksiz bilgi verir. İki yöntem birbirini tamamlar. Analist ikisini birlikte kullanır.
İlk hata, karartmayı tek başına zararlılık göstergesi saymaktır. Birçok meşru yazılım da karartma kullanır ve bu kullanım tamamen yasaldır. Değerlendirme, karartmanın yanında davranış ve kaynak bilgisiyle birlikte yapılmalıdır. Tek göstergeye dayanan kararlar yanlış pozitif üretir. Analist yükünü gereksiz artırır.
İkinci hata, karartmanın bir güvenlik kontrolü olarak görülmesidir. Kendi geliştirdiği uygulamada hassas bilgiyi karartarak koruduğunu düşünen ekipler yanılır. Yeterli zaman ayıran bir analist bu bilgiye ulaşır. Güvenlik, belirsizliğe değil doğru mimariye dayanmalıdır. Bu ilke tasarım aşamasında uygulanır.
Üçüncü hata, karartma çözümü için ayrılan sürenin küçümsenmesidir. Analiz planlamasında bu süre gerçekçi tahmin edilmelidir. Aksi hâlde inceleme yarım kalır. Kaynak planlaması buna göre yapılır. Dış destek bir seçenek olabilir.
Privia Security olarak betik ve uygulama denetimi politikalarının etkinliğini SOC olgunlaştırma kapsamında değerlendiriyoruz.
Bunlar İlginizi Çekebilir
Siber Güvenlik Terimleri
2 Mayıs 2020
Bulut Yerel Uygulama Koruma Platformu (CNAPP) Nedir?
Devamını Oku