Ho scritto un modulo del kernel per sostituire le routine del servizio del kernel Linux (ad es. chiamate di sistema) con codice di sicurezza, simile a SELinux o AppArmor, con le principali eccezioni del controllo delle regole al volo e dell'integrazione di big data.
Dal punto di vista della sicurezza, l'unico modo per utilizzare i servizi del sistema operativo da un'applicazione è tramite il mio codice di supervisione, che è protetto dall'ASLR nativo del kernel (Address Space Layout Randomization) ed è di sola lettura.
Poiché il codice e le chiamate di sistema sono contrassegnati in sola lettura, possono essere bypassati solo da un altro modulo del kernel, che non può essere caricato senza approvazione nella maggior parte degli scenari di exploit.
Il modulo del kernel comunica MongoDB, invia i log e riceve le regole al volo.
Il risultato è che ogni servizio OS come l'accesso al disco / file è registrato e può essere fermato se si applica una regola di blocco.
C'è un modo per ottenere questo risultato in modo scalabile e controllato descritto sopra?
{
"process": "cat",
"pid": 14975,
"accessed file": "/etc/passwd",
"user id": 1000
}