[owasp-tr uygulama güvenliği günü 2016] Özkan boztaş - ssl protokolüne karşı güncel...

46
SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri Özkan Boztaş Güvenlik Mimari

Upload: owasp-turkiye

Post on 16-Apr-2017

335 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

Özkan BoztaşGüvenlik Mimari

Page 2: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

||

Hakkımda

Matematik (Bilkent 2004)

Cryptography (ODTÜ 2006)

Tübitak - UEKAE (2005-2015)

Türk Telekom - Güvenlik Mimari

Page 3: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

||

Başlıklar

01 SSL ProtokolüNedir/Nerelerde Kullanılır?

Tarihsel Gelişim

Üst seviye tanım.

02 SSL SaldırılarıZayıf Algoritmalar

Implementation

Padding Oracle

TLS compression

Downgrade

03 Zaafiyet Tespit Araçları

04 Korunma Yöntemleri

Page 4: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

||

SSL/TLS ProtokolüHigh Level Definition

01

FootNotePresentaion Title I 4

Page 5: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Sunucu ve uç noktalar arası;

–İletişim Güvenliği

–Kimlik Doğrulama

–Bütünlük koruması

• Kullanıldığı yerler;

–HTTPS

–SSL-VPN

–EAP-TLS

–STARTLS

–LDAPS

–FTPS (SFTP değil!)

Secure Socket Layer (SSL)

Page 6: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

Tarihçe

• Orijinal versiyon Netscape tarafından 1990’ların başında

geliştirildi.

• TLS = IETF standardization of SSL

–SSL 1.0 (?)

–SSL 2.0 (1994 - Netscape)

–SSL 3.0 (1996 - Netscape)

–TLS 1.0 (1999 – IETF)

–TLS 1.1 (2006 – IETF)

–TLS 1.2 (2008 – IETF)

–TLS 1.3 (Draft)

Page 7: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Dr. Taher A. Elgamal (father of SSL)

–Kahire Üniversitesi BSc (1977)

–Stanford MSc (1981)

–Stanford Phd (1984)

–Advisor : Martin Hellman (Açık Anahtarlı

Kripto Sistemleri!)

• 1995-1998 Netscape Corporation

–Chief Scientist

–SSL protokolünü geliştirdi.

Secure Socket Layer (SSL)

Page 8: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

Tarihçe

• SSL 2.0 - 3.0

–Standart Değil!

–Teorik - Pratik Saldırılar

……..

• TLS 1.2

–2008’te standartlaştı.

–Zayıf algoritmalar kaldırıldı(DES)

–(SHA256,AESGCM) desteği

–Pratikte bir saldırı yok.

Page 9: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

Tarihçe

• Gerçeklenme sorunları

–Yazılım

–Donanım

• TSL 1.0 sunucu tarafında kapandığında

cihazların %50’si bağlanamayacak!

Page 10: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

Kriptografi

• Gizlilik

–Açık Anahtarlı Sistemler (Public Key Cryptography)

–Simetrik Sistemler (Symmetric Ciphers)

• Bütünlük

–Özet (hash) Fonksiyonları

• Kimlik Doğrulama

–Mesaj Asıllama Kodları (MAC functions)

–Sayısal İmza

Page 11: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

SSL Protokolü• OSI 5. Katman

• İki katmanlı yapı

–Protocol

–Record

Page 12: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Client Hello

–Kripto kabiliyetlerinin paylaşımı

• Server Hello

–Kripto algoritmalarının seçimi

–Sertifika

• Client Key Exchange

–Premaster Key (Public Key ile yollanır)

• Change Cipher Spec

–Anahtarlar üzerinde anlaşma

• Finished

–Handshake finished.

–Encrypted, includes MAC

SSL Protokolü

Page 13: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Record Katmanı

–Fragmante et

–Sıkıştır (Opsiyonel)

–MAK değerini hesapla

–Şifrele

–Paketle

SSL Protokolü

Page 14: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

||

SSL/TLS Saldırıları

02

FootNotePresentaion Title I 4

Page 15: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Gerçekleme (Implementation) Zaafiyetleri

–OpenSSL /Secure Transport

• Zayıf Simetrik Algoritmalar

–RC4, DES

• Protokol Zaafiyetleri

–Padding Oracle Saldırıları

–TLS Compression Saldırıları

–Downgrade Saldırıları

SSL/TLS Saldırıları

Page 16: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• HEARTBLEED (7 Nisan 2014 - Public)

• OpenSSL 1.0.1 - 1.0.1f versiyonlarında mevcut.

• OpenSSL’in koştuğu sunucudaki hafıza içeriğine uzaktan erişim!

• İnternet tarihindeki en büyük zafiyetlerden biri (Forbes)

İmplementasyon Zaafiyetleri

Page 17: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

İmplementasyon Zaafiyetleri

• TLS Heartbeat extension

• Memory Safety bug

• 64KB’ya kadar hafıza okunabiliyor!

• Gizli anahtarlar, parolalar vb…

Page 18: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

İmplementasyon Zaafiyetleri

• TLS Heartbeat extension

• Memory Safety bug

• 64KB’ya kadar hafıza okunabiliyor!

• Gizli anahtarlar, parolalar vb…

Page 19: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• DES (56 bit)

–TripleDES( 112 – 168 bit)

• RC4

–Dizi Şifreleme

–Onlarca akademik çalışma

–Pratik olarak kırılıyor.

–Kesinlikle kullanılmamalı!

Zayıf Simetrik Şifreleme Algoritmaları

Page 20: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Blok Şifreleme Sistemleri

–Şifrelenecek veri Blok Boyu’nun katı olmalı.

–Değilse Padding (Dolgulama) yapılmalı.

–SSL 3.0’da Padding:

Padding Oracle Saldırıları

Page 21: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• SSL – MAC then ENCRYPT

• Önce Şifre Çözme ardından MAC kontrolü!

• Padding hataları raporlanıyor.

• Yan Kanal Analizleri?

• Bleichenbacher – Crypto 98

–RSA padding

• Serge Vaudenay - Eurocrypt 2002

Padding Oracle Saldırıları

Page 22: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• CBC Şifreleme Modu

Padding Oracle Saldırıları

Page 23: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• CBC Şifre Çözme Modu

Padding Oracle Saldırıları

Page 24: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• (n-1). şifreli blok üzerinde manipülasyon!

Padding Oracle Saldırıları

Page 25: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• (n-1). şifreli blok üzerinde manipülasyon!

• Padding hatası almayana dek manipülasyona devam.

• Anahtarı kullanmadan son bloğun son baytı çözüldü!

Padding Oracle Saldırıları

Page 26: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• (n-1). şifreli blok üzerinde manipülasyon!

• Padding hatası almayana dek manipülasyona devam.

• Anahtarı kullanmadan son bloğun son baytı çözüldü!

Padding Oracle Saldırıları

Page 27: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• BEAST - 2011

• LUCKY13 - 2013

• POODLE – 2014

• En pratik ve tehlikeli saldırılar!

• Önlemler

–Sunucudan padding hatalarınının verilmemesi

–MAC fonksiyonunun her daim çalıştırma.

–IV’yi her pakette değiştirme.

–RC4 kullanma

Padding Oracle Saldırıları

Page 28: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• TLS Data Sıkıştırma (opsiyonel)

• Sunucu tarafında aktiflenir.

• DEFLATE algorithm

–LZ77 (Tekrar eden pattern’lar)

–Huffman Coding

• Teori: Compression and information

leakage of plaintext – FSE 2002

TLS Compression Saldırıları

Page 29: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• LZ77 Algoritması

• Source Compressed Encrypted

• --------------------------------------------------------------------------------

• ABCDEFGHIJKL = ABCDEFGHIJKL = Z@%fkT2r$#!B

• AAAAABCDEFGH = 5ABCDEFGH = jhG*4m,$A

• Saldırgan araya girip sorguya paket injecte eder!

• XYZABCDEFGHIJK = XYZABCDEFGHIJK = At9XeCNVxKt@XZC

• ZZZ[Unknown] = [Unknown] = QvnQSHvQWB3*QR

• YYY[Unknown] = [Unknown] = f*fB&cfcM7sya*u7F

• AAA[Unknown] = [Unknown] = rAW^26uffH%8

• Çıktı uzunluğu yan kanal analizi!

TLS Compression Saldırıları

Page 30: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• MITM tipi saldırı.

• CRIME – 2012 Ekoparty

–Cookie’ler birkaç bin sorgu ile çözülebiliyor.

• BREACH – 2013 Black Hat

–HTTP Compression özelliğini de kullanıyor.

• Önlem:

–Disable TLS Compression.

–Disable HTTP Compression!

–CSRF token

TLS Compression Saldırıları

Page 31: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• RSA Export Ciphers

–U.S Export contol for encryption systems

–512 bit ve altı RSA anahtarı.

–Bu politika sonradan kalkmasına rağmen sunucularda bu opsiyon

senelerce zombi olarak kaldı!

–Client tarafında desteği olmadığından böyle bir istek gelmeyeceği

düşünüldü!

–Başka bir MITM saldırısı!

Downgrade Saldırıları

Page 32: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• OpenSSL / Apple Secure Transport bug

– MITM

– Client istemese de 512 bit RSA kullanımı.

– PC’de 2 haftada kırılıyor

– Cloud Based: 108$ 1 saat (Amazon)

Freak - 2015

Page 33: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

Logjam - 2015

• DH – Export Parametreleri

• 512 bit

• Protokol seviyesinde bir açıklık.

• Cipher süite’ler üzerinde imza yok!

• Paket sonundaki MAC hesabı tutmayacak!

• Finished mesajı gelmeden 512 bit DSA

kırılmak zorunda?

• Pre-computation ile mümkün.

• Dakikalar seviyesinde kırılabiliyor.

Page 34: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

Snowden – NSA

Page 35: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

Downgrade Atakları

• Önlemler:

–Export cipher suitler sunucudan

kaldırılmalı.

–Precoded DH grupları minimum 2048

bit olacak şekilde yeniden

oluşturulmalı.

–Client tarafı – Güncel tarayıcılar 1024

bit altı DH gruplarda sayfayı

göstermiyor!

Page 36: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Sunucular TLS destekli

ancak;

• SSL 2.0 destekleyen başka

bir sunucuda aynı sertifika

kullanılıyorsa.

• Padding oracle saldırısı.

• 1000 TLS, 40,000 SSL 2.0

bağlantısı gerekli.

• GPU’da 18 saatte çözülüyor.

Cross Protocol Saldırıları – DROWN - Mart 2016

Page 37: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

||

SSL/TLS Zaafiyet Tespit Araçları

03

Page 38: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• SSLLABS (Qualys)

–https://www.ssllabs.com/

• SSLScan (Linux)

–Desteklenen cipher süit’ler

–Anahtar boyları

Zaafiyet Tespit Araçları

Page 39: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

||

SSL/TLS Saldırıları Korunma Yöntemleri

04

Page 40: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Protokol Desteği

–SSL 2.0 ve 3.0 kullanılmamalı.

• Cipher Desteği

–RC4, DES gibi zayıf simetrik algoritmalar kullanılmamalı.

–Minimum 2048 bit açık anahtarlı sistemler kullanılmalı.

–Export Cipher Suite’lar kaldırılmalı.

• Forward Secrecy

–Geçici anahtarlı DH algoritmaları kullanılmalı.

–EECDH, EDH

• Zaafiyet Yönetimi

–OpenSSL yamaları

–Güncel Tarayıcılar

–Sunucu/Cihaz yamaları

Önlemler

Page 41: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Mozilla SSL Configuration Generator

–https://mozilla.github.io/server-side-tls/ssl-config-generator/

Güvenli Konfigurasyon

Page 42: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

Mozilla SSL Configuration Generator

Page 43: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Windows Kayıt Defteri – Güvenli SSL Anahtarları

Güvenli Konfigurasyon

Page 44: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

IIS Crypto

FootNote

https://www.nartac.com/Products/IISCrypto

Page 45: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

|

• Donanım cihazları

–TLS 1.0 yukarısı her zaman desteklenmeyebiliyor.

–Poodle TLS (implementasyon zaafiyeti, yama’nın çok geç yayınlanması)

• Windows

–Uygulamalar kendi konfigürasyonlarını force edebiliyor!

–Windows SecureChannel DH 1024 grup üzeri desteklemiyor!

• Java

–Java 7 ve altı DH 1024 grup üzeri desteklemiyor. (Java 8 ile geldi)

• Linux

–Enterprise versiyonlar, eski ve güncellenemeyen OpenSSL sürümleri.

Karşılaşılan Zorluklar

Page 46: [OWASP-TR Uygulama Güvenliği Günü 2016] Özkan Boztaş - SSL Protokolüne Karşı Güncel Saldırılar ve Korunma Yöntemleri

||

Sorular ?