As IT budgets continue to be squeezed and organizations struggle to find new ways to grow and innovate, outsourcing moves higher on the CIO's "to do" list. The privacy and security implication of outsourcing relationships is a growing concern for many organizations. Most of this discussion on this topic has focused on the transfer and handling of personal data but one area that has not been well-documented is Web application development. Gartner Inc. cites 75 percent of all attacks on information security are directed at the application level. Watchfire's own research shows that the vast majority of Web applications are vulnerable to these attacks. Since many Web applications are used to collect confidential customer or employee data, the potential for a privacy breach is high.
Outsourcing application development - including web applications - seems a logical choice considering the potential cost and time savings. But at what expense? As more application development is outsourced to third parties, how can we be sure that these applications are free of security vulnerabilities that might be leveraged to expose confidential customer data?
In this article, we'll review some of the top security vulnerabilities in outsourced applications, and what you can do to prevent them from happening.
Ways Hackers Typically Exploit Application Vulnerabilities
Experts agree - web applications present one of the most significant security risks to your organization. In 2006, the two most common security issues cited were Cross-Site Scripting (XSS) and SQL Injection vulnerabilities. With these attacks, hackers utilize inadvertent defects in Web applications to steal information from users and break into confidential databases.
Common web application vulnerabilities and security defects include Cross-Site Scripting (XSS) and SQL Injection. Since every Web site and web application is different, the location, number and severity of these and other application vulnerabilities will differ significantly between sites. The only way to fix these vulnerabilities is to identify them in the application and recode the application to fix the flaw(s) that enable them. The window of exposure for these vulnerabilities can be quite significant because they often go undetected until a breach has occurred.
Privacy Implications of Web Application Vulnerabilities
A Web application security incident's affect on your customers can be devastating and can range from identity theft to session hijacking to the compromise of confidential and private customer data. XSS is one of the leading methods used in identity theft (and an obvious concern to financial and healthcare institutions); it leverages flaws in applications to trick users into divulging confidential information.
SQL injection is one of the main attacks used when back-end databases are compromised. With SQL injection, an attacker adds SQL code to a web form input box to gain access to resources or make changes to data. The risk of SQL injection attacks is on the rise because of automated tools which increase the potential damage of an exploit.
Many of the phishing email-based schemes use XSS and other application layer attacks to trick users into giving up their credentials. As web applications become more pervasive and more complex, so do the techniques and attacks hackers are using against them. Many new vulnerabilities and attack methods discovered or reported show an alarming trend toward attacks with multi-faceted damages. This means the hackers are using more powerful attacks to cause significantly more damage, while at the same time covering their tracks is becoming easier.
There are several issues to consider first before beginning an off-shoring project:
Make security expertise a factor in deciding where to outsource your application development:
Application security expertise is not widespread among development firms. Many outsourcers have impressive quality assurance designations but very few have proper security training. Make sure that your outsourcer is capable of delivering not just a quality product but a secure product. Ask the question: Do they make security part of their development process, how do they test applications for security and what documentation can they give you to demonstrate processes were followed and applications were properly tested?
Make security part of your service level agreements and contracts:
When outsourcing web development to a third party, security requirements are often overlooked or given minimal attention. Proper security testing can sometimes increase the time and cost of a project by 10-20 percent. If you don't make security a contractual requirement no outsourcer will be eager to cover this cost. Applications should be required to meet your own security standards, you should have the right to do acceptance testing and the outsourcer should be responsible for fixing security defects that are identified.
Perform regular security audits and defect testing on delivered applications:
In addition to requiring all third party applications to be scanned using a web application testing tool before delivery, conduct thorough and regular assessments on the developed applications to make sure they continue to pass your security standards. Performing continual security testing throughout the software development lifecycle at key points during the various stages from development to QA to Staging will reduce costs and significantly reduce risk.
With the proper processes and checks in place, forward-looking companies can still take advantage of the value of outsourcing.
Michael Weider is the founder and CTO of Watchfire, a leading provider of software and service to help ensure the security and compliance of Web sites. www.watchfire.com.