Malware: Avoid, detect and recover