6 Ways To Strengthen Web App Security
The reasoning is simple: According to numerous studies, the preferred method for attacking businesses' online assets is via their Web applications--and why not? According to astudy released last year by HP, 69% of Web applications scanned by the company had at least one SQL injection error, and 42% contained a cross-site scripting vulnerability.
So, for every known Web application, seven times out of 10 there is at least one--and usually, more than just one--SQL injection flaw just waiting to be discovered by an enterprising hacker. As cryptographer Whitfield Diffie noted earlier this year at the Black Hat Europe conference, information security defenders get dinged when they don't do their job perfectly. But attackers get to play by "good enough" rules: succeeding even one time out of 100 or 1,000 can equal victory. Furthermore, hackers even have automated attack tools to eliminate any related drudgery.
Accordingly, it's time for businesses to take the security of their Web applications more seriously, and that begins by building more secure applications. For help, Jerry Hoff, VP of the static code analysis division at WhiteHat Security, offered these six starting points for anyone involved in managing a software development team:
1. User inputs are not your friend.
"This will sound like it's for developers, but everyone needs to understand that user inputs are not your friend," said Hoff via phone. Today, many sites--Yelp, Salesforce.com, Facebook, LinkedIn--are predicated on accepting many different types of content from users, including text, images, and uploadable attachments. But all of that user-supplied content also can be used by a crafty hacker to try and exploit the underlying Web application. Accordingly, "the more user input you're going to be collecting, the more work that will potentially need to be going into securing this input," he said.
"This will sound like it's for developers, but everyone needs to understand that user inputs are not your friend," said Hoff via phone. Today, many sites--Yelp, Salesforce.com, Facebook, LinkedIn--are predicated on accepting many different types of content from users, including text, images, and uploadable attachments. But all of that user-supplied content also can be used by a crafty hacker to try and exploit the underlying Web application. Accordingly, "the more user input you're going to be collecting, the more work that will potentially need to be going into securing this input," he said.
2. Know which vulnerabilities will compromise you.
"Not just for developers, but for all people involved in developing Web applications, you need to have some proficiency with the top issues affecting Web applications," said Hoff. Accordingly, he recommends reviewing the Open Web Application Security Project (OWASP) list of the top 10 vulnerabilities currently affecting Web applications.
"Not just for developers, but for all people involved in developing Web applications, you need to have some proficiency with the top issues affecting Web applications," said Hoff. Accordingly, he recommends reviewing the Open Web Application Security Project (OWASP) list of the top 10 vulnerabilities currently affecting Web applications.
Likewise, he recommends that managers--and their managers--begin holding everyone accountable for ensuring that each of the top 10 threats gets mitigated for every Web application that gets built. Finally, if the top 10 list sounds too dry, he recommends reviewing his multimedia OWASP Appsec Tutorial Series, available for free via YouTube.
3. Understand security controls in your languages.
"If you're working in a particular language--even if you're a manager--you should know the security controls for that platform," said Hoff. That goes for PHP, Java, .NET, or any other language being used. Each has its nuances, and some will offer better out-of-the-box security, but the important step is to ensure that everyone involved in building and approving a Web application understands how to stop exploits such as SQL injection and cross-site scripting attacks, and has the right development or code-checking tools to help. "That should be like a seatbelt or airbag that's already built into cars. They should just have that as part of their toolkit."
"If you're working in a particular language--even if you're a manager--you should know the security controls for that platform," said Hoff. That goes for PHP, Java, .NET, or any other language being used. Each has its nuances, and some will offer better out-of-the-box security, but the important step is to ensure that everyone involved in building and approving a Web application understands how to stop exploits such as SQL injection and cross-site scripting attacks, and has the right development or code-checking tools to help. "That should be like a seatbelt or airbag that's already built into cars. They should just have that as part of their toolkit."
4. Never write your own security controls.
"If you're a manager or stakeholder, tell your developers: 'Don't write your own security controls, because you will fail,'" said Hoff. "If you're not someone who studies security 24/7, then you will make an assumption and miss something you think you've covered." Accordingly, he said it's essential to provide developers with a list of approved security controls that will mitigate every exploit in the OWASP top 10, as well as to give them the training they need to use those controls properly. "Now the top 10 is not an exhaustive list of vulnerabilities, but if you do that, you've at least gotten started."
"If you're a manager or stakeholder, tell your developers: 'Don't write your own security controls, because you will fail,'" said Hoff. "If you're not someone who studies security 24/7, then you will make an assumption and miss something you think you've covered." Accordingly, he said it's essential to provide developers with a list of approved security controls that will mitigate every exploit in the OWASP top 10, as well as to give them the training they need to use those controls properly. "Now the top 10 is not an exhaustive list of vulnerabilities, but if you do that, you've at least gotten started."
5. Create a security community emissary.
Although the information security community might seem like a bit of an insider's club, Hoff said there are a wealth of resources on offer, and businesses would do well to ensure that at least one of their developers or managers is tasked to play Web application security champion. Resource-wise, there is an OWASP one-to-one mailing list, started by Mozilla's director of security assurance, Michael Coates, "which very few people leverage, which has hundreds of experts standing by," said Hoff. In addition, he said there are local OWASP chapters in cities around the world--"everywhere from New York to South Africa," meaning there are free and often local resources for getting answers to Web application security issues.
Although the information security community might seem like a bit of an insider's club, Hoff said there are a wealth of resources on offer, and businesses would do well to ensure that at least one of their developers or managers is tasked to play Web application security champion. Resource-wise, there is an OWASP one-to-one mailing list, started by Mozilla's director of security assurance, Michael Coates, "which very few people leverage, which has hundreds of experts standing by," said Hoff. In addition, he said there are local OWASP chapters in cities around the world--"everywhere from New York to South Africa," meaning there are free and often local resources for getting answers to Web application security issues.
6. Apply security controls consistently.
Finally, "to be secure, you've got to be consistent," Hoff said. "As an attacker, they only have to find the one place where you don't have a security control, and that's the one place you'll be attacked." Preventing that from happening means applying security throughout the development of your software, "and that requires securing the software development lifecycle, or SDLC," he said.
Finally, "to be secure, you've got to be consistent," Hoff said. "As an attacker, they only have to find the one place where you don't have a security control, and that's the one place you'll be attacked." Preventing that from happening means applying security throughout the development of your software, "and that requires securing the software development lifecycle, or SDLC," he said.
Every company's SDLC program will be different, and security controls can be added in different places or handled in different ways, yet still be effective. "My advice is to decide what those are, and to be consistent," said Hoff. For creating more secure Web applications, whether it's training, standards, awareness, or controls, "consistency is the key," he said.
Mobile employees' data and apps need protecting. Here are 10 ways to get the job done. Also in the new, all-digital 10 Steps To E-Commerce Security special issue of Dark Reading: Mobile technology is forcing businesses to rethink the fundamentals of how their networks work. (Free registration required.)