スライド 1

プロファイル(制御レベル)配列 (256個)
ファイルに関するアクセス制御の方法
(0~3のいずれか)
ネットワークに関するアクセス制御の方法
(0~3の何れか)
アクセスログの保存方法
ポリシー違反メッセージの表示方法
その他いろいろ
ドメインのリスト
<kernel>
プロファイル
<kernel> /sbin/init
<kernel> /sbin/modprobe
<kernel> /sbin/hotplug
<kernel> /sbin/init /etc/rc.d/rc
プロファイル(制御レベル)の一覧
ドメインのリスト
<kernel>
プロファイル0
<kernel> /sbin/init
プロファイル1
<kernel> /sbin/modprobe
<kernel> /sbin/hotplug
プロファイル2
<kernel> /sbin/init /etc/rc.d/rc
ドメインのリスト
<kernel>
ドメインに対するアクセス許可のリスト
1 /sbin/init
1 /sbin/modprobe
<kernel> /sbin/init
4 /etc/inittab
1 /sbin/hotplug
6 /dev/console
<kernel> /sbin/modprobe
4 /proc/cmdline
1 /bin/sh
4 /etc/modprobe.conf
<kernel> /sbin/hotplug
6 /dev/tty
4 /etc/mtab
<kernel> /sbin/init /etc/rc.d/rc
6 /dev/console
4 /etc/passwd
2 /dev/null
ドメイン構造体
アクセス許可構造体
次のドメイン構造体へのポインタ
(無ければNULL)
次のアクセス許可構造体へのポインタ
(無ければNULL)
最初のアクセス許可構造体へのポインタ
(無ければNULL)
適用条件構造体へのポインタ
(無ければNULL)
ドメイン名
(重複無し)
アクセス許可の種別
使用するプロファイル番号
(0~255のいずれか)
削除済みフラグ
削除済みフラグ
アクセス許可の内容
(種別によりサイズが異なる)
警告済みフラグ
適用条件のリスト
適用条件構造体
適用条件0
次の適用条件構造体へのポインタ
(無ければNULL)
適用条件1
適用条件の数
(この適用条件構造体のサイズ)
適用条件2
条件1
適用条件3
・・・
適用条件4
条件N
適用条件5
パス名グループ名のリスト
web-contents
グループメンバのリスト
/var/www/html/\*
/var/www/html/\*/\*
basic-commands
/bin/ls
/home/\*/public_html/\*
/bin/cat
mail-spool
/var/spool/mail/\*
/bin/unlink
/var/spool/mqueue/\*
fonts
/usr/share/fonts/\*
icons
/usr/share/fonts/\*/\*
/usr/share/icons/\*/\*
/usr/X11R6/fonts/\*
/var/www/icons/\*
パス名グループ構造体
グループメンバ構造体
次のグループ構造体へのポインタ
(無ければNULL)
次のグループメンバ構造体へのポインタ
(無ければNULL)
グループ名
(重複無し)
グループメンバ名
(このグループ内では重複無し)
最初のグループメンバ構造体へのポインタ
(無ければNULL)
削除済みフラグ
アドレスグループ名のリスト
private-address
グループメンバのリスト
10.0.0.0-10.255.255.255
172.16.0.0-172.31.255.255
DNS-server
192.168.1.10
192.168.0.0-192.168.255.255
192.168.1.20
allowed-client
192.168.1.200-192.168.1.250
127.0.0.1
localhost
0:0:0:0:0:0:0:1
127.0.0.1
Gateway-server
192.168.1.1
192.168.1.130
アドレスグループ構造体
グループメンバ構造体
次のグループ構造体へのポインタ
(無ければNULL)
次のグループメンバ構造体へのポインタ
(無ければNULL)
グループ名
(重複無し)
開始IPv4またはIPv6アドレス
(このグループ内では重複無し)
最初のグループメンバ構造体へのポインタ
(無ければNULL)
終了IPv4またはIPv6アドレス
(このグループ内では重複無し)
削除済みフラグ
IPv6フラグ
CheckFileACL
CheckSingleWriteACL
CheckDoubleWriteACL
CheckFilePerm2
CheckSingleWritePermission2
CheckDoubleWritePermission
CheckSingleWritePermission
CheckOpenPermission
CheckReWritePermission
CheckExecPerm
CheckFilePerm
open
execve
fcntl
sysctl
uselib
create
mkdir
mkfifo
mkblock
truncate
rewrite
unlink
rmdir
mksock
mkchar
symlink
link
rename
deny_rewrite が指定されていないパス名
open() 時に「O_TRUNC が指定されている」場合
CheckFilePerm2()
CheckSingleWritePermission2(TYPE_TRUNCATE_ACL)
truncate()時
CheckSingleWritePermission2(TYPE_TRUNCATE_ACL)
deny_rewrite が指定されているパス名
open() 時に「O_TRUNC が指定されている」 または「O_APPEND が指定されて
いない」場合
CheckSingleWritePermission2(TYPE_REWRITE_ACL)
CheckFilePerm2()
CheckSingleWritePermission2(TYPE_TRUNCATE_ACL)
CheckSingleWritePermission2(TYPE_REWRITE_ACL)
fcntl(SETFL)時に「O_APPENDが指定されていない」場合
CheckSingleWritePermission2(TYPE_REWRITE_ACL)
truncate()時
CheckSingleWritePermission2(TYPE_TRUNCATE_ACL)
CheckSingleWritePermission2(TYPE_REWRITE_ACL)