The Openwall project published the release of the LKRG 0.7 kernel module (Linux Kernel Runtime Guard), which provides detection of unauthorized changes to the working kernel (integrity check) or attempts to change the permissions of user processes (definition of exploit usage). The module is suitable both for organization of protection against already known exploits for the Linux kernel (for example, in situations when it is problematic to update the kernel in the system), and for opposition to exploits for still unknown vulnerabilities. About the features of LKRG can be found in the first announcement of the project.
Among the changes in the new version:
- The code was refactored to support various CPU architectures. Added initial support for ARM64 architecture;
- Compatible with Linux kernels 5.1 and 5.2, as well as kernels assembled without enabling the CONFIG_DYNAMIC_DEBUG, CONFIG_ACPI and CONFIG_STACKTRACE options when building the kernel, and with kernels built with the CONFIG_STATIC_USERMODEHELPER option. Added experimental kernel support from the grsecurity project;
- Significantly changed initialization logic;
- Self-hashing has been re-enabled in the integrity check subsystem and the race condition in the transition label engine (* _JUMP_LABEL) has been eliminated, leading to a deadlock during initialization simultaneously with loading or unloading events of other modules;
- In the exploit detection code, new sysctl lkrg.smep_panic (enabled by default) and lkrg.umh_lock (disabled by default) were added, additional checks of the SMEP / WP bit were added, the tracking logic of the tasks was changed in the system, the internal synchronization logic with task resources was revised, Added support for OverlayFS, placed in the white list of Ubuntu Apport.
Get more info at Openwall's website.