Messages in this thread | | | Subject | Re: [PATCH v2] IMA: support for duplicate data measurement | From | Tushar Sugandhi <> | Date | Thu, 18 Feb 2021 14:05:12 -0800 |
| |
Hi Mimi,
On 2021-02-17 12:49 p.m., Tushar Sugandhi wrote: > > > On 2021-02-17 12:39 p.m., Mimi Zohar wrote: >> On Wed, 2021-02-17 at 10:53 -0800, Tushar Sugandhi wrote: >>> Thanks for the feedback Mimi. >>> Appreciate it. >>> >>> On 2021-02-17 7:03 a.m., Mimi Zohar wrote: >>>> Hi Tushar, >>>> >>>> The Subject line could be improved. Perhaps something like - "IMA: >>>> support for duplicate measurement records" >>>> >>> Will do. >>> >>>> On Tue, 2021-02-16 at 18:46 -0800, Tushar Sugandhi wrote: >>>>> IMA does not measure duplicate data since TPM extend is a very >>>>> expensive >>>>> operation. However, in some cases, the measurement of duplicate data >>>>> is necessary to accurately determine the current state of the system. >>>>> Eg, SELinux state changing from 'audit', to 'enforcing', and back to >>>>> 'audit' again. In this example, currently, IMA will not measure the >>>>> last state change to 'audit'. This limits the ability of attestation >>>>> services to accurately determine the current state of the measurements >>>>> on the system. >>>> >>>> This patch description is written from your specific usecase >>>> perspective, but it impacts file and buffer data measurements as well, >>>> not only critical data measurements. In all of these situations, with >>>> this patch a new measurement record is added/appended to the >>>> measurement list. Please re-write the patch description making it more >>>> generic. >>>> >>>> For example, I would start with something like, "IMA does not include >>>> duplicate file, buffer or critical data measurement records ..." >>>> >>> Agreed. >>> I will generalize the description further and send the v3 for review. >> >> It would be good to boot with the ima_policy=tcb policy with/without >> your patch and account for the different number of measurements. Are >> all the differences related to duplicate measurements - original file >> hash -> new file hash -> original file hash - similar to what you >> described. >> > Thanks for the ima_policy=tcb pointer. > > I tested my patch with: > - duplicate buffer content for "measure func=CRITICAL_DATA" > - and reading the same file twice with "measure func=FILE_CHECK > mask=MAY_READ" > > In both the above use cases, IMA is measuring the duplicate entries with > the patch, and not measuring the duplicate entries w/o the patch. > > I will test the "ima_policy=tcb" boot-scenario as you suggested, before > posting the next version. >
I booted the system with "ima_policy=tcb" policy with/without my patch. I also removed /etc/ima/ima-policy for testing these use-cases. (so that it wouldn't override the policy generated by boot param "ima_policy=tcb").
I double checked the contents of the kernel policy: #cat /sys/kernel/security/integrity/ima/policy dont_measure fsmagic=0x9fa0 dont_measure fsmagic=0x62656572 dont_measure fsmagic=0x64626720 dont_measure fsmagic=0x1021994 dont_measure fsmagic=0x1cd1 dont_measure fsmagic=0x42494e4d dont_measure fsmagic=0x73636673 dont_measure fsmagic=0xf97cff8c dont_measure fsmagic=0x43415d53 dont_measure fsmagic=0x27e0eb dont_measure fsmagic=0x63677270 dont_measure fsmagic=0x6e736673 dont_measure fsmagic=0xde5e81e4 measure func=MMAP_CHECK mask=MAY_EXEC measure func=BPRM_CHECK mask=MAY_EXEC measure func=FILE_CHECK mask=^MAY_READ euid=0 measure func=FILE_CHECK mask=^MAY_READ uid=0 measure func=MODULE_CHECK measure func=FIRMWARE_CHECK measure func=POLICY_CHECK
And then I compared the contents of the ascii_runtime_measurements with and without my patch.
And here are my findings:
(1) Files like systemd-udevd, x2go_sessions etc. get measured multiple times with the CONFIG_IMA_DISABLE_HTABLE=y. They only get measured once with the config "=n".
10 668df8723f5a1f57a0afe3b50d44054d66363f3e ima-ng sha1:51f66e82421b93b21ad1e0a25e5efa4155c6a8e0 /lib/systemd/systemd-udevd 10 668df8723f5a1f57a0afe3b50d44054d66363f3e ima-ng sha1:51f66e82421b93b21ad1e0a25e5efa4155c6a8e0 /lib/systemd/systemd-udevd
(2) There are lot more instances of /tmp/<random> measurement records with the CONFIG_IMA_DISABLE_HTABLE=y. Eg,
10 33515851cfee4acbf24de9482ff018d33def1083 ima-ng sha1:da39a3ee5e6b4b0d3255bfef95601890afd80709 /tmp/oUWCVeypLR 10 9d1dc0e1e54ee2e16308a824fc5780bd21b38208 ima-ng sha1:da39a3ee5e6b4b0d3255bfef95601890afd80709 /tmp/etX8dy7qqy 10 8643a5543179b86c02d7e3e01e16b3bd2f8dbb9f ima-ng sha1:da39a3ee5e6b4b0d3255bfef95601890afd80709 /tmp/I4zTWEuyMf 10 56e9547a4ed39036d2e790cfad78b467aa979e32 ima-ng sha1:da39a3ee5e6b4b0d3255bfef95601890afd80709 /tmp/Lh5wDm6_Ep
I believe both the observations are consistent with the expected outcome of the patch.
Please let me know if I should test any other scenario.
I will shortly post the v3 patch with updates to description and title as you suggested.
Thanks, Tushar
> Thanks, > Tushar > >> thanks, >> >> Mimi >>
| |