[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [HACKATHON] xSplice session note



* Signature verification

 Code bloat to verify all sort of sigs.  Limit to two types of sigs

 Verify in hypervisor seems to be the only way.

 What extra security provides? It ensure binaries you get is from the
 vendor.

 Can do in userspace in Dom0? Questionable, even Linux doesn't trust
 module, it verifies sigs in kernel.

 Whether to do it in userspace or Xen is valid question. Dom0 is
 already quite privileged.

 If we were to trust dom0 sig wise then we can rid of all verification
 code in Xen, demand image be verified in dom0. Don't do advanced
 security in Dom0 while basic in Xen.

 Sig verify in the future.  Jan: prefers verification in hypervisor
 unless it becomes to complex.

*  OSStest test case

 Korand has something for that in the next two or three month

* Userspace tooling

 Plan to move to xl / libxl.  Need to have stable interface in libxl
 Tool is simple now, but might be more complex when sig verification
 is involved.

 Jan: use external utility to veirfy, better. Xl should only do basic
 uploading etc. Verification should either be in HV, or completely
 with human intervention.

 Korand: don't trust human intervention much

* Want mechaism for hooks being called on load / unload

 Jan: hooks in those places are easily to be misused. By introducing
 hooks you can basically do everything to the system. (Is that the
 intention?)

 Stefano / Konrad: you can still do it without hooks but just harder.

 Jan: how many real cases do we need these hooks? Need to check in
 detailed. Thinks it's not very useful at this stage.

 Konrad: Not a lot of people to write patches for xsplice. People
 using it would have knowledge, we should allow them to make
 work. Otherwise they invent their own things, worse than hooks.

 Jan: need to check the frequency to find the balance. Need to
 analyse exising XSAs.

* Patching data not yet available

 Konrad: do we want to patch data?

 Jan: data statically described in payload becomes problematic when you
 have multiple instances of something. Some structures that can't be
 enumerated. If we do data patching, only at some very limited
 points. Still need to go through the lists to verify the idea. Don't
 recall many instances of XSAs require data patching.

* Interfaces between generation tools and hypervisor

  Need to have stable interfaces between generation tool and
  hypervisor.  Some fields will be pre-filled by the tools.  Should be
  seen as extension of hypervisor.  Talk about padding later. rename
  that to opaque.

* tboot, secure boot and xsplice

 Jan: secure boot works for xen now, not sure how it works with
 xsplice. xen verifies dom0 kernel in secure boot.

 Daniel: where is the sig in the kernel?

 Jan: don't know, but currently works.

 Jan: with secure boot, how to verify xsplice payload? Need to verify
 by Xen eotherwise breaks chains of trust, which in turn requris whole
 infrastructure.

 Stefano: dom0 kernel verifies sigs? Jan: don't think that's how it is
 meant to work. you can't make such assumptions but there is only
 one direction chain of trust. But not 100% certain.

 Daniel: hence that we can't use xl to load payload?

* Patch nops

 Ross: what is the purpose of noping out a function?

 Stefano: avoid calling it?

 Jan: used to patch in place. if the new thing is smaller
 then you use nops to fill the gap.

 Ross: already have the branching
 mechanism, worthy of the effort of nopping?

 Jan: depends on the complexity. not a lot imo. but this is not
 absolutely required.


* Handling NMI

  Konrad: why can't we take an NMI while patching? Jan: we can, but
  comes with complexity.

  Konrad: have a list of all NMIs, can replay if necessary. but harder
  to replay NMIs tied to a specifc cpu. Jan: if want to replay, only
  replay one, entities should know how to handle such situation.

  Konrad: MCEs? Jan: more difficult, can't be deferred.

  Jan : maybe like Linux kernel, annotate handlers to make sure they
  NMI MCE won't be touched by anything.

  Konrad: Is handling NMI and MCE requirement? J: the sooner the
  better, but in the end it's down to the person who puts the patch
  together.

* Value in ARM32 suppot

 Julien: pointers on ARM of different sizes, do you always require to
 use tool on native? Cross-complication possible?

 Konrad: it doesn't work that way, very x86 specific.

 Jan: what is the input?

 Ross: build xen once and with patch once.

 Konrad: cross compilation can work, tools can be made
 recognise the archs.

 Julien: can things be made all the same on all platforms then let HV
 sort it out? Void pointers are of different sizes.

 Jan: Tools should know what to to, it's a specialised compiler.

 Julien: do you have usecase for ARM32? Likely every server are
 64bits. 32bits need to be maintained and tested. Not much value in it
 in my view.

 Konrad: deprioritise ARM32

 Stefano: don't like dead code. but also don't like different set of
 code for different archs.

 Konrad: xenver hypercall is good enough. his test case coverage is
 also good enough -- load, unload etc. can be augmented by code
 coverage tool.

* Make it work on ARM 32 and 64

 Julien: Limited range for placement function.

 Julien: can move the fixed map. most address space is used in ARM32,
 only limited address space can be used. remapping is the best thing
 to do due to some quirks and more strict settings on ARM.

 Konrad: do we want to announce it supported on ARM64? not a fast ARM
 developer, going to take a while.

 Julien: not the most wanted feature at the moment.

 AndrewPr: something is better than nothing. won't be too complicated
 if something is already avaible.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.