grsecurity is a set of patches for the Linux kernel with an emphasis on enhancing security.
protects kernel. Regular Debian kernels, even with SE Linux are open to many forms of kernel bugs until given bug is patched. While grsecurity uses various hardening strategies to stop even unknown yet (0 day) bugs - additional checks, randomization of layout (more then regular kernel does), protecting memory from write access.
provides RBAC protection similar to SE Linux (TODO: comparsion) This needs to be configured in user-space to have effect.
protects applications from unknown bugs by changing their memory to RO (read-or-execute), randomizing their layout and providing other help from kernel side to them
fixes security of chroot turning it into real, unescapable chroot-jail
various misc security upgrades
The official wiki of grsecurity: https://en.wikibooks.org/wiki/Grsecurity
Using in Debian
There are official Debian packages for the grsecurity kernel patches available: https://packages.debian.org/linux-patch-grsecurity2.
Note that these are not configurable as to security/performance and overhead as usually done with manually building grsec/PaX support for the Linux kernel.
Not in official Debian
For foreseeable future Debian Kernel team will not include grsecurity kernel into official Debian. The reasons is primarily size of the patch.
But there exist easy to use alternatives.
You can use Mempo kernel
There is a Debian Repository with ready to use grsecurity kernels being maintained by Mempo project.
The work is in progress, but it is fully usable as of 2014.06 just follow the install instructions carefully;
This implements SameKernel (also a script created by Mempo) - your kernel is compiled to identical .deb when you build from sources, so you can cross verify with friends to confirm there is no backdoor added at compilation.
http://deb.mempo.org - the install instructions
http://mempo.org - general description of the entire broad Mempo project: hardened debian-based system
You can build kernel yourself
You can use Corsac repository
Corsac, the security researcher working with Debian, provides grsecurity patched kernels for Debian in own repository http://molly.corsac.net/~corsac/debian/kernel-grsec/packages/
This patches seem to be superior in terms of being done the "right way" - though this is important mostly for development of the patched kernel, not so much for resulting kernel image to be used on system.
They are also in form of correct Debian repository (as of 2014-03-26 Mempo is not, but it plans to provide this soon).
Grsecurity has many options
- toggable in kernel configuration (compile-time)
- then some more settings can be set on run or boot
- finally RBAC profile can be loaded
In general following things could be blocked:
- binary drivers, including video drivers like propertiary NVidia or Radeon in general will probably not work on higher levels, but they are security risk
almost all video drivers even the open-ones would be blocked by good security, which is meant mostly for headless (or text) servers. In future a patched Xorg program would allow them to run probably (it's about blocking kmem and ioport access - which blocks important route of attacking kernel by modifying raw memory)
- possibly wine would be blocked by the no-0-addess thing? (possibly tunable in runtime?)
Mounting a remote file system using sshfs: fuse: device not found, try 'modprobe fuse' first. You need to manually load fuse module as a root: # modprobe fuse
- Same as above for other auto-loaded modules, you might need to load them by hand. (Other solutions perhaps exist too)
Things that work:
- open source video drivers (at least on some levels)
- other open source and built-in drivers - HOW EVER you might need to modprobe load the modules manually for some things
- KVM visualization is known to work (as the host)
- KVM visualization as the guest also works (using this kernels on a system in KVM VM)
- all other normal operation for Desktop and Server
- members of Mempo team along with friends used grsecurity on their primary Desktops for year+ without trouble
Test on Wheezy, amd64, no RBAC, Mempo 0.1.28 (kernel 3.2.55) on good variant (high security - almost all grsecurity options).
- CPU only - 100% (povray rendering of raytraced image, on a desktop) - the same (actually seemed a bit better, possibly to measurement errors, or our kernel giving less priority to background task distractions).
- CPU/sys/disk - 70% (compilation of povray c/c++ from it's source code, on a desktop)
- disk only - not tested (we expect the transfers to be same but syscals slower).
In conclusion, in general usage expect 70-100% performance, while benefiting from the very high security of kernel and protection for applications.
Performance old version (could be less correct)
Time of Nano compilation (CPU and disk usage). Debian with default kernel and kernel with Grsecurity (Mempo).
Conclusions: with Grsecurity hardened kernel, on security setting -good, General tasks like compilation seem to be 30-40% slower, disk usage speed seems to be the same and compilation time requires to be benchmarked more.
In near future we plant to release other settings, allowing user to choose a bit lower security while gaining performance, or even higher one for most paranoid setup.