Understanding Advanced Persistent Threats and How to Defend Against Them