While assessing patch level tends to be the most reliable way to check for vulnerable code, there are times when real-world exploits are needed. In cases where the patch has not been correctly applied, or when there is no patch, the best way to check for the vulnerability is to actually probe the application. Custom Web applications, for example, will generally not be able to be assessed using a patch-level check, says Ross Barrett, senior manager for security engineering at Rapid7, a vulnerability management firm.
"If a company has in-house Web apps, that is where you are going to get a lot of value out of that approach," he says. "The real-world attacks can be replayed and give you results."
Using actual exploits to test for vulnerabilities is an old technique that turns a vulnerability scan into an automated penetration test rather than a catalog of the system's patch level. Exploitation, however, can result in system instability, a danger that causes many companies to be wary of active probes of their networks or Internet applications, says Lamar Bailey, director of security research for risk-management firm nCircle, now owned by Tripwire.
"It's tricky to use real exploits because you have to neuter them," Bailey says. "We got a lot of pushback from customers -- they would not run a lot of the tests -- because they did not want production servers to go down."
[Fear of business disruption and downtime often leaves enterprises hesitant to scan the critical applications that hackers are most likely to target in their quest for exploitable vulnerabilities. See Too Scared To Scan.]
Moreover, exploits are not 100 percent reliable, he says. With current anti-exploitation techniques -- such as address layout randomization and data-execution protection -- success in forcing exploit writers to track complex system states tends not to be a given, Bailey says.
"The fact that you could not get into the box does not mean that the box is not vulnerable," he says.
Web applications are a good match for exploit-based scanning because applications that continually deal with the Internet tend to be more robust, Bailey says. In addition, many of the types of attacks that threaten Web applications, such as cross-site scripting and SQL injection, are at low risk of causing downtime.
"As long as you don't crash anything and you tell the company what changes you made, many of them will let you use active techniques against a Web application," Bailey says. Using actual attack intelligence can help direct vulnerability testing as well. By looking at incoming attacks, security teams can replicate them and discover whether the business' systems are vulnerable to exploits. By automating the exploitation process, a company can turn attack research into defense, says Jason Schmitt, director of product management for Hewlett-Packard's Fortify business unit.
"The automation is about capturing the security-research expertise to give our customers a current perspective on the types of threats out there," he says.
The reverse works as well, Rapid7's Barrett says.
"There is a lot of noise to filter through," he says. "So tying the attack traffic into your vulnerability situation can tell you what you are actually vulnerable to, and that's hugely valuable."
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.