SlideShare a Scribd company logo
1 of 34
Download to read offline
OWASP Türkiye
Güvenlik Buluşmaları
2016
HTTP Güvenlik Başlıkları
ve
Türkiye’deki Sitelerin
Analizi
||
İçerik
 01 Hakkımda
 02 Web Uygulamaları
HTTP nedir
Nasıl çalışır
Same-origin politikası
 03 Kısaca OWASP Top 10
 04 HTTP Security Headers
CSP 1.0 – 2.0 & Demo X-XSS Protection
X-Frame-Options & Demo Strict-Transport-Security
Set-Cookie X-Content-Type-Options
X-Download-Options X-Permitted-Cross-Domain-Policies
Public-Key-Pins
 05 Türkiye’de Durum – Alexa TR Top 500 İncelemesi
 06 Daha Fazlası İçin
 07 Sorular HTTP Security Headers I 3
||
Özgeçmiş
K. Emre KISA
01
Http Security Headers I 4
Kıdemli Uygulama Güvenliği Mimarı
Türk Telekom
2012 - ODTÜ
2008 – Çankaya Üniversitesi
||
Web Uygulamaları
02
HTTP Nedir?
Http Security Headers I 5
|
HTTP bir kaynaktan dağıtılan ve ortak kullanıma açık olan hiperortam
(hypermedia) bilgi sistemleri için uygulama seviyesinde bir iletişim
protokolüdür.
(H)yper (T)ext (T)ransfer (P)rotocol
Http Security Headers I 6
|
HTTP (Cont.)
Http Security Headers I 7
HTTP
Request
HTTP
Processing
HTTP
Response
|
• Farklı kaynaklar birbirinden izole şekilde çalıştırılmalıdır
• Same origin : Aynı protokol + aynı host + aynı port
Same-Origin Politikası
• Same-Origin
||
OWASP TOP 10
03
Http Security Headers I 9
|
OWASP Top 10
Http Security Headers I 10
|| Http Security Headers I 11
HTTP Security Headers
04
|
• Browser tarafından hangi adresten, hangi tipte kaynağın yüklenip,
çalıştırılabileceğini belirlememizi sağlayan bir W3C standardıdır.
Content-Security-Policy 1.0
Http Security Headers I 12
Content-Security-Policy : W3C standartı olarak belirlenen başlıktır,
• Chrome versiyon 25+,
• Firefox versiyon 23+,
• Opera versiyon 19+
• Safari 7+
• Microsoft Edge 12 build 10240+ tarafından desteklenmektedir.
X-Content-Security-Policy :
• Internet Explorer 10+,
• Firefox 4+ sonrası tarafından desteklenmektedir.
X-WebKit-CSP :
• Chrome versiyon 14-25,
• Safari 6+ tarafından desteklenmektedir.
|
• Desteklenen direktifler;
– default-src : Kaynağın tipi belirtilmedikçe, varsayılan olarak kullanılacak direktiftir. (fallback),
– script-src : Hangi script’in çalıştırılabileceğini belirtir,
– object-src : Pluginlerin nereden yüklenebileceğini belirtir, (<object>, <embed> ya da <applet>)
– style-src : CSS dosyalarının nereden yüklenebileceğini belirtir,
– img-src : İmaj dosyalarının nereden yüklenebileceğini belirtir,
– media-src : Video ve ses dosyalarının nereden yüklenebileceğini belirtir, (<audio>, <video>)
– font-src : Font dosyalarının nereden yüklenebileceğini belirtir,
– connect-src : Scriptler aracılığıyla hangi URI’lerin yüklenebileceğini belirtir,
– form-action : Hangi URI’lerin form elementlerinde action olarak tanımlanabileceğini belirtir,
– sandbox : Kaynağa web tarayıcı tarafından uygulanması istenen HTML sandbox politikası belirtir, (same-origin politikası
uygulanması, pop-up, plugin, script engellenmesi)
– plugin-types : çalışıtırılabilir plug-in tiplerini belirler,
– reflected-xss : Kullanıcının web tarayıcısındaki kendi XSS korumasını aktive etmesini isteyebilir, daha sonra göreceğimiz
standard’ın parçası olmayan X-XSS-Protection headerının eşdeğeridir.
– report-uri : Politika uyumsuzluklarının bildirileceği URI belirlenir.
Content-Security-Policy 1.0 (cont.)
Http Security Headers I 13
|
CSPHeader Örnek;
Content-Security-Policy:
// Varsayılan kaynak değerini «none» yaparak, olası hatalı configürasyonların önüne geçiyoruz
default-src none;
// «self» ile Scriptlerin kendi domaininden geldiği sürece çalıştırılabileceğini belirtiyoruz
(Inline javascript çalıştırılmasına, Eval() fonksiyonuna ve Google analytics’e izin vermektedir)
script-src self unsafe-inline unsafe-eval https://ssl.google-analytics.com;
// Pluginlerin yüklenebileceği adresleri belirliyoruz
object-src self;
// CSS’lerin çalışma politikasını belirliyoruz
style-src self;
// İmajların çalışma politikasını belirliyoruz
img-src self;
// Form action’larının çalışma politikasını belirliyoruz
form-action self;
// Ses ve video dosyalarının çalışma politikasını belirliyoruz
media-src self;
// Font’ların çalışma politikasını belirliyoruz
font-src self;
// Scriptlerin bağlanabileceği adres politikasını belirliyoruz
connect-src self;
// Çalıştırılabilir plugin tiplerini belirliyoruz
plugin-types application/pdf application/x-shockwave-flash;
// Web tarayıcını kendi XSS korumasını aktive etmesini sağlıyoruz
reflected-xss block;
Content-Security-Policy 1.0 (cont.)
Http Security Headers I 14
|
Content-Security-Policy 1.0 (cont.)
Http Security Headers I 15
Referans: http://caniuse.com
|
CSP 1.0’da tek tek hangi scriptlerin çalıştırılabileceği seçilememekteydi. Bu durum çoğu zaman yol açtığı problemler
nedeniyle inline scriptlere genel olarak izin verilmesine ve istenilen güvenlik seviyesinin sağlanamamasına neden olmaktaydı.
Content-Security-Policy 2.0
Http Security Headers I 16
CSP 2.0 Nonce kullanımı;
Content-Security-Policy: default-src 'self';
script-src 'self' https://example.com 'nonce-$RANDOM'
Web Tarayıcıya gelen header değeri;
Content-Security-Policy: default-src 'self';
script-src 'self' https://example.com 'nonce-Nc3n83cnSAd3wc3Sasdfn939hc3'
<script>
alert("Blocked because the policy doesn’t have 'unsafe-inline'.")
</script>
<script nonce="EDNnf03nceIOfn39fn3e9h3sdfa">
alert("Still blocked because nonce is wrong.")
</script>
<script nonce="Nc3n83cnSAd3wc3Sasdfn939hc3">
alert("Allowed because nonce is valid.")
</script>
<script src="https://example.com/allowed-because-of-src.js"></script>
<script nonce="EDNnf03nceIOfn39fn3e9h3sdfa"
src="https://elsewhere.com/blocked-because-nonce-is-wrong.js"></script>
<script nonce="Nc3n83cnSAd3wc3Sasdfn939hc3"
src="https://elsewhere.com/allowed-because-nonce-is-valid.js"></script>
Script örnekleri;
|
Content-Security-Policy 2.0
Http Security Headers I 17
|
Content-Security-Policy 2.0
Http Security Headers I 18
Referans: http://caniuse.com
|
• Web tarayıcının kendi XSS (Cross-site-scripting) atak korumasını devreye sokar
• Reflected XSS saldırılarına karşın, browser tarafından pattern matching yapılarak, XSS saldırıları
tespit edilmeye çalışılmaktadır.
• x-xss-protection 1 mode=block
Normalde XSS payloadı tespit ettiğinde, yalnızca ilgili payloadı etkisiz hale getirir ancak block
modda çalıştırıldığında tüm sayfadaki scriptlerin çalıştırılmasını durdurur.
• CSP reflected-xss direktifi ile aynı işleve sahip
• Tarayıcı desteği;
– Internet Explorer 8+ (Internet, Trusted, Restricted güvenlik alanlarında varsayılan değer
olarak aktif, Local Intranet güvenlik alanındaki siteler manuel olarak aktive etmelidir.
–Chrome 4+ varsayılan olarak aktiftir.
X-XSS-Protection
Http Security Headers I 19
|
• Clickjacking / UI Redress saldırılarına karşı koruma sağlar.
• Click + Hijacking = Clickjacking
X-Frame-Options
Http Security Headers I 20
• Same origin : Hem iFrame hem de web sayfası aynı domaindeyse izin verir.
• Deny : Web sayfasının hiçbir şekilde bir iFrame içersinde gösterimine izin vermez.
• Allow from : Yalnızca izin verilen domainlerde iFrame içerisinde gösterime izin verir.
|
X-Frame-Options : DENY
Http Security Headers I 21
|
X-Frame-Options : Web Tarayıcı Desteği
Http Security Headers I 22
|
• Web tarayıcının HTTP ile iletişim kurmasını engeller, yalnızca HTTPS protokolü ile iletişime izin verir.
• Web Tarayıcı HTTP’ye gelen istekleri otomatik olarak HTTPS’ye çevirir. Böylece sitede unutulan HTTP
bağlantıları olsa bile kullanımını engeller.
• Man-In-The-Middle saldırganı kendi ürettiği sertifikayı kurbana kabul ettirse dahi, HSTS başlığı gören
web tarayıcısı kullanıcının siteye bağlanması engelleyecektir.
• Örnek kullanım;
–Strict-Transport-Security: max-age=3153600
En basit kullanım şeklidir
–Strict-Transport-Security: max-age=3153600; includeSubDomains
Alt domainlere de etki eder
–Strict-Transport-Security: max-age=3153600; includeSubDomains; preload
«Preload» listesindedir.
HTTP Strict-Transport-Security
Http Security Headers I 23
|
• «Preload» listesi ile web uygulamanız Web Tarayıcılara HTTPS Only olarak hard-coded
şekilde girer. Liste Chrome tarafından yönetilmektedir. (https://hstspreload.appspot.com)
HTTP Strict-Transport-Security (cont.)
FootNote Http Security Headers I 24
Gereksinimler;
1.Geçerli bir sertifikaya sahip olun
2.Tüm HTTP Trafiğini HTTPS’ye redirect edin
3.Tüm alt domainleri HTTPS’ye çevirin, (DNS kaydında varsa www altdomaini dahil)
4.Ana domainde HSTS başlığını bulundurun:
•Geçerlilik tarihi en az 18 hafta olmalı (10886400 saniye).
• «includeSubdomains» belirteci bulunmalıdır
• «preload» belirteci bulunmalıdır.
• Sayfanızdan dışarıya redirect yönlendirmeleri varsa, ilgili redirect sayfaları için de
(yönlendirme yaptığınız sayfalar değil) HSTS başlığı bulunmalıdır.
|
• Set-cookie $RANDOM;
–Temel olarak Kullanıcının sunucu tarafından tanınması amacıyla kullanılmaktadır.
• Set-cookie $RANDOM; HttpOnly;
– Cookie (çerez) değerinin yalnızca HTTP ile iletilmesine izin verir, Javascript, Flash vb. ile cookie
değerine erişim sağlanamaz.
–Cookie deperinin XSS vb. saldırılarla çalınmasını güçleştirir.
• Set-cookie $RANDOM; HttpOnly; Secure;
–Cookie değerinin yalnızca HTTPS üzerinden, güvenli kanallar ile iletilmesini sağlamaktadır.
Set-Cookie
Http Security Headers I 25
|
• MIME content-sniffing ataklarına karşı koruma sağlar. Internet Explorer 7 ve öncesinde zafiyet
bulunmaktadır.
• Bu ataklar kullanıcının web uygulamasına imaj, doküman vb. dosya yükleyebildiği, diğer
kullanıcıların da bu dosyalara erişebildiği durumlarda kullanılabilmektedir.
• Content Sniffing : Web tarayıcı byte kod analizi ile yüklenen dosyanın tipini bulur. Uygun bir dosyayı
bulduğunda da sunucunun ilettiğinden bağımsız olarak, kendi anladığı formatta göstermeye çalışır
• Saldırı adımları;
–Kötü niyetli birisi GIF dosyasının içerisine HTML kodu koyarak, bunu web uygulamasına yükler
–GIF dosyasını görüntüleyen diğer kullanıcılar, web tarayıcının GIF dosyasına «content sniffing»
yaparak, içerisinde HTML olduğunu anlaması nedeniyle, kötü niyetli HTML’i istemeden çalıştırır.
• Örnek Kullanım : X-Content-Type-Options: nosniff
X-Content-Type-Options
Http Security Headers I 26
|
• Web sunucusundan indirilen bir dosyaya web tarayacı tarafından nasıl davranılacağı belirlenir.
• X-Download-Options: noopen olarak kullanılması durumunda tarayıcı dosyayı download etmekten
başka alternatif sunmaz.
• HTML olarak yüklenen dosyalar Internet Explorer ile «save» yerine «open» edildiğinde, o sitenin
cookie değerlerine erişebilmektedir.
X-Download-Options
FootNote Presentaion Title I 7
X-Download-Options X-Download-Options: noopen
|
• Adobe Flash ve Acrobat Reader programlarının web sitesi üzerinde hangi kaynaklara erişebileceğini
kısıtlamak için kullanılır.
• Örnek kullanım;
–X-Permitted-Cross-Domain-Policies : none
Cross-domain erişime izin verilmez.
–X-Permitted-Cross-Domain-Policies : master-only
Yalnızca ilgili domaine ait cross-domain.xml’in okunmasına izin verecektir.
X-Permitted-Cross-Domain-Policies
Http Security Headers I 28
<?xml version="1.0" encoding="UTF-8"?>
<cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd">
<allow-access-from domain="twitter.com" />
<allow-access-from domain="api.twitter.com" />
<allow-access-from domain="search.twitter.com" />
<allow-access-from domain="static.twitter.com" />
<site-control permitted-cross-domain-policies="master-only"/>
<allow-http-request-headers-from domain="*.twitter.com" headers="*" secure="true"/>
</cross-domain-policy>
• Twitter cross-domain.xml
|
• Certificate Pinning : Sertifikanın istemci tarafından doğrulanması işlemidir.
• Man-In-The-Middle saldırılarına karşı, saldırgan sahte bir sertifika ile HTTPS trafiğini izlemek üzere
araya girmeyi başarsa dahi, istemci tarafında sertifika hash doğrulamasından geçirilmektedir.
• = Base64 (sha256(sertifika))
• Public-Key-Pins: max-age=3000;
pin-sha256="d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM=";
• Tarayıcı desteği;
Public-Key-Pins
FootNote Presentaion Title I 7
||
Türkiye’de Durum
05
Http Security Headers I 30
| Http Security Headers I 31
Alexa Türkiye Top 500’den, Türkiye odaklı(*) Top 348 site
(*) Türkiye odaklı sitelerin hesaplanmasında, ilgili siteye gelen trafiğe göre, ilk 5’de Türkiye olanlar hesaplamaya dahil edilmiştir.
| Http Security Headers I 32
Alexa Türkiye Top 500’den, Türkiye odaklı(*) Top 348 site
Sektörel Dağılım
(*) Türkiye odaklı sitelerin hesaplanmasında, ilgili siteye gelen trafiğe göre, ilk 5’de Türkiye olanlar hesaplamaya dahil edilmiştir.
|| Http Security Headers I 33
Daha Fazlası İçin
06
https://securityheaders.io/
||
Teşekkürler
Http Security Headers I 34
07
Sorular?

More Related Content

What's hot

Binary Modification [Patching]
Binary Modification [Patching]Binary Modification [Patching]
Binary Modification [Patching]
BGA Cyber Security
 
W3af ile Web Uygulama Güvenlik Testleri – II
W3af ile Web Uygulama Güvenlik Testleri – IIW3af ile Web Uygulama Güvenlik Testleri – II
W3af ile Web Uygulama Güvenlik Testleri – II
BGA Cyber Security
 
Web Sunucularına Yönelik DDoS Saldırıları
Web Sunucularına Yönelik DDoS SaldırılarıWeb Sunucularına Yönelik DDoS Saldırıları
Web Sunucularına Yönelik DDoS Saldırıları
BGA Cyber Security
 

What's hot (20)

Holynix v1
Holynix v1Holynix v1
Holynix v1
 
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit AşamasıBeyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
 
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14,  Suleyman OzarslanWAF atlatma yontemleri, Hacktrick14,  Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
 
Web Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liğiWeb Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liği
 
ISTSEC 2013 - Fuzzy Tabanlı Zaafiyet Araştırması
ISTSEC 2013 - Fuzzy Tabanlı Zaafiyet AraştırmasıISTSEC 2013 - Fuzzy Tabanlı Zaafiyet Araştırması
ISTSEC 2013 - Fuzzy Tabanlı Zaafiyet Araştırması
 
Metasploit El Kitabı
Metasploit El KitabıMetasploit El Kitabı
Metasploit El Kitabı
 
Windows 7 Ortamında Zararlı Yazılım Analizi
Windows 7 Ortamında Zararlı Yazılım AnaliziWindows 7 Ortamında Zararlı Yazılım Analizi
Windows 7 Ortamında Zararlı Yazılım Analizi
 
Content security policy (csp)
Content security policy (csp)Content security policy (csp)
Content security policy (csp)
 
Binary Modification [Patching]
Binary Modification [Patching]Binary Modification [Patching]
Binary Modification [Patching]
 
Beyaz Şapkalı Hacker CEH Eğitimi - Parola Kırma Saldırıları
Beyaz Şapkalı Hacker CEH Eğitimi - Parola Kırma SaldırılarıBeyaz Şapkalı Hacker CEH Eğitimi - Parola Kırma Saldırıları
Beyaz Şapkalı Hacker CEH Eğitimi - Parola Kırma Saldırıları
 
W3af ile Web Uygulama Güvenlik Testleri – II
W3af ile Web Uygulama Güvenlik Testleri – IIW3af ile Web Uygulama Güvenlik Testleri – II
W3af ile Web Uygulama Güvenlik Testleri – II
 
Beyaz Şapkalı Hacker CEH Eğitimi - Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Exploit AşamasıBeyaz Şapkalı Hacker CEH Eğitimi - Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Exploit Aşaması
 
Beyaz Şapkalı Hacker CEH Eğitimi - Zafiyet Keşfi
Beyaz Şapkalı Hacker CEH Eğitimi - Zafiyet KeşfiBeyaz Şapkalı Hacker CEH Eğitimi - Zafiyet Keşfi
Beyaz Şapkalı Hacker CEH Eğitimi - Zafiyet Keşfi
 
BackTrack Linux-101 Eğitimi
BackTrack Linux-101 EğitimiBackTrack Linux-101 Eğitimi
BackTrack Linux-101 Eğitimi
 
Web Sunucularına Yönelik DDoS Saldırıları
Web Sunucularına Yönelik DDoS SaldırılarıWeb Sunucularına Yönelik DDoS Saldırıları
Web Sunucularına Yönelik DDoS Saldırıları
 
Puppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi OtomasyonuPuppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi Otomasyonu
 
Her yönüyle linux sistem ve network güvenliği
Her yönüyle linux sistem ve network güvenliğiHer yönüyle linux sistem ve network güvenliği
Her yönüyle linux sistem ve network güvenliği
 
Nginx sunu 2014
Nginx sunu 2014Nginx sunu 2014
Nginx sunu 2014
 
Kali linux
Kali linuxKali linux
Kali linux
 
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
LINUX, WINDOWS VE AĞ SİSTEMLERİ SIZMA TESTLERİ
 

Viewers also liked (8)

[OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik
[OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik[OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik
[OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik
 
[OWASP-TR Uygulama Güvenliği Günü 2016] Gökmen Güreşçi - Web Uygulamalarında ...
[OWASP-TR Uygulama Güvenliği Günü 2016] Gökmen Güreşçi - Web Uygulamalarında ...[OWASP-TR Uygulama Güvenliği Günü 2016] Gökmen Güreşçi - Web Uygulamalarında ...
[OWASP-TR Uygulama Güvenliği Günü 2016] Gökmen Güreşçi - Web Uygulamalarında ...
 
Web Uygulamalarının Hacklenmesi
Web Uygulamalarının HacklenmesiWeb Uygulamalarının Hacklenmesi
Web Uygulamalarının Hacklenmesi
 
Web for Pentester 2 ile Web Uygulama Güvenligine Giris
Web for Pentester 2 ile Web Uygulama Güvenligine GirisWeb for Pentester 2 ile Web Uygulama Güvenligine Giris
Web for Pentester 2 ile Web Uygulama Güvenligine Giris
 
Memcache Injection (Hacktrick'15)
Memcache Injection (Hacktrick'15)Memcache Injection (Hacktrick'15)
Memcache Injection (Hacktrick'15)
 
Bir Şeyi Hacklemek (DEU ACM Bilişim Günleri 2016)
Bir Şeyi Hacklemek (DEU ACM Bilişim Günleri 2016)Bir Şeyi Hacklemek (DEU ACM Bilişim Günleri 2016)
Bir Şeyi Hacklemek (DEU ACM Bilişim Günleri 2016)
 
Web Uygulama Güvenliği (Akademik Bilişim 2016)
Web Uygulama Güvenliği (Akademik Bilişim 2016)Web Uygulama Güvenliği (Akademik Bilişim 2016)
Web Uygulama Güvenliği (Akademik Bilişim 2016)
 
Web Uygulama Pentest Eğitimi
Web Uygulama Pentest EğitimiWeb Uygulama Pentest Eğitimi
Web Uygulama Pentest Eğitimi
 

Similar to [OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ve Türkiyedeki Sitelerin Analizi

Web Application Firewall Tercih Rehberi
Web Application Firewall Tercih RehberiWeb Application Firewall Tercih Rehberi
Web Application Firewall Tercih Rehberi
BGA Cyber Security
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Security
mtimur
 
Web servisi güvenliği
Web servisi güvenliğiWeb servisi güvenliği
Web servisi güvenliği
Emrah Gürcan
 
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
BGA Cyber Security
 
Packet-O-Matic:Network Forensic Aracı
Packet-O-Matic:Network Forensic AracıPacket-O-Matic:Network Forensic Aracı
Packet-O-Matic:Network Forensic Aracı
BGA Cyber Security
 
Yazılım Güvenliği Temelleri
Yazılım Güvenliği TemelleriYazılım Güvenliği Temelleri
Yazılım Güvenliği Temelleri
BGA Cyber Security
 

Similar to [OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ve Türkiyedeki Sitelerin Analizi (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
 
Mobil Uygulama Güvenlik Testlerinde Sertifika Sabitleme Özelliğinin Atlatılması
Mobil Uygulama Güvenlik Testlerinde Sertifika Sabitleme Özelliğinin AtlatılmasıMobil Uygulama Güvenlik Testlerinde Sertifika Sabitleme Özelliğinin Atlatılması
Mobil Uygulama Güvenlik Testlerinde Sertifika Sabitleme Özelliğinin Atlatılması
 
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMISINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
SINIFLANDIRMA TEMELLİ KORELASYON YAKLAŞIMI
 
45965 php-source-code-analysis
45965 php-source-code-analysis45965 php-source-code-analysis
45965 php-source-code-analysis
 
Guvenli Flash Uygulamalari
Guvenli Flash UygulamalariGuvenli Flash Uygulamalari
Guvenli Flash Uygulamalari
 
Web Application Firewall Tercih Rehberi
Web Application Firewall Tercih RehberiWeb Application Firewall Tercih Rehberi
Web Application Firewall Tercih Rehberi
 
Curl
CurlCurl
Curl
 
Dogus University-Web Application Security
Dogus University-Web Application SecurityDogus University-Web Application Security
Dogus University-Web Application Security
 
HTTPKullaniciAsillamaveYetkilendirme.ppt
HTTPKullaniciAsillamaveYetkilendirme.pptHTTPKullaniciAsillamaveYetkilendirme.ppt
HTTPKullaniciAsillamaveYetkilendirme.ppt
 
Oracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 Istanbul
Oracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 IstanbulOracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 Istanbul
Oracle Cloud Servisleri Uygulaması- Oracle Cloud Day 2015 Istanbul
 
Web servisi güvenliği
Web servisi güvenliğiWeb servisi güvenliği
Web servisi güvenliği
 
Siber Güvenlikte Ofansif Yaklaşımlar
Siber Güvenlikte Ofansif YaklaşımlarSiber Güvenlikte Ofansif Yaklaşımlar
Siber Güvenlikte Ofansif Yaklaşımlar
 
ZERO BANK WEB APP SECURITY BULGULARI
ZERO BANK WEB APP SECURITY BULGULARIZERO BANK WEB APP SECURITY BULGULARI
ZERO BANK WEB APP SECURITY BULGULARI
 
Spring Web Service
Spring Web ServiceSpring Web Service
Spring Web Service
 
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
 
Packet-O-Matic:Network Forensic Aracı
Packet-O-Matic:Network Forensic AracıPacket-O-Matic:Network Forensic Aracı
Packet-O-Matic:Network Forensic Aracı
 
Asp.net ajax
Asp.net ajaxAsp.net ajax
Asp.net ajax
 
Yazılım Güvenliği Temelleri
Yazılım Güvenliği TemelleriYazılım Güvenliği Temelleri
Yazılım Güvenliği Temelleri
 
Security Misconfiguration (Güvenlik Yalnış Yapılandırma)
Security Misconfiguration (Güvenlik Yalnış Yapılandırma)Security Misconfiguration (Güvenlik Yalnış Yapılandırma)
Security Misconfiguration (Güvenlik Yalnış Yapılandırma)
 
WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ WEB ve MOBİL SIZMA TESTLERİ
WEB ve MOBİL SIZMA TESTLERİ
 

More from OWASP Turkiye

More from OWASP Turkiye (9)

[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Yalçın Çakmak - Social Media Apps Fo...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Yalçın Çakmak - Social Media Apps Fo...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Yalçın Çakmak - Social Media Apps Fo...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Yalçın Çakmak - Social Media Apps Fo...
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ömer Faruk Acar - Mobil Uygulamalar ...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ömer Faruk Acar - Mobil Uygulamalar ...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ömer Faruk Acar - Mobil Uygulamalar ...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ömer Faruk Acar - Mobil Uygulamalar ...
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Bahtiyar Bircan - PwnPhone: Cepteki ...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Bahtiyar Bircan - PwnPhone: Cepteki ...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Bahtiyar Bircan - PwnPhone: Cepteki ...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Bahtiyar Bircan - PwnPhone: Cepteki ...
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Oğuzhan Topgül - iOS'da Zararlı Yazı...
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Mehmet Sabır Kiraz & Osmanbey Uzunko...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Mehmet Sabır Kiraz & Osmanbey Uzunko...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Mehmet Sabır Kiraz & Osmanbey Uzunko...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Mehmet Sabır Kiraz & Osmanbey Uzunko...
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Sertel Şıracı - Mobil Uygulama Güven...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Sertel Şıracı - Mobil Uygulama Güven...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Sertel Şıracı - Mobil Uygulama Güven...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Sertel Şıracı - Mobil Uygulama Güven...
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile App...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile App...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile App...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Ahmet Can Kan - Attacking Mobile App...
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Bakır Emre - Cebinizdeki Hırsız
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Bakır Emre - Cebinizdeki Hırsız[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Bakır Emre - Cebinizdeki Hırsız
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Bakır Emre - Cebinizdeki Hırsız
 
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Fatih Emiral - Android Uygulamalara ...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Fatih Emiral - Android Uygulamalara ...[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Fatih Emiral - Android Uygulamalara ...
[OWASP-TR Mobil Güvenlik Çalıştayı 2015] Fatih Emiral - Android Uygulamalara ...
 

[OWASP-TR Uygulama Güvenliği Günü 2016] Emre Kısa - HTTP Güvenlik Başlıkları ve Türkiyedeki Sitelerin Analizi

  • 3. || İçerik  01 Hakkımda  02 Web Uygulamaları HTTP nedir Nasıl çalışır Same-origin politikası  03 Kısaca OWASP Top 10  04 HTTP Security Headers CSP 1.0 – 2.0 & Demo X-XSS Protection X-Frame-Options & Demo Strict-Transport-Security Set-Cookie X-Content-Type-Options X-Download-Options X-Permitted-Cross-Domain-Policies Public-Key-Pins  05 Türkiye’de Durum – Alexa TR Top 500 İncelemesi  06 Daha Fazlası İçin  07 Sorular HTTP Security Headers I 3
  • 4. || Özgeçmiş K. Emre KISA 01 Http Security Headers I 4 Kıdemli Uygulama Güvenliği Mimarı Türk Telekom 2012 - ODTÜ 2008 – Çankaya Üniversitesi
  • 6. | HTTP bir kaynaktan dağıtılan ve ortak kullanıma açık olan hiperortam (hypermedia) bilgi sistemleri için uygulama seviyesinde bir iletişim protokolüdür. (H)yper (T)ext (T)ransfer (P)rotocol Http Security Headers I 6
  • 7. | HTTP (Cont.) Http Security Headers I 7 HTTP Request HTTP Processing HTTP Response
  • 8. | • Farklı kaynaklar birbirinden izole şekilde çalıştırılmalıdır • Same origin : Aynı protokol + aynı host + aynı port Same-Origin Politikası • Same-Origin
  • 9. || OWASP TOP 10 03 Http Security Headers I 9
  • 10. | OWASP Top 10 Http Security Headers I 10
  • 11. || Http Security Headers I 11 HTTP Security Headers 04
  • 12. | • Browser tarafından hangi adresten, hangi tipte kaynağın yüklenip, çalıştırılabileceğini belirlememizi sağlayan bir W3C standardıdır. Content-Security-Policy 1.0 Http Security Headers I 12 Content-Security-Policy : W3C standartı olarak belirlenen başlıktır, • Chrome versiyon 25+, • Firefox versiyon 23+, • Opera versiyon 19+ • Safari 7+ • Microsoft Edge 12 build 10240+ tarafından desteklenmektedir. X-Content-Security-Policy : • Internet Explorer 10+, • Firefox 4+ sonrası tarafından desteklenmektedir. X-WebKit-CSP : • Chrome versiyon 14-25, • Safari 6+ tarafından desteklenmektedir.
  • 13. | • Desteklenen direktifler; – default-src : Kaynağın tipi belirtilmedikçe, varsayılan olarak kullanılacak direktiftir. (fallback), – script-src : Hangi script’in çalıştırılabileceğini belirtir, – object-src : Pluginlerin nereden yüklenebileceğini belirtir, (<object>, <embed> ya da <applet>) – style-src : CSS dosyalarının nereden yüklenebileceğini belirtir, – img-src : İmaj dosyalarının nereden yüklenebileceğini belirtir, – media-src : Video ve ses dosyalarının nereden yüklenebileceğini belirtir, (<audio>, <video>) – font-src : Font dosyalarının nereden yüklenebileceğini belirtir, – connect-src : Scriptler aracılığıyla hangi URI’lerin yüklenebileceğini belirtir, – form-action : Hangi URI’lerin form elementlerinde action olarak tanımlanabileceğini belirtir, – sandbox : Kaynağa web tarayıcı tarafından uygulanması istenen HTML sandbox politikası belirtir, (same-origin politikası uygulanması, pop-up, plugin, script engellenmesi) – plugin-types : çalışıtırılabilir plug-in tiplerini belirler, – reflected-xss : Kullanıcının web tarayıcısındaki kendi XSS korumasını aktive etmesini isteyebilir, daha sonra göreceğimiz standard’ın parçası olmayan X-XSS-Protection headerının eşdeğeridir. – report-uri : Politika uyumsuzluklarının bildirileceği URI belirlenir. Content-Security-Policy 1.0 (cont.) Http Security Headers I 13
  • 14. | CSPHeader Örnek; Content-Security-Policy: // Varsayılan kaynak değerini «none» yaparak, olası hatalı configürasyonların önüne geçiyoruz default-src none; // «self» ile Scriptlerin kendi domaininden geldiği sürece çalıştırılabileceğini belirtiyoruz (Inline javascript çalıştırılmasına, Eval() fonksiyonuna ve Google analytics’e izin vermektedir) script-src self unsafe-inline unsafe-eval https://ssl.google-analytics.com; // Pluginlerin yüklenebileceği adresleri belirliyoruz object-src self; // CSS’lerin çalışma politikasını belirliyoruz style-src self; // İmajların çalışma politikasını belirliyoruz img-src self; // Form action’larının çalışma politikasını belirliyoruz form-action self; // Ses ve video dosyalarının çalışma politikasını belirliyoruz media-src self; // Font’ların çalışma politikasını belirliyoruz font-src self; // Scriptlerin bağlanabileceği adres politikasını belirliyoruz connect-src self; // Çalıştırılabilir plugin tiplerini belirliyoruz plugin-types application/pdf application/x-shockwave-flash; // Web tarayıcını kendi XSS korumasını aktive etmesini sağlıyoruz reflected-xss block; Content-Security-Policy 1.0 (cont.) Http Security Headers I 14
  • 15. | Content-Security-Policy 1.0 (cont.) Http Security Headers I 15 Referans: http://caniuse.com
  • 16. | CSP 1.0’da tek tek hangi scriptlerin çalıştırılabileceği seçilememekteydi. Bu durum çoğu zaman yol açtığı problemler nedeniyle inline scriptlere genel olarak izin verilmesine ve istenilen güvenlik seviyesinin sağlanamamasına neden olmaktaydı. Content-Security-Policy 2.0 Http Security Headers I 16 CSP 2.0 Nonce kullanımı; Content-Security-Policy: default-src 'self'; script-src 'self' https://example.com 'nonce-$RANDOM' Web Tarayıcıya gelen header değeri; Content-Security-Policy: default-src 'self'; script-src 'self' https://example.com 'nonce-Nc3n83cnSAd3wc3Sasdfn939hc3' <script> alert("Blocked because the policy doesn’t have 'unsafe-inline'.") </script> <script nonce="EDNnf03nceIOfn39fn3e9h3sdfa"> alert("Still blocked because nonce is wrong.") </script> <script nonce="Nc3n83cnSAd3wc3Sasdfn939hc3"> alert("Allowed because nonce is valid.") </script> <script src="https://example.com/allowed-because-of-src.js"></script> <script nonce="EDNnf03nceIOfn39fn3e9h3sdfa" src="https://elsewhere.com/blocked-because-nonce-is-wrong.js"></script> <script nonce="Nc3n83cnSAd3wc3Sasdfn939hc3" src="https://elsewhere.com/allowed-because-nonce-is-valid.js"></script> Script örnekleri;
  • 18. | Content-Security-Policy 2.0 Http Security Headers I 18 Referans: http://caniuse.com
  • 19. | • Web tarayıcının kendi XSS (Cross-site-scripting) atak korumasını devreye sokar • Reflected XSS saldırılarına karşın, browser tarafından pattern matching yapılarak, XSS saldırıları tespit edilmeye çalışılmaktadır. • x-xss-protection 1 mode=block Normalde XSS payloadı tespit ettiğinde, yalnızca ilgili payloadı etkisiz hale getirir ancak block modda çalıştırıldığında tüm sayfadaki scriptlerin çalıştırılmasını durdurur. • CSP reflected-xss direktifi ile aynı işleve sahip • Tarayıcı desteği; – Internet Explorer 8+ (Internet, Trusted, Restricted güvenlik alanlarında varsayılan değer olarak aktif, Local Intranet güvenlik alanındaki siteler manuel olarak aktive etmelidir. –Chrome 4+ varsayılan olarak aktiftir. X-XSS-Protection Http Security Headers I 19
  • 20. | • Clickjacking / UI Redress saldırılarına karşı koruma sağlar. • Click + Hijacking = Clickjacking X-Frame-Options Http Security Headers I 20 • Same origin : Hem iFrame hem de web sayfası aynı domaindeyse izin verir. • Deny : Web sayfasının hiçbir şekilde bir iFrame içersinde gösterimine izin vermez. • Allow from : Yalnızca izin verilen domainlerde iFrame içerisinde gösterime izin verir.
  • 21. | X-Frame-Options : DENY Http Security Headers I 21
  • 22. | X-Frame-Options : Web Tarayıcı Desteği Http Security Headers I 22
  • 23. | • Web tarayıcının HTTP ile iletişim kurmasını engeller, yalnızca HTTPS protokolü ile iletişime izin verir. • Web Tarayıcı HTTP’ye gelen istekleri otomatik olarak HTTPS’ye çevirir. Böylece sitede unutulan HTTP bağlantıları olsa bile kullanımını engeller. • Man-In-The-Middle saldırganı kendi ürettiği sertifikayı kurbana kabul ettirse dahi, HSTS başlığı gören web tarayıcısı kullanıcının siteye bağlanması engelleyecektir. • Örnek kullanım; –Strict-Transport-Security: max-age=3153600 En basit kullanım şeklidir –Strict-Transport-Security: max-age=3153600; includeSubDomains Alt domainlere de etki eder –Strict-Transport-Security: max-age=3153600; includeSubDomains; preload «Preload» listesindedir. HTTP Strict-Transport-Security Http Security Headers I 23
  • 24. | • «Preload» listesi ile web uygulamanız Web Tarayıcılara HTTPS Only olarak hard-coded şekilde girer. Liste Chrome tarafından yönetilmektedir. (https://hstspreload.appspot.com) HTTP Strict-Transport-Security (cont.) FootNote Http Security Headers I 24 Gereksinimler; 1.Geçerli bir sertifikaya sahip olun 2.Tüm HTTP Trafiğini HTTPS’ye redirect edin 3.Tüm alt domainleri HTTPS’ye çevirin, (DNS kaydında varsa www altdomaini dahil) 4.Ana domainde HSTS başlığını bulundurun: •Geçerlilik tarihi en az 18 hafta olmalı (10886400 saniye). • «includeSubdomains» belirteci bulunmalıdır • «preload» belirteci bulunmalıdır. • Sayfanızdan dışarıya redirect yönlendirmeleri varsa, ilgili redirect sayfaları için de (yönlendirme yaptığınız sayfalar değil) HSTS başlığı bulunmalıdır.
  • 25. | • Set-cookie $RANDOM; –Temel olarak Kullanıcının sunucu tarafından tanınması amacıyla kullanılmaktadır. • Set-cookie $RANDOM; HttpOnly; – Cookie (çerez) değerinin yalnızca HTTP ile iletilmesine izin verir, Javascript, Flash vb. ile cookie değerine erişim sağlanamaz. –Cookie deperinin XSS vb. saldırılarla çalınmasını güçleştirir. • Set-cookie $RANDOM; HttpOnly; Secure; –Cookie değerinin yalnızca HTTPS üzerinden, güvenli kanallar ile iletilmesini sağlamaktadır. Set-Cookie Http Security Headers I 25
  • 26. | • MIME content-sniffing ataklarına karşı koruma sağlar. Internet Explorer 7 ve öncesinde zafiyet bulunmaktadır. • Bu ataklar kullanıcının web uygulamasına imaj, doküman vb. dosya yükleyebildiği, diğer kullanıcıların da bu dosyalara erişebildiği durumlarda kullanılabilmektedir. • Content Sniffing : Web tarayıcı byte kod analizi ile yüklenen dosyanın tipini bulur. Uygun bir dosyayı bulduğunda da sunucunun ilettiğinden bağımsız olarak, kendi anladığı formatta göstermeye çalışır • Saldırı adımları; –Kötü niyetli birisi GIF dosyasının içerisine HTML kodu koyarak, bunu web uygulamasına yükler –GIF dosyasını görüntüleyen diğer kullanıcılar, web tarayıcının GIF dosyasına «content sniffing» yaparak, içerisinde HTML olduğunu anlaması nedeniyle, kötü niyetli HTML’i istemeden çalıştırır. • Örnek Kullanım : X-Content-Type-Options: nosniff X-Content-Type-Options Http Security Headers I 26
  • 27. | • Web sunucusundan indirilen bir dosyaya web tarayacı tarafından nasıl davranılacağı belirlenir. • X-Download-Options: noopen olarak kullanılması durumunda tarayıcı dosyayı download etmekten başka alternatif sunmaz. • HTML olarak yüklenen dosyalar Internet Explorer ile «save» yerine «open» edildiğinde, o sitenin cookie değerlerine erişebilmektedir. X-Download-Options FootNote Presentaion Title I 7 X-Download-Options X-Download-Options: noopen
  • 28. | • Adobe Flash ve Acrobat Reader programlarının web sitesi üzerinde hangi kaynaklara erişebileceğini kısıtlamak için kullanılır. • Örnek kullanım; –X-Permitted-Cross-Domain-Policies : none Cross-domain erişime izin verilmez. –X-Permitted-Cross-Domain-Policies : master-only Yalnızca ilgili domaine ait cross-domain.xml’in okunmasına izin verecektir. X-Permitted-Cross-Domain-Policies Http Security Headers I 28 <?xml version="1.0" encoding="UTF-8"?> <cross-domain-policy xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.adobe.com/xml/schemas/PolicyFile.xsd"> <allow-access-from domain="twitter.com" /> <allow-access-from domain="api.twitter.com" /> <allow-access-from domain="search.twitter.com" /> <allow-access-from domain="static.twitter.com" /> <site-control permitted-cross-domain-policies="master-only"/> <allow-http-request-headers-from domain="*.twitter.com" headers="*" secure="true"/> </cross-domain-policy> • Twitter cross-domain.xml
  • 29. | • Certificate Pinning : Sertifikanın istemci tarafından doğrulanması işlemidir. • Man-In-The-Middle saldırılarına karşı, saldırgan sahte bir sertifika ile HTTPS trafiğini izlemek üzere araya girmeyi başarsa dahi, istemci tarafında sertifika hash doğrulamasından geçirilmektedir. • = Base64 (sha256(sertifika)) • Public-Key-Pins: max-age=3000; pin-sha256="d6qzRu9zOECb90Uez27xWltNsj0e1Md7GkYYkVoZWmM="; • Tarayıcı desteği; Public-Key-Pins FootNote Presentaion Title I 7
  • 31. | Http Security Headers I 31 Alexa Türkiye Top 500’den, Türkiye odaklı(*) Top 348 site (*) Türkiye odaklı sitelerin hesaplanmasında, ilgili siteye gelen trafiğe göre, ilk 5’de Türkiye olanlar hesaplamaya dahil edilmiştir.
  • 32. | Http Security Headers I 32 Alexa Türkiye Top 500’den, Türkiye odaklı(*) Top 348 site Sektörel Dağılım (*) Türkiye odaklı sitelerin hesaplanmasında, ilgili siteye gelen trafiğe göre, ilk 5’de Türkiye olanlar hesaplamaya dahil edilmiştir.
  • 33. || Http Security Headers I 33 Daha Fazlası İçin 06 https://securityheaders.io/