技術的セキュリティ方針
関連: 情報セキュリティ方針、エンジニア向けセキュリティガイドライン
関連管理策: A.8 技術的管理策
1. 目的
本方針は、{{組織名}}の情報システムにおける技術的なセキュリティ要件を定め、情報資産を技術的脅威から保護することを目的とする。
2. 適用範囲
本方針は、以下に適用する:
- {{組織名}}が保有・運用する全ての情報システム
- クラウドサービスを含む外部委託システム
- 開発・テスト・本番環境
- ネットワークインフラストラクチャ
3. 暗号化方針 (A.8.24)
3.1 暗号化の原則
{{組織名}}は、情報の機密性と完全性を保護するため、適切な暗号化を実施する。
3.2 暗号アルゴリズムの選定
以下の暗号アルゴリズムを標準として使用する:
| 用途 | 推奨アルゴリズム | 最小要件 |
|---|---|---|
| 対称暗号 | AES-256 | AES-128 |
| ハッシュ | SHA-256, SHA-384 | SHA-256 |
| 通信暗号化 | TLS 1.3 | TLS 1.2 |
| パスワードハッシュ | Argon2id, bcrypt | bcrypt (cost=10+) |
| 鍵交換 | ECDHE | DHE (2048bit+) |
以下のアルゴリズムは使用を禁止する:
- MD5、SHA-1(署名・完全性検証目的)
- DES、3DES
- RC4
- SSL 3.0、TLS 1.0、TLS 1.1
3.3 鍵管理
- 暗号鍵は安全に生成し、適切に保管する
- 鍵の有効期限を設定し、定期的に更新する
- 鍵管理サービス(KMS)の利用を推奨する
- 鍵のバックアップと復旧手順を確立する
4. ネットワークセキュリティ方針 (A.8.20, A.8.21, A.8.22, A.8.23)
4.1 ネットワーク保護の原則
- 境界防御とゼロトラストの両方のアプローチを採用する
- 全ての通信は暗号化することを基本とする
- 不要なネットワークサービスは無効化する
4.2 ネットワーク分離
ネットワークは以下のセグメントに分離する:
| セグメント | 用途 | アクセス制御 |
|---|---|---|
| DMZ | 外部公開サービス | インターネットからアクセス可能、内部へのアクセス制限 |
| 内部ネットワーク | 業務システム | 従業員のみアクセス可能 |
| 管理ネットワーク | システム管理 | 管理者のみアクセス可能 |
| 開発ネットワーク | 開発・テスト | 開発者のみアクセス可能、本番と分離 |
4.3 ネットワークサービスのセキュリティ
- ネットワークサービスの利用は業務上必要なものに限定する
- 外部ネットワークサービスの利用は事前に承認を得る
- サービスレベル合意(SLA)にセキュリティ要件を含める
4.4 ウェブフィルタリング
- 悪意のある Web サイトへのアクセスをブロックする
- 業務上不要なカテゴリへのアクセスを制限する
- フィルタリングルールは定期的にレビューする
5. 開発セキュリティ方針 (A.8.25, A.8.26, A.8.27, A.8.28, A.8.29, A.8.31)
5.1 セキュア開発ライフサイクル
全ての開発プロジェクトにおいて、セキュリティを開発ライフサイクル全体に組み込む。
| フェーズ | セキュリティ活動 |
|---|---|
| 要件定義 | セキュリティ要件の特定 |
| 設計 | 脅威モデリング、セキュリティ設計レビュー |
| 実装 | セキュアコーディング、コードレビュー |
| テスト | セキュリティテスト(SAST、DAST) |
| デプロイ | セキュリティ構成確認 |
| 運用 | 脆弱性監視、インシデント対応 |
5.2 セキュリティ要求事項
開発開始前に以下のセキュリティ要求事項を明確にする:
- 認証・認可の方式
- データ保護要件(保存時・転送時の暗号化)
- 監査ログ要件
- 可用性要件
- コンプライアンス要件
5.3 セキュアアーキテクチャ原則
システム設計において以下の原則を適用する:
- 多層防御: 単一の防御に依存しない
- 最小権限: 必要最小限の権限のみ付与
- フェイルセキュア: 障害時は安全側に倒す
- 信頼境界の明確化: 信頼できる範囲を明確に定義
5.4 セキュアコーディング
以下のセキュアコーディング原則を遵守する:
- 入力値の検証(サーバー側での検証必須)
- 出力のエスケープ
- パラメータ化クエリの使用(SQL インジェクション対策)
- セッション管理の適切な実装
- エラー処理と例外処理
5.5 セキュリティテスト
リリース前に以下のテストを実施する:
- 静的アプリケーションセキュリティテスト(SAST)
- 動的アプリケーションセキュリティテスト(DAST)
- 依存ライブラリの脆弱性スキャン
- 重要システムについては侵入テスト
5.6 環境分離
- 開発、テスト、ステージング、本番環境を分離する
- 各環境へのアクセス権を分離する
- 本番データを開発・テスト環境で使用しない(使用する場合はマスキング必須)
6. 変更管理方針 (A.8.19, A.8.32)
6.1 変更管理プロセス
本番環境への全ての変更は、変更管理プロセスに従う:
- 変更要求の申請
- 影響分析とリスク評価
- 承認
- テスト
- 実施
- 検証と記録
6.2 ソフトウェア導入
- 承認されたソフトウェアのみ導入可能
- 導入前にセキュリティリスクを評価
- オープンソースソフトウェアのライセンスを確認
- 脆弱性のあるバージョンを導入しない
7. マルウェア対策方針 (A.8.7)
7.1 マルウェア対策の原則
- 全てのエンドポイントとサーバーにマルウェア対策を導入する
- 定義ファイルは自動更新する
- リアルタイム保護を有効にする
7.2 対策ソフトウェアの導入
| 対象 | 要件 |
|---|---|
| クライアント PC | ウイルス対策ソフト必須 |
| サーバー | ウイルス対策ソフト必須(影響評価の上導入) |
| メールゲートウェイ | マルウェアフィルタリング必須 |
| Web ゲートウェイ | マルウェアスキャン推奨 |
8. 脆弱性管理方針 (A.8.8)
8.1 脆弱性情報の収集
- 使用しているソフトウェアの脆弱性情報を継続的に監視する
- 信頼できる情報源(JPCERT/CC、NVD 等)から情報を収集する
8.2 脆弱性評価
脆弱性は CVSS スコアに基づいて評価し、対応優先度を決定する:
| CVSS スコア | 深刻度 | 対応期限 |
|---|---|---|
| 9.0-10.0 | 緊急 | {{期限}} |
| 7.0-8.9 | 高 | {{期限}} |
| 4.0-6.9 | 中 | {{期限}} |
| 0.1-3.9 | 低 | {{期限}} |
8.3 パッチ管理
- 定期的なパッチ適用サイクルを確立する
- 緊急パッチは優先的に適用する
- パッチ適用前にテスト環境で検証する
9. 構成管理方針 (A.8.9)
9.1 構成管理の原則
- 全てのシステム構成を文書化し、管理する
- 構成の変更は変更管理プロセスに従う
- 構成のベースラインを確立し、逸脱を検知する
9.2 セキュリティベースライン
- 各システム種別に対してセキュリティベースラインを定義する
- ベースラインからの逸脱を定期的に確認する
- Infrastructure as Code(IaC)の活用を推奨する
10. ログ・監視方針 (A.8.15, A.8.16, A.8.17)
10.1 ログ取得
以下のイベントをログに記録する:
- 認証イベント(成功・失敗)
- 認可イベント(アクセス許可・拒否)
- 管理者操作
- システムイベント(起動、停止、エラー)
- セキュリティイベント
10.2 監視活動
- セキュリティイベントをリアルタイムで監視する
- 異常検知のためのルールとアラートを設定する
- インシデント発生時は迅速に対応する
10.3 時刻同期
- 全システムで NTP による時刻同期を実施する
- ログのタイムスタンプ形式を統一する
11. 関連文書
改訂履歴
| 版 | 日付 | 変更内容 | 承認者 |
|---|---|---|---|
| 1.0 | {{発効日}} | 初版作成 | {{承認者}} |