รายละเอียดประเด็นข้อตรวจพบ
จากการใช้เครื่องมือวิเคราะห์ช่องโหว่อัตโนมัติ ผู้ทดสอบพบว่าเป้าหมายที่กำลังทดสอบมีการอนุญาตให้ผู้ใช้งานเชื่อมต่อผ่านการเข้ารหัส (Weak protocol and Cipher Suite) ที่ไม่มีความแข็งแรง
ผู้ประสงค์ร้ายอาจทำการดักจับข้อมูลระหว่างภายในเครือข่ายเดียวกัน (Sniffing the network traffic) จนมีจำนวนข้อมูลมากเพียงพอ เพื่อใช้ในการวิเคราะห์และถอดรหัสข้อมูลได้ ถ้าเครื่องบริการปลายทางเปิดให้บริการช่องทางเข้ารหัสที่ไม่ปลอดภัย นอกจากนี้การใช้โพรโทคอลการเข้ารหัสที่ไม่ปลอดภัย อาจนำไปแสดงผลต่อบุคคลภายนอก จากเว็บไซต์ที่ให้บริการประเมินผลความแข็งแรงของการเข้ารหัสเว็บไซต์ ซึ่งอาจส่งผลกระทบต่อชื่อเสียงองค์กรถึงแม้บริการดังกล่าวอาจไม่ใช่การบริการต่อผู้ใช้โดยตรงก็ตาม
“Cipher suite” คืออัลกอลึทึมที่มีหน้าที่สำหรับการพิสูจน์ตัวตน (Authentication) การเข้ารหัส (Encryption) และการตรวจสอบความถูกต้องครบถ้วนของข้อมูลไม่ได้ถูกแก้ไขระหว่างทาง (Message authentication code หรือ MAC)
OpenSSL | Key Exchange | Authentication | Encryption | MAC |
---|---|---|---|---|
DES-CBC3-SHA | Rivest Shamir Adleman algorithm (RSA) ไม่แข็งแรง | Rivest Shamir Adleman algorithm (RSA) | Triple-DES (Encrypt Decrypt Encrypt) in Cipher Block Chaining mode (3DES EDE CBC) ไม่แข็งแรง | Secure Hash Algorithm 1 (SHA) ไม่แข็งแรง |
ECDHE-RSA-DES-CBC3-SHA | Elliptic Curve Diffie-Hellman Ephemeral (ECDHE) | Rivest Shamir Adleman algorithm (RSA) | Triple-DES (Encrypt Decrypt Encrypt) in Cipher Block Chaining mode (3DES EDE CBC) ไม่แข็งแรง | Secure Hash Algorithm 1 (SHA) ไม่แข็งแรง |
EDH-RSA-DES-CBC3-SHA | Diffie-Hellman (DH) ไม่สามารถใช้ Perfect Forward Secrecy (PFS) | Rivest Shamir Adleman algorithm (RSA) | Triple-DES (Encrypt Decrypt Encrypt) in Cipher Block Chaining mode (3DES EDE CBC) ไม่แข็งแรง | Secure Hash Algorithm 1 (SHA) ไม่แข็งแรง |
RC4-MD5 | Rivest Shamir Adleman algorithm (RSA) ไม่แข็งแรง | Rivest Shamir Adleman algorithm (RSA) | Rivest Cipher 4 with 128bit key (RC4 128) ไม่แข็งแรง | Message Digest 5 (MD5) ไม่แข็งแรง |
DES-CBC3-MD5 | Rivest Shamir Adleman algorithm (RSA) ไม่แข็งแรง | Rivest Shamir Adleman algorithm (RSA) | Triple-DES (Encrypt Decrypt Encrypt) in Cipher Block Chaining mode (3DES EDE CBC) ไม่แข็งแรง | Message Digest 5 (MD5) ไม่แข็งแรง |
DHE-RSA-DES-CBC3-SHA | Diffie-Hellman Ephemeral (DHE) | Rivest Shamir Adleman algorithm (RSA) | Triple-DES (Encrypt Decrypt Encrypt) in Cipher Block Chaining mode (3DES EDE CBC) ไม่แข็งแรง | Secure Hash Algorithm 1 (SHA) ไม่แข็งแรง |
DHE-RSA-AES128-SHA | Diffie-Hellman Ephemeral (DHE) | Rivest Shamir Adleman algorithm (RSA) | Advanced Encryption Standard with 128bit key in Cipher Block Chaining mode (AES 128 CBC) ไม่แข็งแรง | Secure Hash Algorithm 1 (SHA) ไม่แข็งแรง |
DHE-RSA-DES-CBC3-SHA | Diffie-Hellman Ephemeral (DHE) | Rivest Shamir Adleman algorithm (RSA) | Advanced Encryption Standard with 128bit key in Cipher Block Chaining mode (AES 128 CBC) ไม่แข็งแรง | Secure Hash Algorithm 1 (SHA) ไม่แข็งแรง |
DHE-RSA-AES128-SHA | Diffie-Hellman Ephemeral (DHE) | Rivest Shamir Adleman algorithm (RSA) | Advanced Encryption Standard with 128bit key in Cipher Block Chaining mode (AES 128 CBC) ไม่แข็งแรง | Secure Hash Algorithm 1 (SHA) ไม่แข็งแรง |
ข้อแนะนำ
- ปิดการใช้งานโพรโทคอล (Protocol) เข้ารหัสที่ไม่ปลอดภัย – แนะนำให้ปิดโพรโทคอลเข้ารหัสที่ไม่ปลอดภัย (TLS 1.0 TLS1.1 SSLv2 และ SSLv3) และใช้งาน (TLS 1.2 หรือล่าสุด) อย่างไรก็ตามให้วิเคราะห์ผลกระทบต่อผู้ใช้งานระบบที่มีผลิตภันฑ์หรือหมายเลขรุ่นที่ไม่สนับสนุนการใช้งาน “TLS 1.2” ด้วย
- ปิดการใช้งานอัลกอลิทึมการเข้ารหัส “Cipher suite” ทีไม่แข็งแรง – ปิดการใช้งานอัลกอลิทึมการเข้ารหัส “Cipher suite” ทีไม่แข็งแรง ตัวอย่างเช่น มีขนาดต่ำกว่า 128 บิต อัลกอลิทึม Null MD5 RC4 DES3 หรือ CBC เป็นต้น
แนะนำให้ใช้ “Cipher suite” ที่ปลอดภัย ดังนี้
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-ECDSA-AES256-GCM-SHA384
ECDHE-RSA-AES256-GCM-SHA384
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-RSA-CHACHA20-POLY1305
DHE-RSA-AES128-GCM-SHA256
DHE-RSA-AES256-GCM-SHA384
สำหรับ “Windows Server” สามารถใช้โปรแกรม “IIScrypto” หรือแก้ไขที่ “Registry” ดังตัวอย่างต่อไปนี้
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\DES 56/56]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\NULL]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC2 56/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 40/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 56/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Ciphers\RC4 64/128]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\PCT 1.0\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 2.0\Server]
"Enabled"=dword:00000000
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server]
"Enabled"=dword:00000000
Nginx
# Enable TLSv1.2, disable SSLv3.0, TLSv1.0 and TLSv1.1
ssl_protocols TLSv1.2;
# Enable modern TLS cipher suites
ssl_ciphers
'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256';
# The order of cipher suites matters
ssl_prefer_server_ciphers on;
Apache HTTP Server
# Enable TLSv1.2, disable SSLv3.0, TLSv1.0 and TLSv1.1
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
# Enable modern TLS cipher suites
SSLCipherSuite
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256
# The order of cipher suites matters
SSLHonorCipherOrder on
# Disable TLS compression
SSLCompression off
# Necessary for Perfect Forward Secrecy (PFS)
SSLSessionTickets off
อ้างอิงเพิ่มเติม
- https://cwe.mitre.org/data/definitions/326.html
- https://owasp.org/www-project-top-ten/2017/A3_2017-Sensitive_Data_Exposure
- https://www.nartac.com/Products/IISCrypto/
- https://www.sslshopper.com/article-how-to-disable-ssl-2.0-in-iis-7.html
- https://bettercrypto.org/
- https://ciphersuite.info/cs/
- https://www.acunetix.com/blog/articles/tls-ssl-cipher-hardening/
- https://testssl.sh/openssl-iana.mapping.html
- https://www.ssllabs.com/ssltest/
บทความที่เกี่ยวข้อง IT SELECT LAB
- How to enable IIS 7 on Windows Server 2008 or Window Server 2008 R2
- How to enable SSL on IIS 7
- How to Disable SSL Version 2 and 3 Protocol in IIS
- How to Enable TLS Version 1.1 and 1.2 Protocol in IIS
- How to Disable Weak Cipher (RC4) in IIS
- How to Disable Weak Cipher (3DES) in IIS
- How to disable Weak Cipher and Protocol MS SQL server