RSBAC Handbook
Releases
Stable: 1.3.7
for kernels:
Devel 1.4: 1.4.0-rc3
for kernels:
Full RSBAC kernels
Lazy of patching ?
Get the already rsbac-patched kernel. Choose your flavor.
Classic kernels
Includes vanilla kernel with the RSBAC patch
Enhanced kernels
Kernels including latest security fixes, goodies, and of course PaX+RSBAC
Debian repository
Also works for Ubuntu and other Debian-based distributions, of course
SVN
Cutting edge RSBAC source code, can be unstable sometimes
Events
No events planned
For different tasks it is necessary to allocate a chunk of memory. Especially in the Linux kernel, stack space is pretty tight, so you quite often cannot simply declare some large variable and hope it works out.
The usual way to allocate kernel memory is using kmalloc/kfree for rather small amounts (allocated continuously as real memory) and vmalloc/vfree (virtual memory) for large sizes. Unfortunately, you have to find out yourself, which method is better. kmalloc will fail, if you try to allocate more than 128M - anyway, continous memory of several pages might be difficult to get.
RSBAC provides some own memory management functions. These functions also get exported for modules, if REG support has been enabled.
In kernel versions from 2.4.0, separate RSBAC memory slabs are used for kmalloc style memory to provide better control of memory usage through /proc/slabinfo.
#include <rsbac/rkmem.h>void * rsbac_kmalloc (size_t size);
void rsbac_kfree (const void *objp);
void * rsbac_vkmalloc (size_t size, boolean * vmalloc_used_p);
void rsbac_vkfree (void *objp, boolean vmalloc_used);