The cracks in the armor of most enterprise websites are many including recurring holes in OpenSSL, PHP, and WordPress and are largely due to a combination of extensive customizations paired with a shortage of testing and fixing of vulnerabilities when compared with that of long-standing commercial OS software.
CSO Magazine traverses the treacherous terrain of the massive security craters present in today's websites. Find out what it takes to fix these holes from the start and throughout the development life cycle.
So many Website security punctures and protrusions
"The primary cause for constant and recurring website (and web application) vulnerabilities is the heavily-modified to fully custom-developed nature of these technologies," says David J. Venable, CISSP, director, Masergy Communications & former intelligence collector, the NSA. The result is largely untested sites and applications that do not undergo the same rigorous and thorough testing that most commercial software packages such as operating systems and server packages do.
In fact, more vulnerabilities appear in websites and web applications than just about anywhere else in the enterprise. These security holes crop up in .PHP sites, third-party and homegrown software, and WordPress code and installations as well as in OpenSSL, Single Sign-On, and SQL and LDAP implementations and technologies.
PHP sites that use third-party software present inherent vulnerabilities due to the fact that third-party application development is out of the hands of the afflicted enterprise. "You can design your site so that all of your home-baked code is perfectly secure, but then if you rely on third-party software for anything, you inherit any vulnerability that might exist in it," says Joe Sremack, director, Berkeley Research Group.
WordPress is a growing problem as sites that represent small to midsize enterprises increasingly incorporate it along with its countless plug-ins that require constant updating. "Companies want the WordPress functionality but unfortunately the risk also comes with it," says Sremack.
OpenSSL is continuously running into trouble. As people innovate improvements to the technology, those innovations create new vulnerabilities that attackers discover and exploit. Attackers continue to exploit OpenSSL vulnerabilities new and old as part of large breaches a few times a year. Many seemingly new holes were actually old ones that had not yet been uncovered, says Sremack.
Even when a coder produces an otherwise secure website, they are largely developing based on the vulnerabilities they are aware of, not the ones that no one has yet confirmed. There are always new vulnerabilities that appear for the first time in the wild.
Injection vulnerabilities are still common and attackers have adjusted how they approach these with the growing popularity of single sign-on. "Single sign-on is very popular at hotels where people check their accounts and the points they earn. New LDAP injection techniques attack vulnerabilities and pass parameters into the code to take over their web sessions," explains Sremack.
[ RELATED: Best tools for single sign-on ]
Another website attack vector is the local and remote file inclusions. "A website's code can call files either on a local server or on a remote public server. Using injection techniques, attackers can cause the site to display information from a password file or a list of usernames on the web server or to execute code that they want to run," says Sremack. So the code calls that reach out from the website are also a way in for the attacker.
Fixing Website security holes
"Enterprises must adhere to security best practices such as those from the Open Web Application Security Project (OWASP) from the very start of the development process," says Venable. All testing including web application assessments, pen tests, and static analysis should occur pre-production, after any code changes, and on at least an annual basis, according to Venable. Surround websites and web applications with WAFs and IDS and install a 24/7 monitoring team to identify and remediate attacks in real-time.
"During development, engage with the security team to perform regular tests of affected code and functionality," says Sremack. If the enterprise is updating a current website, use the security team to test and ensure added capabilities have not added vulnerabilities. Teams inside development should also run scans and tests to isolate vulnerabilities and fix them.
"Rather than design around security, test using the same tools such as Grabber, W3AF, and Zed Attack Proxy that attackers use to break into your website," says Sremack. Anyone, even with little knowledge of security or security tools can use these applications and gain insights into website vulnerabilities based on the outcomes of the tests, though the enterprise will need to dedicate a staff to this over time.
"Developers should specifically look at how they create and maintain web sessions, specifically checking any inputs that the sessions pass through the website, whether through URLs or input fields," says Sremack, "then monitor any third-party code for vulnerabilities and watch for exploit announcements from the vendor."
The larger the site, the greater its functionality and visibility, and the more it uses third-party software, the more that the process of reducing inherent vulnerabilities in the site will be costly.
The enterprise must monitor and update the site several times a day to keep up with every new attack that cyber mercenaries will level against them using every new vulnerability they find, says Sremack. This process has to include change management, testing, and proper implementation as well as a new specialized security team and a designated testing site.
The more feature rich the site, the more it better be worth to the company in order to make it worth securing. "But there are a lot of open source freeware tools that any programmer can run that will help the developers to stay on top of new vulnerabilities and threats, even for homegrown code," says Sremack. So all is not lost.