Web Güvenlik Tarayıcılarının Evrimi



Benzer belgeler
Kaynak Kod Güvenliği Bir Güvensiz API Örneği

Sadece 2 İstekle MySQL Blind SQL Injection. Canberk BOLAT canberk.bolat[-at-]gmail[-dot-]com

Yetersiz Şifre Politikasının Sonuçları

Web Güvenlik Topluluğu OWASP. The OWASP Foundation. 21 Haziran, 2008

Sqlmap pyhton dili yazılarak geliştirilmiş Sql injection için testerlara son derece yardımcı olan bir araçtır.

DESTEK DOKÜMANI. Ürün : GO/TIGER2/UNITY2 Bölüm : Sistem Đşletmeni

Exploit.CVE Analizi

(W)eb (A)pplication (F)irewall Bypass

Özgür Uygulamalar ile Web Güvenliği. The OWASP

Web Application Penetration Test Report

Tanımı Problemi 46 Şüpheci Yaklaşım 47 Tamsayı Taşması (Integer Overflow) 47 Tamsayı Taşması Java Uygulaması 48

Web Uygulama Pentest Eğitimi

YMT 412-Yazılım Kalite Ve Güvencesi Yazılım Test Araçları 1/37

Burp Suite ile Deneme - Yanılma Denetimi

NOT: VERİTABANINDAKİ TABLOLARI OLUŞTURMAYI DA UNUTMAYACAĞIZ.

T.C. SAKARYA ÜNİVERSİTESİ ADAPAZARI MESLEK YÜKSEKOKULU WEB TABANLI VERİ TABANI UYGULAMASI YÖNLENDİRİLMİŞ ÇALIŞMA. Enes Al 1027.

BLIND SQL INJECTION SALDIRILARI

Web Uygulama Güvenliği Kontrol Listesi 2010

Fırat Üniversitesi Personel Bilgi Sistemi Penetrasyon(Sızma) Testi

IceWarp kurulumu. IceWarp Server kurmanız için yapmamız gereken adımlar şunlardır:

1. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

1. Oracle Data Miner 11g Release 2 Kurulumu Aşamaları

OKUL MÜDÜRÜMÜZLE RÖPORTAJ

Veritabanı Sızma Testleri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

Anti-Virüs Atlatma 3. Kurulum

LSI Keywords İle Sitenizin Sıralamasını Ve Trafiğini Arttırın

Eskişehir Osmangazi Üniversitesi İnşaat Mühendisliği Bölümü Akademisyenler İçin Dinamik Web Sistemi Uygulaması

FASTERPOS PROGRAMI SİZİN MANUEL YAPTIGINIZ GÜNCELLEME DIŞINDA GÜNCELLEME ALIYOR İSE,

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

CSRF (XSRF, Cross Site Request Forgery Cross Site Reference Forgery ) Nedir? Nasıl Kullanılır? ve Nasıl Korunulur?

Usul çerçevesinde kasa muhasebesi

Gezici Profil Oluşturma. Mehmet Akif Ersoy Üniversitesi Gölhisar Meslek Yüksekokulu. Ders Adı: Sunucu İşletim Sistemi. Osman AŞIK

Başlangıç Ayarları.

1 WEB GÜVENLIĞINE GIRIŞ

Pac Dosyası İle Proxy Kullanmak

XSS Exploitation via CHEF

T.C. istanbul ÜNiVERSiTESi ÖĞRENCi BiLGi SiSTEMi. ÖĞRETiM ELEMANI KULLANIM KILAVUZU

Google Search API ile ajax arama

2-Hafta Temel İşlemler

ASP.NET CLASS KULLANARAK VERİTABANI İŞLEMLERİ

BlackBerry Admin Service

SQL INJECTION. Mehmet TUNCER.

JSON Korsanlığı. Mesut Timur, Şubat 2010, WGT E-Dergi 4. Sayı

Türkçe Ulusal Derlemi Sözcük Sıklıkları (ilk 1000)

Her Yönüyle SQL Enjeksiyonu. OWASP-Türkiye Bünyamin Demir

SAMM ile Güvenli Yazılım Geliştirme

DetailsView. DetailsView kontrolünün GridView kontrolüyle paralel şekilde kullanımı ile ilgili örnek

Script. Statik Sayfa. Dinamik Sayfa. Dinamik Web Sitelerinin Avantajları. İçerik Yönetim Sistemi. PHP Nedir? Avantajları.

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

Yedek Nasıl Alınır? "Veri Tabanı Yedekleme ve Geri Alma" butonunu tıklayınca aşağıdaki gibi bir ekran açılacaktır.

Örnek bir kullanım ve bilgisayar ağlarını oluşturan bileşenlerin özeti

Site İçi SEO. İçindekiler

Şekil 1 : Şablonumuzun Photoshopda açılmış hali

VERİ GÜVENLİĞİ. Web Uygulamaları Güvenliği. Özer Çelik Matematik-Bilgisayar Bölümü

AMAÇLAR: GÜVENLİK TESTLERİNDE BİLGİ TOPLAMA: AKTİF BİLGİ TOPLAMA

Blogger bunu uyguluyor!

Güvenlik Java ve Web Uygulama Güvenliği

Web Uygulamaları Güvenlik Denetimi. Fatih Özavcı

VERİ TABANI UYGULAMALARI

YAZILIM GÜVENLİK TESTLERİ. H A L D U N T E R A M A N h a l d u n t e r a m a g m a i l. c o m

ETA:MOBİL KURULUM TALİMATI

Sesli notları bir iphone dan Windows 10 PC ye aktarmanın üç kolay yolu aşağıda açıklanmıştır.

J-Guar Self Servis Kurulumu

12 Ocak 2012 / Perşembe

ÜNİBİLGİ 20. Journal Alerts:

Google Hacking. Gelişmiş Google Operatörleri

Free Download Manager Kullanarak Internetten Download

Kurulum 14 FTP ye Bağlanmak ve Dosyaları Atmak 14 Veritabanı Oluşturulması ve Bağlanıp Kurulumun Tamamlanması 15

Halil ÖZTÜRKCİ, MVP CISSP, CISA,GPEN,CEH,CHFI BT Güvenlik Hizmetleri Direktörü

NPratik Yazılım Kurulum Kılavuzu. Yedekleme İşlemi


Spring Giriş Eğitimi

CODEIGNITER SEMINERI KÜTÜPHANE YAZMA GÜVENLIK ÖNLEMLERI CODEIGNITER 2.0

PHP İle Paket Geliştirme

E-MASA YENİ SÜRÜM İLE GELEN YENİLİKLER

Kurulum ve Başlangıç Kılavuzu. DataPage için

İNTERNET EXPLORER AYARLARI 1. Başlat-Ayarlar-Denetim Masası menüsünden "İnternet Özellikleri" (Seçenekleri)'ni seçiniz. Resim. 1

vsphere Client(viClient) ile ESXI Kontrolü

SAKLI YORDAM (Stored Procedure) Sibel Somyürek

Master Tanıtım Sunumu

Tavsiye Edilen Önhazırlık Veritabanı kavramını öğrenmek

WebInstaller. 1. Kurulum Đçin Gereksinimler

Vodafone dan Office 365. Satış temsilcisi ismi Tarih

Analiz Raporu. Projenin amacının, konusunun, işlevinin ne olacağı, hangi yazılımlar kullanılacak gibi parametrelerin belirlenmesi.


Exploit Geliştirme Altyapıları. Fatih Özavcı Bilgi Güvenliği Danışmanı

IIS 7.5 ÜZERİNDE FTP SİTE KURULUMU VE YAPILANDIRILMASI

Tavsiye Edilen Önhazırlık Veritabanı kavramınıöğrenmek. Hedefler Shrink yapılmasının amacının kavranması. Shrink yapılma yöntemlerinin öğrenilmesi.

JAVA KURULUM REHBERİ 1. Java Nedir? 2. Java Kurulumu Görsel 1

Windows Live ID ve parolanızı giriniz.

Anneye En Güzel Hediye Olarak Ne Alınması Gerekir?

Automatically Upgrade (new) Client push installation Software update point installation Group Policy installation Logon script installation

Kimsin Sen? /in/ahmet-dervis /adervis3 SauSiber adrvs.wordpress.com

WEB UYGULAMA GÜVENLİĞİ HAKKINDA. Mesut Güngör İzmir Yüksek Teknoloji Enstitüsü Bilgi İşlem Daire Başkanlığı

İNTERNET PROGRAMCILIĞI - II

Değerli Datasoft Kullanıcısı;

IP NİZİ NASI GİZLERSİNİZ?


W3af ile Web Uygulama Güvenlik Testleri

Transkript:

Web Güvenlik Tarayıcılarının Evrimi Ferruh Mavituna, Aralık 2009, WGT E-Dergi 3. Sayı Web uygulaması güvenliğinin hava civa olduğu yıllarda, 2004'te Istanbul`da (R'87 - Web Application Security Solutions) nacizane bir firmanın kurucularından biriydim. Plan basitti sadece web uygulaması penetration testi yapmak ve bu uzmanlığı korumak. Sanırım şu an yazıyı okuyan ve sektörün 5-6 sene önceki halini bilen ya da hayal edebilen herkes vücudunun hangi nadide kısmı ile güleceğini bilememiştir. O zamanlar bu işe başladık ve beklenmedik bir sürpriz olmadı bir sene kadar sonra battık ama anlatacağım hikaye bu başarısızlık öyküsü değil, hikaye o zamanlar Türkiye'de WebInspect 4.0 ü satmaya çalışmamızla ilgili. Firmayı kurduktan sonra ilk işlerimden biri WebInspect'in Türkiye reseller'lığını almak olmuştu. WebInspect hatırı sayılır derecede kaliteli ve eski bir tarayıcı o zamanlar özellikle çok ciddi rakipleri de yoktu ve otomatik testlerde büyük bir yardımcıydı. Onun harici başka yazılımlar da bu kervana katıldı ve artık en azından beş adet kaliteli otomatik web uygulaması tarayıcısı sayabilir olduk. AppScan, WebInspect, Acunetix, HailStorm ve bir kaç başka orta - düşük kalite yazılımlar ile SaaS çözümleri. Lakin bu tarayıcılar 6 sene önceki hallerinden ileriye giderken bir şekilde bir yerlerde tökezlediler. Teknik ilerleme göstermemeninin nedeninden tam emin değilim, bir çok nedeni olabilir ama ilerlemedikleri ya da gerektiği kadar ilerleyemedikleri belliydi. Hatta henüz Netsparker'ın ilk dönemlerinde (o zamanlar ismi Dilemma idi) WhiteHat Security "Attribute based XSS" i tespit edebilen ilk tarayıcı olduğunu duyurunca ben de şöyle bir yazı yazmıştım: If current web application scanners can't find an issue which has been around for 5 years now, aren't they f*** useless? Kibar bir Türkçe ile yazarsak: Eğer piyasadaki web uygulaması tarayıcıları 5 senedir bilinen bir açığı dahi bulamıyorlarsa, ne işe yararlar? Neler kötüydü ya da Hala Kötü - Tarayıcılar çetrefilli güvenlik açıklarını görmezden geldi. Blind SQL Injection'lar Çok genel olmayan XSS açıkları Basit blacklisting yapan filtrelemeler Hafif komplike SQL Injection' lar (mesela gruplama içeren SQL cümleciklerindeki injectionlar) 1 Web Güvenlik Topluluğu www.webguvenligi.org

- False-Positive hayatımızın bir parçası oldu Eğer bir siteyi otomatik olarak test ediyorsanız test sırasında program "SQL Injection" ya da "Remote Code Injection" dediğinde artık sevinmiyorsunuz bile, çünkü biliyorsunuz ki %50 false-positive. Manual olarak açığı onaylamadıkça o açığın gerçek olduğunu bilemiyorsunuz, bu da web uygulaması güvenlik tarayıcılarının sonuç üreten araçlardan çok yarım-akıllı fuzzer' lar gibi algılanmasına neden oldu. False-positive' ler güvenlik uzmanları için kabul edilir hale geldi ve bir çoğu bunları manual kontrol etmeyi işinin doğal bir parçası haline getirdi. Her ne kadar bu güvenlikçiler için büyük bir sorun olmasa da güvenlik konusunda uzman olmayan geliştiriciler bu raporlara güvenmez bir hale geldi. Piyasadaki hiç bir yazılımın bu konuda bir şey yapmaması, bunu bu yazılımlar arasında komik bir tekele dönüştürdü. False-positive olmadan raporlama yapmak imkansız kabul edildi ve diğerlerine göre daha az false-positive raporlayan yazılımlar iyi kabul edilir oldu. - Exploitation ve Tarama bir birinden ayrı tutuldu Sanırım buffer overflow exploitation ile SQL Injection exploitation arasındaki riskleri analiz edemeyen kişiler tarafından insanlar bir şekilde web uygulamalarında exploitation gereksiz ya da tehlikeli olduğu inandırıldı. Bunun dolaylı bir etkisi olarak da bir çok araç bu tip bir özelliği eklemedi. Daha sonra bu açığı farkedince de entegre çözümler yerine eski yazılımlarının yanına bir yazılım yapıştırdılar ki bu yazılımlar genelde sadece "Biz de bu da var" kıvamında kaldı ve sektörde de pek kabul edilmediler. Çözüm entegre olmayacaksa ve kullanıcı HTTP isteğini kopyala yapıştır, yapıp tespit edilen aynı injection ' ı tekrar konfigüre edecekse bu ek yazılımlar yerine daha stabil ve iyi olan sqlmap gibi open source yazılımları tercih etmeye başladı. Bu sırada web uygulaması güvenlik tarayıcısı kullanıcıları artık beklentilerini o kadar düşürdü ki kimse "Bulduğun SQL Injection'ı gene kendi yazılımın ile gelen SQL Injection aracı ile exploit edememek nasıl bir şeydir?" diye sesli bir şekilde sormadılar bile, çünkü bu kayıp bir savaştı. Özellikle son senelerini sadece web uygulaması testine harcayan bir penetration tester olarak bu araçların yetersizliğinden dolayı oluşan vakit kaybını hiç hazmedemedim. Benim kişisel motto'm basitti "Eğer otomatize edilebiliyorsa, otomatize edilmeli. Nokta." Netsparker İşte Netsparker'ı bu tuhaf çekişmesiz sektöre bu tip yenilikler getirmek için geliştirdim. Gelişiminin ileriki dönemlerinde takımımız büyüdü, 3 senenin sonunda yapılamaz denilen ya da kimsenin üşenip yapmadığı şeyleri yaptık. 2 Web Güvenlik Topluluğu www.webguvenligi.org

Teknik Konular, False Positive İlginçtir insanlara ilk olarak Netsparker'ı anlattığımda ve False-Positive raporlamıyor dediğimde ilk üç dakika içerisinde bana kimse inanmıyor, ben de diyalogu şu şekilde devam ettiriyorum: Eğer bir açığı exploit edebiliyorsan o false-positive olabilir mi? Bu sorunun cevabı gelmeden zaten koca sarı bir lamba çakıyor ve kendinizi "Tabii ki ya, ben niye bunu düşünmemiştim" tadında oynaşan iki göz bebeğine bakarken buluyorsunuz. Özetle Netsparker bir güvenlik açığının gerçek olduğunu anlamak için onu exploit ediyor, eğer exploit edebilirse açığı onaylıyor eğer edemezse size burada bir sorun olduğunu ama bu sorunu onaylayamadığını raporluyor. Özetle eğer SQL Injection açığı bulunursa Netsparker SQL Injection üzerinden database versiyonunu alıyor, eğer XSS bulunursa yapılan saldırıyı gerçek bir tarayıcada çalıştırıp enjekte edilen kodun Javascript olarak çalıştırılıp çalıştırılmadığını analiz ediyor. Teorik olarak bu fikir çok basit gözükse de pratikte bulunan bir SQL Injeciton' ın, XSS' in, LFI' ın otomatik olarak expliot için doğru sintaks' ını tespit edip exploit edilmesi o kadar da basit bir olay değil. Her bir onay sistemi başlı başına teknik bir makale konusu, belki sonradan derginin ilerleyen sayılarından birinde onlara değinme şansı buluruz. Bütün bu exploit desteği entegre manuel exploitation ve post-exploitation kontrollerini de izin veriyor. Mesela Netsparker bir SQL Injection bulduğunda otomatik olarak veritabanı kullanıcısının haklarını inceliyor ve eğer database kullanıcısı yönetici haklarına sahipse yeni bir güvenlik açığı raporluyor "Application connected to the Database as an Admin User". Bu da gerçek bir güvenlikçinin yapacağı bir adet az iş demek ve güvenlikçi olmayan birinin belki de hiç bir zaman farkedemeyeceği bir şeyi farkedebilmesi demek. Netsparker'ın bu noktadaki vizyonu o kadar güçlü kü bir sonraki versiyonlarda veritabanının versiyonunu alıp o versiyonda raporlanmış ilgili açıkları listeleyecek ve eğer varsa manual olarak privilige-escelation'a izin verecek. Teknik Konular, Çetrefilli Açıklar Her açık aynı yazılmamıştır. Çılgın bir dünyada, çılgın geliştiricilerin çılgınca geliştirdiği yazılımlarda çılgınca açıklar görmek gayet doğal, ama bu çılgınlığın harici gayet beklenen güvenlik açıkları da görmek mümkün. Mesela şu Blind SQL Injection' ı kaç tane tarayıcı yakalar sizce? SELECT id FROM Users WHERE ( (approved=1 OR builtin_user= 1) AND active=1) AND (username=' $username' AND pass='$pass') Muhtemelen hiç biri, çünkü SQL Cümleciklerinde iki tane grup olması çok anormal bir olay(!). 3 Web Güvenlik Topluluğu www.webguvenligi.org

Ben bunun doğru olmadığını düşündüm ve Netsparker' ı test ederken tek bir güvenlik açığı varyasyonu için 100' den fazla test case' i oluşturduk. Tüm bu testler her versiyondan önce Netsparker ile test ediliyor ve biz de her daim neyi ne kadar bulabildiğimizi biliyoruz. Eğer false-positive'den kötü bir şey varsa o da false-negative yani bir güvenlik açığını tamamen kaçırmaktır. Not düşmek ve gerçekçi olmak lazım ki bu testleri çok uçmadan oluşturduk, çünkü acı bir gerçektir, istek sayısı ile kapsama alanınız arasında bazı ayarlamalar yapmanız gerekiyor. Maalesef bir tarama 1 hafta sürerse de pek bir sonuç getirmeyecektir. Bunu da bir gün daha iyi çözeceğiz ama henüz değil... Teknik Konular, Exploitation Belirttiğim gibi Netsparker zaten hali hazırda bulduğu açıkları nasıl exploit edeceğini biliyor. Bunun anlamı kullanıcılara en basit şekilde exploit imkanı vermek ve ileri seviye güvenlik bilgisi olmayan kullanıcıların bile basitçe güvenlik açığının etkisini görebilmesini sağlamaktı. Şurada eski versiyonların birinde kaydedilen bir reverse-shell exploitation videosu var. Eğer bir geliştiriciye SQL Injection'ın ne kadar kötü bir şey olduğunu göstermek istiyorsanız, bu işinizi görecektir. Mesela Netsparker bir "Arbitrary File Reading" / "LFI" açığı bulduğunda, sizin bu açığı exploit etmeniz için yapmanız gereken tek şey içeriğini görmek istediğiniz dosyanın adını yazmak. Netsparker zaten o dosyanın kaç klasör yukarıda olduğunu ve filtreleri geçmek için ne yapması gerektiğini biliyor. Dolayısıyla mesela siz ".htaccess" yazdığınızda o şu isteği gönderiyor:../../../../.htaccess%00.php Evet siz de bunu yapabilirdiniz ama sizin yapacak daha önemli işleriniz var, mesela mantıksal açıkları bulmak ya da geliştiricilerin enselerine hala "parameterised query" kullanmadıkları için şaplak atmak gibi... Kapanış Otomatik web uygulaması tarayıcıları dünyasında daha yapılacak çok iş var ve hepsi de bir gün yapılacak. Bugün Netsparker resmi olarak satışa duyuruldu ve bundan bir sene sonra eminim ki diğer tüm diğer tarayıcılar da Netsparker' ın açtığı bu yola girmiş ve Netsparker' ı bu yolda takip ediyor olacaklar. Bundan bir sene sonra False-Positive' ler artık herkese kabul edilemez gelecek, URL Rewrite için kuralları kullanıcıya soran tarayıcılar taşa tutulacak, Javascript analiz edemeyen tarayıcılar cadılarla birlikte samanlıklarda yakılacak, exploit desteği olmayan tarayıcılara şaka 4 Web Güvenlik Topluluğu www.webguvenligi.org

gözü ile bakılacak, bir LFI açığı RFI' a çevrilebiliyor mu diye bakmayan tarayıcılar Taksim meydanında sallandırılacak... Bu da benim 2010 yılı için yaptığım tahminler olarak Google kayıtlarında tutulsun... 5 Web Güvenlik Topluluğu www.webguvenligi.org