Software is basically the root of all evil when it comes to common computer security problems. Today you can easily find comprehensive checklists for how to secure networks and operating systems. You can hire companies that specialize in security audits who will help run through topology and protocol. You can download for free cracking software and scanners that search for known operating system vulnerabilities. But what about the underlying causes of security problems?
Software is basically the root of all common computer security problems. Almost all external security violations are made possible by flaws in software. People have the notion that security holes are created by criminals and hackers to compromise systems. This is untrue. In almost all cases the holes exist and are just exploited. Holes are the result of bad software design and implementation, and any program, no matter how small or simple it is, can have them. The only way to combat this is to have software building policies that include defensive programming.