SLIM: make and config stuff
RFC PATCH 6/8 SLIM: make and config stuff
This patch contains the Makefile, Kconfig and .h files for SLIM.
Signed-off-by Mimi Zohar <[email protected]>
Signed-off-by Kylene Hall <[email protected]>
--- security/Kconfig | 1 security/Makefile | 1 security/slim/Kconfig | 6 ++ security/slim/Makefile | 6 ++ security/slim/slim.h | 102 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 116 insertions(+)
security/slim/slim.h +102 -0
@@ -0,0 +1,102 @@ +/* +* slim.h - simple linux integrity module +* +* SLIM's specific model is: +* +* All objects are labeled with exteded attributes to indicate: +* Integrity Access Class (IAC) +* Secrecy Access Class (SAC) +* +* All processes inherit from their parents: +* Integrity Read Access Class (IRAC) +* Integrity Write/Execute Access Class (IWXAC) +* Secrecy Write Access Class (SWAC) +* Secrecy Read/Execute Access Class (SRXAC) +* +* SLIM enforces the following Mandatory Access Control Rules: +* Read: +* IRAC(process) <= IAC(object) +* SRXAC(process) >= SAC(object) +* Write: +* IWXAC(process) >= IAC(object) +* SWAC(process) <= SAC(process) +* Execute: +* IWXAC(process) <= IAC(object) +* SRXAC(process) >= SAC(object) +*/ + +#include <linux/security.h> +#include <linux/version.h> +#include <linux/spinlock_types.h> + +struct xattr_data { +char *name; +void *value; +size_t len; +}; + +ssize_t generic_getxattr (struct dentry *dentry,const char *name,void *buffer, +size_t size); +ssize_t generic_listxattr (struct dentry *dentry,char *buffer, +size_t buffer_size); +int generic_setxattr (struct dentry *dentry,const char *name,const void *value, +size_t size,int flags); +enum slm_iac_level {/* integrity access class */ +SLM_IAC_ERROR =-2 , +SLM_IAC_EXEMPT =-1 , +SLM_IAC_NOTDEFINED =0 , +SLM_IAC_UNTRUSTED , +SLM_IAC_USER , +SLM_IAC_SYSTEM , +SLM_IAC_HIGHEST +}; +extern char *slm_iac_str[]; + +enum slm_sac_level {/* secrecy access class */ +SLM_SAC_ERROR =-2 , +SLM_SAC_EXEMPT =-1 , +SLM_SAC_NOTDEFINED =0 , +SLM_SAC_PUBLIC , +SLM_SAC_USER , +SLM_SAC_USER_SENSITIVE , +SLM_SAC_SYSTEM_SENSITIVE , +SLM_SAC_HIGHEST +}; + +struct slm_tsec_data {/* task security data (process info) */ +enum slm_iac_level iac_r;/* read low integrity files */ +enum slm_iac_level iac_wx;/* ability to write/execute higher */ +enum slm_sac_level sac_w;/* ability to write low secrecy files */ +enum slm_sac_level sac_rx;/* read/execute high secrecy files */ +int unlimited;/* unlimited guard process */ +struct dentry *script_dentry;/* used when filename != interp */ +spinlock_t lock; +}; + +struct slm_file_xattr {/* file extended attributes */ +enum slm_iac_level iac_level;/* integrity */ +enum slm_sac_level sac_level;/* secrecy */ +struct slm_tsec_data guard;/* guard process information */ +}; + +#define SLM_LSM_ID 0x999 +extern int slm_idx; + +struct slm_isec_data { +struct slm_file_xattr level; +spinlock_t lock; +}; + +static inline int is_kernel_thread (struct task_struct *tsk) +{ +return (!tsk->mm) ?1 :0 ; +} + +extern struct slm_xattr_config *slm_parse_config (char *data, +unsigned long datalen, +int *datasize); + +extern int slm_init_config (void ); + +extern __init int slm_init_secfs (void ); +extern __exit void slm_cleanup_secfs(void);
security/slim/Makefile +6 -0
@@ -0,0 +1,6 @@ +# +# Makefile for building the SLIM module as part of the kernel tree. +# + +obj-$(CONFIG_SECURITY_SLIM) += slim.o +slim-y := slm_main.o slm_secfs.o
security/slim/Kconfig +6 -0
@@ -0,0 +1,6 @@ +config SECURITY_SLIM + boolean "SLIM support" + depends on SECURITY && SECURITY_NETWORK + help + The Simple Linux Integrity Module implements a modified low water-mark + mandatory access control integrity model.
security/Makefile +1 -0
@@ -3,6 +3,7 @@ # obj-$(CONFIG_KEYS) += keys/ +obj-$(CONFIG_SECURITY_SLIM) += slim/ subdir-$(CONFIG_SECURITY_SELINUX) += selinux # if we don't select a security model, use the default capabilities
security/Kconfig +1 -0
@@ -107,5 +107,6 @@ config SECURITY_SECLVL source security/selinux/Kconfig +source security/slim/Kconfig endmenu
Quoted 12 lines · On Thu, 17 Aug 2006 12:53:30 -0700 Kylene Jo Hall wrote:
This patch contains the
Makefile,Kconfigand .h files for SLIM.Signed-off-by Mimi Zohar <[email protected]>Signed-off-by Kylene Hall <[email protected]>--- security/Kconfig | 1 security/Makefile | 1 security/slim/Kconfig | 6 ++ security/slim/Makefile | 6 ++ security/slim/slim.h | 102 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 116 insertions(+)
Quoted 9 lines
---
linux-2.6.18-rc3/security/slim/slim.h1969-12-31
18:00:00.000000000 -0600 +++linux-2.6.18-rc3-working/security/slim/slim.h2006-08-07
13:00:14.000000000 -0500 @@ -0,0 +1,102 @@ +/*
+ *slim.h- simple linux integrity module
+ *
+ * SLIM's specific model is:
+ *
+ * All objects are labeled with exteded attributes to indicate:
extended
Quoted 2 lines
+ * Integrity Access Class (IAC)
+ * Secrecy Access Class (SAC)
---
~Randy