通信とブラウザーの保護

TLSとセキュリティヘッダー:接続とブラウザーを守る

HTTPSは接続を保護し、セキュリティヘッダーは応答を扱うブラウザーの動作に影響します。両方を監査し、ログイン、決済、コンテンツの実際の流れで変更を検証します。

暗号化された接続がブラウザーのポリシー層を通る様子を表した概念図
概念を表すイラスト

鍵マークだけでは、証明書が明日更新されるか、無関係なサイトがページを埋め込めるかは分かりません。TLSとHTTP応答ポリシーは別の問題を解決します。まとめて確認すると、緊急の接続障害と不足する防御を区別できます。

SitelemetryのTLSモジュールは信頼、期限、合意したプロトコルを記録します。ヘッダーモジュールは実際の応答を調べ、最終URL、状態、観測値を保存します。修正の出発点となる証拠であり、アプリ全体への侵入テスト実施を意味しません。

この監査の範囲

測定できること

  • テスト接続のTLS信頼結果、証明書の有効期間、発行者、合意したプロトコル。
  • HSTS、CSP、フレーム保護、コンテンツ種別、参照元ポリシー、選択した情報公開・CORSの兆候。
  • 実際に返されたCookieのセキュリティ属性と、対応する成功チェック。

証明できないこと

  • 一つのTLSバージョンで接続しても、全プロトコルや暗号スイートの列挙にはなりません。
  • 公開応答には、すべての認証Cookieや経路固有のポリシーは現れません。
  • TLSやネットワークで応答が得られなければ、ヘッダーは欠落ではなく未測定です。

許可された確認済み対象を使用します。プランとプロファイルがモジュールを決め、追加エンジンには別途利用可能性が必要です。比較前に検査範囲を読んでください。

証明書の障害とポリシー不足を分ける

期限切れ証明書は顧客のアクセスを即座に止めることがあります。参照元ポリシーの不足は影響と緊急度が異なります。ホスト、転送先、期限、実際の信頼エラーから確認します。CDN、オリジン、特定ホストのどこに問題があるでしょうか。ルートドメインの証明書が全サブドメインを覆うとは限りません。

ネイティブ検査は観測した旧式TLSの利用と期限接近を知らせます。TLS 1.3で接続できても旧版の無効化は証明できません。その保証が必要なら終端設定と、目的に合ったプロトコル検査を確認します。

影響に基づいて優先順位を付ける

検出事項通常の優先度有用な証拠
期限切れ・信頼できない証明書ホスト、期限、信頼エラー
証明書の期限接近中。残り時間で緊急度が増加残り日数と更新状況
HSTS・CSP・フレーム保護の不足多くは中。アプリの状況による実際の応答と対象ページ
nosniff・参照元ポリシーの不足通常は低値とコンテンツ種別
公開リソースのCORSワイルドカード状況を確認データ機密性と想定利用者

CSPがなくてもXSSの証明ではなく、あってもXSSが不可能になるわけではありません。公開リソースのCORSワイルドカードは意図的な場合があります。非公開データでは実際の認証とOrigin動作を調べます。すべての観測を漏えい確定と扱わないでください。

CSPを証拠に基づいて導入する

スクリプト、フォント、画像、接続、フレーム、決済提供元を把握します。まずContent-Security-Policy-Report-Onlyで試します。このモードは問題を知らせますが動作を止めません。集中管理の報告が必要なら適切な送信先を設定します。

Content-Security-Policy-Report-Only: default-src 'self'; object-src 'none'; base-uri 'self'; frame-ancestors 'self'

これは出発点の例で、すべての本番環境に使える設定ではありません。外部サービスには明示的な許可元、スクリプトにはnonceやハッシュが必要になる場合があります。登録、OAuthウィンドウ、決済、同意設定、エラーページを試します。正規の違反を解消してから強制に移行してください。報告を消すためだけに広いワイルドカードを追加しないでください。

HSTSは運用上の約束として判断する

HSTSは、対応ブラウザーに一定期間HTTPSを使わせます。期間を延ばす前にHTTPSの安定性と証明書更新を確認します。短い期間で管理しながら始め、安定後に拡大します。

includeSubDomainsはサブドメインにも及ぶため、旧サービスや委任先も調べます。プリロードにはブラウザーリストの条件があり、解除に時間がかかる場合があります。ヘッダーにpreloadと書くだけでは申請されません。警告を消すためだけに長期間・全サブドメイン対象の例をコピーしないでください。

顧客が受け取る実際の応答を確認する

有効なTLS終端と応答生成層を変更します。CDNがヘッダーを上書きすれば、オリジンの正しい設定も反映されません。複数層で重複したポリシーも予期しない相互作用を起こします。設定ファイルだけでなく、ホーム、ログイン、アプリ、エラーの最終応答を比較してください。

セッションCookieには用途に応じてSecureHttpOnlyを使い、実際のサイト間フローに合わせてSameSiteを選びます。JavaScriptで読む設定Cookieとセッショントークンは別です。nosniffは正しいMIME種別と組み合わせます。不要なバージョン公開を減らしても古いソフトウェアへのパッチにはなりません。個別の制御はOWASPの指針で確認できます。

保護と機能を一緒に再テストする

  1. 正しいホストで信頼できる証明書と予定した日付を確認する。
  2. 転送とキャッシュ更新後の実際のポリシー値を見る。
  3. 対応ブラウザーで登録、ログイン、ログアウト、決済、埋め込みを試す。
  4. 同じモジュールを再実行し、未完了チェックも読む。
  5. 更新監視と、検証済みのポリシー復旧手段を維持する。

TLSが断続的に失敗するなら、サイト全体の停止を断定する前にエラーを保存し、別の適切なネットワークから再確認します。成功した再テストが閉じるのは観測された問題です。通信の全リスクではありません。広い確認にはOWASP TLSガイドを利用します。

よくある質問

Report-OnlyでCSP不足の警告は消えますか?

強制しないテスト段階です。機能するContent-Security-Policyヘッダーを導入するまで、強制不足の検出が残る場合があります。

HSTSプリロードをすぐ有効にすべきですか?

要件、サブドメインの準備、運用上の影響を確認してから判断します。すべてのドメインで安全な初期設定ではありません。

証明書に問題があるとヘッダーが未測定になるのはなぜですか?

検証付きHTTPS要求で使えるヘッダーを受け取れなかったためです。TLSエラーは証拠ですが、HTTP応答がないことから複数の欠落を作るべきではありません。

出典・参考資料

  1. MDN:CSPレポートモードdeveloper.mozilla.org
  2. MDN:HTTP Strict Transport Securitydeveloper.mozilla.org
  3. OWASP:HTTPヘッダーcheatsheetseries.owasp.org
  4. OWASP:TLSセキュリティcheatsheetseries.owasp.org
Sitelemetryチーム

Sitelemetryチームが、製品の監査範囲とリンク先の一次資料に照らして作成しています。観測事例と明記されていない例は、説明用のものです。

SITELEMETRY

ガイドを実践しましょう。

レポートの証拠を確認し、原因を修正して、該当するチェックを再実行してください。

Sitelemetryを開く