- Web Storage: To the point, there are security concerns with client-side storage. There is a large potential for abuse if not implemented properly. Here are some security concerns that should be reviewed as part of planning and design. Keep this in mind while reading (credit toOpera for the verbiage), origin is the tuple of scheme/host/port. Thus, http://captechventures.com, http://blogs.captechventures.com, https://captechventures.com and http://captechventures.com:80 are all different origins.
- Storage is assigned on a per origin basis so DNS spoofing is possible which would allow intruders access to a users data. SSL can be used to prevent this.
- While this will probably not be an issue in the enterprise (since Geocities has left us - moment of silence), Web Storage should not be used where more than one user is using different pathnames on one domain. For example, if I implemented Web Storage at captechventures.com/nathan/ it would be accessible by captechventures.com/jones/ (note: not valid URLs).
- Databases are stored locally, on the client, which allows would-be attackers to download a copy of your database and create very precise attacks by issuing plain SQL statements. There's no need to employ injection techniques when you have the database. While this may not immediately impact mobile devices (retrieving content from them is not straight-forward), proper security should be put in place - phone locks, data retention periods (e.g. if the new lead has been sent to the CRM system, wipe it from the local database), etc.
- The fact that the database resides on the client also opens up the potential for attacks on your backend enterprise systems. Your schema is now widely known; very targeted, malicious queries can be created. Proper consideration should be given to your mobile storage design - client-side storage should only store a small subset of what may be available at an enterprise level. Therefore, design a new schema specific to that subset rather than deploying your enterprise design.
- Cross-Domain Capabilities: The new capabilities in HTML5 such as canvas, audio and video make it easy to access content across domains and continue to 'mashup' information. However, this could introduce information leakage. There are safe-guards being put in place to help prevent information leakage. For example, the canvas element contains an attribute called origin-clean which indicates whether the content originates from a different origin (see Opera's explanation of origin above) or not. If the origin-clean flag is set to false, calling the toDataURL() or getImageData() methods of the element would raise a SECURITY_ERRexception.
- Geolocation: Geolocation presents a host of privacy concerns - you're pinpointing the location of the device and therefore the user. While not always 100% accurate, geolocation should be used sparingly, requesting location information only when absolutely necessary to improve the user experience. Proper warnings and terms must be included to make the user aware that you are storing location information and potential consequences. Broadcasting that you're home (GPS coordinates included) once a day for months and then telling the world you're in Maui on vacation may have unfortunate consequences.
- Forms: Javascript is client-side code and, as such, you lose a lot of control. While client-side validation, especially on a mobile device, can be powerful you should always validate form submissions server-side to ensure integrity. Yes, this may require an extra round-trip, on occasion, but if someone has malicious intent, I wouldn't worry if they eat another 120KB of their data plan.
- KeyGen: This is a post for another day, but HTML5 also includes the keygen element which facilitates the creation of private and public keys for identity verification - think enterprise security, banking, etc. You should note that adoption is not standardized, documentation is sparse, and Microsoft has even asked that it be removed from the HTML5 specification all-together. Here is one link I found useful if you're itching to dig deeper.
If you're interested in discussing how CapTech can help mobilize your enterprise, contact Jack Cox, the Mobile Service Offering lead.
'Hacking' 카테고리의 다른 글
Samsung Galaxy S III Hacking (0) | 2012.09.27 |
---|---|
HTML5 Top 3 Vulnerability (2) | 2012.09.25 |
Burp Suite Tutorial – The Intruder Tool (7) | 2012.08.10 |
Understanding the iOS Security Architecture (0) | 2012.08.08 |
Cydia Repositories (7) | 2012.08.05 |