[OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

17
HTTP/2 ve Güvenlik Özgür Alp Mart 2016

Transcript of [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

Page 1: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

HTTP/2 ve

Güvenlik

Özgür Alp

Mart 2016

Page 2: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

HTTP/1.1 ve Değişimi

history HTTP/1.1

• 1999 2016

• 20 KB 5 MB

• HTML JS+FLASH+AJAX

• HTTP HTTPS

2

Page 3: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

HTTP/1.1 ve Değişimi

gnome-screenshot HTTP

3

Kaynak: F5 Networks

Page 4: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

HTTP/1.1 ve Değişimi

gnome-screenshot HTTP/1.1

4

Page 5: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

HTTP/1.1 ve HTTP/2 Benzerlikleri

diff HTTP/1.1 HTTP/2 (-)

• HTTP metotları

– GET, POST

• Durum kodları

– 200, 404, 500

• Resmi adres sistemi

– URI

• HTTP başlıkları ve çerezler

5

Page 6: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

HTTP/1.1 ve HTTP/2 Farklılıkları

diff HTTP/1.1 HTTP/2 (>)

• Düzyazı Binary

• Sıralı istekler Paralel istekler

• Çoklu istekler Tek istek

• GZIP HPACK

• İstek & cevap Sunucudan push özelliği

6

Page 7: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

HTTP/1.1 ve HTTP/2 Farklılıkları

diff HTTP/1.1 HTTP/2 (>)

https://http2.akamai.com/demo

7

Kaynak: https://http2.akamai.com/demo

Page 8: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

Neden HTTP/1.2 Değil?

mv HTTP/1.2 HTTP/2

• Farklı yapıda protokol

• Geriye uyumlu değil

8

Page 9: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

HTTP/2 İnceleme

http2fuzz

9

Kaynak: https://github.com/c0nrad/http2fuzz

Page 10: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

HTTP/2 Uygulamaları

install HTTP/2

10

Kaynak: https://github.com/http2/http2-spec/wiki/Implementations

Page 11: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

Güvenlik Konuları

netstat -lntp | grep HTTP/2

• Protokol hataları

• Şifreleme

• Yeni atak yüzeyleri

• Hizmet engelleme

11

Page 12: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

Güvenlik – Protokol Hataları

iptables -A INPUT -p HTTP/2 --dport 443 -j DROP

12

Kaynak: https://github.com/http2/http2-spec/issues?q=label%3Asecurity+is%3Aclosed

Page 13: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

Güvenlik – Şifreleme

openssl s_server -HTTP/2

• Bilinenin aksine TLS varsayılan değil

– h2: HTTP/2 over TLS

– h2c: HTTP/2 over TCP

• Chrome, Firefox, IE şu anda sadece h2 destekliyor

13

Page 14: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

Güvenlik – Yeni Atak Yüzeyleri

apt-get install HTTP/2

• HPACK

• Sürüm yükseltme/düşürme

• Tutarsız çoğullama

• Kötü biçimlendirilmiş çerçeveler

• İstemciye/sunucuya gelişigüzel veri gönderme

• Ana akış bağlılıkları

• Geçersiz çerçeve durumları

14

Page 15: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

Güvenlik – Hizmet Engelleme

httpflood.py -p HTTP/2 -u target

• Performans artışı

• Uygulama seviyesindeki ataklarda düşüş

15

Page 16: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

Güvenlik – CVE

use auxiliary/scanner/http2/options

16

Kaynak: http://www.cvedetails.com/google-search-results.php?q=HTTP%2F2&sa=Search

Page 17: [OWASP-TR Uygulama Güvenliği Günü 2016] Özgür Alp - HTTP/2 ve Güvenlik

Soru & Cevap

help HTTP/2

17