1 / 19

Yazılım Geliştirme Sürecinde Güvenlik Testleri

Yazılım Geliştirme Sürecinde Güvenlik Testleri. Burak Dayıoğlu, burak.dayioglu@pro-g.com.tr. Yazılımları Neden Test Ediyoruz?. Test Ediyoruz Çünkü. Hatasız yazılım geliştiremiyoruz Ancak Az hatalı Hatanın etkisinin az olduğu yazılımları hedefleyebiliyoruz

deva
Download Presentation

Yazılım Geliştirme Sürecinde Güvenlik Testleri

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Yazılım Geliştirme Sürecinde Güvenlik Testleri Burak Dayıoğlu, burak.dayioglu@pro-g.com.tr

  2. Yazılımları Neden Test Ediyoruz?

  3. Test Ediyoruz Çünkü ... • Hatasız yazılım geliştiremiyoruz • Ancak • Az hatalı • Hatanın etkisinin az olduğu yazılımları hedefleyebiliyoruz • Hatasız geliştirecek teknolojimiz olana değin teste devam...

  4. Farklı Test Kategorileri • İşlevsellik • Performans • Erişilebilirlik (accessibility) • Uluslararasılaştırma (i18n) • Güvenlik Her test kategorisi hata bulmayı hedeflemez; bazıları beklentileri karşılama düzeyini belirlemek içindir

  5. %80 Bilişim güvenliği ihlallerinin YAZILIM GÜVENLİĞİ problemlerinden kaynaklananlarının oranı (Kaynak: Gartner)

  6. Güvensizliğin Bedeli • Yazılımların güvenlik problemlerinin bedelleri çok ağır olabilir • Ölüm ve yaralanma • Ulusal güvenlik zafiyetleri • Finansal kayıplar • İtibar kaybı • Kıymetli bilgilerin çalınması • ...

  7. İşimizi Yazılım Taşıyor • Tüm kritik iş süreçleri bilgisayar yazılımları ile destekleniyor • Yazılımların güvenliğinin sağlanması artık çok daha önemli

  8. Güvenlik Testini Kim Yapar? • Geliştiriciler • Test uzmanları • Meraklılar • Güvenlik denetim firmaları • Suç işleyecekler / suç örgütleri

  9. Neyi Test Ediyoruz? • Girdi denetimi • Doğrulama/yetkilendirme • Kayıt tutma • Zaman/durum yönetimi • ... • Buffer overflow • Integer overflow • Command injection • SQL injection • LDAP injection • Cross-site scripting • Format strings • HTTP response splitting • Log forging • Log flooding • Time sync • Deadlocks • Race conditions • HTTP session fixation • Improper thread mgmt • Double checked locking • Authentication bypass • Man in the middle • Replay • Spoofing • Credential management • Least privilege violation • Password management • Privacy violation

  10. Genel Yaklaşım • Teste konu yazılımı iyice anla • Hedef için olumsuz neler yapabileceğini kurgula ve planla • Kurgu ve planlar ışığında testlerini gerçekleştir • Çevrede ne olup bittiğini izle, gelişmelerden haberdar ol

  11. Güvenliğe Özel Test Teknikleri • Açık kod ile • Kod ve tasarım gözden geçirmeleri • Statik kod analizi araçlarının kullanılması • Kapalı kod ile • Tersine Mühendislik ile açık koda dönüştürme • Sızma Testleri • Fuzz testleri Tüm testler fonksiyonel olmayan testlerdir

  12. Kod/Tasarım Gözden Geçirmesi • Yazılım kaynak kodunun ve tasarım belgelemesinin “okunması” • Avantajı: Çok etkili • Dezavantajı: Ölçeklenemiyor

  13. Statik Kod Analizi Araçları • Kaynak kodu analiz eden araçların kullanımı ile bilindik güvenlik programlama hatalarının tespiti • Avantajı: Problemlerin çok hızlı tespiti • Dezavantajı: Yazılımın “bağlamından” habersiz olmak

  14. Tersine Mühendislik • Yönetilen platformlar yaygınlaşıyor • Java JRE, .Net CLR, Macromedia Flash • Binary’lere sahipseniz (genellikle) kaynak koda dönebilirsiniz • Reflection yolu ile • Kod karıştırıcılar kullanılmadı ise

  15. Penetrasyon Testleri Kullanıcı Arayüzü Veritabanı Arayüzü Teste KonuYazılım Ağ İletişim Arayüzü Ağ İletişim Arayüzü Web Servisi Arayüzü Web Servisi Arayüzü Dosya Sistemi Arayüzü Dosya Sistemi Arayüzü İşletim Sistemi Platformu ve Ağ Altyapısı

  16. Fuzz Testleri • Yazılımın arayüzlerinden • Tümüyle rastgele • Kısmen rastgele veri girişi yapılır, yazılımın davranışı incelenir • Her farklı tür uygulama ve protokol için fuzzer bulmak güç olabilir • Pek çok modern web tarayıcısının içerisinde web fuzzer’lar bulunmaktadır

  17. Özet Olarak • Yazılımları güvenlikleri açısından test etmek zorundayız • Kaynak kod ve tasarım belgelemesi incelemesi • Statik kod analiz araçları • Tersine mühendislik • Penetrasyon testleri • Fuzz testleri • Teknikler geliştirme sürecinin tamamında kullanılabilir

  18. Daha Fazla Bilgi İçin...

  19. Güvenliğiniz Geleceğinizdir

More Related