SELinuxの紹介と課題(中村雄一様)


◆従来Linuxの問題点

  • DAC
  • root権限
  • 粗いアクセス制御
  • 権限の昇格が可能


SELinuxの機能概要

  • MAC
    • セキュリティチェック機構は、回避できない仕組み。
    • セキュリティポリシーを管理しているのはセキュリティ管理者
  • TE
    • Secure Computing社の特許
      • SELinuxで使うのには特許権を請求しない。ただし、Secure Computing社が買収されるかも。
    • デフォルトではすべて拒否
      • 必要な権限を許可していく。32万行ぐらいあり、ディストリビュータとかじゃないと設定不可能。→デフォルトの設定が正しくないとつらい、というか、神!信じるしかない!
  • RBAC
    • ロールベースのアクセス制御
      • Apacheの管理者はApacheの部分だけアクセス可能、みたいな。
  • ドメイン遷移(実は、TEの一つの機能)
  • ログ
    • アクセスを拒否されたログを残す
      • 侵入者の動きをログとして残す
    • アクセスを許可されたログを残す
      • 管理者の正当な操作をログとして残せる
    • とりぼしもある
      • ログのDoS攻撃も成立する
      • Kernelの中で抑制しているらしい。
      • enforcing、permissiveともに取りこぼしが発生する。


SELinuxができること

  • 影響範囲を狭くする
  • 攻撃難易度の向上
    • Slammer Wormの場合
      1. BOを発生させ、シェルを起動→シェルが起動しない
      2. 攻撃プログラムを書き込みコンパイル→コンバイルができない


SELinux侵入実験

  • 10種類
    • 8種類が被害なし
    • 2種類がアプリケーション停止


SELinuxが対処不可能なこと

  • 侵入以外の攻撃
    • DoSは防げない
  • 限定されている権限内での操作を悪用
    • Webアプリケーションの脆弱性
      • Webアプリケーションでアクセス可能な範囲に影響を与える
    • 管理者の不正
      • Webの管理者が不正をログに残せる
    • 危険な範囲は、あらかじめ特定することができる
      • 事前にアクセス権限を与えるため
    • OSそのもののセキュリティホール
      • 防げない


SELinux侵入実験2(カーネルセキュリティホールを利用するツール/ワーム)

  • 4種類
    • 1種類が被害なし
    • 1種類が理論上攻撃可能
    • 2種類が被害あり


SELinuxの課題機能

  1. ポリシーの重要性
    • すべてはポリシーの記述が必要
      • ポリシーの記述は難しい
      • たくさんのパーミッション(ファイルだけでも17種類)
      • プロセスとファイルにラベルが必要
    • SELinux Policy Editor
      • 古いSELinuxにだけ対応している
    • SELinux/AD
    • デフォルト設定
      • よく使うデーモンに対しては提供されている
  2. Kernelそのものの保護
  3. ミドルウェア層の保護
    • Webアプリは大きな権限を持つ
    • DBMSは、SELinuxでは保護できない
  4. クライアントの保護
    • クライアントからの情報漏洩
      • 情報漏洩は防げない
    • カット&ペースト、メディアへの書き出し、PrintScreen等の禁止
      • Security-Enhanced X
        • ウィンドウにラベルを付けてX同士の通信を細かく制御する仕組み。
    • メディアへの書き込み制御
      • SELinuxで制御可能
      • 暗号化はおこなっていない
  5. 侵入検知・防止
    • 侵入防止
      • exec-shield
  6. 他の課題
    • DoS攻撃の防御
    • 監査ログの使い道
    • 認証の問題