This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Difference between revisions of "RIA Security Smackdown"
From OWASP
| Line 1: | Line 1: | ||
Notes from the OWASP Washington chapter meeting where we discussed: | Notes from the OWASP Washington chapter meeting where we discussed: | ||
| − | + | * Java Applet - very old technology, runs in sandbox | |
| − | + | * Flash 7 - old flash movie environment | |
| − | + | * JFX (Sun Java) - New scripting language compiles to bytecode, runs via Java Web Start | |
| − | * Java Applet | ||
| − | * Flash 7 | ||
| − | * JFX (Sun Java) | ||
* Silverlight (Microsoft) - .NET Applets that run inside the browser, no privileged code | * Silverlight (Microsoft) - .NET Applets that run inside the browser, no privileged code | ||
* Google Gears - local storage component with JavaScript API (Same Origin all the way down) | * Google Gears - local storage component with JavaScript API (Same Origin all the way down) | ||
* AIR (Adobe - formerly Apollo) - VM that runs Flash, Shockwave movies, ActionScript, JavaScript, FLV | * AIR (Adobe - formerly Apollo) - VM that runs Flash, Shockwave movies, ActionScript, JavaScript, FLV | ||
| − | ==Threat Agents== | + | ==Threat Agents to Consider== |
* Threat from external attackers | * Threat from external attackers | ||
| − | * Threat from malicious developers | + | * Threat from malicious developers |
| − | |||
==References== | ==References== | ||
| Line 22: | Line 18: | ||
==Results== | ==Results== | ||
| − | |||
| − | |||
| − | |||
Key | Key | ||
| − | * ( | + | * (Y) - Allowed by RIA framework |
| + | * (LF) - Limited by framework | ||
| + | * (LSO) - Limited by same origin policy | ||
* (LD) - Limited by developer | * (LD) - Limited by developer | ||
* (LU) - Limited by user | * (LU) - Limited by user | ||
| − | * ( | + | * (N) - Denied by RIA framework |
| − | + | {|class="wikitable sortable" style="text-align:left;" width="100%" | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | {|class="wikitable sortable" style="text-align: | ||
|- | |- | ||
| − | ! | + | ! RIA Framework |
! width="10%" | Java Applet | ! width="10%" | Java Applet | ||
! width="10%" | Adobe Flash | ! width="10%" | Adobe Flash | ||
| Line 49: | Line 38: | ||
|- | |- | ||
| '''Persistence''' - Does the RIA framework allow data to be persisted in the client? | | '''Persistence''' - Does the RIA framework allow data to be persisted in the client? | ||
| − | | | + | | N |
| − | | | + | | LF |
| − | | | + | | LSO |
| − | | | + | | LD |
| − | | | + | | LD |
| − | | | + | | Y |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|- | |- | ||
| − | | '''Sharing''' - Does the RIA framework allow | + | | '''Sharing''' - Does the RIA framework allow uploading data? |
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''Exchange''' - Does the RIA framework use data formats that scramble data and code (HTML, JSON) | | '''Exchange''' - Does the RIA framework use data formats that scramble data and code (HTML, JSON) | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| − | | '''Pipes''' - Does the RIA framework allow multiple | + | | '''Pipes''' - Does the RIA framework allow multiple RIAs to communicate with each other on the client? |
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | ? |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''Files''' - Does the RIA framework have access to the local file system? | | '''Files''' - Does the RIA framework have access to the local file system? | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''Sockets''' - Does the RIA framework have access to local network sockets? | | '''Sockets''' - Does the RIA framework have access to local network sockets? | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''Windows''' - Does the RIA framework have the ability to create windows? | | '''Windows''' - Does the RIA framework have the ability to create windows? | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''Devices''' - Does the RIA framework have the ability to access local cameras and microphones? | | '''Devices''' - Does the RIA framework have the ability to access local cameras and microphones? | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''Native''' - Does the RIA framework have access to local native code or executables? | | '''Native''' - Does the RIA framework have access to local native code or executables? | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''DOM''' - Does the RIA framework have access to the DOM? | | '''DOM''' - Does the RIA framework have access to the DOM? | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | ? |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''Controls''' - Does the RIA framework have access to other components within the DOM? | | '''Controls''' - Does the RIA framework have access to other components within the DOM? | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''Self-Modify''' - Can an RIA modify the RIA framework? | | '''Self-Modify''' - Can an RIA modify the RIA framework? | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|- | |- | ||
| '''DNS Pinning''' - Does the RIA framework protect against DNS pinning? | | '''DNS Pinning''' - Does the RIA framework protect against DNS pinning? | ||
| − | | | + | | N |
| − | | | + | | N |
| − | | | + | | ? |
| − | | | + | | LD |
| − | | | + | | ? |
| − | | | + | | Y |
|} | |} | ||
__NOTOC__ | __NOTOC__ | ||
Revision as of 05:45, 24 August 2007
Notes from the OWASP Washington chapter meeting where we discussed:
- Java Applet - very old technology, runs in sandbox
- Flash 7 - old flash movie environment
- JFX (Sun Java) - New scripting language compiles to bytecode, runs via Java Web Start
- Silverlight (Microsoft) - .NET Applets that run inside the browser, no privileged code
- Google Gears - local storage component with JavaScript API (Same Origin all the way down)
- AIR (Adobe - formerly Apollo) - VM that runs Flash, Shockwave movies, ActionScript, JavaScript, FLV
Threat Agents to Consider
- Threat from external attackers
- Threat from malicious developers
References
AIR - http://www.flashsec.org, http://www.wisec.it.en/Docs/flash_App_testing_Owasp07.swf
Results
Key
- (Y) - Allowed by RIA framework
- (LF) - Limited by framework
- (LSO) - Limited by same origin policy
- (LD) - Limited by developer
- (LU) - Limited by user
- (N) - Denied by RIA framework
| RIA Framework | Java Applet | Adobe Flash | Google Gears | Java FX (JFX) | MS Silverlight | Adobe AIR |
|---|---|---|---|---|---|---|
| Persistence - Does the RIA framework allow data to be persisted in the client? | N | LF | LSO | LD | LD | Y |
| Sharing - Does the RIA framework allow uploading data? | N | N | ? | LD | ? | Y |
| Exchange - Does the RIA framework use data formats that scramble data and code (HTML, JSON) | N | N | ? | LD | ? | Y |
| Pipes - Does the RIA framework allow multiple RIAs to communicate with each other on the client? | N | N | ? | ? | ? | Y |
| Files - Does the RIA framework have access to the local file system? | N | N | ? | LD | ? | Y |
| Sockets - Does the RIA framework have access to local network sockets? | N | N | ? | LD | ? | Y |
| Windows - Does the RIA framework have the ability to create windows? | N | N | ? | LD | ? | Y |
| Devices - Does the RIA framework have the ability to access local cameras and microphones? | N | N | ? | LD | ? | Y |
| Native - Does the RIA framework have access to local native code or executables? | N | N | ? | LD | ? | Y |
| DOM - Does the RIA framework have access to the DOM? | N | N | ? | ? | ? | Y |
| Controls - Does the RIA framework have access to other components within the DOM? | N | N | ? | LD | ? | Y |
| Self-Modify - Can an RIA modify the RIA framework? | N | N | ? | LD | ? | Y |
| DNS Pinning - Does the RIA framework protect against DNS pinning? | N | N | ? | LD | ? | Y |