#1. はじめに
https://www.ssllabs.com/ssltest/ などを利用すれば、暗号化スイート(Cipher Suite)の脆弱性などをチェックすることができる。CISではコマンドラインからCipherスイートのallowlistを変更することができるので、この記事で試してみた。
#2. デフォルトのテスト結果
まずは、CISで保護しているサイトに対して、https://www.ssllabs.com/ssltest/
を使ってテストしてみた。
(TLS1.0や1.1は論外として)上記の結果から分かる通り、TLS1.2以上を使うように構成していても、WEAK
扱いされている暗号化スイートは存在し、後方互換性のために利用可能な状態になっている。一方で、
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256
- TLS_CHACHA20_POLY1305_SHA256
- TLS_AES_128_GCM_SHA256
あたりが使えるようになっていれば最近の環境であれば問題なさそうだとうことが分かる(上記レポートをざっとでしか確認していないので、本番利用時にはより細かくチェックしてください)。
#3. CISの設定
IBM Cloud docsとしては以下を参照
https://cloud.ibm.com/docs/cis?topic=cis-cli-plugin-cis-cli&locale=en#update-domain-settings
https://cloud.ibm.com/docs/cis?topic=cis-cis-tls-options&locale=en#cipher-suites
# ibmcloud cis instances
Retrieving service instances for service 'internet-svcs' ...
OK
Name ID Location State Service Name
CIS-Enterprise-Usage1 crn:v1:bluemix:public:internet-svcs:global:a/039dbe6794084c7cb514a276dd2345da:cf4d8b04-b49e-4bf0-a99d-9303bba2cd90:: global active internet-svcs
# ibmcloud cis instance-set CIS-Enterprise-Usage1
Setting context service instance to 'CIS-Enterprise-Usage1' ...
OK
Context service instance set succeeded.
# ibmcloud cis domains
Listing domains for service instance 'CIS-Enterprise-Usage1' ...
OK
ID Name Status Paused
a4135402d38fff24e32ef13c82c1ab4a cisibm.tk active false
# ibmcloud cis domain-settings a4135402d38fff24e32ef13c82c1ab4a -f "ciphers"
Getting 'ciphers' for domain 'a4135402d38fff24e32ef13c82c1ab4a'...
OK
ID ciphers
Editable true
Modified On N/A
Value
CISの暗号化スイートでallowlistとして設定可能な値は以下のあたりのようなので、
ECDHE-ECDSA-AES128-GCM-SHA256, ECDHE-ECDSA-CHACHA20-POLY1305, ECDHE-RSA-AES128-GCM-SHA256, ECDHE-RSA-CHACHA20-POLY1305, ECDHE-ECDSA-AES128-SHA256, ECDHE-ECDSA-AES128-SHA, ECDHE-RSA-AES128-SHA256, ECDHE-RSA-AES128-SHA, AES128-GCM-SHA256, AES128-SHA256, AES128-SHA, ECDHE-ECDSA-AES256-GCM-SHA384, ECDHE-ECDSA-AES256-SHA384, ECDHE-RSA-AES256-GCM-SHA384, ECDHE-RSA-AES256-SHA384, ECDHE-RSA-AES256-SHA, AES256-GCM-SHA384, AES256-SHA256, AES256-SHA, DES-CBC3-SHA, default
なので、
以下の4つを設定する。
- ECDHE-ECDSA-AES128-GCM-SHA256
- ECDHE-ECDSA-CHACHA20-POLY1305
- ECDHE-RSA-AES128-GCM-SHA256
- ECDHE-RSA-CHACHA20-POLY1305
# ibmcloud cis domain-settings-update a4135402d38fff24e32ef13c82c1ab4a -f "ciphers" -v ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-CHACHA20-POLY1305,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-CHACHA20-POLY1305
Updating 'ciphers' for domain 'a4135402d38fff24e32ef13c82c1ab4a' to 'ECDHE-ECDSA-AES128-GCM-SHA256,ECDHE-ECDSA-CHACHA20-POLY1305,ECDHE-RSA-AES128-GCM-SHA256,ECDHE-RSA-CHACHA20-POLY1305'...
OK
ID ciphers
Editable true
Modified On N/A
Value
ECDHE-ECDSA-AES128-GCM-SHA256
ECDHE-ECDSA-CHACHA20-POLY1305
ECDHE-RSA-AES128-GCM-SHA256
ECDHE-RSA-CHACHA20-POLY1305
#4. 再テスト
CISおよびhttps://www.ssllabs.com/ssltest/
のキャッシュをクリアして再テスト。結果、利用できる暗号化スイートが大きく減った!
#5. 設定を元に戻す(オプション)
# ibmcloud cis domain-settings-update a4135402d38fff24e32ef13c82c1ab4a -f "ciphers" -v default
Updating 'ciphers' for domain 'a4135402d38fff24e32ef13c82c1ab4a' to 'default'...
OK
ID ciphers
Editable true
Modified On N/A
Value