xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V6 0/5] Basic guest memory introspection support
@ 2014-09-09 10:28 Razvan Cojocaru
  2014-09-09 10:28 ` [PATCH V6 1/5] xen: Emulate with no writes Razvan Cojocaru
                   ` (5 more replies)
  0 siblings, 6 replies; 21+ messages in thread
From: Razvan Cojocaru @ 2014-09-09 10:28 UTC (permalink / raw)
  To: xen-devel
  Cc: kevin.tian, keir, ian.campbell, stefano.stabellini, eddie.dong,
	ian.jackson, tim, jbeulich, jun.nakajima, andrew.cooper3

We need to be able to detect rootkits in HVM guests, in a way that
allows an application that runs in dom0 (or a similarly privileged
domain) to control what the guest is allowed to do once a threat is
detected. This has been done over the mem_event mechanism.

Here is a summary of the series:

a  1/5 xen: Emulate with no writes
a  2/5 xen: Optimize introspection access to guest state
A  3/5 xen, libxc: Force-enable relevant MSR events
A* 4/5 xen, libxc: Request page fault injection via libxc
a  5/5 xen: Handle resumed instruction based on previous mem_event reply

Key to symbols:
 *   Updated in this version of the series.
 +   New patch in this version.
 /   Updated but only to remove changes into a separate patch.
 -   Updated with style changes only.
 a   Acked/reviwed by one reviewer.
 A   Acked/reviwed by more than one reviewer.

This new version has added checks against CR3 == ~0, the only allowed
value for the per-VCPU case. If CR3 == ~0 in the per-domain case,
the trap is injected without checking if CR3 matches. Also, added
spin_lock-based synchronization for the trap injection data.
(Patch 4/5).

We needed to:

1. Be able to execute the current instruction without allowing it to
write to memory. This is done based on new mem_event response
fields sent from the controlling application.

2. Have the guest as responsive as possible amid all the processing. So
we had to cache some information with each mem_event sent.

3. Not allow the hypervisor to disable sending information about
interesting MSR events.

4. Add an additional mem_event type, namely a VMCALL event - in order to
do its work, our application occasionally triggers VMCALLs in the guest
(not included in the current series, but included in the initial RFC
series).

5. Extend libxc to allow triggering page faults in the guest (in order
to be able to bring back in pages swapped out by the guest OS).


Thanks,
Razvan Cojocaru

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2014-09-11 19:06 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-09 10:28 [PATCH V6 0/5] Basic guest memory introspection support Razvan Cojocaru
2014-09-09 10:28 ` [PATCH V6 1/5] xen: Emulate with no writes Razvan Cojocaru
2014-09-09 10:28 ` [PATCH V6 2/5] xen: Optimize introspection access to guest state Razvan Cojocaru
2014-09-09 10:28 ` [PATCH V6 3/5] xen, libxc: Force-enable relevant MSR events Razvan Cojocaru
2014-09-09 10:28 ` [PATCH V6 4/5] xen, libxc: Request page fault injection via libxc Razvan Cojocaru
2014-09-10 14:38   ` Jan Beulich
2014-09-09 10:28 ` [PATCH V6 5/5] xen: Handle resumed instruction based on previous mem_event reply Razvan Cojocaru
2014-09-10 16:03   ` George Dunlap
2014-09-10 16:12     ` Razvan Cojocaru
2014-09-10 16:38       ` George Dunlap
     [not found]         ` <CAJu=L59+C7+byC0UJVcriERf-cueiz8CYcCeBOZfXX8ZLjTBRQ@mail.gmail.com>
2014-09-10 18:28           ` Andres Lagar Cavilla
2014-09-10 21:28             ` Razvan Cojocaru
2014-09-11 10:09               ` George Dunlap
2014-09-11 10:44                 ` Razvan Cojocaru
2014-09-11 14:40             ` Tamas K Lengyel
2014-09-11 16:42               ` Andres Lagar Cavilla
2014-09-11 18:09                 ` Tamas K Lengyel
2014-09-11 18:39                   ` Andres Lagar Cavilla
2014-09-11 19:06                     ` Andrew Cooper
2014-09-09 10:34 ` [PATCH V6 0/5] Basic guest memory introspection support Jan Beulich
2014-09-09 10:39   ` Razvan Cojocaru

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).