LKRG: A Loadable Linux Kernel Module for Runtime Integrity Checking (bleepingcomputer.com)
An anonymous reader quotes BleepingComputer:
Members of the open source community are working on a new security-focused project for the Linux kernel. Named Linux Kernel Runtime Guard (LKRG), this is a loadable kernel module that will perform runtime integrity checking of the Linux kernel. Its purpose is to detect exploitation attempts for known security vulnerabilities against the Linux kernel and attempt to block attacks. LKRG will also detect privilege escalation for running processes, and kill the running process before the exploit code runs.
Since the project is in such early development, current versions of LKRG will only report kernel integrity violations via kernel messages, but a full exploit mitigation system will be deployed as the system matures... While LKRG will remain an open source project, LKRG maintainers also have plans for an LKRG Pro version that will include distro-specific LKRG builds and support for the detection of specific exploits, such as container escapes. The team plans to use the funds from LKRG Pro to fund the rest of the project.
The first public version of LKRG -- LKRG v0.0 -- is now live and available for download on this page. A wiki is also available here, and a Patreon page for supporting the project has also been set up. LKRG kernel modules are currently available for main Linux distros such as RHEL7, OpenVZ 7, Virtuozzo 7, and Ubuntu 16.04 to latest mainlines.
Since the project is in such early development, current versions of LKRG will only report kernel integrity violations via kernel messages, but a full exploit mitigation system will be deployed as the system matures... While LKRG will remain an open source project, LKRG maintainers also have plans for an LKRG Pro version that will include distro-specific LKRG builds and support for the detection of specific exploits, such as container escapes. The team plans to use the funds from LKRG Pro to fund the rest of the project.
The first public version of LKRG -- LKRG v0.0 -- is now live and available for download on this page. A wiki is also available here, and a Patreon page for supporting the project has also been set up. LKRG kernel modules are currently available for main Linux distros such as RHEL7, OpenVZ 7, Virtuozzo 7, and Ubuntu 16.04 to latest mainlines.
... will it check the Intel Management Engine?
A loadable Linux kernel module to check the run-time integrity of LKRG. It will be modules all the way down from there ...
It must have been something you assimilated. . . .
I see lot of WordPress themes and plugins authors provide free version with limited functionalities and paid pro version with additional functionalities.
So let me get this straight:
You need to enable module loading, aka an attack vector for injecting code straight into the kernel,
wich is done *by* the kernel, meaning that if it is infected, it has full control over altering the module to avoid detection,
so it "can detect" if the kernel has been exploited?
Is this an NSA trap or an April fools joke?
that doesn't like their 'business' model, the 'whatever Pro' thingy?
I thought it was settled that you cannot defend against an attacker that loaded before your code, possibly with higher privileges.
Hence you have a hard time dealing with new threat, that you do not detect once, and that is there before you load an updated module.
Ok this is probably a stupid question but I don't understand why this is useful.
If they're going to protect against known exploits then not just fix the exploit?
Were there problems getting the fix accepted in the mainstream kernel, or is this for honeypots to watch exploit attempts? Who wants this and why?
Mostly pointless
"Its purpose is to detect exploitation attempts for known security vulnerabilities against the Linux kernel and attempt to block attacks."
If the vulnerabilities are known, why not just patch them instead of adding this new module and take a associated (small) performance hit?
(I'm not a kernel hacker, but on the face of it this seems odd to me)
What would be nice is if someone could figure out how to roll out SELinux or Qubes/Xen Hypervisor protections in a way that works for actual, normal m enterprise and desktop use without bricking large portions of the OS.
Has anyone seen something like 'Tripwire' making it to a standard distro? That could actually be useful and it would be relatively easy to implement. Therefore, I'm wondering why nobody seems to bother?
How does it matter, whether an integral part of the system is part of the kernel or not? It will always be a gatekeeper, being able to ruin every process' day.
In fact, in user space, it itself will just be vulnerable, instead of being the source of vulnerabilities, like when inside the kernel.
What we actually need, is compartmentalization. Per (verified) developer as well as per role. So a separate environment for each service, and a firewall / RBAC-like system controlling the gate APIs.
The problem is: We've tried that. With microkernels. And even without the firewall, it turned out to be unacceptably slow.
Maybe, like with garbage collectors, it's time to bite the bullet, and just accept the resource usage being worth it. I'll always feel uneasy about it though.
It's not like you can't tell from a thousand miles away, what the logical end state will be, and that it will entails some kind of forcing.
At least in every single damn case I have experienced since the earliest days of playing shareware games as a child.
...happened.
Interesting project, however now i wonder how many people will opt for using this module (which could be easily activated & used) instead of properly patching their systems.
The module only detects known vulnerabilities, if you are running a tight ship, you should be all patched and what use does this have then?
On a long enough timeline, the survival rate for everyone drops to zero.
OpenVZ 7? , Virtuozzo 7?
But I guess four places to load malcode into your kernel is better than two.
FFS, what on earth is this good for? Just fix the damn vulnerability in the kernel and be done with it.