Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 329105
b: refs/heads/master
c: 07f6a79
h: refs/heads/master
i:
  329103: 62012a6
v: v3
  • Loading branch information
Mimi Zohar committed Sep 7, 2012
1 parent 48d7336 commit f66f9a6
Show file tree
Hide file tree
Showing 5 changed files with 142 additions and 45 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 2fe5d6def1672ae6635dd71867bf36dcfaa7434b
refs/heads/master: 07f6a79415d7d502ee0c7d02ace6594a7be7429a
25 changes: 21 additions & 4 deletions trunk/Documentation/ABI/testing/ima_policy
Original file line number Diff line number Diff line change
Expand Up @@ -12,48 +12,65 @@ Description:
then closing the file. The new policy takes effect after
the file ima/policy is closed.

IMA appraisal, if configured, uses these file measurements
for local measurement appraisal.

rule format: action [condition ...]

action: measure | dont_measure
action: measure | dont_measure | appraise | dont_appraise
condition:= base | lsm
base: [[func=] [mask=] [fsmagic=] [uid=]]
base: [[func=] [mask=] [fsmagic=] [uid=] [fowner]]
lsm: [[subj_user=] [subj_role=] [subj_type=]
[obj_user=] [obj_role=] [obj_type=]]

base: func:= [BPRM_CHECK][FILE_MMAP][FILE_CHECK]
mask:= [MAY_READ] [MAY_WRITE] [MAY_APPEND] [MAY_EXEC]
fsmagic:= hex value
uid:= decimal value
fowner:=decimal value
lsm: are LSM specific

default policy:
# PROC_SUPER_MAGIC
dont_measure fsmagic=0x9fa0
dont_appraise fsmagic=0x9fa0
# SYSFS_MAGIC
dont_measure fsmagic=0x62656572
dont_appraise fsmagic=0x62656572
# DEBUGFS_MAGIC
dont_measure fsmagic=0x64626720
dont_appraise fsmagic=0x64626720
# TMPFS_MAGIC
dont_measure fsmagic=0x01021994
dont_appraise fsmagic=0x01021994
# RAMFS_MAGIC
dont_measure fsmagic=0x858458f6
dont_appraise fsmagic=0x858458f6
# SECURITYFS_MAGIC
dont_measure fsmagic=0x73636673
dont_appraise fsmagic=0x73636673

measure func=BPRM_CHECK
measure func=FILE_MMAP mask=MAY_EXEC
measure func=FILE_CHECK mask=MAY_READ uid=0
appraise fowner=0

The default policy measures all executables in bprm_check,
all files mmapped executable in file_mmap, and all files
open for read by root in do_filp_open.
open for read by root in do_filp_open. The default appraisal
policy appraises all files owned by root.

Examples of LSM specific definitions:

SELinux:
# SELINUX_MAGIC
dont_measure fsmagic=0xF97CFF8C
dont_measure fsmagic=0xf97cff8c
dont_appraise fsmagic=0xf97cff8c

dont_measure obj_type=var_log_t
dont_appraise obj_type=var_log_t
dont_measure obj_type=auditd_log_t
dont_appraise obj_type=auditd_log_t
measure subj_user=system_u func=FILE_CHECK mask=MAY_READ
measure subj_role=system_r func=FILE_CHECK mask=MAY_READ

Expand Down
4 changes: 4 additions & 0 deletions trunk/Documentation/kernel-parameters.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1055,6 +1055,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
Format: { "off" | "enforce" | "fix" }
default: "enforce"

ima_appraise_tcb [IMA]
The builtin appraise policy appraises all files
owned by uid=0.

ima_audit= [IMA]
Format: { "0" | "1" }
0 -- integrity auditing messages. (Default)
Expand Down
5 changes: 4 additions & 1 deletion trunk/security/integrity/ima/ima_appraise.c
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@ __setup("ima_appraise=", default_appraise_setup);
*/
int ima_must_appraise(struct inode *inode, enum ima_hooks func, int mask)
{
return 0;
if (!ima_appraise)
return 0;

return ima_match_policy(inode, func, mask, IMA_APPRAISE);
}

static void ima_fix_xattr(struct dentry *dentry,
Expand Down
Loading

0 comments on commit f66f9a6

Please sign in to comment.