Güvenli Programlama ve Yazılım Geliştirme

CEN429 Güvenli Programlama

Hafta-13

Tigress ve Çeşitlilik Teknikleri

RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme

İndir

RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme
RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme

Outline

  • Tigress ve Çeşitlilik Teknikleri
  • Obfuscation Yöntemleri
  • Saldırılara Karşı Savunma
RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme

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.

RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme

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
RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme
  1. 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.
RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme
  1. 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.
RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme
  1. 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.
RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme

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.

RTEU CEN429 Hafta-13
Güvenli Programlama ve Yazılım Geliştirme

13.HaftaSonu13.Hafta-Sonu

RTEU CEN429 Hafta-13