Güvenlik Java ve Web Uygulama Güvenliği Melih Sakarya www.melihsakarya.com melih.sakarya@gmail.com www.mergecons.com
Olası Açıklar Donanımsal açıklar Sistemsel Açıklar Yazılımsal Açıklar Sosyal Mühendislik
Yazılımsal Açıklar Yazılımcı neden hata yapar? Yaşam döngüsünün tam olarak anlaşılmaması Bilinmeyen hata durumları Eğitimsel eksiklik Yazılım ekiplerindeki sirkülasyonlar Yetersiz test
Web Uygulama Güvenliği DoS (Denial of Service) atakları D-DoS (Distributed DoS) atakları Virüsler Sistemsel açıklar (İşletim sistemi, Uygulama Sunucusu, Firewall, Veritabanı) Yazılım geliştirici nedenli açıklar.
Yazılımcı Neyi Yanlış Yapar? URL güvenliği? Form güvenliği? XSS (Cross-Site-Scripting) Session mekanizması? Cookie güvenliği? Olası DoS imkanları? Hatalı konfigürasyonlar? Kaynak kod güvenliği?
URL Güvenliği Sebepleri URL ile bilgi paylaşımı URL üzerindeki müdahaleler ile bilgiye erişme Örnekler... Korunma URL şifreleme Sorguları kişiselleştirme
Form Güvenliği Sebepleri Kişiselliştirilmiş bilgiyi form üzerinde taşıma İzinsiz alanlara müdahale Örnekler... Korunma Bilgiyi sunucuda saklama Kontrolleri sunucu tarafında yapma
Session Güvenliği Session bir oturumu ifade eder Sunucu taraflıdır. İstemci sunucu tanımlaması session-id ler ile sağlanır Session-id cookie veya url ile taşınır. Çalınması sizi başka bir kullanıcı yapar Sunucu İstemci İstemci
Session Güvenliği Sebepleri İstemci sunucu arasındaki haberleşmenin dinlenmesi İstemci üzerinde session bilgisini alabilecek işlemlerin yapılması Örnekler... Korunma SSL ile dinlemeleri engelleme İstemci taraflı kod çalıştırılmasını engelleme - XSS SessionId dışında kontrol mekanizmaları kullanma
XSS Cross Site Scripting Sebepleri Anlamsız bilgi kabul etme İstemciler üzerinde istenmeyen script kodları çalıştırma Örnekler... Korunma Script gönderimini engelleme Gelen talepleri filitreleme
Sql Injection Sorgulara ekstra kullarlar enjekte etmektir. Yeni sorgular oluşturarak istediğiniz değerlere erişebilirsiniz. Yetki dahilinda var olan veri yapısına zarar verilebilir.
Sql Injection Sebepleri Veriler üzerine sql izinleri verme Veritabanı sorgularını parametrik değerler yerine string sorguları olarak gönderme Örnekler... Korunma Akıllı karakter kontrolleri Persistence katmanlar, Prosedürler veya PreparedStatement lar kullanmak.
Sql Injection select * from kullanici where id=1 or 1=1 select * from kullanici where id=1 or char(32,111,114,32,49,61,49,32)
Cookie Güvenliği Sebepleri Kullanıcı verisinin açık şekilde istemcide saklanması Cookie üzerindeki bilgilerin değiştirilebilir olması. Örnekler... Korunma Açık kullanıcı verilerinin saklanmaması. Saklanan verilerin şifrelenmesi. Birden fazla tipte kontrol yapılması.
Olası DoS İmkanları Sebepleri Sisteme yük bindirebilecek operasyonlar. Yük getirecek operasyonların tekrarına izin vermek. Örnekler... Korunma Kullanıcıya açık sistemlerde kaynak harcayabilecek alanların izlenmesi ve kontrolü. Sistemde günlük hareketler izlenmeli.
Hatalı Konfigürasyonlar Sebepleri Sistemsel konfigurasyonlarda olası hatalara ver vermek. Entegrasyonlar nedeni ile oluşan açıklar. Örnekler... Korunma Dışa açılmaması gereken bilgilerin güvenliğine dikkat etmek. Doğru test süreçlerini gerçekleştirmek.
Kaynak Kod Güvenliği Sebepleri Derlenmiş kodların ters mühendislik ile kaynak koda çevrilebilmesi. (reverse-engineering) Gerçek zamanlı byte code manipulation. Örnekler... Korunma Kodların derleme ile birlikte karmaşıklaştırılması. (Java Obfuscation)
Teşekkürler Melih Sakarya www.melihsakarya.com Merge Danışmanlık www.mergecons.com