Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Copyright © 2007 - The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.

Benzer bir sunumlar


... konulu sunumlar: "Copyright © 2007 - The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike."— Sunum transkripti:

1 Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike 2.5 License. To view this license, visit The OWASP Foundation OWASP Day Turkey - Sep Güvenli Web Uygulamalarının Geliştirilmesi Korhan GÜRLER

2 OWASP Day – Turkey – Sep 2007 BT Güvenliğinin Değişen Odağı  Bilişim güvenliği problemlerinin büyük bölümü uygulamalara doğru kayıyor  Saldırıların %75’i uygulama katmanında gerçekleştiriliyor (Gartner)‏  Saldırganlar ve güvenlik uzmanları arasındaki savaş artan biçimde uygulama katmanına kayıyor (Network World)‏  Pek çok yazılım ekibi güvenli yazılımları nasıl geliştireceği konusunda bilgi sahibi değil  Geliştiricilerin %64’ü güvenli yazılımlar geliştirebildiklerinden emin değil (Microsoft)‏  Güvenlik uzmanlarının pek çoğu yazılım konusunda uzman değildir

3 OWASP Day – Turkey – Sep 2007 Geleneksel Yaklaşım ile Koruma  Firewall’lar ile sistemlerimizi koruruz  “Saldırganları uzak tutalım”  Kriptografi kullanımı yazılımın güvenliğini sağlar  “Tüm verilerimizi şifreli saklıyoruz”  Yazılım ürünlerinin bittiğinde test edilmesi  Saldır ve yamala (penetrate and patch)‏  Güvenlik özellikleri yazılımlarımızı güvenli kılar  “Biz SSL kullanıyoruz”  Proje hedefleri içerisinde güvenliğin konu edilmemesi  “Güvenlik konusunu bir sonraki sürümde ele alacağız”

4 OWASP Day – Turkey – Sep 2007 Modern Yaklaşım  Güvenlik “risk yönetimi”dir  Öncesinde riskleri analiz etmeden güvenli bir yazılım geliştirilemez  Güvenlik konusunun geliştirme sürecinin entegre bir parçası olması zorunludur  Nihai yazılım ürününün güvenli olması için gerekli aktivitelerin gerçekleştirilmesi  Çeşitli metrikler ile geliştirme süreci boyunca izleme  Sürekli iyileştirme

5 OWASP Day – Turkey – Sep 2007 Yazılım Güvenliği  Nihai yazılım ürününün  teknik özellikleri (features)‏  geliştirme sürecinin sağladığı güvence (process assurance)‏ açılarından beklentileri karşılar düzeyde olmasınının sağlanması çabası

6 OWASP Day – Turkey – Sep 2007 Geliştirme Sürecinde Güvenlik Güvenlik Gereksinimleri Tespiti İhtiyaç Analizi Tasarımın Tamamlanması Test Planlarının Tamamlanması Kodlamanın Tamamlanması Sunuş Sunuş Sonrası Güvenlik Kalıplarının Uygulanması Dış İnceleme Geliştirici Eğitimi Güvenlik Testleri Geliştirilmesi Kaynak kod incelemesi Statik kod analiz araçları Güvenlik Denetimi Öğren ve İyileştir Dış İnceleme Tehdit Analizi Destek ve Olay Müdahalesi Tasarım Prensiplerinin Uygulanması Geçmiş Zafiyetlerin İncelenmesi

7 OWASP Day – Turkey – Sep 2007 Güvenli Tasarım Prensipleri  En zayıf halkayı sağlamlaştır  Savunma derinliği geliştir ve uygula  Hataları güvenli biçimde ele al  Minimum yetki prensibini uygula  Bölümlendir  Güven ilişkilerini gevşet  Yalınlığı sağla  Gizliliği destekle  Şeffaflık sağla

8 OWASP Day – Turkey – Sep 2007 Güvenlik Tasarım Kalıpları  Bir güvenlik kalıbı, tekrarlanan bir bilişim güvenliği problemi için üretilmiş çözüm şablonudur  Yeniden kullanılabilir  Özelleştirilebilir  Deneyim ve birikim ile süzülmüş  Potansiyel problemleri ile birlikte  Programlama dilinden, ortamından bağımsız  Tasarım kalıbı  Yazılım tasarım kalıbı  Kalıp kitaplıkları  

9 OWASP Day – Turkey – Sep 2007 Örnek Kalıplar  Hesap kilitleme (account lockout)‏  Doğrulanmış oturum (authenticated session)‏  İstemcide veri depolama (client data storage)‏  İstemci veri filtreleri (client data filters)‏  Yönlendirilmiş oturum (directed session)‏  Gizlenmiş gerçekleştirim (hidden implementation)‏  Şifrelenmiş depolama (encrypted storage)‏  Mayın tarlası (minefield)‏  Ağ adresi karalistesi (network address blacklist)‏  Bölümlendirilmiş uygulama (partitioned application)‏

10 OWASP Day – Turkey – Sep 2007 Tehdit Modelleme  Yazılımınıza yönelik tehditleri bilmeden güvenli bir yazılım üretemezsiniz  İçerisine güvenlik özelliklerinin yerleştirilmesi bir yazılımı güvenli kılmaz  “Biz SSL kullanıyoruz”  “Biz strong-authentication kullanıyoruz”  Tehdit modellemesi yazılım geliştirmeden önce yapılmalıdır  Yazılım güvenlik problemlerinin azımsanmayacak bir bölümü tasarımdan kaynaklanmaktadır  Tehdit modeli belgesi hangi tehditlere karşı önlemler alındığını gösteren yaşayan bir belge olacaktır

11 OWASP Day – Turkey – Sep 2007 Saldırı Yüzeyi ve Geliştirme Süreci  Tasarım dokümantasyonunda saldırı yüzeyi belgelenmelidir  Ön-tanımlı ağ protokolleri  Doğrulama ve yetkilendirme gerektiren uç noktalar  Anonim erişim sağlanabilen noktalar özellikle not edilmeli  Ön-tanımlı olarak kapalı olacak özellikler  Yeniden kullanılabilir bileşenler  Çalışan kodların kullanıcı kimlikleri  Tanımlanan kullanıcı hesapları  Göreli saldırı yüzeyi yazılım geliştirme süreci boyunca izlenmelidir  Yüzeyin genişlemesi/daralması kontrol altında tutulmalıdır

12 OWASP Day – Turkey – Sep 2007 Saldırı Yüzeyinin İzlenmesi Neden yeni bir kullanıcı eklendi? Yetkileri nedir? Parolası nedir? (*) ‏ 1 x Uygulama HesabıAçılacak kullanıcı hesabı yok Neden yeni bir port eklendi? Eklenmese olmaz mıydı? Doğrulama yapılıyor mu? Nerelerden bağlanılabiliyor? 2 x UDP port1 x UDP port İyi gelişme2 x TCP port3 x TCP port YorumlarBugünBaz Durum *: Açılan uygulama hesabı güvenliğin sağlanmasına katkı sağlıyor da olabilir

13 OWASP Day – Turkey – Sep 2007 Gerçekleştirime Özel Konular  “Beklenmediğe hazır ol, çalışması gereken tek bir satır bile çalışmayabilir”  Saldırganın hedefi  yazılımın akışını değiştirmek  yetkilerini yükselterek yetkisiz işlem yapmak  yazılımı çalışmaz hale getirmek ya da bunların bir bileşkesidir  Hiç olmadık bir anda programcının tüm varsayımları geçersiz hale gelebilir  Varsayımlar yok, anormal durumlara devamlı hazırlık zorunluluğu var

14 OWASP Day – Turkey – Sep 2007 Girdilerin Sınanması: Neden?  Güvenilmez kaynaklardan gelen tüm girdiler işleme tabi tutulmadan önce sınanmalıdır  Uygunsuz girdiler ile bir sürecin işleyişini değiştirmek mümkündür  Neye güvenilebileceği her uygulama ve her kuruluş için farklı olabilir  Kullanıcılardan, ağ üzerinden  Sistem üzerindeki diğer süreçlerden  Kitaplıklardan (.so,.dll vb.)‏  İşletim sisteminden  Uygulama içerisindeki diğer fonksiyonlardan gelen verilerin sınanması gerekli olabilir

15 OWASP Day – Turkey – Sep 2007 Girdilerin Sınanması: Nasıl?  Geçerli olan girdiler tanımlanmalı ve bunun dışındaki veriler kabul edilmemelidir  Tersi yapılmamalıdır: Geçersiz verileri/sembolleri tanımlama ve diğerlerinin tümünü kabul etme  Veriler için maksimum uzunluk/büyüklük tanımlanmalı ve daha büyük girdi kabul edilmemelidir

16 OWASP Day – Turkey – Sep 2007 Diğer Gerçekleştirim Konuları  Taşma problemleri ve korunma  Alan taşmaları  Tamsayı taşmaları  Yarış durumları  Şifreleme ve rastgele sayıların uygunsuz kullanımı  Platforma / dile özel güvenlik konuları  J2EE /.Net güvenlik mekanizmaları ve kullanımı  Platforma spesifik diğer noktalar ...

17 OWASP Day – Turkey – Sep 2007 Yazılım Testleri  Geliştirme süreci testleri  Yazılım test araçları  Yazılım İnceleme Toplantıları (peer reviews)‏  Saldırı simülasyonları

18 OWASP Day – Turkey – Sep 2007 Geliştirme Süreci Testleri  Kod geliştirme ve test/sınama birbirine paralel olarak yürütülmelidir  Her programcı “test kodları” hazırlanması gerektiğini bilir, pek azı hazırlar  Sağlam kod  güvenli kod  Çevik (agile) teknikler sürekli sınama vurgusu yapmaktadır  Sürekli bütünleştir, sürekli sına, sürekli yeniden eklemlendir (refactor)‏

19 OWASP Day – Turkey – Sep 2007 Tehdit Modeline Göre Test Etme  Yazılım güvenlik testleri standart testlerden fazlasını içermelidir  Denetleyenlerin güvenlik birikimi  Pek çoğu güvenlik denetleyicisi (kötü niyetli) değildir  Neler test edilmeli?  Nasıl test edilmeli?  Modeldeki her tehtidin bir test planı olmalı  Tehdit modeli testlerin yönlendirilmesine yardımcı olur

20 OWASP Day – Turkey – Sep 2007 Yazılım Güvenliği Test Araçları  Statik analiz araçları  *lint, lint4j  RATS, ITS4, flawfinder  prefix, prefast, fxcop  Dinamik analiz araçları  Valgrind, IBM/Rational Purify, ElectricFence  Fuzzer’lar  SPIKE  Retina – CHAM  …

21 Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike 2.5 License. To view this license, visit The OWASP Foundation OWASP Day Turkey - Sep Güvenliğiniz geleceğinizdir…


"Copyright © 2007 - The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike." indir ppt

Benzer bir sunumlar


Google Reklamları