Product SiteDocumentation Site

第14章 セキュリティ

14.1. セキュリティポリシーの定義
14.2. ファイヤーウォールとパケットフィルタリング
14.2.1. netfilter の挙動
14.2.2. iptablesip6tables の構文
14.2.3. ルールの作成
14.2.4. 起動時にルールを適用する
14.3. 監督: 防止、検知、監査
14.3.1. logcheck を使ったログ監視
14.3.2. 監視活動
14.3.3. 変更検知
14.3.4. 侵入検知 (IDS/NIDS)
14.4. SELinux の紹介
14.4.1. 原理
14.4.2. SELinux のセットアップ
14.4.3. SELinux システムの管理
14.4.4. ルールの適用
14.5. セキュリティ関連で他に考慮すべき点
14.5.1. ウェブアプリケーションに備わっている潜在的危険性
14.5.2. 予測される結果を知る
14.5.3. 賢い方法でソフトウェアを選ぶ
14.5.4. マシン全体の管理
14.5.5. 内部ユーザから保護
14.5.6. 物理セキュリティ
14.5.7. 法的責任
14.6. 不正侵入されたマシンの取り扱い
14.6.1. クラッカー不正侵入の検知と観察
14.6.2. サーバをオフラインにする
14.6.3. 証拠として使えるすべての保存
14.6.4. 再インストール
14.6.5. フォレンジック解析
14.6.6. 攻撃シナリオの再構成
情報システムはその環境に依存して様々な重要度を持ちます。情報システムが企業が生き残る上で極めて重要な意味を持つ場合もあります。そのため、様々な危険から情報システムを保護する事が重要です。これらの危険を評価する過程、保護の定義および実装はまとめて「セキュリティプロセス」として知られています。

14.1. セキュリティポリシーの定義

「セキュリティ」という単語自体は広い範囲の概念、ツール、手順を意味しており、どの一つをとってみても普遍的に適用できるものではありません。これらを選択するには、自分の目標に関する正確な知識を必要とします。システムを保護することは幾つかの質問に答えることから始まります。何も考えずいい加減に選んだツール群を使うと、間違ったセキュリティの側面に注力するという危険を冒すことになります。
このため、まず最初に目標を決定します。目標設定を手助けするには、以下の質問に答えると良いでしょう:
  • 何を保護したいのですか? セキュリティポリシーは、コンピュータを保護したい場合とデータを保護したい場合とで、異なります。データを保護したい場合、保護したいデータの種類を知る必要があります。
  • 何から保護したいのですか? 機密データの漏洩から? 予想外のデータ損失から? サービスが停止したことによる収益の損失から?
  • さらに、誰から保護したいのですか? システムの一般ユーザによる誤字から保護したい場合と、決定された攻撃者グループから保護したい場合とでは、必要なセキュリティ対策は全く異なるものになるでしょう。
「リスク」という用語は習慣的に、3 つの要素をまとめて意味しています: 保護したいのは何なのか、危険を防ぐために必要なのは何なのか、危険を引き起こすのは誰なのか。この種のリスクをモデル化するには、3 つの質問に答える必要があります。このリスクモデルから、セキュリティポリシーが構成され、セキュリティポリシーは具体的な動作を伴い履行されます。
他にも考慮に値する追加的な質問があります。この質問により、利用可能なポリシーの範囲を狭める事が可能です。どの程度までシステムを保護したいのですか? この質問はポリシーの設計に大きな影響を与えます。この質問には、金銭的な費用の意味だけでなく、システムユーザに課される不便さや性能の低下の量という別の要素も考慮して回答すべきです。
リスクのモデル化が完了したら、実際のセキュリティポリシーの設計について検討を開始する事が可能です。
ほとんどの場合、情報システムを一貫性のある独立した小集団に分割する事が可能です。各サブシステムには独自の要求と制限事項があります。このため、リスク評価とセキュリティポリシーの設計はそれぞれのサブシステム毎に別々に実行されるべきです。覚えておくべき良い原理は、簡潔に上手く定義された境界を定義するほうが、複雑に曲がりくねった境界を定義するよりも、簡単という原理です。ネットワーク組織もまた適切に設計されるべきです: 機密を取り扱うサービスは少数のマシンに集中させるべきで、それらのマシンへのアクセスを可能にするチェックポイントの数を最小限に留めるべきです; これらのチェックポイントを守ることは、外の世界全体からすべての機密を取り扱うマシンを守ることよりも簡単です。現在、ネットワークフィルタ (ファイヤーウォールを含めて) の実用性が明らかになりつつあります。ネットワークフィルタは専用ハードウェアを使って実装される事も可能ですが、Linux カーネルに統合されているソフトウェアファイヤーウォールを使えばより簡単で柔軟性の高いフィルタを作成する事が可能です。