yazılım güvenliği temelleri
TRANSCRIPT
Halil ÖZTÜRKCİ, MVPCISSP, CISA,GPEN,CEH,CHFI
BT Güvenlik Hizmetleri Direktörü[email protected]
� AnkaSec Organizasyon Kurulu Üyesi-İsim Babası☺
� Microsoft MVP, Enterprise Security� Profesyonel Penetration Tester� Adli Bilişim Uzmanı� SANS Mentor (www.sans.org)� ADEO Kurucu Ortak&Güvenlik Birimi
Yöneticisi� CISSP, GPEN, CISA, CHFI, CEH
� Firewall’um var, güvendeyim.� Web sunucularımızın üzerinde en güncel
antivirüs yazılımları çalışıyor.� Beni mi bulacaklar?� XSS’den ne çıkar?� Parolaları MD5 ile saklıyoruz.� ...
'BusinessWeek' site hacked
Hackers have broken into BusinessWeek's online site….. The hackers used an increasingly common formof attack called SQL injection, in which a smallmalicious script is inserted into a database that feedsinformation to the BusinessWeek
Web site.
September 15, 2008 By Elinor Mills
11 March 2009 4
Data thieves steal credit card data Data thieves steal credit card data
from supermarket chainfrom supermarket chainMarch 18, 2008 Robert McMillan
Retailers Hannaford Brothers and Sweetbay admit to being the
targets of a massive credit-card data theft disclosed Monday…….
stealing an estimated 4.2 million credit and debit card
numbers………. some cases of identity theft had been associated
with the incident
2009’un ilk yarısında çok fazla sayıda otomatik SQL injection saldırıları ile karşılaşıldı. Detaylı analiz için aşağıdaki makaleler bakılabilir.Anatomy of a SQL Injection Incident (March 14, 2008) Anatomy of a SQL Injection Incident, Part 2: Meat (March 15, 2008)
•2009'un ilk yarısında açıklanan zafiyet oranı bir önceki yılın ikinci yarısınaoranla %28,4 azalmış durumda.•Açıklanan işletim sistemi zafiyetleri stabil şekilde devam ediyor.•Kaynak:Microsoft Güvenlik İstihbarat Raporu Volume 7
Network
Network:Firewall’lar tarafından korunuyor
Sunucular:Saldırı Tespit Sistemleri tarafından korunuyor
Uygulamalar:İhmal Edilmiş ve Korumasız
SunucularSunucularSunucular
UygulamalarUygulamalarUygulamalar
�
�
�
Taranan 31,373 sitenin %85’inde hacker’lar tarafından kötüye kullanıma sebep olacak ve sonucundaki kritik dataların okunmasına, değiştirilmesine yada transfer edilmesine sebep olacak açıklıklar tespit edilmiştir.
-- Web Application Security Consortium
Güvenilen Kullanıcılar/
Müşteriler
ApplicationServer
DatabaseServer
İç Network
Web Server
Hacker
Sadece port 80
ve 443(SSL)
açık
Internet
(veya Intranet)
DMZ
Sadece Web
Server
Uygulama
Sunucusuna
erişebiliyor
“Güvenlik Zafiyeti”
Cross-Site Request Forgery (CSRF)
Session Hijack
Open Redirect
Insecure Data Storage
Görev-Kritik Uygulamarın Hizmet Verememesi
Hasta, müşteri yada kredi kart bilgilerinin yetkisiz kişilerin eline geçmesi
Uyumluluk Kaybı
Kazanç Kaybı
Yasal Mesuliyet
Telif Hakları
Müşteri inancının zedelenmesi
“Risk”
Yansımaları
� Unvalidated Input� Broken Access Control� Broken Authentication and Authorization� Cross Site Scripting (XSS)� Buffer Overflows� Injection Flaws� Improper Error Handling� Insecure Storage� Denial of Service� Insecure Configuration Managementhttp://www.owasp.org/documentation/topten.html
Birisi bu boşluğu doldurmalıGüvenlik
Uzmanları
-Biz yazılımdan
anlamayız ki!
Yazılım Geliştiriciler
-Motivayonum fonksiyonel
yazılım geliştirmek. Güvenli
yazılım nasıl geliştirilir ki!
Şirketleri ve Kurumların birçoğunda 100'lerce, 1000'lerce web uygulaması var ve bu sayı gün geçtikçe artıyor!
JavaScript
Web Services
.NET
ASP
JAVA
JavaScript
JAVA
PHP
ASP
?.NET
JAVA
Web Services
?
FLASH
FLASH
?
Web Services
PHP
?JAVA
FLASH
?Web
Services
FLASH
?
PHP
PHP
JavaScript
?
JAVA
FLASH
PHP
JavaScript
?
?
HANGİ uygulamalarım var?
NASIL güvenlik kapsamını genişletebilirim?
HANGİ uygulamaların kritik/değerli veri içeriyor?
NEREYE yoğunlaşmalıyım?
İstenen Fonksiyonellik
Gerçeklenen Fonksiyonellik
Bug’larSahib Olunan Özellikler
İstenmeden Gerçekleştirilen ve Dokümante Edilmemiş Fonksiyonellik
Gerçeklenen Fonksiyonellik
İstenen Fonksiyonellik
� Uygulama çalışır durumdayken testler gerçekleştirilir.� Testler Uygulama Güvenlik Zafiyet Tarayıcıları tarafından
gerçekleştirilir.� Genellikle uygulamalardaki teknik hataları, sıkıntıları
black-box yöntemiyle bulma yönünde motive olmuşlardır.� Öncelikle test edilecek uygulama crawl edilerek bütün
input noktaları tespit edilir.� 2006 yılında Gartner tarafından yapılan analizde Uygulama
Güvenlik Tarayıcılar için aşağıdakiler öngörülmekteydi;� 2010 yılına kadar web uygulamalarını bir uygulama güvenlik
tarayıcı ile tarayan kurumlarıın uygulamalarındaki zafiyetlerin kötüye kullanım oranı %70’e yakın azalma gösterecek.
� 2008 yılı sonuna kadar enterprise segmentteki firmaların %40'ı web uygulama güvenlik tarayıcılarını geliştirme süreçlerineentegre edecekler.
21
Güvenlik UzmanıWeb Application
Yazılımcı
HPWebInspect
Results
- “Black Box” olarak adlandırılır
- 1 konu başlığı birden fazla problemi işaret ediyor olabilir
- Bir çok farklı konu başlığı tek bir problemi işaret ediyor olabilir.
- Yazılım Geliştiricilere Verilen- URL’ler ve kullanılan hacking
tekniği - Doğrulama için gerekli
değerler
22
Güvenlik Uzmanı
Yazılımcı
23
Source Code
Yazılımcılar
FortifySource Code
Analysis
Güvenlik UzmanıWeb Application
ResultsHybridResults
HPWebInspect
Results
24
Source Code
Yazılımcı
Pen Tester
ResultsHybrid+Results
FortifyRuntime Analysis
HPWebInspect
Results
FortifySource Code
Analysis
Web Application
25
• “Runtime Data” olarak adlandırabileceğimiz Stack Trace’ler, Oturum Bilgileri, Parametreler ve Değişken Değerleri Runtime Analysis üzerinden geliyor.
• Fortify Runtime Analysis + WebInspect = Hybrid 2.0
• SAST/DAST sonuçlarını uygun şekilde ortüştürmek için Runtime Analysis ‘e ihtiyaç var.
• Runtime Analysis güvenlik testi yapanlara ve uygulamayı geliştirenlere tespit edilen zafiyetlere uygulama içinden bakabilme imkanı tanır.
2010 yılınndan itibaren DAST ve SAST üreticileri hibrid bir yaklaşıma olan static ve dinamik uygulama güvenlik testi yaklaşımınadoğru kayacaklar.
2010 yılından itibaren lider uygulamagüvenlik test aracı üreticileri SaaS (Software as a Service) yaklaşımı çerçevesinde servisolarak müşterilerine bu hizmetleri sunmayabaşlayacaklar.
2013 yılı içerisinde SAST (Static Application Security Testing) ürünleri markette stand-alone bir ürün olmaktan çıkıp teknoloji ve servis üreticisi firmaların yazılım yaşamdöngüsü (SLC-Software Life Cycle) platformlarına entegre ettikleri bir teknolojiolarak yaşamlarını sürdürecekler.
� Gelişmiş bir Uygulama Güvenliği Programı’nıinşa etmek, bir uygulama zafiyet tarayıcısını alıpçalıştırmak ya da bir WAF'ı devreye almak kadarkolay bir süreç değildir
� Güvenli yazılım geliştirmek için her adımındagüvenliği de hesaba katan birYazılım Geliştirme Yaşam Döngüsü'ne ihtiyaç vardır.
� Güvenli yazılım geliştirme sürecini sürekli hale getirmek için gerek organizasyonun yapısındangerek kurum kültüründen gerekse de işbaskısından kaynalanan sıkıntılaradreslenmelidir ve çözülmelidir.