Vulnerabilities in computing and network systems always have and always will exist. No system can be made 100% airtight because someone will always need to be able to access the information or services being protected. Moreover, the presence of human users represents a vulnerability in and of itself because people are notoriously poor at practicing good security. As vulnerabilities are discovered and corrected, new ones almost instantly take their place. The back-and-forth between hacker exploitation and the implementation of security measures represents a veritable arms race, with each side becoming more sophisticated in tandem.