1. Sezgisel Algoritmalar Sunum Ödevi
"Sidewinder": An Evolutionary Guidance System
for Malicious Input Crafting, Embleton, S., Sparks,
S., Cunningham, R.
Kerim Can Kalıpcıoğlu
501731001
2. Yazılım Zafiyetleri
● Sistem tasarımından, uygulanmasından,
işleyişinden veya yönetiminden kaynaklanan ve
sistemin güvenlik politikalarının ihlal edilmesi
için kullanılabilen bir hata veya açıktır.
(RFC 2828, Internet Engineering Task Force)
● Sadece teoride kanıtlanmış olabilir veya çalışan
bir örneği bulunabilir.
3. Beyaz Kutu Analizi
● Yapısal test olarak da adlandırılır.
● Detaylı olarak elle statik analiz teknikleri
uygulanır.
● Böylece programın iç işleyişi hakkında bilgi
sahibi olunur.
4. Beyaz Kutu Analizi
● Artıları:
– Örüntü tanıma konusundaki insan becerileri
dolayısıyla otomatik araçların bulamayacağı hatalar
bulunabilir.
● Eksileri:
– Zaman masrafı
– Çıktıya bağlı potensiyel zafiyetlerin çalışma
zamanında ortaya çıkıp çıkmayacağına karar
vermek zor olabilir.
5. Siyah Kutu Analizi
● Fonksiyonel test olarak da adlandırılır.
● İnsan becerilerine bağlı değildir.
● Rassal veya yarı-rassal girdiler enjekte ederek
program çıktısını gözlemlemek ve beklenmeyen
davranışları belirlemek işlemlerini kapsar.
6. Siyah Kutu Analizi
● Artıları:
– Otomatize etmesi kolay
– Belirlenen anormalilerin çalışma zamanında ortaya
çıkmasının kesin ve bu durumu ortaya çıkaracak
girdilerin biliniyor olması
● Eksileri:
– Girdi uzayı keşfinin rassal yapısı dolayısıyla zafiyet
bulunma olasılığının deterministik olmaması
7. Fuzzing araçları
● Kötü biçimlendirilmiş girdiler üreterek çökmeleri
izlerler.
● Çoğu fuzzer girdi uzayı için yarı-bilinçli olarak
sıralı rassal girdiler üretir.
8. Akıllı fuzzerlar
● Geçmiş girdilerden çıkarım yapılarak girdi
uzayında daha verimli arama yapılabilir.
● Ne öğrenilebilir?
– Çalışma zamanı kullanıcı girdisi ve program akış
grafının statik yapısal karakteristiğine bağlıdır.
– Normal fuzzerlar program girdi uzayının hangi
kısımlarının keşfedildiğini önemsemez.
9. Girdi Oluşturma: Bir Arama Problemi
● Giriş düğümü ile potensiyel zafiyetin olduğu
düğüm arasındaki yolun izlenmesi için
yapılması gereken girdi nedir?
10. Girdi Oluşturma: Bir Arama Problemi
● Zamanla bazı girdiler diğerlerinden daha iyi
olacaklardır:
– CFG'nin (Control Flow Graph) keşfedilmemiş
alanlarını keşfeden girdiler
– Olası zafiyetin olduğu API'yi (Application
Programming Interface) barındıran basit bloğa
dallanmayı sağlayan girdiler
12. Uygunluk Fonksiyonu
● Programın CFG'ını izleyerek aramamızı
yönlendiriyoruz.
● Aramamızın çalıştırdığı kod kapsamının geniş
olması gerekir:
– Program daha önceden görülmemiş davranışları
sergilemelidir.
– Girdiler programın akışını daha önce gidilmemiş
bölgelere götürmelidir.
13. Markov Süreçleri
● Gidilen yol: A – B – C – E – D – G – M
● Uygunluk fonksiyon değeri = 0.75 * 0.9 * 0.5 ...