Skip to main content
OpenStack on SELinux
SELinux とは
●   Linux におけるリファレンスモニタの一つ
●   強制アクセス制御の機能を提供
     –   root でも回避不能なアクセス制御
●   最小特権の機能を提供
     –   必要な権限を必要なだけ与える


●   「誰が」「何に」対して「何をできる」
Q. 簡単に効く箇所はどこか
●   A. nova-compute
       –   KVM & SELinux = sVirt
       –   libvirt を拡張し SELinux と連携


●   SELinux なマシンで KVM を動かすだけで絶大な
    効果を得られる


●   他でも効果はあるが運用コストが高くなる


●   活用事例 : IBM Smart Business Cloud Enterprise
sVirt が守るもの
●   仮想マシン


1. qemu/kvm に未知の脆弱が見つかる
2. qemu 権限で任意のコードを実行
3. 他の VM に対する攻撃を実行
   or
  ホスト OS に対する攻撃を実行
sVirt が守るもの
仕組み
●   仮想マシン毎に仮想的な組織を付与
        –   異なる組織同士のアクセスは禁止


# ps axZ | grep qemu
system_u:system_r:svirt_t:s0:c87,c520 27950 ? 00:00:17 qemu-kvm
system_u:system_r:svirt_t:s0:c65,c381 27950 ? 00:00:17 qemu-kvm
デモ
●   現状、 VM から VM への脆弱が見つからな
    いので攻撃はしない

●   簡単なデモでご勘弁を。

●   組織を利用したアクセス制御
デモ
●   3 ユーザを 3 組織に所属させる
      –   opsuser01: c1
      –   opsuser02: c2
      –   opsuser03: c0.c2 (c0,c1,c2)

●   4 ファイルを 4 組織に所属させる
      –   /tmp/000.txt: c0 ( 権限 : 777)
      –   /tmp/001.txt: c1 ( 権限 : 777)
      –   /tmp/002.txt: c2 ( 権限 : 777)
      –   /tmp/003.txt: c3 ( 権限 : 777)