2. İçindekiler
•Bilinen en popüler web uygulama atakları
•Güvenli yazılım geliştirme
•Prosedürler
3. Bilinen en popüler ataklar
•XSS(Cross Site Scripting)
•SQL Injection
•CSRF (Cross Site Request Forgery)
•LFI (Local File Inclusion) & RFI (Remote File Inclusion)
4. XSS (Cross Site Scripting)
•Atak yapan kişi sayfanızı input öğelerine javascript, vb script, html(onchange,onclick), kodlarını gömerek saldırır.
•En genelde ikiye ayrılır ;
–Kalıcı olmayan XSS : Sayfada herhangi bir değişiklik olmaz link 1 kere çalışır ve atak yapan istediğini aldıktan sonra işini bitirir. Açığı olan link sosyal mühendislikle email atılır ve kurbanların tıklanması sağlanır.
–Kalıcı XSS : Kullanıcı forum postu veya profiline girdiği script veritabanına saklanır ve her sayfa çağrıldığında çalıştırılır.
7. SQL Injection Örnekleri
•1' OR'1=1; --
•3' and 1=0 union select null, version()#
•3' and 1=0 union select null, user()#
•3' and 1=0 union select null, database()#
low.php$id = $_GET['id'];
$getid= "SELECT first_name, last_nameFROM users WHERE user_id= '$id'";
8. Güvenli Yazılım Geliştirme
•ESAPI (Enterprise Security API)
•Microsoft Design Guidelines for Secure Web Applications(Eski bir dökümantasyon ama günümüze uyarlanabilir.)
•SANS Security Checklist
•OWASP Web Uygulama Güvenliği Kontrol Listesi
9. Güvenli Yazılım için Yapılması Gerekenler –Girdilere Dikkat !!!
•Kullanıcı girdilerine güvenmeyin (textbox, checkbox, vb.)
•Girdilerin kontrolünü sadece istemci taraflı yapmayın.
•Girdileri sırasıyla Constraint -> Reject -> Sanitize kuralına göre eleyin.
10. Güvenli Yazılım için Yapılması Gerekenler –Kimliklendirme
•Kullanıcılara şifre ve kullanıcı adını sorarken kesinlikle düz metin (http) protokolünü kullanmayın. Https Kullanın !!!
•Şifreleri kesinlikle düz metin olarak saklamayınız.
•Şifre hashi üretirken hashin tuzunu rassal olarak üretin.
•Oturum yönetimi için cookielerini secure olarak işaretleyin. (protokol https dahi olsa cookie secure olmadığında cookie hırsızlığıyla oturum çalınabilir.)
•Oturum kapanana kadar aynı cookie yi kullanmayın.
•Şifreyi geçersiz kılma süresini belirleyebilmeyi mümkün kılın.
•Hesabı kitleme veya geçersiz kılma politikalarını belirleyin.(örnek: 5 kere aynı ipden yanlış şifre girerse hesabı 1 günlüğüne engelle)
•Şifre uzunluğu ve karmaşıklığını kuvvetli tutun. (En az 8 karakter alfanumerik, özel karakter, büyük küçük harf vb.)
11. •Oturum Kimliklendirme Cookilerini korumak için SSL kullanın.
•Kimliklendirme Cookielerinin içeriğini şifreleyin.
•Cookie ömürlerini kısa tutun.
•Oturum durumunu yetkisiz kişilere karşı koruyun. (Büyük sistemler için) Güvenli Yazılım için Yapılması Gerekenler –Oturum Güvenliği
12. Zaafiyetler ve Oluştukları SorunlarÖzet Tablo
Zaafiyet Kategorisi
KötüDizayn edildiğinde olası karşılaşılacak problemler
Giriş Doğrulaması
Ataklar form alanlarına , cookielere, http başlıklarına ve sorgulara zararlı stringler
gömerek gerçekleştirilir. Bu ataklar XSS, SQL Injection, ve tampontaşırma ataklarını içerir.
Kimlikliklendirme
Kimlik kandırma, şifre kurma, hak yükseltme, yetkisiz erişim gibi sorunlar doğurur.
Yetkilendirme
Gizli ve hizmete özel verilereyetkisiz erişim,bu verilerle oynama, veya yetkisizişlemlerin gerçekleştirilmesi gibi sorunlara sebep vermektedir.
Yönetim Ayarları
Yönetimarayüzüne yetkisiz erişim, ayaların güncellenmesi kullanıcıhesaplarına yetkisiz erişim.
GizliHassas Veri
Gizliverinin açığa çıkması ve veri ile oynanması
Oturum yönetimi
Oturum bilgilerinin dinlenerek elde edilerekoturum hırsızlığı ve kimlik kandırma giibi sorunlara yol açmaktadır.
Şifreleme
Gizli verive kullanıcı hesaplarına erişim
Parametre ile Oynama
Dizin atakları, KomutÇalıştırma atakları, giriş kontrol mekanizmalarını atlatma, bilgi açığa çıkartma, hak yükseltme , dos (denial of service) ataklarına yol açmaktadır.
Exception Yönetimi
Dos, hassassistem düzey detaylarının ortaya çıkması.
Denetim ve Kayıttutma(log)
Atağın nereden geldiğinin tespitinin yapılamaması, kullancının yaptığı bir işlemi ispatlayamama, problemlerin nerden kaynaklanabileceğini tespit edememe gibi sorunlara meydan vermektedir.
13. ESAPI (Enterprise Security API)
•Web Uygulamaları için Güvenlik Kontrol Kütüphanesi
•Java, .Net, PHP, Javascript sürümleri mevcuttur.
•Ücretsiz ve Açık Kaynak Kodludur.