On Wed, 2007-12-12 at 16:47 +0530, Subrata Modak wrote:
> On Tue, 2007-12-11 at 09:52 -0600, Serge E. Hallyn wrote:
> > Quoting Subrata Modak ([EMAIL PROTECTED]):
> > > On Mon, 2007-12-10 at 11:15 -0600, Serge E. Hallyn wrote:
> > > > Quoting Stephen Smalley ([EMAIL PROTECTED]):
> > > > > On Mon, 2007-12-10 at 11:31 +0530, Subrata Modak wrote:
> > > > > > On Fri, 2007-12-07 at 21:55 +0530, Subrata Modak wrote:
> > > > > > > Hi All,
> > > > > > >
> > > > > > > Today i had the opportunity to meet James Morris from Red Hat at
> > > > > > > FOSS.in
> > > > > > > held at Bangalore, India. After his talks on Se-Linux, we were
> > > > > > > discussing about the Policy Reference support for Se-linux
> > > > > > > available in
> > > > > > > LTP under the directory:
> > > > > > > ltp/testcases/kernel/security/selinux-testsuite/
> > > > > > >
> > > > > > > Though i have released RHEL5 EAL4+ Certification Testsuites from
> > > > > > > IBM, i
> > > > > > > have not seen the testcases under:
> > > > > > > ltp/testcases/kernel/security/selinux-testsuite/
> > > > > > > updated for more than an year. I am not aware exactly about the
> > > > > > > reason
> > > > > > > for the same. I would like to request you send me any updates
> > > > > > > that you
> > > > > > > may want to give to LTP for your selinux-testsuite.
> > > > > >
> > > > > > Can somebody give me some direction on this ??
> > > > >
> > > > > What kind of direction are you seeking?
> > > > >
> > > > > We gave the selinux testsuite to IBM at their request, and they ported
> > > > > it over to the LTP and submitted it there. Joy Latten was involved in
> > > > > the porting; I've cc'd her above.
> > >
> > > Well i have not received any selinux testcases updates for reference
> > > policy for the last 3 quarters. What i have received and released is
> > > EAL4+ Certification Test Suite, which includes
> > > rhel5_ibm_eal4_cert_suite2.tgz. I drilled down in to this and tried to
> > > find whether there are any se-linux testcases included here, which are
> > > apparently present in ltp/testcases/kernel/security/selinux-testsuite/
> > > directory of ltp-full-20073011.tgz (can be downloaded from
> > > http://prdownloads.sourceforge.net/ltp/ltp-full-20071130.tgz?download).
> > > I did not find either of them. They seemed different to me.
> > >
> > > >
> > > > So the question is who should update the testsuite. This is not just an
> > > > issue for selinux, but for all the ltp tests.
> > > >
> > > > One could say it's Joy because she submitted the testcases. But let me
> > > > warn you that that attitude will definitely decrease the likelyhood of
> > > > testcases being submitted to LTP. (It'll certainly deter me)
> > > >
> > > > One could say it should be the selinux community in general, but that
> > > > community is too large for such an answer to be helpful, and it may not
> > > > be fair since they can say "we didn't submit that."
> > > >
> > > > One could say it should be the reference policy maintainer, because I
> > > > suspect refpolicy updates will be the biggest cause of breakage - but
> > > > that isn't fair to him since again he didn't submit it.
> > > >
> > > > One might say it should be the ltp community - after the biggest
> > > > advantage of submitting to LTP should be some free maintenance. However
> > > > it likely doesn't have the needed expertise.
> > >
> > > Ok. This is i would say as a collective responsibility rather than
> > > somebody?? alone. It is the responsibility of the maintainer (here LTP
> > > and hence myself) to find out the validity of test cases in his/her
> > > project he/she is maintaining, and, then try to contact the author(s) of
> > > that particular test case component to provide updates if even he/she
> > > (Author(s)) has the updates themselves. Now it is upto their (Author(s))
> > > interest to write back if they are interested. Else the Maintainer is
> > > helpless.
> > > I initiated this mail as i found it my responsibility to find out
> > > authors who actually wrote these reference policy test cases for
> > > se-linux, and which are part of LTP in
> > > ltp/testcases/kernel/security/selinux-testsuite/ directory. Now if the
> > > author(s) respond, then i would work hard to integrate the same.
> > > After interaction with James Morris at FOSS.in, Bangalore, India, i came
> > > to know that he is also working on se-linux and he mentioned about the
> > > presence of reference policy support in LTP. I pointed him the release
> > > that i made this year (EAL4+ Certification Test Suite) and also
> > > requested him whether he can update me on the se-linux reference policy
> > > test cases of se-linux available inside Main LTP, he pointed me to write
> > > to se-linux test suite mailing list. Hence this mail.
> >
> > Reasonable. And it looks like the prod was needed.
>
> So, can somebody now give me some updates for testcases in this
> Directory::
> http://ltp.cvs.sourceforge.net/ltp/ltp/testcases/kernel/security/selinux-testsuite/,
Patch attached.
--
Stephen Smalley
National Security Agency
Apply some fixes to the selinux testsuite's test policy.
Signed-off-by: Stephen Smalley <[EMAIL PROTECTED]>
---
kernel/security/selinux-testsuite/README | 10 +++-
kernel/security/selinux-testsuite/refpolicy/test_capable_file.te | 2
kernel/security/selinux-testsuite/refpolicy/test_capable_net.te | 22 +++++-----
kernel/security/selinux-testsuite/refpolicy/test_file.te | 6 +-
kernel/security/selinux-testsuite/refpolicy/test_global.te | 22 +++++++++-
kernel/security/selinux-testsuite/refpolicy/test_ioctl.te | 2
kernel/security/selinux-testsuite/refpolicy/test_readlink.te | 6 ++
kernel/security/selinux-testsuite/refpolicy/test_rxdir.te | 6 ++
kernel/security/selinux-testsuite/refpolicy/test_setnice.te | 2
kernel/security/selinux-testsuite/refpolicy/test_stat.te | 6 ++
kernel/security/selinux-testsuite/refpolicy/test_sysctl.te | 6 +-
kernel/security/selinux-testsuite/refpolicy/test_task_create.te | 4 -
kernel/security/selinux-testsuite/refpolicy/test_task_setpgid.te | 2
13 files changed, 65 insertions(+), 31 deletions(-)
Index: testcases/kernel/security/selinux-testsuite/README
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/README,v
retrieving revision 1.2
diff -u -r1.2 README
--- testcases/kernel/security/selinux-testsuite/README 8 Nov 2005 16:49:33 -0000 1.2
+++ testcases/kernel/security/selinux-testsuite/README 12 Dec 2007 16:26:15 -0000
@@ -6,6 +6,10 @@
such as getenforce are found. The test_selinux.sh script adds /usr/sbin
to the PATH.
+You must also add expand-check=0 to your /etc/selinux/semanage.conf file
+as the test policy will violate some of the neverallow rules in the
+base policy.
+
There are two ways to run the SELinux testcases:
1. testsuite - all testcases
2. individual testcases
@@ -62,8 +66,8 @@
Run Individual Testcases
--------------------------
First build the test policy manually. Do this by first changing
-to the selinux-testsuite policy directory (cd to
-$LTPROOT/testcases/kernel/security/selinux-testsuite/policy)
+to the selinux-testsuite refpolicy directory (cd to
+$LTPROOT/testcases/kernel/security/selinux-testsuite/refpolicy)
and build the policy by doing a,
make load
@@ -88,7 +92,7 @@
testcase directory of the testcase being debugged.
To remove the test policy and restore original policy,
-cd to selinux-testsuite/policy directory and execute,
+cd to selinux-testsuite/refpolicy directory and execute,
make cleanup
Remember to remove test policy and restore original policy after
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_file.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_file.te,v
retrieving revision 1.2
diff -u -r1.2 test_capable_file.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_file.te 27 Mar 2006 16:55:48 -0000 1.2
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_file.te 12 Dec 2007 16:26:15 -0000
@@ -35,7 +35,7 @@
# Allow execution of helper programs.
corecmd_exec_bin(capabledomain)
-corecmd_exec_sbin(capabledomain)
+corecmd_exec_bin(capabledomain)
domain_exec_all_entry_files(capabledomain)
files_exec_etc_files(capabledomain)
libs_use_ld_so(capabledomain)
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_net.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_net.te,v
retrieving revision 1.2
diff -u -r1.2 test_capable_net.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_net.te 27 Mar 2006 16:55:48 -0000 1.2
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_capable_net.te 12 Dec 2007 16:26:15 -0000
@@ -32,21 +32,21 @@
corenet_tcp_bind_all_nodes(capabledomain)
corenet_udp_bind_all_nodes(capabledomain)
sysnet_read_config(capabledomain)
-optional_policy(`mount', `
- mount_send_nfs_client_request(capabledomain)
-')
+#optional_policy(`mount', `
+# mount_send_nfs_client_request(capabledomain)
+#')
corenet_tcp_bind_reserved_port(capabledomain)
-# Allow sbin_t to be entered from admin via certain utils.
-corecmd_sbin_entry_type(capabledomain)
-userdom_sysadm_sbin_spec_domtrans_to(capabledomain)
+# Allow bin_t to be entered from admin via certain utils.
+corecmd_bin_entry_type(capabledomain)
+userdom_sysadm_bin_spec_domtrans_to(capabledomain)
-#TODO: Need ifconfig_exec_t to be an entrypoint in order for domain
-# transition to succeed. How to do this with refpolicy???
-#ifdef(`sysnetwork.te', `
-# domain_trans(sysadm_t, ifconfig_exec_t, capabledomain)
-#')
+require {
+ type ifconfig_exec_t;
+}
+domain_trans(sysadm_t, ifconfig_exec_t, capabledomain)
+domain_entry_file(capabledomain, ifconfig_exec_t)
# Permissions for the good domain
allow test_ncap_t self:capability { dac_override net_admin net_raw };
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_file.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_file.te,v
retrieving revision 1.2
diff -u -r1.2 test_file.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_file.te 27 Mar 2006 16:55:48 -0000 1.2
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_file.te 12 Dec 2007 16:26:15 -0000
@@ -43,7 +43,7 @@
# Allow execution of helper programs.
corecmd_exec_bin(fileopdomain)
-corecmd_exec_sbin(fileopdomain)
+corecmd_exec_bin(fileopdomain)
domain_exec_all_entry_files(fileopdomain)
libs_use_ld_so(fileopdomain)
libs_use_shared_libs(fileopdomain)
@@ -57,8 +57,8 @@
corecmd_bin_entry_type(fileopdomain)
userdom_sysadm_bin_spec_domtrans_to(fileopdomain)
-corecmd_sbin_entry_type(fileopdomain)
-userdom_sysadm_sbin_spec_domtrans_to(fileopdomain)
+corecmd_bin_entry_type(fileopdomain)
+userdom_sysadm_bin_spec_domtrans_to(fileopdomain)
allow fileop_t fileop_exec_t:file entrypoint;
domain_auto_trans(test_fileop_t, fileop_exec_t, fileop_t)
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_global.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_global.te,v
retrieving revision 1.2
diff -u -r1.2 test_global.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_global.te 24 Mar 2006 17:29:38 -0000 1.2
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_global.te 12 Dec 2007 16:26:15 -0000
@@ -11,6 +11,12 @@
role sysadm_r types testdomain;
role system_r types testdomain;
+allow sysadm_t test_file_t:dir_file_class_set *;
+allow testdomain sysadm_t:fd use;
+allow testdomain sysadm_t:process sigchld;
+
+allow testdomain self:process setfscreate;
+
# Allow the test domains to access the sysadm terminal.
# This allows read and write sysadm ttys and ptys.
userdom_use_sysadm_terms(testdomain)
@@ -27,7 +33,7 @@
miscfiles_read_test_files(testdomain)
# Let the test domains set their current, exec and fscreate contexts.
-#allow testdomain self:process setcurrent;
+allow testdomain self:process setcurrent;
# domain_dyntrans_type(testdomain)
selinux_get_fs_mount(testdomain)
allow testdomain self:process setexec;
@@ -51,7 +57,19 @@
files_list_home(testdomain)
dev_read_rand(testdomain)
files_list_pids(testdomain)
-allow testdomain { root_t etc_t bin_t sbin_t lib_t usr_t devpts_t }:dir r_dir_perms;
+require {
+ type root_t;
+ type etc_t;
+ type bin_t;
+ type bin_t;
+ type lib_t;
+ type usr_t;
+ type devpts_t;
+ type devtty_t;
+ type null_device_t;
+ type zero_device_t;
+}
+allow testdomain { root_t etc_t bin_t bin_t lib_t usr_t devpts_t }:dir r_dir_perms;
allow testdomain lib_t:{ file lnk_file } r_file_perms;
allow testdomain etc_t:file r_file_perms;
allow testdomain { devtty_t null_device_t zero_device_t }:chr_file rw_file_perms;
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_ioctl.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_ioctl.te,v
retrieving revision 1.2
diff -u -r1.2 test_ioctl.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_ioctl.te 27 Mar 2006 16:55:48 -0000 1.2
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_ioctl.te 12 Dec 2007 16:26:15 -0000
@@ -23,7 +23,7 @@
# Allow execution of helper programs.
corecmd_exec_bin(ioctldomain)
-corecmd_exec_sbin(ioctldomain)
+corecmd_exec_bin(ioctldomain)
domain_exec_all_entry_files(ioctldomain)
files_exec_etc_files(ioctldomain)
libs_use_ld_so(ioctldomain)
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_readlink.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_readlink.te,v
retrieving revision 1.1
diff -u -r1.1 test_readlink.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_readlink.te 22 Mar 2006 21:30:29 -0000 1.1
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_readlink.te 12 Dec 2007 16:26:15 -0000
@@ -29,4 +29,8 @@
# TODO: Needs to be translated into refpolicy... how?
# Allow all of these domains to be entered from sysadm domain
-#domain_trans(sysadm_t, ls_exec_t, test_readlink_domain)
+require {
+ type ls_exec_t;
+}
+domain_trans(sysadm_t, ls_exec_t, test_readlink_domain)
+domain_entry_file(test_readlink_domain, ls_exec_t)
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_rxdir.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_rxdir.te,v
retrieving revision 1.1
diff -u -r1.1 test_rxdir.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_rxdir.te 22 Mar 2006 21:30:29 -0000 1.1
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_rxdir.te 12 Dec 2007 16:26:15 -0000
@@ -27,4 +27,8 @@
# TODO: How to translate this into refpolicy????
# Allow all of these domains to be entered from sysadm domain
-#domain_trans(sysadm_t, ls_exec_t, test_rxdir_domain)
+require {
+ type ls_exec_t;
+}
+domain_entry_file(test_rxdir_domain, ls_exec_t)
+domain_trans(sysadm_t, ls_exec_t, test_rxdir_domain)
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_setnice.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_setnice.te,v
retrieving revision 1.1
diff -u -r1.1 test_setnice.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_setnice.te 22 Mar 2006 21:30:29 -0000 1.1
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_setnice.te 12 Dec 2007 16:26:15 -0000
@@ -25,7 +25,7 @@
# Allow execution of helper programs.
corecmd_exec_bin(setnicedomain)
-corecmd_exec_sbin(setnicedomain)
+corecmd_exec_bin(setnicedomain)
domain_exec_all_entry_files(setnicedomain)
files_exec_etc_files(setnicedomain)
libs_use_ld_so(setnicedomain)
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_stat.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_stat.te,v
retrieving revision 1.1
diff -u -r1.1 test_stat.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_stat.te 22 Mar 2006 21:30:29 -0000 1.1
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_stat.te 12 Dec 2007 16:26:15 -0000
@@ -24,4 +24,8 @@
# TODO: what is a replacement for this in refpolicy???
# Allow all of these domains to be entered from sysadm domain
-#domain_trans(sysadm_t, ls_exec_t, test_stat_domain)
+require {
+ type ls_exec_t;
+}
+domain_trans(sysadm_t, ls_exec_t, test_stat_domain)
+domain_entry_file(test_stat_domain, ls_exec_t)
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_sysctl.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_sysctl.te,v
retrieving revision 1.2
diff -u -r1.2 test_sysctl.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_sysctl.te 27 Mar 2006 16:55:48 -0000 1.2
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_sysctl.te 12 Dec 2007 16:26:15 -0000
@@ -18,9 +18,9 @@
typeattribute test_nosysctl_t testdomain;
# Allow all of these domains to be entered from sysadm domain
-# via /sbin/sysctl.
-corecmd_sbin_entry_type(sysctldomain)
-userdom_sysadm_sbin_spec_domtrans_to(sysctldomain)
+# via /bin/sysctl.
+corecmd_bin_entry_type(sysctldomain)
+userdom_sysadm_bin_spec_domtrans_to(sysctldomain)
# Allow the first domain to perform sysctl operations.
kernel_rw_all_sysctls(test_sysctl_t)
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_task_create.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_task_create.te,v
retrieving revision 1.2
diff -u -r1.2 test_task_create.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_task_create.te 27 Mar 2006 16:55:48 -0000 1.2
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_task_create.te 12 Dec 2007 16:26:15 -0000
@@ -22,7 +22,7 @@
# process_fork. Something needs to be done such that test_create_no_t
# does not have fork permissions, but all the other necessary
# "domain" permissions.
-#allow test_create_no_t self:process ~fork;
+allow test_create_no_t self:process ~fork;
allow test_create_no_t proc_t:dir r_dir_perms;
allow test_create_no_t proc_t:lnk_file read;
allow test_create_no_t self:dir r_dir_perms;
@@ -34,7 +34,7 @@
allow test_create_no_t self:process setexec;
selinux_get_fs_mount(test_create_no_t)
-allow test_create_no_t { root_t bin_t sbin_t lib_t locale_t usr_t devpts_t home_root_t }:dir r_dir_perms;
+allow test_create_no_t { root_t bin_t bin_t lib_t locale_t usr_t devpts_t home_root_t }:dir r_dir_perms;
allow test_create_no_t lib_t:lnk_file r_file_perms;
allow test_create_no_t { devtty_t null_device_t zero_device_t }:chr_file rw_file_perms;
allow test_create_no_t locale_t:dir r_dir_perms;
Index: testcases/kernel/security/selinux-testsuite/refpolicy/test_task_setpgid.te
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/security/selinux-testsuite/refpolicy/test_task_setpgid.te,v
retrieving revision 1.2
diff -u -r1.2 test_task_setpgid.te
--- testcases/kernel/security/selinux-testsuite/refpolicy/test_task_setpgid.te 27 Mar 2006 16:55:48 -0000 1.2
+++ testcases/kernel/security/selinux-testsuite/refpolicy/test_task_setpgid.te 12 Dec 2007 16:26:15 -0000
@@ -28,7 +28,7 @@
allow test_setpgid_no_t self:process setexec;
selinux_get_fs_mount(test_setpgid_no_t)
-allow test_setpgid_no_t { root_t bin_t sbin_t lib_t locale_t usr_t devpts_t home_root_t }:dir r_dir_perms;
+allow test_setpgid_no_t { root_t bin_t bin_t lib_t locale_t usr_t devpts_t home_root_t }:dir r_dir_perms;
allow test_setpgid_no_t lib_t:lnk_file r_file_perms;
allow test_setpgid_no_t { devtty_t null_device_t zero_device_t }:chr_file rw_file_perms;
allow test_setpgid_no_t locale_t:dir r_dir_perms;
-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list