Re: [PATCH ima-evm-utils v2 0/9] Support testing with UML kernel

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

 



On Thu, 2023-01-12 at 13:24 +0100, Roberto Sassu wrote:
> From: Roberto Sassu <roberto.sassu@xxxxxxxxxx>
> 
> UML kernels differ from other kernels for the ability of being executed as
> processes in the current environment, without requirements such as
> virtualization. It is sufficient to execute the binary, like the other
> binaries.
> 
> In addition, UML kernels have the ability to see the host filesystem and
> thus they could for example run an executable from the host as init and
> have a fully working system without creating an image, as it would happen
> if a regular virtual machine is used.
> 
> These features make UML kernels very suitable for integration in existing
> test suites designed to perform the tests in the current environment such
> as ima-evm-utils. In the current environment, test suites cannot test new
> functionality not yet integrated in the host kernel, or with custom kernel
> configuration options not usually enabled in production. Also, test suites
> might not be able to set/reset kernel settings for security reasons.
> 
> With the ability to do kernel testing more in depth, ima-evm-utils might
> introduce specific tests for that, separated from the tests to verify the
> ima-evm-utils user space functionality. At the moment, there is no such
> distinction, existing tests verify both.
> 
> The goal of this patch set is to overcome the limitations by making the
> test suite in ima-evm-utils able to run in an environment created by the
> UML kernel, with minimal changes. At the same time, it will preserve the
> ability of the test suite to run in the current environment.
> 
> First, fix error messages and a variable in evmctl. Then, add the
> config-uml file with custom kernel configuration options for the tests, to
> be merged with the default configuration. Add a new job in the Github
> workflow to build the UML kernel from a repository and branch specified in
> the LINUX_URL and LINUX_BRANCH variables. Per Github documentation, these
> variables can be defined at organization, repository and environment level.
> 
> Introduce a new API for using UML kernels for existing and new test
> scripts. Unless the environment variable UML_MODE is set to 1, calling the
> API results in a nop, and tests are executed in the current environment.
> 
> Add the possibility to select individual tests to run in a test script,
> with the TST_LIST variable, so that the UML kernel can be launched multiple
> times with a subset of tests (useful if for example a test require kernel
> settings different from the previous test).
> 
> Add tests for EVM portable signatures supporting UML kernels and port
> fsverity.test to use UML kernels.
> 
> Finally, don't require making changes to the system to run fsverity.test
> and install a software dependency after the appropriate repository has been
> set up.

Thank you, Roberto!   The UML support should simplify testing new
kernel features before they are upstreamed and/or configured/enabled by
the distros.  Building a UML kernel is relatively quick (~8 minutes). 
With the UML kernel and image caching, the impact should be minimal.

Once everyone has had a chance to review, comment, and test this patch
set, we'll release a new version of ima-evm-utils.

thanks,

Mimi
> 
> Mimi Zohar (1):
>   ci: haveged requires EPEL on CentOS stream:8
> 
> Roberto Sassu (8):
>   Fix error messages and mdlen init in calc_evm_hmac()
>   Add config for UML kernel
>   Compile the UML kernel and download it in Github Actions
>   Add support for UML in functions.sh
>   Introduce TST_LIST variable to select a test to execute
>   Add tests for EVM portable signatures
>   Adapt fsverity.test to work with UML kernel
>   Use in-place built fsverity binary instead of installing it
> 
>  .github/workflows/ci.yml        |   96 ++-
>  build.sh                        |    5 +
>  ci/fedora.sh                    |   12 +-
>  config-uml                      |  235 +++++++
>  src/evmctl.c                    |    8 +-
>  tests/Makefile.am               |    2 +-
>  tests/fsverity.test             |   18 +-
>  tests/functions.sh              |   91 ++-
>  tests/install-fsverity.sh       |    2 +-
>  tests/install-mount-idmapped.sh |    7 +
>  tests/portable_signatures.test  | 1173 +++++++++++++++++++++++++++++++
>  11 files changed, 1637 insertions(+), 12 deletions(-)
>  create mode 100644 config-uml
>  create mode 100755 tests/install-mount-idmapped.sh
>  create mode 100755 tests/portable_signatures.test
> 





[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux Kernel]     [Linux Kernel Hardening]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux