[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Design Decision for KVM based anti rootkit
From: |
David Hildenbrand |
Subject: |
Re: [Qemu-devel] Design Decision for KVM based anti rootkit |
Date: |
Mon, 18 Jun 2018 16:34:12 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 |
On 16.06.2018 13:49, Ahmed Soliman wrote:
> Following up on these threads:
> - https://marc.info/?l=kvm&m=151929803301378&w=2
> - http://www.openwall.com/lists/kernel-hardening/2018/02/22/18
>
> I lost the original emails so I couldn't reply to them, and also sorry
> for being late, it was the end of semester exams.
>
> I was adviced on #qemu and #kernelnewbies IRCs to ask here as it will
> help having better insights.
>
> To wrap things up, the basic design will be a method for communication
> between host and guest is guest can request certain pages to be read
> only, and then host will force them to be read-only by guest until
> next guest reboot, then it will impossible for guest OS to have them
> as RW again. The choice of which pages to be set as read only is the
> guest's. So this way mixed pages can still be mixed with R/W content
> even if holds kernel code.
>
> I was planning to use KVM as my hypervisor, until I found out that KVM
> can't do that on its own so one will need a custom virtio driver to do
> this kind of guest-host communication/coordination, I am still
> sticking to KVM, and have no plans to do this for Xen at least for
> now, this means that in order to get it to work there must be a QEMU
> support our specific driver we are planning to write in order for
> things to work properly.
>
> The question is is this the right approach? or is there a simpler way
> to achieve this goal?
>
Especially if you want to support multiple architectures in the long
term, virtio is the way to go.
Design an architecture independent and extensible (+configurable)
interface and be happy :) This might of course require some thought.
(and don't worry, implementing a virtio driver is a lot simpler than you
might think)
But be aware that the virtio "hypervisor" side will be handled in QEMU,
so you'll need a proper QEMU->KVM interface to get things running.
--
Thanks,
David / dhildenb