Breaking up is hard to do : security and functionality in a commodity hypervisor