<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/security/integrity/evm/evm_main.c, branch linux-3.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-3.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2013-02-06T15:40:28Z</updated>
<entry>
<title>evm: add file system uuid to EVM hmac</title>
<updated>2013-02-06T15:40:28Z</updated>
<author>
<name>Dmitry Kasatkin</name>
</author>
<published>2012-09-10T07:37:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=74de66842473bdafa798010e58f1999ec70a8983'/>
<id>urn:sha1:74de66842473bdafa798010e58f1999ec70a8983</id>
<content type='text'>
EVM uses the same key for all file systems to calculate the HMAC,
making it possible to paste inodes from one file system on to another
one, without EVM being able to detect it.  To prevent such an attack,
it is necessary to make the EVM HMAC file system specific.

This patch uses the file system UUID, a file system unique identifier,
to bind the EVM HMAC to the file system. The value inode-&gt;i_sb-&gt;s_uuid
is used for the HMAC hash calculation, instead of using it for deriving
the file system specific key.  Initializing the key for every inode HMAC
calculation is a bit more expensive operation than adding the uuid to
the HMAC hash.

Changing the HMAC calculation method or adding additional info to the
calculation, requires existing EVM labeled file systems to be relabeled.
This patch adds a Kconfig HMAC version option for backwards compatability.

Changelog v1:
- squash "hmac version setting"
Changelog v0:
- add missing Kconfig depends (Mimi)

Signed-off-by: Dmitry Kasatkin &lt;dmitry.kasatkin@intel.com&gt;
Signed-off-by: Mimi Zohar &lt;zohar@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>evm: remove unused cleanup functions</title>
<updated>2013-01-16T20:47:05Z</updated>
<author>
<name>Dmitry Kasatkin</name>
</author>
<published>2012-09-03T14:11:56Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e90805656d4683f84d360276102ae63adc777a38'/>
<id>urn:sha1:e90805656d4683f84d360276102ae63adc777a38</id>
<content type='text'>
EVM cannot be built as a kernel module. Remove the unncessary __exit
functions.

Signed-off-by: Dmitry Kasatkin &lt;dmitry.kasatkin@intel.com&gt;
Signed-off-by: Mimi Zohar &lt;zohar@linux.vnet.ibm.com&gt;
</content>
</entry>
<entry>
<title>ima: integrity appraisal extension</title>
<updated>2012-09-07T18:57:44Z</updated>
<author>
<name>Mimi Zohar</name>
</author>
<published>2012-02-13T15:15:05Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2fe5d6def1672ae6635dd71867bf36dcfaa7434b'/>
<id>urn:sha1:2fe5d6def1672ae6635dd71867bf36dcfaa7434b</id>
<content type='text'>
IMA currently maintains an integrity measurement list used to assert the
integrity of the running system to a third party.  The IMA-appraisal
extension adds local integrity validation and enforcement of the
measurement against a "good" value stored as an extended attribute
'security.ima'.  The initial methods for validating 'security.ima' are
hashed based, which provides file data integrity, and digital signature
based, which in addition to providing file data integrity, provides
authenticity.

This patch creates and maintains the 'security.ima' xattr, containing
the file data hash measurement.  Protection of the xattr is provided by
EVM, if enabled and configured.

Based on policy, IMA calls evm_verifyxattr() to verify a file's metadata
integrity and, assuming success, compares the file's current hash value
with the one stored as an extended attribute in 'security.ima'.

Changelov v4:
- changed iint cache flags to hex values

Changelog v3:
- change appraisal default for filesystems without xattr support to fail

Changelog v2:
- fix audit msg 'res' value
- removed unused 'ima_appraise=' values

Changelog v1:
- removed unused iint mutex (Dmitry Kasatkin)
- setattr hook must not reset appraised (Dmitry Kasatkin)
- evm_verifyxattr() now differentiates between no 'security.evm' xattr
  (INTEGRITY_NOLABEL) and no EVM 'protected' xattrs included in the
  'security.evm' (INTEGRITY_NOXATTRS).
- replace hash_status with ima_status (Dmitry Kasatkin)
- re-initialize slab element ima_status on free (Dmitry Kasatkin)
- include 'security.ima' in EVM if CONFIG_IMA_APPRAISE, not CONFIG_IMA
- merged half "ima: ima_must_appraise_or_measure API change" (Dmitry Kasatkin)
- removed unnecessary error variable in process_measurement() (Dmitry Kasatkin)
- use ima_inode_post_setattr() stub function, if IMA_APPRAISE not configured
  (moved ima_inode_post_setattr() to ima_appraise.c)
- make sure ima_collect_measurement() can read file

Changelog:
- add 'iint' to evm_verifyxattr() call (Dimitry Kasatkin)
- fix the race condition between chmod, which takes the i_mutex and then
  iint-&gt;mutex, and ima_file_free() and process_measurement(), which take
  the locks in the reverse order, by eliminating iint-&gt;mutex. (Dmitry Kasatkin)
- cleanup of ima_appraise_measurement() (Dmitry Kasatkin)
- changes as a result of the iint not allocated for all regular files, but
  only for those measured/appraised.
- don't try to appraise new/empty files
- expanded ima_appraisal description in ima/Kconfig
- IMA appraise definitions required even if IMA_APPRAISE not enabled
- add return value to ima_must_appraise() stub
- unconditionally set status = INTEGRITY_PASS *after* testing status,
  not before.  (Found by Joe Perches)

Signed-off-by: Mimi Zohar &lt;zohar@us.ibm.com&gt;
Signed-off-by: Dmitry Kasatkin &lt;dmitry.kasatkin@intel.com&gt;
</content>
</entry>
<entry>
<title>evm: digital signature verification support</title>
<updated>2011-11-09T14:51:14Z</updated>
<author>
<name>Dmitry Kasatkin</name>
</author>
<published>2011-09-01T11:41:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=15647eb3985ef30dfd657038924dc85c03026733'/>
<id>urn:sha1:15647eb3985ef30dfd657038924dc85c03026733</id>
<content type='text'>
This patch adds support for digital signature verification to EVM.
With this feature file metadata can be protected using digital
signature instead of an HMAC. When building an image,
which has to be flashed to different devices, an HMAC cannot
be used to sign file metadata, because the HMAC key should be
different on every device.

Signed-off-by: Dmitry Kasatkin &lt;dmitry.kasatkin@intel.com&gt;
Acked-by: Mimi Zohar &lt;zohar@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>evm: permit mode bits to be updated</title>
<updated>2011-09-14T19:24:52Z</updated>
<author>
<name>Mimi Zohar</name>
</author>
<published>2011-08-22T13:14:18Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=566be59ab86c0e030b980645a580d683a015a483'/>
<id>urn:sha1:566be59ab86c0e030b980645a580d683a015a483</id>
<content type='text'>
Before permitting 'security.evm' to be updated, 'security.evm' must
exist and be valid.  In the case that there are no existing EVM protected
xattrs, it is safe for posix acls to update the mode bits.

To differentiate between no 'security.evm' xattr and no xattrs used to
calculate 'security.evm', this patch defines INTEGRITY_NOXATTR.

Signed-off-by: Mimi Zohar &lt;zohar@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>evm: posix acls modify i_mode</title>
<updated>2011-09-14T19:24:51Z</updated>
<author>
<name>Mimi Zohar</name>
</author>
<published>2011-08-18T22:07:44Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=bf6d0f5dcda17df3cc5577e203d0f8ea1c2ad6aa'/>
<id>urn:sha1:bf6d0f5dcda17df3cc5577e203d0f8ea1c2ad6aa</id>
<content type='text'>
The posix xattr acls are 'system' prefixed, which normally would not
affect security.evm.  An interesting side affect of writing posix xattr
acls is their modifying of the i_mode, which is included in security.evm.

This patch updates security.evm when posix xattr acls are written.

Signed-off-by: Mimi Zohar &lt;zohar@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>evm: limit verifying current security.evm integrity</title>
<updated>2011-09-14T19:24:51Z</updated>
<author>
<name>Mimi Zohar</name>
</author>
<published>2011-08-11T05:22:30Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a924ce0b35875ef9512135b46a32f4150fd700b2'/>
<id>urn:sha1:a924ce0b35875ef9512135b46a32f4150fd700b2</id>
<content type='text'>
evm_protect_xattr unnecessarily validates the current security.evm
integrity, before updating non-evm protected extended attributes
and other file metadata. This patch limits validating the current
security.evm integrity to evm protected metadata.

Signed-off-by: Mimi Zohar &lt;zohar@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>evm: fix evm_inode_init_security return code</title>
<updated>2011-08-11T07:42:41Z</updated>
<author>
<name>Mimi Zohar</name>
</author>
<published>2011-08-11T04:22:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5a4730ba9517cf2793175991243436a24b1db18f'/>
<id>urn:sha1:5a4730ba9517cf2793175991243436a24b1db18f</id>
<content type='text'>
evm_inode_init_security() should return 0, when EVM is not enabled.
(Returning an error is a remnant of evm_inode_post_init_security.)

Signed-off-by: Mimi Zohar &lt;zohar@us.ibm.com&gt;
Signed-off-by: James Morris &lt;jmorris@namei.org&gt;
</content>
</entry>
<entry>
<title>evm: add evm_inode_setattr to prevent updating an invalid security.evm</title>
<updated>2011-07-18T16:29:50Z</updated>
<author>
<name>Mimi Zohar</name>
</author>
<published>2011-05-13T16:53:38Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=817b54aa45db03437c6d09a7693fc6926eb8e822'/>
<id>urn:sha1:817b54aa45db03437c6d09a7693fc6926eb8e822</id>
<content type='text'>
Permit changing of security.evm only when valid, unless in fixmode.

Reported-by: Roberto Sassu &lt;roberto.sassu@polito.it&gt;
Signed-off-by: Mimi Zohar &lt;zohar@us.ibm.com&gt;
</content>
</entry>
<entry>
<title>evm: permit only valid security.evm xattrs to be updated</title>
<updated>2011-07-18T16:29:49Z</updated>
<author>
<name>Mimi Zohar</name>
</author>
<published>2011-05-12T22:33:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7102ebcd65c1cdb5d5a87c7c5cf7a46f5afb0cac'/>
<id>urn:sha1:7102ebcd65c1cdb5d5a87c7c5cf7a46f5afb0cac</id>
<content type='text'>
In addition to requiring CAP_SYS_ADMIN permission to modify/delete
security.evm, prohibit invalid security.evm xattrs from changing,
unless in fixmode. This patch prevents inadvertent 'fixing' of
security.evm to reflect offline modifications.

Changelog v7:
- rename boot paramater 'evm_mode' to 'evm'

Reported-by: Roberto Sassu &lt;roberto.sassu@polito.it&gt;
Signed-off-by: Mimi Zohar &lt;zohar@us.ibm.com&gt;
</content>
</entry>
</feed>
