1. An apparatus comprising: a virtual machine (VM) base image database; a VM image generator communicatively coupled to the VM base image database, wherein the VM image generator is configured to generate permutations offline of different software stacks to build in the VM base image database a corpus of possible VMs that may run on a cloud service provider; an energy profiler communicatively coupled to the VM base image database, wherein the energy profiler is configured to generate energy profiles offline of each permutation in the VM base image database under several different operating conditions; an energy profile database communicatively coupled to the energy profiler, wherein the energy profile database is populated with the energy profiles generated by the energy profiler, and wherein the energy profile database is configured such that it is only accessible to components that reside below a VM layer and is not accessible to entities in a cloud environment; and a monitor configured to monitor energy patterns in side-channels at the VM level and to compare the energy patterns for each VM operating on the cloud service provider with the energy profiles stored in the energy profile database, and further configured to trigger a self-cleansing cycle when a given real-time energy pattern deviates from its corresponding energy profile by a predetermined threshold amount.