Learning at the virtualization layer: intrusion detection and workload characterization from within the virtual machine monitor.