SlideShare a Scribd company logo
1 of 13
Download to read offline
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
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.
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.
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.
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.
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ı
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.
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.
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?
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
Çözümlerin Temsili
● Bağlamdan-bağımsız dilbilgisi (Context-Free
Grammer) kuralları tanımlanır.
● Evrimsel dilbilgisi yöntemi kullanılır.
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.
Markov Süreçleri
● Gidilen yol: A – B – C – E – D – G – M
● Uygunluk fonksiyon değeri = 0.75 * 0.9 * 0.5 ...

More Related Content

Similar to Sezgisel ödev - fuzzing

Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme PratikleriBaşarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Lemi Orhan Ergin
 

Similar to Sezgisel ödev - fuzzing (15)

BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 1
 
ders bilgi
ders bilgiders bilgi
ders bilgi
 
Siber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin Kullanımı
Siber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin KullanımıSiber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin Kullanımı
Siber Tehdit Gözetleme ve SIEM Olarak Açık Kaynak Sistemlerin Kullanımı
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji Geliştirmek
 
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme ModelleriYazılım Mimarileri - Yazılım Geliştirme Modelleri
Yazılım Mimarileri - Yazılım Geliştirme Modelleri
 
Unit testing
Unit testingUnit testing
Unit testing
 
Php projelerinde ci_uygulama
Php projelerinde ci_uygulamaPhp projelerinde ci_uygulama
Php projelerinde ci_uygulama
 
Teste bakıs v01
Teste bakıs v01Teste bakıs v01
Teste bakıs v01
 
Kod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQubeKod Kalitesinin Sürekli Denetimi: SonarQube
Kod Kalitesinin Sürekli Denetimi: SonarQube
 
Building the continuous integration layer in Avea
Building the continuous integration layer in AveaBuilding the continuous integration layer in Avea
Building the continuous integration layer in Avea
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme PratikleriBaşarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
Başarılı Projelerin Anahtarı: Çevik Yazılım Geliştirme Pratikleri
 
Yazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeliYazilim projeleri maliyet tahmini ve cocomo modeli
Yazilim projeleri maliyet tahmini ve cocomo modeli
 
Software development life cycle yazılım geliştirme yaşam döngüsü
Software development life cycle   yazılım geliştirme yaşam döngüsüSoftware development life cycle   yazılım geliştirme yaşam döngüsü
Software development life cycle yazılım geliştirme yaşam döngüsü
 
45965 php-source-code-analysis
45965 php-source-code-analysis45965 php-source-code-analysis
45965 php-source-code-analysis
 

Sezgisel ödev - fuzzing

  • 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
  • 11. Çözümlerin Temsili ● Bağlamdan-bağımsız dilbilgisi (Context-Free Grammer) kuralları tanımlanır. ● Evrimsel dilbilgisi yöntemi kullanılır.
  • 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 ...