Principles of Secure Software Design - Gothink