Web Uygulama Gvenliinde Doru Bilinen Yanllar ! Deniz evik Gvenlik - - PowerPoint PPT Presentation

web uygulama g venli inde do ru bilinen yanl lar
SMART_READER_LITE
LIVE PREVIEW

Web Uygulama Gvenliinde Doru Bilinen Yanllar ! Deniz evik Gvenlik - - PowerPoint PPT Presentation

www.biznet.com.tr Web Uygulama Gvenliinde Doru Bilinen Yanllar ! Deniz evik Gvenlik Testleri Yneticisi deniz.cevik@biznet.com.tr Gndem Ksaca Biznet Web Uygulama Mimarisine Ksa Bir Bak Uygulama Gvenlii


slide-1
SLIDE 1

www.biznet.com.tr

Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlar !

Deniz Çevik Güvenlik Testleri Yöneticisi deniz.cevik@biznet.com.tr

slide-2
SLIDE 2

www.biznet.com.tr

Gündem

  • Kısaca Biznet
  • Web Uygulama Mimarisine Kısa Bir Bakış
  • Uygulama Güvenliği Sağlamada Sıkça Yapılan Hatalar
  • Alınabilecek Tedbirler
slide-3
SLIDE 3

www.biznet.com.tr

Kısaca Biznet

  • Biznet Bilişim kurulduğu 2000 yılından bu yana ağ ve bilgi güvenliği alanında

projelendirme, danışmanlık ve denetim hizmetleri sunmaktadır.

  • Ar-Ge yatırımları ile elektronik imza, elektronik fatura, ISO 27001 Bilgi

Güvenliği Yönetim Platformu gibi özgün ve yenilikçi yazılımlar geliştirir.

  • Türkiye’de PCI Security Standards Council tarafından PCI güvenlik

denetimleri yapmak üzere yetkilendirilmiş olan tek Türk firmadır.

  • Web uygulama güvenliği konularında danışmanlık hizmeti vermektedir.
slide-4
SLIDE 4

www.biznet.com.tr

  • Web sunucuları
  • Çeşitli browser yazılımları
  • Uygulama sunucuları
  • Uygulama framework ve dilleri
  • Farklı veri iletim yöntemleri (HTTP, XML, SOAP)
  • İstemci tabanlı frameworkler
  • Veri tabanı sistemleri
  • Diğer ağ ekipmanları ve entegrasyon

Web Uygulama Mimarisi

Çok sayıda bileşen demektir!

slide-5
SLIDE 5

www.biznet.com.tr

Web Uygulama Mimarisi

Web Sunucu Kullanıcı

Web Sunucular

Apache Microsoft-IIS nginx lighttpd Apache-Coyote IBM_HTTP_Server Jetty Sun-ONE-Web-Server Lotus-Domino Sun GlassFish JBOSS

Uygulamalar

Uygulama Sunucuları SQL Database

Veri Tabanları İstemci

HTTP/HTTPS

Diğer Bağlantılar

XMLRPC

Web Sunucu Web Servisleri (WSDL)

SOAP XML

Web Sunucu

GÜVENLİK DUVARI

XML Database LDAP

slide-6
SLIDE 6

www.biznet.com.tr

  • Geliştiricilerin Web Uygulama kodlarında problem

gidermede yaptığı hatalar.

  • Sistem yöneticilerinin aldığı önlemlerdeki hatalar.
  • Güvenlik denetçilerinin zafiyetleri belirlemede yaptıkları

hatalar.

  • Proje Yöneticilerinin uygulama tasarım ve planlama

aşamasında yaptığı hatalar.

Sık Yapılan Hatalar

slide-7
SLIDE 7

www.biznet.com.tr

  • Kara listeler (Blacklist) ile sorunu gidermeye yönelme
  • XSS, SQL Injection gibi problemleri gidermek için keyword

veya regex bazlı uygulama filtreleri

  • Script , alert , select, and 1=1, <,>,’ ifadeleri istekten silmek

veya çıktılar oluşturulurken silmek

  • Rapor edilen soruna yönelik çözüm üretme

Geliştiricilerin Kullandığı Hatalı Yöntemler

slide-8
SLIDE 8

www.biznet.com.tr

  • Kara listeler ile çözüm üretmek sorunu ortadan

kaldırmayacaktır

  • <scRipt>prompt(123)</sCriPt>
  • <scrscriptipt>alert(1)</scscriptript>
  • «+onmouseover=alert(123)+»
  • %00 yerine - %20 %09 %0a %0b %0c %0d %a0
  • ‘abc’ = 0×616263
  • And, or yerine – 1+length(1), 2-len(1)
  • http://websec.wordpress.com/2010/12/

Geliştiricilerin Kullandığı Hatalı Yöntemler

slide-9
SLIDE 9

www.biznet.com.tr

  • PHP magic_quotes SQL Injection’i engeller mi?
  • SELECT * FROM tablo WHERE sifre='\' OR 1=1 --';
  • İstemci tarafında istekleri şifreleyerek ve imzalayarak

yollamak

  • Oturum yönetimini istemcideki imzalama ile

gerçekleştirmek.

Geliştiricilerin Kullandığı Hatalı Yöntemler

slide-10
SLIDE 10

www.biznet.com.tr

  • PHP Include Fonksiyonu kullanımındaki hatalar
  • Null Byte için gerekli koruma mevcut
  • <?php

$file = $_GET['file']; if (file_exists('/home/www/'.$file.'.php')) { include '/home/www/'.$file.'.php';} ?>

  • Ancak hala sistem üzerindeki diğer PHP uygulamaları

include edilebilir.

Geliştiricilerin Kullandığı Hatalı Yöntemler

slide-11
SLIDE 11

www.biznet.com.tr

  • ASP.NET Request Validation XSS Koruması için tek başına yeterli

mi?

  • Parametre adı olarak XSS
  • «+onmouseover=alert(1234)+»
  • Kritik verileri VIEWSTATE içinde aktarabilirim, nasıl olsa

değiştirilemez,

  • Her zaman değil – (http://technet.microsoft.com/en-

us/security/bulletin/MS10-070)

  • MAC Kontrolü Devre Dışı Kalmış Olabilir
  • Replay Edilebilir mi? – (http://eagle-

site.blogspot.com/2010/01/viewstate-replay-attack.html)

  • Viewstate içinde kritik bilgi aktarımı
  • Client-Side Trust – Javascriptlere güvenmek

Geliştiricilerin Kullandığı Hatalı Yöntemler

slide-12
SLIDE 12

www.biznet.com.tr

  • Kara listeler kullanışlıdır ama her zaman etkin koruma

sağlamaz. (neleri engellerim / nelere izin veririm)

  • Güvenlik önlemleri mutlaka sunucu tarafında alınmalıdır,

istemci tabanlı her türlü kontrol atlatılabilir.

  • Veri tipi, büyüklüğü mutlaka kontrol edilmelidir.
  • Uygulama frameworkleri her zaman etkin koruma

sağlamayabilir.

  • XSS saldırılarına alınabilecek en etkin önlem çıktılar üretilirken

encode edilmesidir.

  • SQL Injection için en etkin çözüm Prapared Statement (PDO)

veya Parametize Sorgular kullanımıdır.

Yazılım Geliştiricilere Öneriler

slide-13
SLIDE 13

www.biznet.com.tr

  • Temel Hata: Uygulamadan ve yazılımcıdan bağımsız çözüm

arayışı

  • WAF sistemini yanlış adama emanet etmek.
  • WAF ve IPS sistemleri uygulama güvenliğini sağlama konusunda

yeterli mi?

  • Sistem yöneticisi web teknolojileri veya kullanılan sistem

hakkında gerekli yetkinliğe sahip mi?

  • WAF/IPS sistemi doğru yapılandırılmış mı?

Sistem Yöneticilerinin Yaptığı Hatalar

slide-14
SLIDE 14

www.biznet.com.tr

  • Temel yapılandırma hataları
  • SSL trafiği için gerekli ayarlar yapılmış mı?
  • Web sunucu tarafından desteklenen tüm cipher’lar için

WAF/IPS sistemi kontrol gerçekleştirebiliyor mu?

  • http://ttlexpired.com/blog/?p=121
  • WAF sistemi etkin durumda mı?
  • Aşırı yük altında nasıl davranıyor. (Fail Open vs Fail Close)
  • Güvenlik mi / Erişilebilirlik mi

Sistem Yöneticilerinin Yaptığı Hatalar

slide-15
SLIDE 15

www.biznet.com.tr

  • WAF/IPS sistemlerinin eksiklikleri
  • GET/POST kabul edilebilir http istek uzunlukları web sunucu ve waf

üzerinde aynı mı?

  • HTTP isteği içindeki tüm alanlar kontrol ediliyor mu?
  • GET/POST parametre değerleri, Tüm URL, parametre adı, User-Agent, VIA, XMLRPC

istekleri

  • http://en.wikipedia.org/wiki/List_of_HTTP_header_fields
  • Tüm HTTP metotları için WAF kontrol yapıyor mu?
  • OPTIONS, GET, HEAD,POST,PUT,DELETE, TRACE, CONNECT, PATCH

Sistem Yöneticilerinin Yaptığı Hatalar

slide-16
SLIDE 16

www.biznet.com.tr

  • WAF/IPS sistemleri bypass edilebilir mi?
  • HTTP Parameter Pollution
  • http://www.site.com.tr/uyg.asp?id=123+select+1&id=2,3+from+table
  • HTTP Parameter Fragmantation
  • uyg.asp?brandid=123+union/*&prodid=*/select+user,pass/*&price=*/from users--
  • XSS sadece script tag’i ile mi yapılabilir? (http://ttlexpired.com/blog/?p=334)
  • <INPUT+TYPE="checkbox"+onDblClick=confirm(XSS)>
  • <APPLET+CODE=""+CODEBASE="http://url/xss">
  • Uygulama geliştiricilerin eklediği hatalı filtreler
  • «+onmonmouseoverouseonmouseoverover=alert(1234)+»
  • URL Re-Write
  • http://localhost/uyg/id/123+or+1=1/tp/456
  • SQL Injection Sadece and 1=1 den ibaret değildir.
  • Farklı Mantıksal Operatorler kullanmak (uyg.asp?id=1'||1='1)
  • Aritmetiksel Fonksyionlar (uyg.asp?id=123+len(@@server)-len(@@server))
  • Açıklama Alanları (uyg.php?id=1/*union*/union/*select*/select+1,2,3/*)
  • Boşluk Karakteri Gerekli mi (uyg.php?id=union(select(version()))--) (MySQL, PostgreSQL)
  • Diğer Pek çok alternatif yöntem - http://ttlexpired.com/blog/?p=190

Sistem Yöneticilerinin Yaptığı Hatalar

slide-17
SLIDE 17

www.biznet.com.tr

  • WAF/IPS sistemleri bypass edilebilir mi?
  • Parameter Manipulation (custid=123, custid=124)
  • Encoded/Encrypted/Hash’li Parametre Değerleri
  • Protokol Sorunları (TCP/IP den kaynaklanan problemler)
  • Advanced Evasion Technics
  • http://www.stonesoft.com/en/press_and_media/releases/en/2010/16122010.html
  • http://www.stonesoft.com/en/press_and_media/releases/en/2011/10102011.html
  • WAF/IPS sisteminiz web saldırıları için ne kadar etkin çalışıyor.
  • http://ttlexpired.com/blog/?p=234

Sistem Yöneticilerinin Yaptığı Hatalar

slide-18
SLIDE 18

www.biznet.com.tr

  • WAF/IPS sizi her türlü uygulama problemine karşı koruyabilir mi?
  • Learning Mode ???
  • WAF Uygulama geliştiricilerde yanlış güven etkisi doğurabilir.
  • Uygulama ile ilgili sorunları en etkin bir şekilde giderileceği yer

uygulamanın kendisidir.

Sistem Yöneticilerinin Yaptığı Hatalar

slide-19
SLIDE 19

www.biznet.com.tr

  • Araç tercihindeki hatalar.
  • Yapıdaki tüm unsurlar kontrol ediliyor mu?
  • Bir araç ile her türlü uygulamayı kontrol edebilir misiniz?
  • Flash/Flex tabanlı uygulamalar
  • Web 2.0 Uygulamaları (JAVA ZK, Google GWT vb.)
  • Web Servisleri
  • Scriptlerin Kontrolü

Güvenlik Denetçilerinin Yaptığı Hatalar

Diğer Unsurlar (Reverse Proxy, LB, Firewall Sistemleri vb) Veri Tabanı Uygulama Uygulama Sunucu/Framework Web Sunucu İşletim Sistemi TCP/IP Alt Yapısı

slide-20
SLIDE 20

www.biznet.com.tr

  • Bir araç ile her türlü uygulamayı kontrol edebilir misiniz?

Güvenlik Denetçilerinin Yaptığı Hatalar

POST /zkau HTTP/1.1 Host: localhost Connection: keep-alive Content-Length: 143 ZK-SID: 5609 User-Agent: Mozilla/5.0 (Windows NT 6.0; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.78 Safari/535.11 Content-Type: application/x-www-form- urlencoded;charset=UTF-8 Accept: */* Accept-Encoding: gzip,deflate,sdch Accept-Language: en-GB,en-US;q=0.8,en;q=0.6 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 dtid=z_i6l&cmd_0=onClick&uuid_0=zk_comp_664 HTTP/1.1 200 OK Content-Length: 22349 Content-Type: text/plain;charset=UTF-8 ZK-SID: 5609 X-Powered-By: Servlet/2.5 JSP/2.1 {"rs":[["rm",["zk_comp_783"]],["rm",["zk_comp_868"]],["rm",[ "zk_comp_886"]],["rm",["zk_comp_794"]],["rm",["zk_comp_78 4"]],["rm",["zk_comp_867"]]} POST /uyg.gwt HTTP/1.1 Host: localhost Connection: keep-alive X-GWT-Module-Base: /uyg/ User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19 Content-Type: text/x-gwt-rpc; charset=UTF-8 X-GWT-Permutation: 1F4EA12941 Accept-Encoding: gzip,deflate,sdch Accept-Language: en-GB,en-US;q=0.8,en;q=0.6 Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3 5|0|7|http://localhost/uyg.gwt/|29F4EA1240F157649C12466F 01F46F60|com.test.client.GreetingService|greetServer|java.la ng.String|myInput1|myInput2|1|2|3|4|2|5|5|6|7| HTTP/1.1 200 OK Content-Length: 22349 Content-Type: text/plain;charset=UTF-8 X-Powered-By: Servlet/2.5 JSP/2.1 [{"s1":"ABC",«i1":81.284083,"change":-0.007986}]

slide-21
SLIDE 21

www.biznet.com.tr

  • Otomatik Zafiyet Tespit İşleminin Eksik Kaldığı Noktalar
  • DOM Tabanlı sorunlar (DOM tabanlı XSS)
  • Yeni nesil web uygulamalarının kontrolü (Google GWT, Java ZK vb)
  • Captcha kullanılan uygulamalar
  • Tek seferlik işlem gerçekleştiren uygulamalar (Sepete Ekle, Sil vb)
  • Veri kaydı yapıp, çıktı olarak detay sunmayan uygulamalar. (Stored, Second Order)
  • Oturum yönetimi problemleri (Hak yükseltme, yetkisiz erişim, vb)
  • Hash/Encoded/Encrypted parametre değerleri
  • Parameter Manipulation problemleri
  • URL Re-Write kullanılan uygulamalar
  • (GET /guzel_uygulama,1-57/3,[9-0]/12;ABC/)
  • Sıralı işlem yapılmasını gerektiren uygulamalar. (istek – kaydet – ok – görüntüle - ok)
  • Uygulama geliştirici tarafından eklenen kara listelerin bulunduğu uygulamalar
  • Viewstate gibi alanlarda aktarılan veriler
  • Crawler sorunu
  • Veri bütünlüğü kontrolünün yapıldığı uygulamalar.

Güvenlik Denetçilerinin Yaptığı Hatalar

slide-22
SLIDE 22

www.biznet.com.tr

Güvenlik Denetçilerinin Yaptığı Hatalar

  • Otomatik tarama modeli web uygulama zafiyetlerinin
  • rtaya çıkartılması konusunda eksikliklere sahiptir.
  • https://www.owasp.org/images/8/81/Closing_the_Gap_Ap

pSecDC_Shelly.ppt

  • Pek çok unsur bir uzman tarafından elle kontrol edilmelidir
  • http://www.webguvenligi.org/docs/web_uygulama_guvenl

igi_kontrol_listesi_2010.pdf

slide-23
SLIDE 23

www.biznet.com.tr

Planlama Aşamasında Yapılan Hatalar

  • Denetim çalışmasının proje takvimindeki yeri
  • Kapsamlı testler için yeterli süre var mı?
  • Bulunan bulguların kapatılma süreleri
  • Testi yapacak ekip belirlenmiş mi?
  • Test ekibinin programı
slide-24
SLIDE 24

www.biznet.com.tr

Planlama Aşamasında Yapılan Hatalar

  • Yazılım ekibinin sorunu giderme hızı, doğrulama için dönüş

süreleri

slide-25
SLIDE 25

www.biznet.com.tr

Planlama Aşamasında Yapılan Hatalar

  • Denetim Ekibinin Seçim Kriteri
  • Şartnameler
  • Sahip olunan sertifikalar
  • Aynı ekip / Farklı bakış açısı
  • Test edilecek uygulamanın tipi ve ekibin bu tip uygulamalardaki

uzmanlığı / Fiyat

  • POC
  • Denetim Maliyetini Kim Karşılamalı
  • Denetim Bütçesinin Belirlenmesi
  • Önceki projelerdeki fiyatlar
  • Bütçe belirlemeden önce uzman görüşü
  • Uygulama veya IP başına / Adam-gün
slide-26
SLIDE 26

www.biznet.com.tr

Teşekkürler!

Deniz Çevik deniz.cevik@biznet.com.tr