The security risk in Web 2.0

Security has become a no-brainer for desktop software, but the same doesn't hold true for the booming world of Web applications.

Joris Evers Staff Writer, CNET News.com
Joris Evers covers security.
Joris Evers
6 min read
Web 2.0 is causing a splash as it stretches the boundaries of what Web sites can do. But in the rush to add features, security has become an afterthought, experts say.

The buzz around the new technology echoes the '90s Internet boom--complete with pricey conferences, plenty of start-ups, and innovative companies like MySpace.com and Writely being snapped up for big bucks. And the sense of deja vu goes even further for some experts. Just as in the early days of desktop software, they say, the development momentum is all about features--and protections are being neglected.

"We're continuing to make the same mistakes by putting security last," said Billy Hoffman, lead engineer at Web security specialist SPI Dynamics. "People are buying into this hype and throwing together ideas for Web applications, but they are not thinking about security, and they are not realizing how badly they are exposing their users."

Yamanner, Samy and Spaceflash are among the higher-profile attacks that have surfaced online. The Yamanner worm targeted Yahoo Mail, harvesting e-mail addresses and forwarding itself to all contacts in a user's Yahoo address book. The Samy and Spaceflash worms both spread on MySpace, changing profiles on the hugely popular social-networking Web site.

Web 2.0 lacks a precise definition; it's used mainly as a catch-all term to cover Web sites that are more than just plain, static pages. Web 2.0 sites are more interactive, allowing people to tag photos posted online, for example. Unlike their predecessors, they deliver an experience more akin to using a desktop application.

One of the key enablers of the flashier Web sites is a programming technique known as AJAX, which stands for "Asynchronous JavaScript and XML." Google Maps, launched last year, was one of the first Web applications to showcase the benefits of AJAX development techniques to a broad audience, when it let people use a mouse to move a map image around the screen.

But AJAX doesn't just help make Web pages and sites more interactive. It could also provide ways for hackers to hit a Web server and to exploit sites in attacks on visitors, experts said.

"Think of it like a house," said Hoffman, who will give a presentation on AJAX security at next week's Black Hat security event in Las Vegas. "A traditional Web site is like a house with no windows and just a front door. An AJAX Web site is like a house with a ton of windows and a sliding door. You can put the biggest locks on your front and back doors, but I can still get in through a window."

A Web site based on the new programming techniques has a greater "attack surface" because it has many more interactions with the browser and may run JavaScript on the client PC, he noted. JavaScript is a scripting programming language popular on Web sites. In contrast, old-fashioned Web sites typically accept information through forms.

Cross-site scripting
AJAX also increases the possibility of so-called cross-site scripting flaws, which occur when the site developer doesn't properly code pages, experts said. An attacker can exploit this type of vulnerability to hijack user accounts, launch information-stealing phishing scams or even download malicious code onto users' computers, experts have said. Big-name Web companies such as Microsoft, eBay, Yahoo and Google have all experienced cross-site scripting flaws on their Web sites.

"I think it would be na?ve for anyone to say that there are no security problems."
--Ryan Asleson, co-author, "Foundations of Ajax"

But cross-site scripting issues are only one risk. Other potential problems in AJAX code include race conditions, code correctness issues, object model violations, insecure randomness and poor error handling, said Brian Chess, chief scientist at Fortify Software, a maker of source-code analysis tools.

Such errors could expose people's data, let one user control another user's session, allow malicious code to run, or enable other attacks, Fortify said. The company's researchers found examples of all of these errors in sample AJAX code in a December analysis of "Foundations of Ajax," a how-to-book aimed at software developers.

"Since the code samples (in the book) are likely to be regarded as a best-practices guide, many software developers worldwide will learn insecure coding habits," Chess said.

Ryan Asleson, one of the authors of "Foundations of Ajax," said he had not heard of the alleged flaws in the sample code. However, he said, if those problems do exist, it is possible, because the code was kept as simple for a large audience. "We never intended the code that's in there to actually be production-ready code," he noted.

The key to preventing security issues is developer training and practices, Asleson said. "I think it would be naive for anyone to say that there are no security problems," he said. "There are a lot of things that developers can do that can open all kinds of security holes."

AJAX itself doesn't introduce vulnerabilities, Chess said--it just makes it easier to make old mistakes. The software industry is exiting the desktop applications era, where buffer overflows were the big security problem. Now it's JavaScript in AJAX that is raising concerns. "It's an amazing return to the past," he said.

But Asleson, who aside from authoring two AJAX books is also a developer, disagrees with the notion that Web developers neglect security. "In some ways, there are some parallels between what we saw on the desktop 10 years or so ago. But back then, security really wasn't really on anyone's radar, and today, it very much is," he said.

That sentiment was echoed by Google and AOL, two of the Web's giants. Google is a big AJAX fan, Douglas Merrill, vice president of engineering at Google, said in an interview via e-mail.

"In AJAX development, like all software development, it's important to carefully address security and build products with the user's best interests in mind," Merrill said. One of the benefits of Web-based applications, he noted, is that deploying fixes is typically fast and easy, requiring no action from the user.

Though Google hasn't been completely free of Web site flaws, security is part of the design, development, delivery and operation of its products and services, Merrill said.

"In our experience, processes where security is 'done' only by a security team are not scalable and tend to be ineffective," he said. In contrast, we strive to integrate security into the overall product development process."

Bigger is better?
AOL said it believes large Web companies do a better job at security than small ones that are just starting out. "We have the advantage of more than two decades of experience and a large professional security team to help us keep new and existing products secure," company spokesman Andrew Weinstein said.

There is a rush to try and create the next MySpace, Flickr or Google Maps, Hoffman said, and there aren't many barriers to entry. But simply building the Web site is not the end of the development work, he added. Developers have to be security-conscious, about both bugs and the unanticipated malicious use of built-in features, he said.

In the case of Yahoo Mail, the Yamanner worm that spread last month took advantage of the software's ability to include JavaScript in messages, experts said. When the message was opened, a script ran, instructing the e-mail service to send the contacts in the online address book to a remote server. The worm also had the service mail the malicious message to all the people on that list.

Yahoo said it strives to protect members' information and to help with security across the industry. "We have a dedicated team of experts that ensure security is top-of-mind among our engineers and also help developers create secure services through a variety of methods throughout the engineering process, including developer education, infrastructure, reviews and tools," a company representative said.

At MySpace, last October's Samy worm is considered one of the first to exploit a cross-site scripting flaw. It exploited vulnerabilities in the MySpace site to add a million users to the author's "friends" list. When a MySpace user viewed an infected profile, his profile would in turn be infected and become infectious.

Both attacks were relatively innocent. But experts are cautioning that such flaws could be used in much more serious incidents. "I don't think the attackers, or the defenders, are up on Ajax yet," Chess said.

The burden rests on Web site developers to make sure their users and servers stay safe, experts said. Internet users can protect themselves to some extent using PC security software, such as virus and phishing shields. But such applications are typically most effective after an attack has surfaced, because they rely on attack signatures (the "fingerprint" of the threat) or blacklists of known malicious sites.

"The end-user ends up getting screwed, but the Web application really has the vulnerability in it," Hoffman said. "The only people who can fix the problem are the actual people who run the Web applications."