บทนำ (Overview)
บทความนี้กล่าวถึงวิธีการตรวจสอบ “Sever” ที่ใช้ “HTTPs” ว่ามีช่องโหว่ “POODLE” หรือไม่ โดยใช้เครื่องมือที่สามารถหาดาวน์โหลดได้ทันทีทั้ง “offline” และ “online”
ช่องโหว่ “Poodle” – CVE-20140-3566 ย่อมาจาก “Padding Oracle On Downgraded Legacy Encryption” เป็นช่องโหว่ของ “Protocol SSL version 3” ที่ส่งผลให้สามารถถอดรหัสข้อมูลที่เข้ารหัสไว้ ระหว่างรับส่งกันกับ “Server” ได้ เช่นข้อมูล Login ข้อมูลธุรกรรมทางการเงิน และ”SSL” สามารถใช้ ได้ทั้ง “HTTPs” และ “FTPs”
ขั้นตอน (Steps)
On the Web
- เข้าไปที่ Web site (https://www.ssllabs.com/ssltest/)
- จากนั้นใส่ “URL” ที่ต้องการตรวจสอบไปที่ “Domain name”
- สามารถตรวจสอบได้ว่า Server มีช่องโหว่ POODLE หรือไม่
Nmap
- เราสามารถใช้โปรแกรม “NMAP” สำหรับตรวจสอบ “POODLE” ได้โดยการดาวน์โหลดและติดตั้งจาก (https://nmap.org/download.html)
- จากนั้นเรียกใช้งานโปรแกรมจาก “command prompt” และใช้คำสั่งดังนี้สำหรับการ “Scan”
nmap -sV --version-light --script ssl-poodle -p 443 xxx.com
- ถ้ามีช่องโหว่จะแสดงผลตามข้างล่าง
Starting Nmap 6.49BETA4 ( https://nmap.org ) at 2015-09-17 22:23 SE Asia Standard Time Nmap scan report for xxx.com (xxx.xxx.xxx.111) Host is up (0.052s latency). rDNS record for xxx.xxx.xxx.111: ec2-52-74-32-111.ap-southeast-1.compute.amazonaws.com PORT STATE SERVICE VERSION 443/tcp open ssl/http Apache httpd 2.2.22 ((Ubuntu)) | ssl-poodle: | VULNERABLE: | SSL POODLE information leak | State: LIKELY VULNERABLE | IDs: CVE:CVE-2014-3566 OSVDB:113251 | The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and | other products, uses nondeterministic CBC padding, which makes it easier | for man-in-the-middle attackers to obtain cleartext data via a | padding-oracle attack, aka the "POODLE" issue. | Disclosure date: 2014-10-14 | Check results: | TLS_RSA_WITH_AES_128_CBC_SHA | TLS_FALLBACK_SCSV properly implemented | References: | https://www.imperialviolet.org/2014/10/14/poodle.html | http://osvdb.org/113251 | https://www.openssl.org/~bodo/ssl-poodle.pdf |_ https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566 Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 22.33 seconds
testSSL.sh script
- ดาวน์โหลด “script” จาก (https://github.com/drwetter/testssl.sh)
- Run คำสั่งใน Kali หรือ Backtrack ดังนี้ (script ถูกวางไว้ที่หน้า Desktop)
root@kali:~# cd /root/Desktop/ root@kali:~/Desktop# ./testssl.sh xxx.com
- จากนั้นมาดูในส่วนของทดสอบช่องโหว่ พบว่า “POODLE, SSL (CVE-2014-3566) VULNERABLE (NOT ok)”
Testing vulnerabilities Heartbleed (CVE-2014-0160) not vulnerable (OK) (timed out) CCS (CVE-2014-0224) not vulnerable (OK) Secure Renegotiation (CVE 2009-3555) not vulnerable (OK) Secure Client-Initiated Renegotiation not vulnerable (OK) CRIME, TLS (CVE-2012-4929) not vulnerable (OK) BREACH (CVE-2013-3587) NOT ok: uses gzip HTTP compression (only "/" tested) POODLE, SSL (CVE-2014-3566) VULNERABLE (NOT ok) , uses SSLv3+CBC (no TLS_FALLBACK_SCSV mitigation tested) FREAK (CVE-2015-0204), experimental not vulnerable (OK) BEAST (CVE-2011-3389) SSL3: ECDHE-RSA-DES-CBC3-SHA EDH-RSA-DES-CBC3-SHA DES-CBC3-SHA TLS1: ECDHE-RSA-DES-CBC3-SHA EDH-RSA-DES-CBC3-SHA DES-CBC3-SHA -- but also supports higher protocols (possible mitigation): TLSv1.1 TLSv1.2 RC4 (CVE-2013-2566, CVE-2015-2808) VULNERABLE (NOT ok): ECDHE-RSA-RC4-SHA RC4-SHA