yazılım güvenliği temelleri

28
Halil ÖZTÜRKCİ, MVP CISSP, CISA,GPEN,CEH,CHFI BT Güvenlik Hizmetleri Direktörü [email protected]

Upload: bga-bilgi-guevenligi-akademisi

Post on 26-Jun-2015

10.897 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Yazılım Güvenliği Temelleri

Halil ÖZTÜRKCİ, MVPCISSP, CISA,GPEN,CEH,CHFI

BT Güvenlik Hizmetleri Direktörü[email protected]

Page 2: Yazılım Güvenliği Temelleri

� 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

Page 3: Yazılım Güvenliği Temelleri

� 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.� ...

Page 4: Yazılım Güvenliği Temelleri

'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

Page 5: Yazılım Güvenliği Temelleri
Page 6: Yazılım Güvenliği Temelleri
Page 7: Yazılım Güvenliği Temelleri
Page 8: Yazılım Güvenliği Temelleri

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)

Page 9: Yazılım Güvenliği Temelleri
Page 10: Yazılım Güvenliği Temelleri

•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

Page 11: Yazılım Güvenliği Temelleri

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

Page 12: Yazılım Güvenliği Temelleri

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

Page 13: Yazılım Güvenliği Temelleri

“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ı

Page 14: Yazılım Güvenliği Temelleri

� 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

Page 15: Yazılım Güvenliği Temelleri

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!

Page 16: Yazılım Güvenliği Temelleri

Ş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?

Page 17: Yazılım Güvenliği Temelleri

İstenen Fonksiyonellik

Gerçeklenen Fonksiyonellik

Page 18: Yazılım Güvenliği Temelleri

Bug’larSahib Olunan Özellikler

İstenmeden Gerçekleştirilen ve Dokümante Edilmemiş Fonksiyonellik

Gerçeklenen Fonksiyonellik

İstenen Fonksiyonellik

Page 19: Yazılım Güvenliği Temelleri
Page 20: Yazılım Güvenliği Temelleri

� 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.

Page 21: Yazılım Güvenliği Temelleri

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

Page 22: Yazılım Güvenliği Temelleri

22

Güvenlik Uzmanı

Yazılımcı

Page 23: Yazılım Güvenliği Temelleri

23

Source Code

Yazılımcılar

FortifySource Code

Analysis

Güvenlik UzmanıWeb Application

ResultsHybridResults

HPWebInspect

Results

Page 24: Yazılım Güvenliği Temelleri

24

Source Code

Yazılımcı

Pen Tester

ResultsHybrid+Results

FortifyRuntime Analysis

HPWebInspect

Results

FortifySource Code

Analysis

Web Application

Page 25: Yazılım Güvenliği Temelleri

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.

Page 26: Yazılım Güvenliği Temelleri

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.

Page 27: Yazılım Güvenliği Temelleri

� 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.

Page 28: Yazılım Güvenliği Temelleri