SSL脆弱性
概要
Password Manager Pro(PMP)は、リポジトリ内のSSL証明書をスキャンし、脆弱性の可能性がある証明書にフラグを付けます。これにより、安全ではない証明書やサーバー設定は常にユーザーへ通知されるようになります。ユーザーは、SSL証明書やサーバー設定を置き換えたり、変更するために必要な処置を取ることが可能です。PMPは、SSL環境をスキャンして、次のカテゴリの脆弱性を検出します。
1. SSL証明書の失効ステータス
これは、選択した証明書の失効ステータスの情報を得るために実行します。使用中のドメインのいずれかの証明書が失効した場合、直ちに証明書を置き換えるための手順を実行する必要があります。証明書の失効ステータスは次の2つの方法で取得することが可能です。
1.1 証明書の失効リスト(CRL)
1. エラー:
選択した証明書は失効し、信頼できなくなりました。
2. 原因
証明書失効リスト(CRL)は、証明書の有効期限前に認証局(CA)が失効したSSL証明書のリストのことを表します。誤った発行、秘密鍵の情報漏洩、CA情報漏洩といった様々な理由が原因で証明書が失効します。CRLはブラウザが使用する証明書の有効期限を検出するブラックリストのようなものです。SSL証明書はブラウザーとユーザーがユーザーのIDを信頼するための手段であり、無効なSSL証明書は組織への信頼を低下させるため、このようなテストは不可欠です。
PMPは証明書のCRL失効ステータスを確認し、失効した証明書にフラグを付けます。
CRLについての詳細はこちらをご覧ください。
1.2 オンライン証明書サービスプロトコル(OCSP)の失効ステータス
1. エラー:
選択した証明書は失効し、信頼できなくなりました。
2. 原因
オンライン証明書サービスプロトコル(OCSP)の失効ステータスは、デジタル証明書の失効ステータスを取得するために使用します。Webブラウザは証明書の問題をそれぞれの認証局に送信します。認証局は「期限切れ」、「失効」または「不明」と返信します。
PMPはOCSPの証明書の失効ステータスを確認し、失効した証明書にフラグを付けます。
OCSPについての詳細はこちらをご覧ください。
3. ワークアラウンド
上記のいずれかのテストにおいて、証明書の失効を確認した場合は特定の証明書を直ちに置き換える可能性があります。そうでなければ、ブラウザのWebサイトに対してセキュリティエラーを引き起こす可能性があります。
PMPの信用するサードパーティから失効した証明書を新しい証明書へ直接置き換えることが可能です。PMPを使用して証明書の要求や展開する詳細は ヘルプを参照
ください。2. SSL エンドサーバー脆弱性
エンドサーバー脆弱性はドメインサーバーにて、SSLプロトコルについての誤った設定が原因で発生します。PMPは次のエンドサーバーに脆弱性がないかドメインをテストします。
2.1 ハートブリードバグ
1. エラー:
選択したサーバーはハートブリードバグが発生しやすい
2. 原因
ハートブリードバグとは、SSLやTLSプロトコルの実装を支援する人気の高いオープンソース暗号ライブラリ 「OpenSSL」 に存在する脆弱性のことを表します。このバグにより、攻撃者はトレースを残すことなく、SSL証明書、ユーザー名、パスワード、その他の機密データに付加された秘密鍵を盗むことが可能です。
PMPはドメインサーバーにのハートブリードバグの脆弱性がないかを確認し、影響を受けるサーバーにフラグを付けます。
ハートブリードバグについての詳細はこちらをご覧ください。
3. ワークアラウンド
OpenSSLソフトウェアをパッチします。ソフトウェアの傷つきやすいバージョンを安全なバージョンに置き換えます。
2.2 POODLE SSL脆弱性
1. エラー:
選択したファイルはPOODLE攻撃を受けやすい
2. 原因
POODLEは、SSL 3.0プロトコルにおいて実装されている、暗号化スキームの脆弱性を悪用する中間者攻撃の形態を表します。POODLEはハートブリードバグほど深刻な脆弱性ではありませんが、 ベストプラクティスは問題を早く発見して緩和することを推奨しています。
PMPはサーバーをスキャンし、POODLE攻撃にて傷つきやすいサーバーにフラグを付けます。
POODLEについての詳細はこちらをご覧ください。
3. ワークアラウンド:
クライアント側のSSL 3.0 プロトコルを無効にし、TLSプロトコルを有効にします。(1.0, 1.1と1.2)デフォルトでは、PMPはPMPサーバ上のSSL 3.0プロトコルを無効にします。
2.3 SSL 3.0有効化
1. エラー
選択したサーバーは、既知の脆弱性が発生しやすい旧式のSSL3.0プロトコルを利用しています。
2. 原因
SSL 3.0の設計において欠陥があり、それが設計に対して中間者攻撃を引き起すことが発見されています。公開Webサイトにおいてお支払方法を扱っている場合は、直ちにSSL 3.0を利用しているすべてのサーバーを発見しTLSバージョンへアップグレードする必要があります。
PMPはネットワーク内のサーバーをスキャンし、このプロトコルを活かすすべてのサーバーにフラグを付けます。
SSL 3.0脆弱性についての詳細はこちらをご覧ください。
3. ワークアラウンド
クライアントサイドにてSSL 3.0プロトコルを無効にし、TLSプロトコルを有効にします。(1.0, 1.1と1.2)デフォルトでは、PMPはPMPサーバ上のSSL 3.0プロトコルを無効にします。
2.4 弱い暗号スイート
1. エラー:
選択したサーバーは中間程度のリスクの脆弱性がある弱いSSL暗号を使用している
2. 原因
多くの組織は知らず知らずのうちに、WebサイトがさまざまなMITM攻撃から攻撃されやすくなるような弱いSSLプロトコルと暗号スイートをドメインサーバーに使用しています。ドメインサーバーを安全に機能させるには、これらの弱い暗号を検知して無効にし、再設定します。ドフォルトでは、SSL 3.0は弱いプロトコルなのでPMPサーバーでは無効になっています。さらに、PMPはエンドポイントサーバーをスキャンし、TLS(1.0,1.1と1.2)プロトコルにて使用されている弱い暗号にフラグを付けます。
3. ワークアラウンド
弱い暗号スイートを無効にし、ドメインサーバーの再設定を行います。
3. 重要箇所
ここでは、PMPがドメインサーバーの脆弱性をどのようにスキャンするのかを簡単にまとめます。
- PMPはまず初めにドメインサーバーをスキャン(選択したSSL証明書の展開先)し、弱い暗号にフラグを付けます。
- ドメインサーバーのハートブリードバグやPOODLE脆弱性がスキャンされ、続けてCRLやOCSP失効ステータスもスキャンされます。
- 上記の記の脆弱性チェックの1つまたは複数が肯定的な結果を示した場合、PMPは特定の証明書に脆弱性のフラグを付けます。
- また、PMPを使用してSSL証明書の自動定期脆弱性チェックをスケジュールし、テストが完了したときに管理者にメールで通知するように設定することが可能です。
- PMPはSSL脆弱性に特化した広範囲のレポートを定期的に提供します。
4. SSL脆弱性スキャン
ドメインサーバーにおいてSSL脆弱性チェックを実行するには次の通りです。
- [証明書]->[証明書]に進みます。
- 該当する証明書の左側にある脆弱性アイコン(
)をクリックします。
- 証明書と展開するサーバーのリストが一覧表示される画面に転送されます。
- スキャンをクリックします。SANにおいて脆弱性をスキャンを実行する場合は、「SANを含む」チェックボックスを有効にします。 PMPで利用可能な特定の証明書を、展開するサーバーのみにこのスキャンを実行する場合は、「展開されたサーバーのみ」チェックボックスを有効にします。
- PMPはスキャンを実行し、結果を別々の画面に表示します。結果には次の詳細情報が含まれています。
- IPアドレス、ドメインサーバーに対応するポート
- CRL、OCSP失効ステータス
- POODLE SSL、ハートブリード脆弱性ステータス
- 証明書(証明書のバージョンがスキャンされる)の現在のバージョンがドメインサーバーに展開されている場合の情報
- ドメインサーバーのSSL 3.0 や TLS (1.0, 1.1, 1.2)プロトコルに存在する安全ではない暗号の一覧
Note
- デフォルトではセキュリティのため、SSL 3.0プロトコルは無効になっています。ドメインサーバーにSSL 3.0プロトコルをスキャンするには、最初PMPサーバー上においてにSSL 3.0プロトコルを有効にし、その次にPMPサーバーを再起動します。
- エクスポートをクリックし、PDF形式でレポートをエクスポートするかまたは特定のメールIDにメールを送信して、よりよい解釈につなげます。
自動脆弱性スキャンをスケジュールするには次の通りです。
- [管理]->[SSH/SSL]->[SSL脆弱性]に進みます。
- スケジュールタスクにおいて有効を選択します。
- 繰り返し種別を選択し、周期を指定します。
- 「レポートをメールで送信」を有効にしてメールIDを指定し、毎回のスキャン後にメール通知を受信することも可能です。
- ドメインサーバーにおいてSSL 3.0プロトコルのスキャンを有効にすると、PMPサーバーにでも同じプロトコルが有効になります。
- 保存をクリックします。スケジュールされたタスクは保存され、脆弱性スキャンはそれぞれのスケジュールされた周期で実行されます。