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
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 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. www.biznet.com.tr
Web Uygulama Mimarisi Çok sayıda bileşen demektir! Web sunucuları Çeşitli browser y azılımları Uygulama s unucuları Uygulama framework ve dilleri Farklı veri iletim yöntemleri (HTTP, XML, SOAP) İstemci tabanlı frameworkler Veri tabanı sistemleri Diğer a ğ e kipmanları ve entegrasyon www.biznet.com.tr
Web Uygulama Mimarisi Web Sunucular Uygulamalar Veri Tabanları Apache Microsoft-IIS nginx lighttpd Apache-Coyote IBM_HTTP_Server Jetty Sun-ONE-Web-Server Lotus-Domino Sun GlassFish JBOSS GÜVENLİK DUVARI HTTP/HTTPS Kullanıcı XMLRPC Web Sunucu Uygulama SQL Database Sunucuları İstemci Web XML Database Web Sunucu Servisleri (WSDL) SOAP XML LDAP Diğer Bağlantılar Web Sunucu www.biznet.com.tr
Sık Yapılan Hatalar 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. www.biznet.com.tr
Geliştiricilerin Kullandığı Hatalı Yöntemler 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 www.biznet.com.tr
Geliştiricilerin Kullandığı Hatalı Yöntemler 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/ www.biznet.com.tr
Geliştiricilerin Kullandığı Hatalı Yöntemler 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. www.biznet.com.tr
Geliştiricilerin Kullandığı Hatalı Yöntemler 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. www.biznet.com.tr
Geliştiricilerin Kullandığı Hatalı Yöntemler 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 www.biznet.com.tr
Yazılım Geliştiricilere Öneriler 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. www.biznet.com.tr
Sistem Yöneticilerinin Yaptığı Hatalar 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ı? www.biznet.com.tr
Sistem Yöneticilerinin Yaptığı Hatalar 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 www.biznet.com.tr
Sistem Yöneticilerinin Yaptığı Hatalar 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 www.biznet.com.tr
Sistem Yöneticilerinin Yaptığı Hatalar 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 www.biznet.com.tr
Sistem Yöneticilerinin Yaptığı Hatalar 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 www.biznet.com.tr
Sistem Yöneticilerinin Yaptığı Hatalar 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 . www.biznet.com.tr
Güvenlik Denetçilerinin Yaptığı Hatalar Araç tercihindeki hatalar. Yapıdaki tüm unsurlar kontrol ediliyor mu? Diğer Unsurlar ( Reverse Proxy, LB, Firewall Sistemleri vb) Veri Tabanı Uygulama Uygulama Sunucu/Framework Web Sunucu İşletim Sistemi TCP/IP Alt Yapısı 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ü www.biznet.com.tr
Recommend
More recommend