Diciamo che ho un guest Linux in esecuzione in xen e voglio che xen controlli l'integrità del kernel guest in modo da sapere che non ci sono rootkit, o simili, attivi.
C'è un modo per farlo con xen o altri hypervisor?
Questo esiste facilmente? Non ne sono consapevole Tuttavia, all'interno dello spazio di memoria che la VM alloca, il kernel si trova in una posizione prevedibile. Si potrebbe scrivere un codice che legga la memoria e paragona la struttura a ciò che ci si aspetta.
Se implementassi una creatura del genere, mi concentrerei sul seguire le API di sistema e assicurarmi che fossero appropriate. Una probabile sfida è che diverse versioni del kernel avranno cambiamenti in aree diverse. Potrebbe essere necessario eseguire il mapping su base kernel per kernel.
Potresti essere in grado di eseguire chrootkit esternamente alla VM esportando i tuoi filesystem. Non ho mai provato una cosa del genere, ma scommetto che sarebbe un eccellente progetto di ricerca.
EDIT: o leggi le tue immagini del disco direttamente dal vivo e usa i confronti di hash noti e ben noti al di fuori della VM. Quindi la tua VM continua a funzionare, ma hai il vantaggio della fiducia "LiveCD". Ecco, ora ho le risposte ordinate dalla maggior parte esoteriche a prontamente disponibili.
L'introspezione dell'hypervisor consente l'accesso alla memoria ai guest dall'host.
Ecco due esempi di invecchiamento:
1) XenAccess 2) Ukwazi-Xen
BlockWatch OS del monitor monitorando le istantanee della memoria.
Utilizza istantanee perché in genere possono essere convertite in un formato comune (MINIDUMP), questo è il caso di Hyper-V e VMWare.
BlockWatch ha anche scripting python per automatizzare snapshot / export / memory-scanning / cleanup. La convalida della memoria viene eseguita con hash crittograficamente sicuro (Tiger192). Attualmente convalida i sistemi operativi Windows 32 e 64 bit.
Nel tempo trascorso da questa domanda, alcuni sono stati rilasciati. Di questi, solo uno è di uso comune, ovvero RKP di Samsung Knox . È una soluzione basata su hypervisor che verifica l'integrità del kernel in esecuzione. Funziona rilevando le modifiche alle strutture del kernel e le credenziali di monitoraggio.
Esistono anche alcuni progetti sperimentali, come SecVisor e Capsule .
Il kernel Linux sta implementando ROE per KVM su sistemi x86:
ROE is a hypercall that enables host operating system to restrict guest's access to its own memory. This will provide a hardening mechanism that can be used to stop rootkits from manipulating kernel static data structures and code. Once a memory region is protected the guest kernel can't even request undoing the protection.
virt-ice farà il trucco. ma penso che non sia ancora stato rilasciato.
Leggi altre domande sui tag virtualization rootkits