SBC 2012 - SSL/TLS Attacks & Defenses (Lê Quốc Nhật Đông)
1. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
1
28
DETECT ATTACK AND SECURING SSL/TLS
Lê Quốc Nhật Đông
Hoa Sen University & Lac Tien JSC
lequocnhatdong@msdnvietnam.net
2. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
About me2
+ Student at Hoa Sen University
+ Work for Lac Tien JSC
28
+ FOSS Experience: Linux Server
+ Programmer: Python/Perl/Shell
+ Developer of Webscan Project
facebook.com/nguyenduonghieu.std
linkedin.com/in/lequocnhatdong
Insert an artribary text like your topic name, personal info,... 2
5. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
5
www.ssllabs.com/ssltest
28
webscan.com.vn/ssllab
6. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
Các kĩ thuật detect và khắc phục lỗ hỏng
6
+ BEAST Attack
+ CRIME Attack 28
+ Man-in-the-Middle SSL Attack
+ SSL DoS Attack
+ Strict Transport Security
+ Perfect Forward Secrecy
7. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
BEAST: A Surprising Cryto Attack Against HTTPS
7
+ Là kĩ thuật khai thác thành công điểm yếu của cơ chế mã hóa khối
(CBC – Block Cipher)
28
+ Mục tiêu là decrypt HTTPS request rồi đọc cookie (chứa session ID)
có trong HTTPS request.
+ Attacker sẽ cài 1 agent vào browser của victim. Agent này có khả
năng yêu cầu browser thực hiện request HTTP và đọc nội dung
request này. Agent này có thể đơn giản là 1 đoạn code javascript, cài
vào browser theo cách tấn công XSS.
9. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
9
Demo detect
28 BEAST Vulnerable
10. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
Defense with BEAST Attack
10
Để chống lại BEAST Attack, cần thực hiện các bước bảo mật như sau:
+ Vô hiệu hóa tất cả các Block Cipher như AES_CBC và ưu tiên Stream Cipher như RC4
+ Đặt chế độ thỏa thuận ưu tiên cho String Cipher (như RC4-SHA, RC4-MD5,...)
28
+ Sử dụng giao thức bảo mật TLSv1.1 và TLSv1.2 thay cho TLSv1.0
+ Tắt giao thức SSL 2.0 trong các phiên bản OpenSSL cũ
+ Hạn chế các dạng tấn công Cross Site Scripting (XSS) nhắm vào máy chủ.
+ Apache, mod_ssl và OpenSSL phải được cập nhật phiên bản mới nhất
11. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
Chỉnh sửa tập 11 ssl.conf với các tham số sau:
tin
SSLAllowClientRenegotiation 0
28
SSLHonorCipherOrder on
SSLProtocol -all +SSLv3 +TLSv1 -SSLv2
SSLCipherSuite RC4-SHA:HIGH:!ADH!aNULL
SSLProxyCheckPeerCN on
SSLProxyCheckPeerExpire on
12. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
Nếu máy chủ có hỗ trợ TLS 1.1+ protocol:
12
SSLCipherSuite ECDHE-RSA-AES128-SHA256:AES128-
GCM-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH
28
13. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
Clientside
+ Dùng trình duyệt có13 trợ TLS 1.1 và TLS 1.2.
hỗ
+ Thường xuyên update trình duyệt hiện hành (Browser)
+ Lưu ý các plugin trình duyệt (chẳng hạn như Java, Flash, Silverlight)
+ Đăng xuất (Logout) hoặc đóng trình28
duyệt trang web khi không sử dụng.
+ Không lưu thông tin đăng nhập sau khi đã login thành công tài khoản.
+ Sẽ tốt hơn nếu được sử dụng trình duyệt ở chế độ Private Browsing.
15. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
Toàn bộ giải thuật cụ thể của DH (Diffie-Hellman) là:
- Một số nguyên tố p và 15 phần tử t thuộc Zp , p và t công khại
một
1> Bên A chọn số nguyên tố Ra (0<=Ra<=p-2), giữ kín Ra
2> A tính: Ca= ( t ^ Ra ) mod p, Gửi Ca cho B.
3> B chọn số nguyên tố Rb (0<=Rb<=p-2), giữ kín Rb.
28
4> B tính: Cb= ( t ^ Rb ) mod p, gửi Cb cho A
5> Lúc này, A có Ra và Cb; B có Rb và Ca
A tính K = ( Cb ^ Ra ) mod p
B tính K = ( Ca ^ Rb ) mod p.
Trong đó:
+ Ra, Rb: 2 khoá riêng
+ Ca,Cb: 2 khoá chung
Với 2 giá trị Ra và Rb làm mới ngẫu nhiên theo thời gian nhất định tính bằng giây, ta gọi giải
thuật đó là Ephemeral Diffie-Hellman (EDH hoặc DHE).
16. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
16
Trong phiên bản OpenSSL 1.0.0 đã cập nhật ECDHE và DHE, ta có thể sử dụng lệnh sau:
$ openssl ciphers ECDH
Trong tập tin /etc/apache2/mods-available/ssl.conf, sẽ thay đổi thành như sau:
28
SSLCipherSuite "ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:RC4:HIGH:!
MD5:!aNULL:!EDH:!AESGCM"
Để kiểm tra server trong mạng Internet có hỗ trợ Forward Secrecy hay không, thực hiện lệnh:
$ echo GET | openssl s_client -tls1 -cipher ECDH -connect google.com:443
18. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
18
+ CRIME Attacke chỉ hoạt động khi cả hai trình duyệt và máy chủ hỗ trợ
TLS compression hoặc SPDY
+ Hoạt động với tất cả phiên bản TLS và tất cả Cipher Suites
28
+ Hoạt động ngay cả khi tính năng HSTS đã được cài đặt sẵn.
19. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
Cách duy nhất để ngăn chặn CRIME là vô hiệu hóa TLS Compression hoặc áp dụng
19
một bản vá SPDY ở cả máy chủ và máy khách
Trình duyệt web (browser) cần phải thực hiện nâng cấp phiên bản mới nhất
28
Từ phía máy chủ, cần thay đổi tập tin php.ini như sau:
zlib.output_compression = Off
echo “export OPENSSL_NO_DEFAULT_ZLIB=1” >>/etc/apache2/httpd.conf
20. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
Để detect CRIME Attack hướng server, ta sẽ thực hiện câu lệnh openssl
20
$ echo GET | openssl s_client -connect mobivi.vn:443 -state-showcerts
28
25. SECURITY BOOTCAMP 2012 | Make yourself to be an expert!
Trong tập tin cấu hình ssl.conf nên thiết lập như sau:
25
SSLInsecureRenegotiation off
Thiết lập rule iptables như sau:
28
iptables -A LIMIT_SSL
-p tcp --dport 443
--syn -m state --state NEW
-m hashlimit
--hashlimit-above 120/minute --hashlimit-burst 20
--hashlimit-mode srcip --hashlimit-name ssl-conn
-j DROP