Home > Ask the Software Quality Experts > Application Security Questions & Answers > Denial of service and Ajax
Ask The Software Quality Expert: Questions & Answers
EMAIL THIS

Denial of service and Ajax

Caleb Sima EXPERT RESPONSE FROM: Caleb Sima

Pose a Question
Other Software Quality Categories
Meet all Software Quality Experts
Become an Expert for this site


Software quality news and advice
Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google


>
QUESTION POSED ON: 26 December 2006
Is it easier to force a denial of service attack with Ajax?

>

Billy Hoffman, a lead researcher in SPI Labs and an Ajax expert, is the perfect person to answer this question. So his answer is below:

"If you want to cause a denial of service (DoS) with a traffic flood, JavaScript can do it several ways. XmlHttpRequest (the workhorse of Ajax) can do it, but it can only talk to the domain it comes from. Thus, I could make a botnet of MySpace users but I could only attack MySpace with it if I used it.

I would argue the way Ajax applications can make you more open to a DoS is from all the open Web services and Ajax endpoints. Because you can directly call parts of the control logic of the program, you can do more damage then just blindly requesting files. A flood of traffic to an Ajax endpoint is probably worse than a traffic flood against a random page because each time you contact that Web service the server has some computation to do. Furthermore, responses from Ajax endpoints are not typically cached by Squid or any other 'Web site accelerator.'

Another DoS vector I see with Ajax applications is calling the Web services out of order. This would vary from application to application, but by looking at the JavaScript code that's pushed to the client, I can see in what order and how often Web services are contacted. In essence, this blueprint of how the app works gives an attacker the blueprint of how to break it. Some Web services may allocate resources where another one cleans them up. An attacker simply never calls the clean up functions. Even if the code fails gracefully, it is extremely expensive for a program to generate an Exception, even if it gets caught.

A traffic flooding DoS is like throwing millions of small punches hoping you take an opponent down. A control logic DoS is like cutting open an opponent's head and punching them a few times in the brain."

And here's my answer:

I also tend to see sloppy implementation of Ajax inadvertently causing DoS attacks. For example, I know of a company that decided to implement some Ajax intelligence technology into their search bar on their Web site. What they did not think about was that doing this multiplied their traffic by eight times. For every one search query going to their application it now was broken down to each letter being a single hit. So it ended up crashing their bandwidth.

More information:

Billy Hoffman is a lead researcher in the SPI Labs Research and Development group. He is an oft quoted expert on AJAX security and is a frequent speaker at conferences on the topic. Hoffman is currently co-authoring a book on Ajax security for Addison-Wesley.


Digg This!    StumbleUpon Toolbar StumbleUpon    Bookmark with Delicious Del.icio.us    Add to Google



RELATED CONTENT
Software security testing and techniques
Free Web proxy security tools software testers should get to know
How to get management on board with Web 2.0 security issues
Web application security best practices: Tips on implementation
Testing strategies for complex environments
How to make your software tamperproof
Ways to approach application performance testing on a tight budget
How can I tell if my software security has been breached?
Is online application testing for smartphones different from other software testing?
Software testers facing six big challenges today, StarWest keynoter says
Lesser-known free software testing tools testers should try

Threat modeling
Web application security and the PCI DSS
The essentials of Web application threat modeling
How to implement security in Java EE and Java ME
Application security shouldn't involve duct tape, Band-Aids or bubble gum
Stop SQL injection attacks on applications
How to counter XSS attacks
Breaking the same origin barrier of JavaScript
Protection against "zero-minute" exploits
CSRF attack vector with Ajax serialization
Application security in 2007: What you need to know

Application Security
Expert resolves issues plaguing OpenSTA users
What is fuzz testing? What are some ways to use fuzz testing?
How do I convince management to take application security seriously?
How do I set up a secure login page using membership in ASP.NET?
Security testing sales, marketing websites
Are there application security certification standards?
Top tools for testing Web application security
How to prevent HTTP response splitting
PCI DSS compliance: WAF, code review or both?
Application security careers have bright future

RELATED RESOURCES
2020software.com, trial software downloads for accounting software, ERP software, CRM software and business software systems
Search Bitpipe.com for the latest white papers and business webcasts
Whatis.com, the online computer dictionary



Search and Browse the Expert Answer Center
Search and browse more than 25,000 question and answer pairs from more than 250 TechTarget industry experts.
Browse our Expert Advice



Software Quality - Software Maintenance, Software Requirements, Software Standards
About Us  |  Contact Us  |  For Advertisers  |  For Business Partners  |  Site Index  |  RSS
SEARCH 
TechTarget provides technology professionals with the information they need to perform their jobs - from developing strategy, to making cost-effective purchase decisions and managing their organizations' technology projects - with its network of technology-specific websites, events and online magazines.

TechTarget Corporate Web Site  |  Media Kits  |  Site Map




All Rights Reserved, Copyright 2006 - 2009, TechTarget | Read our Privacy Policy
  TechTarget - The IT Media ROI Experts