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.