SSL3がオンになっている:ウェブサイト脆弱性
2024年3月17日
お使いのサーバーソフトウェアでSSL3.0を無効化する方法は、結論からいうと、「Nginxであれば、ssl_protocolsディレクティブにSSLv3の記述を含めないこと、Apacheであれば、SSLProtocolディレクティブに-SSLv3を明記すること」となります。
SSL3.0をオフにする方法:Nginxでのやり方
Nginx
nginx.conf
ファイルを編集します。- SSLプロトコルの設定が含まれているセクションを見つけ、
ssl_protocols
ディレクティブを編集してSSL 3.0を無効にします。具体的には、TLSv1.2
未満のプロトコルを書かないでください。
ssl_protocols TLSv1.2 TLSv1.3;
設定を保存し、Nginxを再起動します。
SSL3.0をオフにする方法:Apacheでのやり方
Apache HTTP Server
httpd.conf
またはssl.conf
ファイルを編集します。SSLProtocol
ディレクティブを見つけ、-**SSLv3**
を追加してSSL 3.0を無効にします。
SSLProtocol all -SSLv2 -SSLv3
設定を保存し、Apacheを再起動します。
日本の上場企業3715社公式サイトのSSL3.0対応率:2.93%
出典: 日本の上場企業3715社の公式サイトのSSL/TLSセキュリティ脆弱性ダッシュボード
日本の上場企業3715社の公式ウェブサイトを対象とした調査によると、これらウェブサイトのうちSSL3.0がオンになっているものは全体のうち2.93%あります。件数としては、3715社中42社がSSL3.0をオンにしている状態です。
業界別内訳 2.96%中
小売業 16
情報・通信業 12
サービス業 12
卸売業 11
電気機器 10
建設業 7
不動産業 6
機械 6
食料品 5
化学 4
ガラス・土石 4
医薬品 2
金属製品 2
繊維製品 2
陸運業 2
精密機器 2
倉庫・運輸 1
非鉄金属 1
その他製品 1
輸送用機器 1
石油・石炭 1
電気・ガス 1
SSL3.0を有効化している企業を業界別に見るとその上位5件は、
1 小売業:16社、
2 情報通信業:12社、
3 サービス業:12社、
4 卸売業:11社、
5 電気機器:10社、
となっている状況です。
業界別SSL3.0対応率(左から2列目のhas_ssl3の列をご覧ください)
上場市場別内訳
東証S 53
東証P 50
東証G 3
名証M 2
札証 1
東証スタンダード企業で53社、東証プライム企業で50社、東証グロース市場企業で3社が、自社ウェブサイトにおいてSSL3.0を有効化している、という状況です。
アクセス数世界ランクトップ1000のサイト群のSSL3.0対応率との比較
サイトアクセス数世界ランクトップ1000のサイト群(Alexa Top 1000 Most Visited Websites)のうちでの、SSL3.0の2023年時点での有効化状況は、1.7%ですので、日本の上場企業3715社のウェブサイトの2.93%は、これより少し高い値となっています。世界で最もアクセスされてるウェブサイトのSSL3.0対応率1.7%のデータは、様々なジャンルのサイト全体の中での対応率ですので、これと比べたとき、日本の上場企業のウェブサイトのような経済的に重要なウェブサイトでは、明確に低いSSL3.0対応率であることが期待されますが、実際には母集団内内訳として少し高い2.93%となっており、セキュリティ上問題であると言えます。
サイバー攻撃は増加傾向にあるので、いち早くSSL3.0を無効化することが推奨されます。
出典:Wikipedia
https://en.wikipedia.org/wiki/Transport_Layer_Security#Websites
出典関係としては、上記のWikipedia掲載のプロトコルサポート状況のデータ(図表)は、Qualysが提供するSSL Pulse、つまり、世界で最もアクセスされているウェブサイト1000サイトを対象とした、SSL/TLS関連のセキュリティ状況の統計調査結果に基づいており、このSSL Pulseが調査対象としているのが、アクセス数世界ランクトップ1000のサイト群である、という出典関係になっています。
データソース:QualysSSLLabDashbord、Alexa Top 1000 Most Visited WebsitesのSSL/TLS対応状況の統計調査結果 Alexa Top 1000 Most Visited Websites
SSL3.0はどれくらい時代遅れか
SSL3.0は1996年に公開され、2015年の時点で時代遅れであり脆弱である、と判定されたプロトコルです。分かりやすい比喩でいうと、windows95を未だに使い続けている行為と同等の時代遅れな行為です(windows95を使う理由は特定ジャンルではある程度あるかもしれませんが、SSL3.0を使い続ける理由は一切無いです)。
出典:https://en.wikipedia.org/wiki/Transport_Layer_Security#Secure_Data_Network_System
SSL3.0をオンにしておくことの危険性:ダウングレード攻撃とセキュリティの「下限」
暗号化プロトコルの「実際の」強度は、下限により決まります。サーバーで有効化している暗号化プロトコルが、最新のTLS1.3に対応していたとしても、有効化されている中で最低つまり最も古く弱いプロトコルがあると、それがセキュリティの「下限」となり、ダウングレード攻撃などの標的になる恐れがあります。
例えば、ssl2, ssl3, tls1.0,tls1.1,tls1.2,tls1.3の暗号化プロトコルを有効にしている場合、適切に設定されていれば「平常時」はtls1.3やtls1.2で通信が行われるため、平時は安全に思われるのですが、「緊急時」つまりダウングレード攻撃などのサイバー攻撃の標的になった場合、ssl2やssl3などの脆弱なプロトコルを有効にしていると、そのセキュリティレベルが「実現値」になってしまうという問題があるわけです。セキュリティの下限を実測値として考える、というアプローチは、リスク管理における「鎖は最も弱い部分から切れる」という概念であり、ダウングレード攻撃や類似の攻撃を考える際に有効です。
平常時は集合中最高のプロトコルが実測値ですが、有事は最低のプロトコルが実測値となる、という点を念頭に入れて設定を行うべきです。
ssl2, ssl3などの古く脆弱なプロトコルは現在ほとんどブラウザが対応停止しているため、有効化しておく理由は一つもなく、攻撃者に悪用される可能性しかないので、すぐに無効化するべきです。
結論としては、SSL3.0を無効化する具体的な方法は、Nginxなどのサーバーソフトウェアの設定ファイルで、ssl_protocolsディレクティブの中からSSLv3の記述を「書かない」こと、により達成できます。簡単にできるのでぜひやってみてください。