On Wed, Mar 05, 2014 at 06:35:18PM +0200, Alexander Binun wrote:
> Now we encountered yet one problem: Our security module (which is a LKM) 
> performs security check and, when suspecting malicious activity at a VCPU,  
> must suspend or even kill this VM. The problem is: how to suspend/kill a VCPU 
> ?
> 
> We have taken the following approach: 
>     1. Accessing the VM list (struct list_head vms_list ) through the 
> kallsyms interface 
>     2. Iterating through VMs, reaching every VCPU (as a structure struct 
> kvm_vcpu *vcpu)
>     3. Running security check on every such structure. That is we were 
> seeking for a function like cpu_reset(struct kvm_vcpu*vcpu)
> 
> The following "reset funtions" were so far tried (taken from kvm_host.h)
>    1. kvm_vcpu_uninit and kvm_x86_ops->vcpu_free. These cause the whole 
> system (both host and guest OSs) hang.
>    2. kvm_vcpu_reset and kvm_arch_vcpu_free lead to the linker error  
> "Warning! Function undefined". 
> 
> Which "reset function" could you recommend ?

The simplest thing to kill a VM is to send SIGTERM to the QEMU process
(the process that contains the vcpu thread).

Stefan

Reply via email to