1 / 19

Web Uygulama Güvenliği

Web Uygulama Güvenliği. Çağrı TIRAŞ Danışman: Kerem ERZURUMLU. Sunum Planı. Web Uygulamaları Web Uygulama Mimarisi Web Uygulamaları için Güvenlik İhtiyacı Ağ Güvenliği Sunucu İşletim Sistemi Güvenliği Web Sunucu Yazılım Güvenliği Uygulama Yazılımı Güvenliği

lei
Télécharger la présentation

Web Uygulama Güvenliği

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Web Uygulama Güvenliği Çağrı TIRAŞ Danışman: Kerem ERZURUMLU

  2. Sunum Planı • Web Uygulamaları • Web Uygulama Mimarisi • Web Uygulamaları için Güvenlik İhtiyacı • Ağ Güvenliği • Sunucu İşletim Sistemi Güvenliği • Web Sunucu Yazılım Güvenliği • Uygulama Yazılımı Güvenliği • Güvenliğin İzlenmesi ve Saldırıların Tespiti • Özet ve Sonuç

  3. Web Uygulamaları • Kullanıcılar ile etkileşimi sağlar • İstemci/Sunucu mimarisinde çalışır • Genelde sunucu üzerinde çalışır • Platformdan bağımsızdır • Uygulama yazılımı seçimi esnekdir • PHP, ASP, CGI(C, Perl, Shell, Delphi)

  4. Web Uygulama Mimarisi İstemci İstemci İstemci VTYSÖzel VeritabanıSunucusu VeritabanıSunucusu HTTP Uygulama Sunucu Uygulama Sunucu • Üç Katmanlı Yapı • Depolama Katmanı (Veritabanı) • İş Mantığı ve Süreç Katmanı (Uygulama Sunucu) • Sunum Katmanı (İstemci Tarayıcılar)

  5. Farklı İstemciler • Alabildiğine hafif (Ultra-thin) istemciler • “Herkes bağlansın, herkes kullansın” • HTML ve JavaScript desteği yeterli • Microsoft İstemcileri • HTML ve ActiveX desteği • Java İstemcileri

  6. Web Uygulamaları için Güvenlik • Web Uygulamaları Hızla Artıyor • Bankacılık, öğrenci işleri, e-ticaret siteleri ... • Web Uygulamalarına Yönelik Saldırılar Artıyor • CSI/FBI araştırmasına göre saldırılar son dört yıldır her yıl ikiye katlanıyor • Kaybedilebilecekler / Zararlar • Müşterilere özel bilgiler • Prestij • Hizmette aksaklıklar • Para

  7. Ağ Güvenliğinin Sağlanması • Ağın uygun bir biçimde bölümlendirilmesi ve güvenlik duvarları ile ağ bölümleri arasında yalıtımın gerçekleştirilmesi • Web sunucu bilgisayar sistemine HTTP dışında isteklerin ulaşmasının engellenmesi • Güncelleme işlemleri için yalnızca kısıtlı sayıda güvenilen bilgisayar sistemine izin verilmesi

  8. Sunucu İşletim Sistemi Güvenliği • Yazılım güncellemelerinin yapılması • Güncel sürümler için mevcut yamaların uygulanması • Çalışması şart olmayan ağ hizmetlerinin durdurulması • Parolaların düzenli olarak güvenliğinin denetlenmesi

  9. Sunucu İşletim Sistemi Güvenliği - II • Yalnızca gerektiği kadar yetki verilmesi • Kullanıcılara • Çalışması zorunlu sunucu yazılımlarına • Sunucu yazılımlarının yetkili-kullanıcı olarak çalıştırılmaması • Pek çok sunucu yazılımı sıradan-kullanıcı yetkileri ile de çalışabilir (Örn. root yerine nobody, Administrator yerine Oracle) • Öntanımlı sistem şifrelerinin değiştirilmesi (Örn. Oracle/system)

  10. Web Sunucu Yazılımı Güvenliği • Web sunucu yazılımı ile birlikte gelen örnek uygulamaların kaldırılması • Web sunucunun belirli bir küme dosya türü dışında dosyayı işlememesinin sağlanması • Yalnızca .html, .asp, .php, .jsp, .txt dosyalarının işlenmesi ve sunulması • Dizin listesi gösteriminin iptal edilmesi

  11. Uygulama Yazılımlarının Güvenliği • Varsayım: Kullanıcıların tümü art-niyetlidir • Kullanıcılardan alınan her türlü bilgi girdisinin • Uzunluk • Tür • İçerik denetimlerinin gerçekleştirilmesi

  12. Uygulama Yazılımlarının Güvenliği - II • Oturum Yönetiminin Dikkatli Programlanması • Kullanıcı tarafında depolanan çerezler kullanıcılar tarafından değiştirilebilir • Çerezlerin içerisinde yalnızca kullanıcıyı tanımlayacak bilgi girilmeli, diğer tüm bilgiler sunucu üzerinde tutulmalıdır • Kullanıcıyı tanımlayan bilginin “artıklığı” yüksek olmalı, tahmin ile bulunamamalıdır

  13. Yığıt Taşırma • Bir uygulama yazılımında tanımlanmış küçük bir alana büyük bir veri yüklemeye çalışırsanız ne olur? • Uygulama çakılır • Bazı durumlarda, uygulamanın ‘istenmedik’ komutları işletmesi sağlanabilir

  14. Programlama Örneği void dikkatsiz(char *param) { char hataKaynagi[16]; strcpy(hataKaynagi,param); ... } http://kurban.edu.tr/cgi-bin/swc?ctr=XXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  15. Yığıt Düzeni Belleğin Başı Belleğin Sonu yereller sçg Dönüş @ param Yığıtın Üstü Yığıtın Altı void dikkatsiz(char *param) { char hataKaynagi[16]; strcpy(hataKaynagi,param); ... }

  16. Örnek Zayıf Sayfa

  17. Örnek Saldırı

  18. Güvenliğin İzlenmesi ve Saldırı Tespiti • Bilindik saldırıları tespit etmek ve kaydını tutmak üzere ağ temelli saldırı tespit sistemleri kullanılabilir saldirgan1.saldiran.edu.tr - - [27/Nov/2001:18:13:28 +0200] "GET /search.dll?query=%00&logic=AND HTTP/1.1" 404 216 "-" • Saldırganların sisteme sızmayı başarması durumunda ilk yapacakları sonraki girişleri için arka-kapı açmak olacaktır • Dosya bütünlük denetleyicileri ile dosya ve dizinlerdeki beklenmedik değişiklikler tespit edilebilir • Web sunucu kayıtlarındaki anormallikler izlenmelidir

  19. Özet ve Sonuç • Web uygulamalarının güvenliğinin sağlanması için uygulanabilecek birkaç temel adım pek çok saldırıyı engelleyecektir • Ağ güvenliğinin, sistem güvenliğinin, sunucu yazılımı güvenliğinin sağlanması • Uygulama geliştirme sürecinde güvenlik boyutunun düşünülmesi/değerlendirilmesi • Sistem ve sunucu kayıtlarının düzenli incelenmesi ve problemlerin analizi

More Related