"PHP is definitely a vulnerable language when not implemented correctly, and unfortunately, most Web programmers don't truly understand the vulnerabilities or attack vectors associated with them," says Joshua Crumbaugh, lead penetration tester at IT Cyber Security.
Released on Monday, the report chronicled the attack methods that Imperva researchers observed across a sample of 24 applications containing attack vectors related to SuperGlobal variables, noting that they identified 144 related attacks per application within a month, with some attack campaigns lasting over the course of five months. In particular, the report showed how attackers are commonly able to chain together multiple low-impact vulnerabilities related to SuperGlobal in order to achieve variable manipulation, security filter evasion, and arbitrary code execution.
[Is IPS in it for the long haul? See The Future of IPS.]
"One of the key lessons for enterprises is that they should defend themselves even against what seems to be in the beginning a really not-so-important vulnerability because when it is chained with other not-so-important vulnerabilities, together they can create a really powerful exploit," says Tal Be'ery, leader of Imperva's Web research team.
According to Be'ery, while PHP security has generally improved during the past few years, it's not getting better fast enough, particularly for a language that by his firm's estimates powers more than 80 percent of the Web. While most security experts would agree with that sentiment, some are taking issue with Be'ery's and Imperva's public push against SuperGlobal.
"Instead of calling to remove SuperGlobals, it might be better to call on people to update their PHP," says Serge Batchilo, a security researcher for Security Innovation. "The vulnerabilities at the root of this wave of attacks are CVE-2010-3065 and CVE-2011-2505, which means they have been assigned CVE identifiers in 2010 and 2011, respectively, and are almost certainly patched in PHP versions for the past couple of years."
Batchilo accused Imperva of drumming up controversy with what he calls an "essentially trivial finding," explaining that the best way to improve PHP security is through more timely patching.
"Removing SuperGlobals would break a lot of PHP applications and is not likely to happen in the short term, while installing patches that have been available for years is a simple and effective solution that can be easily implemented in the short term," Batchilo says. "When a patched vulnerability is being exploited, it is common sense to install the patch. It's even better just to update servers periodically as a preventative measure."
Crumbaugh agrees, reiterating that the No. 1 recommendation he has for those administering PHP applications is to keep those applications and the system upgraded.
"Unless there are some serious flaws in the implementation of your software or gigantic configuration errors, it's rare that I can break into a server with fully patched software and services," he says, explaining that he frequently exploits out-of-date PHP systems in his penetration tests, and noting that he frequently runs into companies that take years to update critical vulnerabilities. "Keep everything up to date, and you'll increase your security posture."
Have a comment on this story? Please click "Add Your Comment" below. If you'd like to contact Dark Reading's editors directly, send us a message.