ima_policy 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. What: security/ima/policy
  2. Date: May 2008
  3. Contact: Mimi Zohar <zohar@us.ibm.com>
  4. Description:
  5. The Trusted Computing Group(TCG) runtime Integrity
  6. Measurement Architecture(IMA) maintains a list of hash
  7. values of executables and other sensitive system files
  8. loaded into the run-time of this system. At runtime,
  9. the policy can be constrained based on LSM specific data.
  10. Policies are loaded into the securityfs file ima/policy
  11. by opening the file, writing the rules one at a time and
  12. then closing the file. The new policy takes effect after
  13. the file ima/policy is closed.
  14. IMA appraisal, if configured, uses these file measurements
  15. for local measurement appraisal.
  16. ::
  17. rule format: action [condition ...]
  18. action: measure | dont_measure | appraise | dont_appraise |
  19. audit | hash | dont_hash
  20. condition:= base | lsm [option]
  21. base: [[func=] [mask=] [fsmagic=] [fsuuid=] [uid=]
  22. [euid=] [fowner=] [fsname=]]
  23. lsm: [[subj_user=] [subj_role=] [subj_type=]
  24. [obj_user=] [obj_role=] [obj_type=]]
  25. option: [[appraise_type=]] [template=] [permit_directio]
  26. [appraise_flag=] [keyrings=]
  27. base:
  28. func:= [BPRM_CHECK][MMAP_CHECK][CREDS_CHECK][FILE_CHECK]MODULE_CHECK]
  29. [FIRMWARE_CHECK]
  30. [KEXEC_KERNEL_CHECK] [KEXEC_INITRAMFS_CHECK]
  31. [KEXEC_CMDLINE] [KEY_CHECK]
  32. mask:= [[^]MAY_READ] [[^]MAY_WRITE] [[^]MAY_APPEND]
  33. [[^]MAY_EXEC]
  34. fsmagic:= hex value
  35. fsuuid:= file system UUID (e.g 8bcbe394-4f13-4144-be8e-5aa9ea2ce2f6)
  36. uid:= decimal value
  37. euid:= decimal value
  38. fowner:= decimal value
  39. lsm: are LSM specific
  40. option:
  41. appraise_type:= [imasig] [imasig|modsig]
  42. appraise_flag:= [check_blacklist]
  43. Currently, blacklist check is only for files signed with appended
  44. signature.
  45. keyrings:= list of keyrings
  46. (eg, .builtin_trusted_keys|.ima). Only valid
  47. when action is "measure" and func is KEY_CHECK.
  48. template:= name of a defined IMA template type
  49. (eg, ima-ng). Only valid when action is "measure".
  50. pcr:= decimal value
  51. default policy:
  52. # PROC_SUPER_MAGIC
  53. dont_measure fsmagic=0x9fa0
  54. dont_appraise fsmagic=0x9fa0
  55. # SYSFS_MAGIC
  56. dont_measure fsmagic=0x62656572
  57. dont_appraise fsmagic=0x62656572
  58. # DEBUGFS_MAGIC
  59. dont_measure fsmagic=0x64626720
  60. dont_appraise fsmagic=0x64626720
  61. # TMPFS_MAGIC
  62. dont_measure fsmagic=0x01021994
  63. dont_appraise fsmagic=0x01021994
  64. # RAMFS_MAGIC
  65. dont_appraise fsmagic=0x858458f6
  66. # DEVPTS_SUPER_MAGIC
  67. dont_measure fsmagic=0x1cd1
  68. dont_appraise fsmagic=0x1cd1
  69. # BINFMTFS_MAGIC
  70. dont_measure fsmagic=0x42494e4d
  71. dont_appraise fsmagic=0x42494e4d
  72. # SECURITYFS_MAGIC
  73. dont_measure fsmagic=0x73636673
  74. dont_appraise fsmagic=0x73636673
  75. # SELINUX_MAGIC
  76. dont_measure fsmagic=0xf97cff8c
  77. dont_appraise fsmagic=0xf97cff8c
  78. # CGROUP_SUPER_MAGIC
  79. dont_measure fsmagic=0x27e0eb
  80. dont_appraise fsmagic=0x27e0eb
  81. # NSFS_MAGIC
  82. dont_measure fsmagic=0x6e736673
  83. dont_appraise fsmagic=0x6e736673
  84. measure func=BPRM_CHECK
  85. measure func=FILE_MMAP mask=MAY_EXEC
  86. measure func=FILE_CHECK mask=MAY_READ uid=0
  87. measure func=MODULE_CHECK
  88. measure func=FIRMWARE_CHECK
  89. appraise fowner=0
  90. The default policy measures all executables in bprm_check,
  91. all files mmapped executable in file_mmap, and all files
  92. open for read by root in do_filp_open. The default appraisal
  93. policy appraises all files owned by root.
  94. Examples of LSM specific definitions:
  95. SELinux::
  96. dont_measure obj_type=var_log_t
  97. dont_appraise obj_type=var_log_t
  98. dont_measure obj_type=auditd_log_t
  99. dont_appraise obj_type=auditd_log_t
  100. measure subj_user=system_u func=FILE_CHECK mask=MAY_READ
  101. measure subj_role=system_r func=FILE_CHECK mask=MAY_READ
  102. Smack::
  103. measure subj_user=_ func=FILE_CHECK mask=MAY_READ
  104. Example of measure rules using alternate PCRs::
  105. measure func=KEXEC_KERNEL_CHECK pcr=4
  106. measure func=KEXEC_INITRAMFS_CHECK pcr=5
  107. Example of appraise rule allowing modsig appended signatures:
  108. appraise func=KEXEC_KERNEL_CHECK appraise_type=imasig|modsig
  109. Example of measure rule using KEY_CHECK to measure all keys:
  110. measure func=KEY_CHECK
  111. Example of measure rule using KEY_CHECK to only measure
  112. keys added to .builtin_trusted_keys or .ima keyring:
  113. measure func=KEY_CHECK keyrings=.builtin_trusted_keys|.ima