2006年7月23日

[selinux-users:01690] Re: Generating module includingtemplates on web

藤原 です。

モジュール生成の試みですが、コンパイルは各自でやるとして、
ログファイルをいただければ、インタフェース付の.teファイルを
生成できる仕組みを自作phpスクリプトとcsvファイルで作りました。
来週あたりには、web上であなたのログファイルを.teファイルに
変換して差し上げられると思います。
3つのパターンをご用意できます。

1 生allow文
2 soft policy
3 hard policy

今回は、2のsoft policyを披露させてください。
こんな具合です。

ああ、冗長だ、まだまだ甘いなんて言わないで。
私にはこれが限界です...。
これでmakeは通りますから。
(何だかスパムメールに影響されたような文面になってます。すいません。)

...
この上に生allow文

##############################################################################
##You may allow above more efficiently by using interfaces written down
below.
##Alert: This is a soft policy.An error may occure on filetrans
interface.
##Please comment out those lines. All you have to do is just make this
file,
##and load. :)
##You may use hard policy if you want your system much secure.
##There are 26 interfaces you can use.
##############################################################################

module my_module_by_selpaw 0.01;

require {

class dir getattr;
class dir search;
class dir { create read getattr lock setattr ioctl link unlink rename
search add_name remove_name reparent write rmdir };
class dir { getattr search read lock ioctl };
class dir { getattr search };
class dir { read getattr lock search ioctl add_name remove_name write };
class dir { read getattr lock search ioctl };
class dir { read search getattr };
class fd use;
class fifo_file { create ioctl read getattr lock write setattr append
link unlink rename };
class file { create ioctl read getattr lock write setattr append link
unlink rename };
class file { getattr read write };
class file { getattr read };
class lnk_file { create read getattr setattr link unlink rename };
class security check_context;
class security compute_av;
class security compute_create;
class security compute_member;
class security compute_relabel;
class security compute_user;
class security setsecparam;
class sock_file { create ioctl read getattr lock write setattr append
link unlink rename };

type backup_t;
type httpd_sys_content_t;
type httpd_sys_script_t;
type load_policy_t;
type local_login_t;
type security_t;
type sshd_t;
type staff_t;
type sysadm_home_dir_t;
type sysadm_t;
type user_home_dir_t;
type user_home_t;

}
apache_manage_sys_content(staff_t)
apache_read_sys_content(staff_t)
locallogin_use_fds(sshd_t)
selinux_compute_access_vector(load_policy_t)
selinux_compute_access_vector(sysadm_t)
selinux_compute_create_context(load_policy_t)
selinux_compute_create_context(sysadm_t)
selinux_compute_member(load_policy_t)
selinux_compute_member(sysadm_t)
selinux_compute_relabel_context(load_policy_t)
selinux_compute_relabel_context(sysadm_t)
selinux_compute_user_contexts(load_policy_t)
selinux_compute_user_contexts(sysadm_t)
selinux_set_parameters(load_policy_t)
selinux_set_parameters(sysadm_t)
selinux_validate_context(load_policy_t)
selinux_validate_context(sysadm_t)
userdom_getattr_sysadm_home_dirs(httpd_sys_script_t)
userdom_list_sysadm_home_dirs(httpd_sys_script_t)
userdom_manage_generic_user_home_content_dirs(backup_t)
userdom_manage_generic_user_home_content_files(backup_t)
userdom_manage_generic_user_home_content_pipes(backup_t)
userdom_manage_generic_user_home_content_sockets(backup_t)
userdom_manage_generic_user_home_content_symlinks(backup_t)
userdom_search_sysadm_home_dirs(httpd_sys_script_t)
userdom_sysadm_home_dir_filetrans(httpd_sys_script_t)

この下にhard policy
...

2006-07-22 (土) の 20:50 +0900 に Shintaro Fujiwara さんは書きました:
> 藤原 でっす。
>
> 約4メガバイトのaudit.log_testというファイル
> (内容は度外視してください)を用意して、
> csvファイルにしたインタフェース群に対して
> 自作phpスクリプトで検索させたところ、
> 約3秒で以下の結果を得ました。
> インタフェースで記述するのは、どこに何があるのか
> 探すのが大変なんですが、
> このようにすれば、バチっと設定できると思います。
> まだ、実験中なのでスクリプトの公開は控えますが、
> 結構いけてませんかね。
> では。
>
> ##############################################################################
> There are 5259 denied lines in this log.
> You may allow these if you really want to permit them to.
> ##############################################################################
>
> allow backup_t sysadm_devpts_t:chr_file getattr;
> allow backup_t user_home_t:dir relabelfrom;
> allow httpd_sys_script_t sysadm_home_dir_t:dir getattr;
> allow load_policy_t security_t:security relabelfrom;
> allow sshd_t local_login_t:fd use;
> allow sshd_t sshd_t:fd use;
> allow sshd_t sysadm_devpts_t:chr_file write;
> allow sshd_t sysadm_tty_device_t:chr_file write;
> allow staff_t httpd_sys_content_t:file relabelfrom;
> allow staff_t staff_home_t:dir relabelfrom;
> allow sysadm_t security_t:security relabelfrom;
>
>
>
> ##############################################################################
> You may allow above more efficiently by using interfaces written down
> below.
> Alert: This is a soft policy. You may delete lines if you think it
> allows too much.
> ##############################################################################
> apache_manage_sys_content(staff_t)
> apache_read_sys_content(staff_t)
> locallogin_use_fds(sshd_t)
> selinux_compute_access_vector(load_policy_t)
> selinux_compute_access_vector(sysadm_t)
> selinux_compute_create_context(load_policy_t)
> selinux_compute_create_context(sysadm_t)
> selinux_compute_member(load_policy_t)
> selinux_compute_member(sysadm_t)
> selinux_compute_relabel_context(load_policy_t)
> selinux_compute_relabel_context(sysadm_t)
> selinux_compute_user_contexts(load_policy_t)
> selinux_compute_user_contexts(sysadm_t)
> selinux_set_parameters(load_policy_t)
> selinux_set_parameters(sysadm_t)
> selinux_validate_context(load_policy_t)
> selinux_validate_context(sysadm_t)
> userdom_getattr_sysadm_home_dirs(httpd_sys_script_t)
> userdom_list_sysadm_home_dirs(httpd_sys_script_t)
> userdom_manage_generic_user_home_content_dirs(backup_t)
> userdom_manage_generic_user_home_content_files(backup_t)
> userdom_manage_generic_user_home_content_pipes(backup_t)
> userdom_manage_generic_user_home_content_sockets(backup_t)
> userdom_manage_generic_user_home_content_symlinks(backup_t)
> userdom_search_sysadm_home_dirs(httpd_sys_script_t)
> userdom_sysadm_home_dir_filetrans(httpd_sys_script_t)
>
>
>
> 2006-07-22 (土) の 09:43 +0900 に Shintaro Fujiwara さんは書きました:
> > 藤原で〜す。
> >
> > 各.ifファイルを自作PHPスクリプト
> > (先日のからバージョンアップさせたもの)で解析し、
> > レイヤー名、モジュール名、インタフェース名、allow文
> > で非正規形の.csvファイル(表現が変?)を作りました。
> > (容量が大きいので、添付できませんけど。)
> >
> > これを、audit.logを解析するPHPスクリプトから出た
> > 結果と照らし合わせ、最適なインタフェール名を導出させる予定。
> > 最終的には、最適なインタフェースを含んだ
> > モジュール生成を目指します。
> >
> > 以下は、.csvファイルの一部を切り取ったもの
> > ...
> > admin,bootloader,bootloader_domtrans,allow $1 bootloader_t:fd use;,
> > admin,bootloader,bootloader_domtrans,allow bootloader_t $1:fd use;,
> > admin,bootloader,bootloader_domtrans,allow bootloader_t $1:fifo_file
> > { getattr read write append ioctl lock };,
> > admin,bootloader,bootloader_domtrans,allow bootloader_t $1:process
> > sigchld;,
> > ...
> >
> > 肝は、マクロをパミッションに展開しているところ。
> > そうすることで、audit.logの生パミッションと出会えるという寸法。
> > 私の目指しているのは、web上でaudit.logをアップしてもらって、
> > 即座にモジュールを表示するというサービスなんですが...。
> > 利用する人いるかな?
> > 車の保険でも見積とるときに色々入力しますよね。
> > アレみたいなもんです。
> > ファイル形式より、正規化してデータベース方式にするかもしれませんが。
> >
> >
>
>


投稿者 xml-rpc : 2006年7月23日 22:10
役に立ちました?:
過去のフィードバック 平均:(0) 総合:(0) 投票回数:(0)
本記事へのTrackback: http://hoop.euqset.org/blog/mt-tb2006.cgi/42669
トラックバック
コメント
コメントする




画像の中に見える文字を入力してください。