Product SiteDocumentation Site

第 14 章 セキュリティ

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

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

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