Re: [Lsf-pc] [LSF/MM TOPIC] fs-verity: file system-level integrity protection

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2018-01-28 at 19:38 -0500, Theodore Ts'o wrote:
> On Sun, Jan 28, 2018 at 06:04:52PM -0500, Mimi Zohar wrote:
> > 
> > Sigh, there seems to be some confusion.  Initially, when the Integrity
> > Measurement Architecture (IMA) was first upstreamed, it only extended
> > the trusted boot concept of measuring files before use up to the OS,
> > but that was a long time ago.  Since then, IMA-appraisal was
> > upstreamed, which extends the secure boot concept of verifying
> > signatures up to the running OS.
> 
> Part of the problem is the documentation doesn't make any of this at
> all clear.

Agreed the documentation is dated and needs to be updated, especially
the wiki.

> Indeed, I'll note that Documentation/ABI/testing/ima_policy
> still talks about using file system magic numbers to determine whether
> or not files should be measured, and I've been given to understand you're using
> a per-filesystem flag now.

Defining policies based on magic file system numbers has been there
for a really long time.  Removing it would cause existing policies to
fail to load.  So I can't just remove it.

> The documentation seems to strongly imply that in order to be secure,
> you can't use IMA by itself, you have to use EVM as well.  Exactly
> which components can be used independently is not clear, and
> apparently I made the wrong guesses when trying to read through the
> Linux-IMA wiki pages as well as the Gentoo pages on IMA and EVM.
> Maybe it's just the documentation is badly written, but it leaves the
> impression of *extreme* complexity.

The basic difference between EVM and IMA is that EVM protects the file
meta-data, while IMA protects the file data.  If all you want to
verify is the file data signature, then just use IMA-appraisal.

> 
> I did try to play with it, but ima-evm-utils aren't packaged for
> Debian, and when I tried building from source, they apparently don't
> even build on Debian Testing.  (Sorry, I don't use RHEL for my
> development systems.)

I'm about to release version 1.1.  Please try the next branch
of git://git.code.sf.net/p/linux-ima/ima-evm-utils.

>  And I'll note the Gentoo pages warn, "don't use
> on production systems".  All of which do not make for a good first
> look for IMA.

We need to differentiate between IMA-measurement and IMA-appraisal
here.  Measurement isn't a problem.  The problem is signature
verification.  Until distros include file signatures in software
packages, it is difficult.  This is the main reason that IMA/EVM is
being used in the embedded environment, and not on desktops.

We've extended RPM to include file signatures.  There have been
multiple attempts to add support for including file signatures in deb
packages.  Matthew would be able to tell you if his version, the last
attempt, was upstreamed.

Stefan Berger and Mehmet Kayaalp set up distro mirrors, which include
the file signatures in the software packages, as a proof of concept.
 The file signatures are then installed with the file data.

> 
> > Enabling IMA doesn't automatically require SELinux or any other LSM
> > labels.  The rule granularity is up to you.
> 
> Yes, but if I only want to have a dozen or so files to be data
> integrity protect, it appears that it's not simple to do, *without*
> using SELinux.  And anytime SELinux and "simple" go in the same
> sentence, I weep a little.  Every few years I try configuring SELinux
> on Debian development laptop.  And I conclude that I'm too stupid for
> to configure SELinux.

A lot of people have requested being able to identify files based on
pathnames.  I don't need to tell you this isn't safe from a security
perspective.  So how would you identify these few files?  I doubt you
are planning on hard coding them.  If you have a generic solution, I
would really be interested in hearing it.

There are a few files which can be identified based on the LSM hook.
 For example, the kernel_read_file_from_path/fd calls the pre and post
security_kernel_read_file() LSM hooks, which can be used to verify the
kexec kernel image, kexec initramfs, kernel modules and firmware.

Mimi




[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux