The Openwall project has released version 0.9.0 of the LKRG (Linux Kernel Runtime Guard) kernel module, designed to detect and block kernel attacks and integrity violations. For instance, the module can protect against unauthorized modifications to a running kernel and attempts to change the privileges of user processes (identifying exploit usage). The module is suitable for protecting against exploits of known vulnerabilities in the Linux kernel (for example, in situations where updating the kernel is problematic), as well as for combating exploits for yet undiscovered vulnerabilities. The project code is distributed under the GPLv2 license.
Among the changes in the new version:
- Compatibility is ensured with Linux kernels from 5.8 to 5.12, as well as with stable kernels 5.4.87 and newer (including innovations from kernels 5.8 and newer) and with kernels from RHEL versions up to 8.4, while retaining support for all previously supported kernel versions, such as those from RHEL 7.
- The ability to build LKRG not only as an external module but also as part of the Linux kernel tree has been added, including its inclusion in the kernel image.
- Support for many additional kernel and system configurations has been added.
- Several significant bugs and shortcomings in LKRG have been fixed.
- The implementation of some LKRG components has been significantly streamlined.
- Changes have been made to simplify future support and debugging of LKRG.
- For testing LKRG, integration with out-of-tree and mkosi has been added.
- The project repository has been moved from BitBucket to GitHub, and continuous integration has been added using GitHub Actions and mkosi, including build and upload verification of LKRG into kernel releases of Ubuntu, as well as into daily builds of the latest mainline kernels provided by the Ubuntu project.
In this version of LKRG, several developers, who previously did not participate in the project, made direct contributions (through pull requests on GitHub). In particular, Boris Lukashev added the ability to build as part of the Linux kernel tree, and Vitaly Chikunov from ALT Linux contributed the integration with mkosi and GitHub Actions.
Overall, despite significant additions, the number of lines of code in LKRG has slightly decreased for the second consecutive time (it also decreased between versions 0.8 and 0.8.1).
Currently, the package with LKRG in Arch Linux has been updated to version 0.9.0, and several other packages are using recent git versions of LKRG and will likely also be updated to version 0.9.0 and beyond soon.
Additionally, it is worth noting the recent publication from the developers of the Aurora OS (the Russian modification of Sailfish OS) regarding the potential enhancement of LKRG with ARM TrustZone.
For more information about LKRG, see the announcement for version 0.8 and the discussion that took place at that time.
Source: opennet.ru
