Index
安全でないHTTPヘッダー設定
説明
安全でないヘッダー設定(Insecure Header Setting):
- Content Security Policy: コンテンツの信頼できるソースを指定することで、クロスサイトスクリプティング(XSS)のリスクを緩和します。
- Cookie: HttpOnlyおよびSecureなどの属性を設定して、不正アクセスからCookieデータを保護し、セキュリティを強化します。
- Cross-Origin Resource Sharing: 悪意のあるアクセスを防ぐために、異なるドメイン間でリソースを共有する方法を制御します。
- HTTP Public Key Pinning: 特定のサイトに対してどの公開鍵が有効であるかを指定することで、Man-in-the-Middle(MitM)攻撃から保護します。
- Redirection: オープンリダイレクトの脆弱性を防ぐため、リダイレクトが安全であり、信頼できる宛先にのみ誘導されることを保証します。
- Referrer Policy: あるサイトから別のサイトへナビゲートする際に渡されるリファラー情報の量を定義し、プライバシーを強化します。
- Subresource Integrity: サードパーティドメインから読み込まれるリソースが改ざんされていないことを暗号化ハッシュにより検証します。
- X-Content-Type-Options: ブラウザがコンテンツタイプのMIMEスニッフィング(MIME-sniffing)を実行するのを防ぎ、コンテンツタイプに基づく攻撃のリスクを低減します。
- X-Frame-Options: ページをフレーム内に埋め込むことができるかどうかを制御することで、クリックジャッキング攻撃を防ぎます。
- X-XSS-Protection: ブラウザの組み込みXSSフィルタリングを有効にし、検出されたクロスサイトスクリプティング攻撃をブロックします。
- Permissions-Policy: ブラウザで使用できる機能とAPIを制御し、信頼できないコンテンツの機能を制限することでセキュリティを強化します。
- Clear-Site-Data: サイトが特定のオリジンに保存されているデータ(Cookie、ローカルストレージ、キャッシュなど)を消去するようブラウザに要求できるようにし、データ漏洩やプライバシーの問題による影響の緩和を支援します。
推奨事項
安全でないヘッダー設定が存在しないようにするため、以下の事項を検討してください。
- Content Security Policy (CSP):
コンテンツのソースに制限を適用し、クロスサイトスクリプティング(XSS)攻撃および不正なリソースの読み込みに関連するリスクを緩和します。
Content-Security-Policy: default-src 'self'; script-src 'self' https://cdnjs.cloudflare.com;
- Cookie Security Headers:
SecureおよびHttpOnlyフラグを実装して、Cookieの盗難や改ざんを防ぎ、ユーザーセッションのセキュリティを強化します。
Set-Cookie: sessionid=abc123; Secure; HttpOnly;
- Cross-Origin Resource Sharing (CORS):
CORSポリシーを適切に設定して、異なるオリジンからのリソースへのアクセスを制限し、クロスサイトリクエストフォージェリ(CSRF)やクロスオリジンのデータ漏洩を緩和します。
Access-Control-Allow-Origin: https://example.com
- HTTP Public Key Pinning (HPKP):
HPKPを利用して特定のWebサーバーに公開鍵をバインドし、不正な証明書が関与するMan-in-the-Middle(MitM)攻撃から保護します。
Public-Key-Pins: pin-sha256="base64=="; max-age=5184000; includeSubDomains;
- Redirection Headers:
厳密な制御を実装してオープンリダイレクトの脆弱性を防ぎ、フィッシング攻撃からユーザーを保護することで、安全なリダイレクトを確保します。
Location: https://example.com/secure-page
- Referrer Policy:
適切なリファラーポリシーを設定して、Refererヘッダーで渡される情報の量を制御し、機密データの漏洩リスクを低減します。
Referrer-Policy: strict-origin-when-cross-origin
- Subresource Integrity (SRI):
SRIを実装して、スクリプトやスタイルシートなどの外部リソースの完全性を検証し、不正な変更やサプライチェーン攻撃から保護します。
<script src="https://example.com/example.js" integrity="sha256-base64==" crossorigin="anonymous"></script>
- X-Content-Type-Options:
'nosniff'ディレクティブを有効にして、ブラウザが応答のMIMEスニッフィングを実行しないようにし、コンテンツタイプ混同攻撃に関連するリスクを緩和します。
X-Content-Type-Options: nosniff
- X-Frame-Options:
X-Frame-Optionsを設定して、Webコンテンツをフレームに埋め込むことを制限し、クリックジャッキング攻撃から保護し、Webページの完全性を確保します。
X-Frame-Options: DENY
- X-XSS-Protection:
潜在的に悪意のあるスクリプトをサニタイズまたはブロックするようブラウザに指示することで、XSS防御メカニズムを有効にし、XSS攻撃を緩和します。
X-XSS-Protection: 1; mode=block
リンク
標準
- OWASP_ASVS_L1:
- V5_1_3
- V14_5_3
- OWASP_ASVS_L2:
- V5_1_3
- V14_5_3
- OWASP_ASVS_L3:
- V5_1_3
- V14_5_3
- HIPAA_CONTROLS:
- SECURITY212
- SECURITY213