CEN429 Güvenli Programlama¶
Hafta-13¶
Tigress ve Çeşitlilik Teknikleri¶
İndir
Outline¶
- Tigress ve Çeşitlilik Teknikleri
- Obfuscation Yöntemleri
- Saldırılara Karşı Savunma
Hafta-13: Tigress ve Çeşitlilik Teknikleri¶
Bu hafta, kodun analiz edilmesini zorlaştıran ve programı saldırılara karşı daha dirençli hale getiren çeşitlilik (diversification) tekniklerini ve Tigress gibi obfuscation araçlarını inceleyeceğiz. Bu teknikler, programın çalıştığı her seferinde farklılaşmasını sağlar, böylece saldırganların aynı yöntemlerle programı analiz etmelerini zorlaştırır.
1. Tigress Çeşitlilik (Diversity)¶
Teorik Açıklama: Tigress, bir programı farklı şekillerde dönüştürerek, saldırılara karşı dirençli hale getiren güçlü bir obfuscation aracıdır. Bir programın her çıktısı benzersiz bir yorumlayıcı (interpreter) oluşturur. Bu, programın davranışını rastgeleleştirir ve analiz edilmesini zorlaştırır.
- Tigress’te Kullanılan Yöntemler:
- Instruction Dispatch Türleri:
- Switch, direkt, endirekt, çağrı (call), if-else, lineer, binary, interpolasyon.
- Operand Türleri:
- Yığın (stack), registerlar.
- Rastgeleleştirilen Operatörler:
- Farklı operandlar ve operator kombinasyonları kullanarak kodun karmaşıklaştırılması.
- Çeşitli Dönüşümler:
- Code Flattening: Programın akış kontrolünün düzleştirilmesi.
- Merge/Split Fonksiyonlar: Birleştirilen ya da bölünen fonksiyonlar.
- Opaque Predicates: Kodda gizli ve değiştirilemeyen koşul ifadeleri ekleme.
Uygulama Örneği:
tigress --Transform=Virtualize --Functions=fib --VirtualizeDispatch=switch --out=v1.c test1.c
gcc -o v1 v1.c
- Kodda Çeşitlilik Sağlama Teorik Açıklama: Çeşitlilik, kodun analizini zorlaştırmak amacıyla farklı yöntemlerle rastgeleleştirilmesini içerir. Bu yöntemler, bir saldırganın programı tersine mühendislikle çözmesini zorlaştırır. Tigress ile bir program her çalıştırıldığında benzersiz bir sanal makine oluşturulabilir.
- Saldırılar ve Karşı Saldırılar Teorik Açıklama: Bir saldırgan, programın sanal talimat setini çözerek kodun nasıl çalıştığını anlamaya çalışabilir. Bunun için çeşitli saldırı yöntemleri geliştirilmiştir, ancak Tigress bu saldırılara karşı bazı karşı saldırı teknikleri sunar.
- Algoritmik Yöntemler ve Çeşitlilik Sağlama Teorik Açıklama: Çeşitlilik sağlama algoritmaları, programın çalışmasını karmaşıklaştırmak için çeşitli seviyelerde uygulanabilir. Bu yöntemler, bir saldırganın programı çözme olasılığını azaltmak için kullanılır.
Sonuç Bu hafta, çeşitlilik sağlama ve kendini değiştiren kod gibi ileri düzey kod obfuscation tekniklerini öğrendik. Bu teknikler, programların saldırılara karşı daha dirençli hale getirilmesini sağlar ve saldırganların kodu çözmesini zorlaştırır. Tigress gibi araçlar, kodu rastgeleleştirerek her seferinde farklı bir yapı oluşturur, bu da kodun analizi ve tersine mühendislik yapılmasını daha zor hale getirir.