From mboxrd@z Thu Jan 1 00:00:00 1970 From: Razvan Cojocaru Subject: [PATCH 0/5] Basic guest memory introspection support Date: Wed, 03 Sep 2014 10:44:53 +0300 Message-ID: <5406C6F5.8000504@bitdefender.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: Kevin Tian , Keir Fraser , Ian Campbell , Stefano Stabellini , Eddie Dong , Ian Jackson , Tim Deegan , Jan Beulich , Jun Nakajima , Andrew Cooper List-Id: xen-devel@lists.xenproject.org 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 * 4/5 xen, libxc: Request page fault injection via libxc - 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. 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