Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.

Slides:



Advertisements
Benzer bir sunumlar
Dört Bölüm 1.Tanıtım ve Mevcut Durum 2.Hedefler 4.Demo 3.Yeni Sürüm Planlaması.
Advertisements

Ders İçeriği Ağaç Veri Modeli Tanım ve Gerçekleştirim İkili Ağaç
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
Yazılım Geliştirme ve Java
Karmaşıklık Giriş.
Karmaşıklık Giriş.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Mysql, PhpMyAdmin, PHP, Dinamik Web Sayfası, PHPNuke Kullanımı
MYENGLISHLAB ONLINE Kayıt Kılavuzu.
YZM Yazılım Doğrulama ve Geçerlileme
Web Hacking Yöntemleri
Kişisel Web Sayfaları Kullanım Bilgileri
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
BPR152 ALGORİTMA VE PROGRAMLAMA - II
04/02/10 Django Web Uygulamaları Geliştirmede Çağdaş bir Yaklaşım.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Tarafından sağlanmaktadır ScienceDirect Veri Tabanı.
İkili Ağaçlar İkili Arama Ağaçları
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the Creative Commons Attribution-ShareAlike.
SQL Enjeksiyon Saldırı Uygulaması ve Güvenlik Önerileri
MapReduce Mustafa Agâh ÖZTÜRK
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
BPR152 ALGORİTMA VE PROGRAMLAMA - II
BPR151 ALGORİTMA VE PROGRAMLAMA - I
VERİ TABANI ve YÖNETİMİ
İkili Arama Ağaçları (Binary Search Trees) BST
Algoritmalar DERS 3 Böl ve Fethet(Divide and Conquer) İkili arama
BPR152 ALGORİTMA VE PROGRAMLAMA - II
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
VERİ TABANI ve YÖNETİMİ
PHP-Dosya ve Dizinler Internet Tabanlı Programlama Dr. Erman Yukselturk.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Algoritmalar DERS 4 Çabuk sıralama Böl ve fethet Bölüntüler
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
08 Mart 2009 Buluşması.  Nerdeyiz? ◦ Varolan ve Yeni Projeler/Belgeler ◦ Katılım, E-posta Listesi ve Web Sitesi ◦ Buluşmalar/Etkinliklier/Sunumlar 
MIT503 Veri Yapıları ve algoritmalar Veri ağaçları
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Pratik kullanım rehberi elektronik dergileri. Hoş Geldiniz! IOP Elektronik Dergiler Rehberi İletişim için İçindekiler journals.iop.org 2 journals.iop.org.
İnternet Teknolojisi Temel Kavramlar
Microsoft EXCEL (2) Kapsam Kopyalama, Yapıştırma Açıklama Ekleme Satır ve Sütunların Boyutlandırılması Bitişik Hücrelere Dayanarak Otomatik Veri Girme.
Açık Ders Malzemelerinde (ADM) Teknik Alt Yapı R. Orçun Madran
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
Tablet aktivasyonu yardım sayfası
Akış Kontrol Mekanizmaları
Chapter 6: Using Arrays.
TEFBİS DÖNER SERMAYE İŞLETMELERİ MODÜLÜ KULLANICI EĞİTİMİ
Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi
İçindekiler  Amaç  Kullanılan Araçlar  Web Uygulaması ve Matris Resimleri  İkili Arama  Arama & Veri Çekme Algoritmaları  İkili Arama &
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Diziler Adres Kavramı Nesnelerin Adresleri sizeof Operatörü
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
1/22 GEOMETRİ (Dikdörtgen) Aşağıdaki şekillerden hangisi dikdörtgendir? AB C D.
26 Eylül 2009 Buluşması.  Durum Analizi ◦ Projeler, Belgeler ◦ Katılım, E-posta Listesi, Web Sitesi, E-Dergi ◦ Buluşmalar  Genel OWASP ajandası ve durumu.
OWASP-TR & WGT AJANDA 18 EK İ M 2008 Buluşması. İ çerik  Nerdeyiz?  Varolan ve yeni Projeler  Katılım, E-posta Listesi ve Web Sitesi  Uygulama Güvenli.
İnternet Teknolojisi Temel Kavramlar
Erman Yukselturk1 PHP NEDİR? Scripting / Progralama dilidir (C’ye benzer) C ++ ortamında geliştirilmiştir Bedava / Açık Kod Hızlı, açık, dengeli (stable),
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
İKMAP İnternet 1 Ders Notu
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
ÖTÖ 451 Okul Yönetiminde Bilgisayar Uygulamaları R. Orçun Madran.
Algoritma Analizi Algoritma Algoritma bir problemi çözmek için izlenen komutlar kümesidir. Verilen bir problemin birden fazla çözümü dolayısıyla.
ALGORİTMA KARMAŞIKLIĞI
Bilgi Güvenliği Denetim Sürecinde Özgür Yazılımlar Fatih Özavcı Bilgi Güvenliği Danışmanı
Milli Eğitim Bakanlığı Eğitek Haydar TUNA Teknik Öğretmen ve Yazar
Sunum transkripti:

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP Foundation OWASP Web Uygulamalarında Güvenlik Problemleri Bünyamin DEMİR Mayıs 2009

2 İçerik  OWASP  Nedir?  Neler Yapar?  OWASP-TR & WGT  Amaç ve Hedefler  Projeler  WebGoat  Nedir?  Kurulum  Path Based Access Control  XSS  SQL Injection  Blind SQL Injection  Güvenlik Zaafiyeti ve İkili Arama  Algoritma Analizi ve Karmaşıklık  İkili Arama (Binary Search)  Blind SQL Injection ve Binary Search  Blind SQL Injection için Binary Search Optimizasyonu

3 OWASP – Nedir?  Open Web Application Security Projest (OWASP)‏  Güvensiz yazılımların sebep oldukları açıkları bulup, bunlarla mücadele eden bir topluluktur.  Tüm OWASP ürünleri ücretsiz ve açıktır.  Kar amacı gütmez  Topluluga ait rakamlar  120+ (Chapter)‏  30+ Sponsor  50+ Proje  100+ E-posta listesi  Aylık beş milyon üzerinde ziyaret

4 OWASP Neler Yapar? Araçlar Topluluk Dökümanlar Testing Guide Wiki WebGoat WebScarab Bölgeler (chapters)‏ Günlükler (blogs)‏ Çeviriler Konferanslar Forumlar Top 10 Legal AppSec FAQ Metrics … Live CD.NET Research LAPSE …

5 OWASP-TR / WGT Amaç ve Hedefler  Web uygulaması güvenliğine ülkemizde gerekli duyarlılığın gösterilmesini sağlamak  Web uygulaması güvenliği konusunda çalışan ve ilgi duyan arkadaşları bir platformda toplamak  Güvenlik konulu makaleler, dökümanlar ve projelere yer ve destek sağlamak.  Web uygulamalarının ortaya çıkardığı zararları en aza indirme yolunda çalışmalar yapmak  Dünyada yapılan web uygulaması güvenliği konulu çalışmaların takibini sağlamak  OWASP Vakfının Türkiye çalışmalarını sürdürmek  Web uygulaması güvenliği projeleri geliştirmek.  Web uygulaması güvenliği alanında yardımcı dökümanlar temin etmek.  Özel ve kamu kuruluşları arası güvenlik konulu çalışmalar yapmak.  Uluslararası konferanslar düzenlemek.  Açık kaynak kodlu güvelik çalışmalarına destek vermek.  Üniversitelerimizde uygulamalı web güvenliği farkındalığı eğitimleri vermek.

6 OWASP-TR / WGT Projelerimiz  Jarvinen (Web tabanlı ModSecurity log analizi)  Owasp-WeBekci (SoC 2008)‏ ve MSALParser  CAMMP ( C hroot A pache M ysql M odSecurity P HP)  SecureImage (.NET, Java ve PHP API)  SecureTomcat (Tomcat J2EE sunucu güvenlik denetimi)  Çeviri Projesi (~500 sayfa doküman)  Otomatize Sql Entektörleri Analizi (SoC 2008)‏  AntiCsurf (Cross Side Request Forgery için PHP API`si)  ApacheLive (Apache sunucusunun Keep-alive parametresi için güvenlik kontrolü yapan bir araçtır)  Web Güvenliği Terimler Sözlüğü  WIVET (Web Crawler’ın Teknik Yeteneklerinin Ölçülmesi ve Karşılaştırılması)

7 WebGoat  Güvenlik açıklıkları barındıran bir OWASP projesidir (J2EE ile yazılmıştır).  Web uygulama güveliği bilincini arttırmak için hazırlanmış bir eğitim aracıdır. Bu araç sayesinde açıklıkları anlayabilme ve bunları exploit edebilme yeteneği kazandırılmak istenmektedir.  Yüzlerce açıklık içermektedir.  Açıklıkların detaylı çözümleri ve bu açıklıkları çözmek için yardımcı ipuçları barındırır.  Açıklıklar belli kategorilerde sunulmaktadır.  Kolayca yeni açıklıklar ilave edilebilir.  Güvenlik testleri için ideal bir çalışma ortamı sunulur.  Kolay kuruluma sahiptir.

8 WebGoat Kurulumu  WebGoat Proje Sayfası:  WebGoat-OWASP_Standard-5.2 indirilir. Webgoat.bat çalıştırılır   Kullanıcı adı: guest Şifre: guest  WebScarab Proje Sayfası:  webscarab-installer indirilir ve kolay şekilde kurulur.  WebScarab ile HTPP ve HTTPS trafiği izlenir ve araya girme imkanı sağlanır.  WebScarab aracını proxy (vekil sunucu) olarak kullanmak için  Firefox  Araçlar > Seçenekler > Gelişmiş > Ağ > Ayarlar > Vekil Sunucu Ayarları kısmına  “Localhost, port 8008” yazılmalıdır.  WebScarab  Proxy > Intercept Requests

9 Path Based Access Control (Demo)  Web uygulamalarında özellikle dizinlerden dosya okuturken karşımıza çıkan bir güvenlik açığıdır.  Erişim sağlanan dizinin dışına çıkma imkanı varsa, bu imkan sayesinde stahmin edilen bazı dosyalara izinsiz erişim sağlanır. ../main.jsp ye erişim sağlanabilir.

10 Stored XSS  Saldırgan tarafından girilen zararlı kod parçasının kurban tarafından çalıştırılmasından kaynaklanmaktadır. 1.Bir mesaj formı yardımıyla zararlı kod enjekte edilir. 2. Kullanıcı kendine gelen mesajı açmayı ister. 3. Mesaj açıldıktan sonra, mesaj içindeki zararlı kod client tarafında çalışır.

11 Stored XSS (Demo) Bruce olarak sisteme girilir. 2.Bilgileri güncellerken “street” alanında xss açığı olduğu tespit edilir ve zararlı kod parçaçığı yazılır. 3. Yönetici olan Moe sisteme girer. 4. Moe sisteme girdikten sonra kullanıcı profillerine bakarken Bruce`un girmiş olduğu zararlı kod parçacığı browser tarafından çalıştırılır.

12 Sql Injection (Demo) Sql Injection açığı bulunan bir formdan arka arkaya sql cümleciklerinin çalışma demosu.

13 Blind Sql Injection Web uygulamaları bazen gerçekleştirdikleri SQL sorgu sonuçlarını direk olarak cevapta barındırmazlar, ama sorguların sonuçları cevabın içeriğini değiştirir. Örnek olarak kimlik doğrulama ekranları, durum kontrol ekranları v.b. Bu tür durumlarda SQL enjeksiyonu zafiyeti varsa yani ilgili SQL sorgusu dinamik olarak oluşturuluyorsa, saldırganın önünde bu durumu exploit edebilmesi için yazacağı saldırı sorguları ile cevap farklılığı oluşturması gerekmektedir. Bu farklılık sayesinde, oluşturduğu sql sorgularının doğru çalışıp çalışmadığını anlayacak ve buna göre bilgiler çıkarmaya başlayacaktır.

14 Blind Sql Injection (Demo) Sorgu: SELECT field1, field2, field3 FROM Users WHERE Id='$id' Gerekli Fonksiyonlar: SUBSTRING (text, start, length): klasik string manipulasyon fonksiyonu ASCII (char): verilen char değerinin ascii int karşılığı LENGTH (text): klasik string uzunluk fonksiyonu $id -> 1' AND ASCII(SUBSTRING(username,1,1))=97 AND '1'='1 Değişen Sorgu: SELECT field1, field2, field3 FROM Users WHERE Id='1' AND ASCII(SUBSTRING(username,1,1))=97 AND '1'='1' Koyu kısım doğru dönerse içerik değişmeyecektir. Yanlış dönerse cevap değişecektir. Doğal olarak bu işlem çok fazla istek gerektirir. 1’; waitfor delay ‘0:0:5 ile sunucu 5 saniye geç cevap verir (MSSQL).

15 Dökümanlar  altında;  Web Uygulamalarında XSS’i Önlemek İçin; index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet  Web Uygulamalarında SQL Enjeksiyonu’nu Önlemek İçin; index.php/SQL_Injection_Prevention_Cheat_Sheet  Web Uygulamalarını Güvenlik Açıklarına Karşı Denetlemek İçin; index.php/Category:OWASP_Testing_Project

16 Algoritma Analizi ve Karmaşıklık Neden algoritmayı analiz ederiz? Algoritmanın performansını ölçmek için Farklı algoritmalarla karşılaştırmak için Daha iyisi mümkün mü? Olabileceklerin en iyisi mi? Özelliklerinin analizi Algoritmanın çalışma zamanı Hafızada kapladığı alan Algoritmalarda Kamaşıklık: Bir algoritmanın hesaplama karmaşıklığının değerlendirilmesi algoritmanın çalışma hızı ve bellekte kapladığı alan ile ilgili bilgiler verir. Hesaplama karmaşıklığı iki açıdan incelebilir: zaman karmaşıklığı(time complexity) ve alan karmaşıklığı(space complexity). Zaman karmaşıklığı (Büyüme Hızı) Büyük-O notasyonu ile gösterilir. Büyüme hız bir algoritmanın performansını yansıtan en iyi göstergedir. Büyük-O girdi verisinin büyüklüğünü gösteren bir N parametresine dayanan bir fonksiyondur. Örneğin n değerine bağlı olarak performansı (sabit a, b, c değerleri için) an 2 + bn + c olan bir algoritmanın performansı O(n 2 )’dir

17 Sık Kullanılan Büyüme Hızları Zaman karmaşıklığıÖrnek O(1) sabitBağlı listeye ilk eleman olarak ekleme yapma O(log N) logSıralı bir dizide bir eleman arama O(N) lineerSıralı olmayan bir dizide bir eleman arama O(N log N)n-log-nN elemanı böl-parçala-yut yöntemiyle sıralama O(N 2 ) ikinci derecedenBir grafikte iki düğüm arasındaki en kısa yolu bulma O(N 3 ) üçüncü dereceden Ardarda gerçekleştirilen lineer denklemler O(2 N ) üstelHanoi’nin Kuleleri problemi

18 İkili Arama (Binary Search) Problem çözümlerinde böl ve yönet prensibine dayanır. Problemin büyüklüğünü belli oranda (genelde ½) azaltmak için sabit bir zaman harcanıyorsa bu algoritma O(log N)’dir. Bu algoritmada verilen veriler artan şekilde sıralanmış olmalıdır. – Veriler tamsayı ise en küçükten en büyüğe doğru sıralanmış, eğer kelime iseler alfabetik olarak sıralı şekildedir. Böyle bir veri kümesinde bir eleman aranması için algoritma ikili aramadır. İkili arama algoritmasının mantığı; sıralı veri kümesi ortadan iki kümeye ayrılarak bulunması istenen veri bu alt kümelerden hangisinin içerisinde olabileceğinin kontrolü prensibine bağlıdır. Arama işlemi alt kümelerde tekrarlanarak bulunması gerekli olan veri bulunmaya çalışılır.

19 İkili Arama Örneği

20 Blind SQL Injection & Binary Search Sorgu: Değişen Sorgu: SELECT field1, field2, field3 FROM Users WHERE Id='1' AND ASCII(SUBSTRING(username,1,1))=97 AND '1'='1‘ ASCII karakter kümesinde 97, ‘a’ harfine denk gelmektedir. Her bir karakterin kontrolü yapılır. İlk karakterin doğruluğunun ölçülebilmesi için (ASCII okunabilir karakter kümesi aralığı dır); f(n) = Θ(log n) f(126-32) = Θ(log (126-32))‏ ~7 karşılaştırmada karakterin doğruluğuna erişilir. Milyon tane karakter için ne yapılabilir?

21 Blind SQL Injection için Binary Search Optimizasyonu Normal karakter kümesi boyutu ASCII 126 'dan 32'ye kadar : 94 karakter. Uppercase,Lowercase gibi dbms fonksiyonları ile karakter kümesi dörtte birine indirilebilir. - ASCII (A-Z)‏ - f(90-65) = Θ(log (90-65)) = ~5 Farklı ikili arama ağaçları tanımlanarak istekte bulunulur. Örneğin; öyle bir binary tree oluşturulurki, sol tarafta harfler, sağ tarafta sayılar olur. Sayısal Dolayısıyla sayısal ifadelerin çok geçtiği isterler için daha hızlı sonuçlar verecektir.

22 Kaynaklar SQLiBench OWASP Project h_Project h_Project Binary Tree Applet pplet.htm pplet.htm Bedirhan Urgun – General Binary Search Algorithm qli_algorithm_theory.html qli_algorithm_theory.html

23 Teşekkürler! E-posta listesine kayıt olmak için google: owasp turkey mail list