web uygulama güvenliğinde doğru bilinen yanlışlarprojelendirme, danışmanlık ve denetim...

26
www.biznet.com.tr Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlar ! Deniz Çevik Güvenlik Testleri Yöneticisi [email protected]

Upload: others

Post on 16-Jan-2020

12 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

www.biznet.com.tr

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

Deniz Çevik

Güvenlik Testleri Yöneticisi

[email protected]

Page 2: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 3: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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.

Page 4: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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!

Page 5: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

VEN

LİK

DU

VA

RI

XML Database

LDAP

Page 6: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 7: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 8: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 9: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 10: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 11: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 12: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 13: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 14: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 15: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 16: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 17: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 18: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 19: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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ı

Page 20: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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/|29F4EA1240F157649C12466F01F46F60|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}]

Page 21: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 22: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

www.biznet.com.tr

Güvenlik Denetçilerinin Yaptığı Hatalar

Otomatik tarama modeli web uygulama zafiyetlerinin

ortaya çı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

Page 23: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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ı

Page 24: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 25: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

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

Page 26: Web Uygulama Güvenliğinde Doğru Bilinen Yanlışlarprojelendirme, danışmanlık ve denetim hizmetleri sunmaktadır. Ar-Ge yatırımları ile elektronik imza, elektronik fatura,

www.biznet.com.tr

Teşekkürler!

Deniz Çevik

[email protected]