C5: デフォルト設定を安全にする (Secure By Default Configurations)
説明
"Secure-by-Default" とは製品が追加料金なしで、箱から出してすぐに、蔓延する悪用技法に対して耐性があることを意味します。ソフトウェアはユーザーによる広範な設定を必要とせずに安全な状態で起動し、デフォルト設定が常に最も安全なオプションとなるようにすべきです。
アプリケーションを最初から安全にする利点は、システムをロックダウンする方法に関して開発者の負担がなくなり、すでに安全な製品を提供していることです。これにより製品を安全な方法でデプロイするために必要な労力を軽減し、長期間にわたって製品を安全に維持するという確信が高まります。
脅威
攻撃者はデフォルト、脆弱、または出荷時の状態から変更されていないよく知られたクレデンシャルを悪用して、認可されていないアクセスを得る可能性があります。
攻撃者は過度に寛容なデフォルト設定を利用して、機密性の高いリソースにアクセスしたり、認可されていないアクションを実行する可能性があります。
攻撃者はデフォルトでアクティブになっている、不必要に有効化された機能やサービスを調べて、機密情報を収集する可能性があります。
攻撃者は脅威に対して適切な保護を提供しない、緩いデフォルトのセキュリティヘッダを悪用して、クロスサイトスクリプティング (XSS) 攻撃を実行する可能性があります。
実装
現代のクラウドアプリケーションでは、開発者がアプリケーションを構築する際に、コードを作成しながら、セキュリティクリティカルな構成を含むインフラストラクチャの決定を行い、アプリケーションのインフラストラクチャも構築します。 これらは、アプリケーションレベル (ウェブサーバーやデータベースなど)、コンテナ、Function as a Service、インフラストラクチャレベルで適用される構成を使用して、コード、Infrastructure-as-code (IaC)、を介して作成および構成されたインフラストラクチャにデプロイされます。たとえば、ウェブアプリケーションの場合、フォルダパーミッションは最小権限の原則に従ってリソースのアクセス権を制限する必要があります。ウェブアプリケーションとモバイルアプリケーションを運用環境にデプロイする際には、デバッグを無効にすべきです。
開発者がインフラストラクチャコンポーネントをまとめる際に、以下を行うことが重要です。
最小権限の原則に基づいた構成を実装します。たとえば、クラウドストレージ (S3 など) がプライベートであり、最小限の時間でアクセスされるように構成されるようにします。
アクセスはデフォルトで拒否され、許可リストによって許可します。
パッケージやコンポーネントの脆弱性がスキャンされ、プライベートコンテナレジストリから取り出した、コンテナイメージを使用します。
手作業による構成作業よりも、宣言的なインフラストラクチャ構成を優先します。低レベルでは、Infrastructure-as-Code テンプレートを利用して、クラウドおよびオンプレミスのインフラストラクチャのプロビジョニングと構成を自動化します。高レベルでは、Policy-as-Code を利用して、権限割り当てを含むポリシーを適用します。 宣言的な形式を使用することで、これらのポリシーをソースコードと同様に管理できます。ソースコード管理システム、バージョン管理、アクセス制御管理、変更対象管理などにチェックインします。
トラフィックをデフォルトで暗号化するか、最初から非暗号化通信チャネルを実装しません。
継続的な構成の検証
ソフトウェア開発の一環として、開発者はソフトウェアがアプリケーションレベルでデフォルトで安全に構成されていることを確保する必要があります。たとえば、以下のようにします。
インフラストラクチャを定義するコードは最小権限の原則に従う必要があります。
アカウント、ソフトウェア、デモ機能などの必要ではない構成や機能は無効にする必要があります。
防止される脆弱性
参考情報
OWASP Cheat Sheet: Infrastructure as Code Security Cheat Sheet
ツール
Tfsec - Terraform テンプレートのオープンソース静的解析
Terrascan - Infrastructure-as-Code 脆弱性のスキャン
Checkov - オープンソースと Infrastructure-as-Code 脆弱性のスキャン
Scout Suite はオープンソースのマルチクラウドセキュリティ監査ツールであり、現在 Amazon Web Services, Microsoft Azure, Google Cloud Platform をサポートしています
Snyk - オープンソース、コード、コンテナ、Infrastructure-as-Code の脆弱性のスキャン
Trivy - オープンソース、コード、コンテナ、Infrastructure-as-Code の脆弱性のスキャン
KICS - Infrastructure-as-Code の脆弱性のスキャン
Kubescape - Kubernetes 脆弱性のスキャン
Kyverno - ポリシーを使用した Kubernetes の保護
Last updated