Understanding and Preventing Ransomware