
Puppetモジュール - Puppetデプロイの修正と移行を支援する (CVE-2011-3872)
このモジュールは、CVE-2011-3872 AltNames 脆弱性を恒久的に修復するのに役立ちます。
詳細な使用ガイドは以下を参照してください:
certdnsnames 設定が一度でも有効になったことがある場合、CVE-2011-3872 AltNames 脆弱性を介した攻撃のリスクがあります。Puppet マスターで certdnsnames を使用したことがある場合、潜在的に脆弱です。すべての Puppet Enterprise ユーザーは、ある時点で certdnsnames を使用しています。
脆弱かどうかを簡単にテストするには、このモジュールに含まれている scan_certs スクリプトを使用できます。(Puppet Enterprise では bin/ のコピーを、オープンソースの Puppet では bin/webrick のコピーを使用してください。)
# bin/scan_certs
Status as of: 2011-10-23 19:42:26
Total Certificates Found: 7 *
Potentially Vulnerable: 7 (100.0%)
...
このスクリプトは完璧ではありません。 Puppet CA の証明書キャッシュに依存しているためです。キャッシュが削除または変更されたことがある場合、スクリプトは偽陰性を返す可能性があります。また、任意のエージェントノードでローカル証明書を確認するには、以下を実行します:
openssl x509 -text -noout -in $(puppet agent --configprint hostcert)
...そして、X509v3 Subject Alternative Name フィールドを探します。
疑わしい場合は、脆弱性を修復することをお勧めします。
サイトを保護するには、2つの要件を満たす必要があります:
certdnsnames 設定を無効にする、および/または Puppet を影響を受けないバージョンにアップグレードする。2つ目の要件を満たすには、複数の方法があります。次のいずれかを選択できます:
Puppet でサイトを修復するには、 このモジュールに含まれている README-detailed.markdown ファイルを参照してください。
SSH で直ちに CA を交換するには、 このモジュールに含まれている README-ssh-only.markdown ファイルを参照してください。
この脆弱性に関する詳細情報(FAQ、更新された Puppet バージョンの詳細、セキュリティホットフィックスのリンクを含む)については、http://puppetlabs.com/security/cve/cve-2011-3872 を参照してください。