SPDL 文法整理

4日ぶりぐらいにsourceforge.netのCVSが復活。
SPDL(Simplified Poilcy Description Language)の文法を整理

allow/allowonlyの統合

ファイルのアクセス制御にallow(サブディレクトリ全部許可)/allowonly(ディレクトリ直下のファイルのみ許可)とあったが、
どうもわかりにくいので、
AppArmor式の設定記述に。
domain foo_t;
allow /var/* r; → foo_tは、/var直下のファイルにrアクセス可能。
allow /usr/local/** r;→ foo_tは、/usr/localの全てのサブディレクトリにr
アクセス可能

globalドメインの廃止

http://d.hatena.ne.jp/himainu/20060401
の理由で、globalドメインを廃止。

globalの代用

globalが廃止になったがincludeとdenyでそれ以上の働きができる。

  • include先でdenyを書くことで設定ミスの防止ができる
  • include元でのallowをキャンセルするために、denyが使える

例:
● include/global.h
deny /etc/shadow; -> 設定ミスの防止
allow /usr/lib/** r,x,s;

● foo_t.a
domain foo_t;
include global.h;
allow /etc/* r;

  • > /etc/shadowを除いてrアクセスできる

deny /usr/lib;

  • > allow /usr/lib/** r,x,s;をキャンセル


SPDLの気になる部分は、ほとんど直った。
AppArmorありがとう。
seeditは、LIDS,TOMOYO,AppArmorからインスパイアされている(パクったという)。
LIDS(パス名ベースの設定,denyで設定ミスを防止する考え方),TOMOYO(デバイスの保護), AppArmor(文法、include)って感じ。

これでSPDLの仕様は,ほぼfixに違いない。次は。。

  • audit2spdlを直す
  • XMLインポート/エクスポートの修正
  • FC5で試す
  • デフォルトのポリシをひたすら軽く(RBAC省略、unconfined_tドメイン)
  • バグ取り
  • コンパイルエラーの行番号とか(includeがあると行番号が変になる)

で、version1.4.0をアナウンスして,MLも作って広く使ってもらおう。