To build secure software you need to understand the threats you face, where malicious inputs might enter
the system, anticipate failure conditions, understand the principles of security, and have a processes to correct
security issues and learn from them as they are discovered.