Hi there,

I replied to Kentaro privately before I was subscribed to this list. The OWASP Guide 2.1 Ajax chapter is about 80% done and 80% to go. I have some serious vulnerabilities to report to a few vendors, research to be included in the paper, such as JSON injection and so on, and peer review from an accessibility expert (as I'm not qualified in this area).

My slide deck from the OWASP Melbourne chapter meeting in February is also useful:
http://www.greebo.net/owasp/ajax_security.pdf (PDF, 1.8 MB)

Here is my message to Kentaro-san:

Begin forwarded message:

From: Andrew van der Stock <[EMAIL PROTECTED]>
Date: 7 March 2006 2:54:36 AM
To: kentaro.arai at <hidden>
Subject: Security problems with Ajax

Kentaro,

In short, yes! :)

I am researching and writing a new chapter on Ajax security for the OWASP Guide which will be out as soon as it's been properly reviewed. In my travels, I've found many implementation issues surrounding how Ajax toolkits are used.

In particular:

a) security architecture. Where to start... please read the chapter when it comes out

b) sending to a second, disassociated server prevents secure state, such as authorization from being shared. This usually leads to really poor decisions about state management and application design

c) insecure client-side state storage - including authorization decisions

d) client-side authorization (!!!) or non-existent authorization (!!!)

e) new classes of injection attacks (which I call "Ajax injection" as a meta-class of attack, but are in fact a multitude of injection attacks including existing issues such as Javascript code injection (as per GMail last week) and basic XSS, through to JSON injection, which is a new one) due to a lack of care with encoding, decoding, and in general simply not thinking things through

f) insufficient validation on the server, particularly when Ajax calls web services, and even more so when Ajax calls enterprise service buses (SOA) publishing 40 year old COBOL code which has never been tested for XML node injection before

g) insufficient business rule validation. This is true of normal apps as well, but it is particularly prevalent with Ajax apps as for some strange reason they believe Ajax is secure magic pixie dust. I've got a few demo vulnerabilities to report to various places before I can speak about these in the open.

h) GET request mania. I know that someone here posted something about REST, but honestly, GET methods is a privacy nightmare for many firms who must go out of their way to prevent private information leaking into third party systems like ISP caches or browser history on Internet kiosks. Only a few toolkits had clear documentation on how you can change to using POST data... which surprisingly includes CPaint, one of the first Ajax toolkits to be exposed as insecure. Version 2.0.x of CPaint is soooo much better.

h) not particularly security related, but is compliance related - Ajax frameworks are in general completely inaccessible. They fail WAI validation miserably, do not provide alternate accessible paths, and rarely prompt screen readers to refresh the screen. Many are fixed pixel sizes and work in new ways which makes using assistive technologies impossible as they don't know how to handle this bag o' pixels masquerading as an application. I am getting this section peer reviewed by an accessibility specialist, but as it's illegal to produce inaccessible applications unless it's a justifiable hardship (gee, spending 20%-90% more to create a glitzy interface over an accessible one will go down well with our equal opportunity legal beagles). Ajax CAN be accessible. But with few exceptions, it is not. In some hard core cases, the vendors must really hate and despise disabled users and users with high DPI screens. I have one major commercial Ajax vendor suite that acts like its own desktop UI that *crashes* the browser when you try to increase the font size to something readable. I will name names soon if they don't get their act together. Completely and utterly unacceptable.

In short, Ajax can be made secure, but in general it is not - application writers are at worse than security square one with most toolkits. The architecture alone forces many poor choices upon application authors, and if they are unaware of security issues, they will create insecure and unsecurable web applications.

thanks,
Andrew

_______________________________________________
Secure Coding mailing list (SC-L)
SC-L@securecoding.org
List information, subscriptions, etc - http://krvw.com/mailman/listinfo/sc-l
List charter available at - http://www.securecoding.org/list/charter.php

Reply via email to