OWASP AppSecEU2006 AJAX Security

Information about OWASP AppSecEU2006 AJAX Security

Published on August 30, 2007

Author: BAWare

Source: authorstream.com

Content

Ajax Security:  Ajax Security Andrew van der Stock [email protected] AJAX and Security:  AJAX and Security Ajax Limited guidance New chapter in Guide Image from Hellenic Art Compliance:  Compliance http://www.imageafter.com/image.php?image=b19objects_signs090.jpgandamp;size=fullandamp;download=no Accessibility:  Accessibility Accessibility is mandatory by law Except for 'justifiable hardship' Corporations and governments No choice - do it! Personal web sites No one will come after you... but... Accessibility:  Accessibility Does it validate with W3C WAI validator? Accessibility aides (zoom, readers, etc) Back button issues Privacy:  Privacy Ajax has client side state Local storage Caching Mash ups Privacy ... not:  Privacy ... not Javascript is clear text often cached regardless of browser settings Not private in any way Privacy ... not:  Privacy ... not DOM can be manipulated by hostile code Not private in any way Privacy ... not:  Privacy ... not Dojo.Storage uses Flash 'Solution' for client-side persistent storage Not private in any way Often used for cross-domain postings... ARGH Mash ups:  Mash ups Who owns the data? Who gets the data? How are they going to handle it? An example of a mash up:  An example of a mash up Credit Rating Mashup:  Credit Rating Mashup Credit Rating Mashup:  Credit Rating Mashup Credit Rating Mashup:  Credit Rating Mashup Contentious issues:  Contentious issues Contentious issues:  Contentious issues Access Control:  Access Control http://www.sxc.hu/browse.phtml?f=downloadandamp;id=527569 Authentication:  Authentication Don’t let any old caller in What’s acceptable to be used without authentication? Authenticating a new XMLHttpRequest session Ask...:  Ask... Look ma! No cookies! and ye shall receive:  and ye shall receive Yeah Baby! Come to papa! Authorization:  Authorization Would you let Bart call your admin function? Authorization:  Authorization Use the same authorization method Default deny; all actions should be denied unless allowed Error responses for no authorization Sessions and State Management:  Sessions and State Management http://www.sxc.hu/browse.phtml?f=downloadandamp;id=526216 Session Fixation:  Session Fixation Use toolkits which send session tokens Use proper session management to maintain the session All of the session attacks in the session chapter are still valid Cross-domain XML Http Requests:  Cross-domain XML Http Requests By security design, no browser supports this Many designs want to do this or already do this (Google Maps, etc) How to do it safely? Only with federated security State management:  State management In the good olde days, state was on the server With Ajax, a lot more state is on the client Think 'hidden fields' but so much worse Sending state:  Sending state You can safely send state to the client for display purposes ... as long as it does not contain DOM injections Only send state back if you do not have it on the server Validate all state before use Exposing internal state:  Exposing internal state Just because it’s faster doesn’t mean it’s wiser Keep sensitive state on the server, always Don’t obfuscate JavaScript - it’s hard enough now Ajax Attack Prevention:  Ajax Attack Prevention Injection Attacks:  Injection Attacks PHP toolkits: look for code injection attacks JSON injection: be careful how you decode! DOM injection - client side attacks now much easier XML injection - both client and server side Code injection - both client and server side Data validation:  Data validation Data obtained via the XMLHttpRequest path must be validated Perform validation after authorization checks Validate using same paths as existing code If you (de-)serialize, be aware of XML injection Ajax Attack Prevention:  Ajax Attack Prevention http://www.sxc.hu/browse.phtml?f=downloadandamp;id=527569 Reconstructing Ajax API:  Reconstructing Ajax API Many Ajax apps have been 'decoded' e.g. libgmail, GMail Agent API, gmail.py, etc Spawned GMailFS, Win32 Gmail clients, etc Do not assume your app is special - it will be decoded! GMail Agent API in action GET Ajax Session:  GET Ajax Session Pseudo API Injection:  Pseudo API Injection Most PHP AJAX tool kits allow remote code injection by allowing client-side server code invocation eg: AJason, JPSpan and CPAINT Psuedo API:  Psuedo API Guess what I can do? Create proxy façades Error Handling:  Error Handling Error handling is often neglected Do not use Javascript alert() Parentless window syndrome Questions:  Questions Andrew van der Stock [email protected] Andrew’s OWASP EU talks sponsored by

Related presentations


Other presentations created by BAWare

Integration into the SDLC
30. 08. 2007
0 views

Integration into the SDLC

hot topic
28. 09. 2007
0 views

hot topic

hispanics
01. 10. 2007
0 views

hispanics

zhang
10. 10. 2007
0 views

zhang

schwa
30. 08. 2007
0 views

schwa

aocc
30. 08. 2007
0 views

aocc

Pedersen
30. 08. 2007
0 views

Pedersen

Mining Sciences
30. 08. 2007
0 views

Mining Sciences

Intelligence Gathering mallorca
30. 08. 2007
0 views

Intelligence Gathering mallorca

ppt00021
30. 08. 2007
0 views

ppt00021

hoe wat over adsl
30. 11. 2007
0 views

hoe wat over adsl

The Healthy Potato
04. 12. 2007
0 views

The Healthy Potato

KINDS OF NOUNS
05. 11. 2007
0 views

KINDS OF NOUNS

CUPA 2007 Adv HW part 3
07. 11. 2007
0 views

CUPA 2007 Adv HW part 3

p Javier Carrillo
14. 11. 2007
0 views

p Javier Carrillo

High Intensity Interval Training
13. 12. 2007
0 views

High Intensity Interval Training

measurement
17. 12. 2007
0 views

measurement

Feb05Sepracor
29. 11. 2007
0 views

Feb05Sepracor

aula17
28. 12. 2007
0 views

aula17

lab 04
11. 12. 2007
0 views

lab 04

cattle2000
31. 12. 2007
0 views

cattle2000

Mechanized Logging
02. 01. 2008
0 views

Mechanized Logging

Lightning Safety
03. 01. 2008
0 views

Lightning Safety

water problems
21. 11. 2007
0 views

water problems

mideastmaps
07. 01. 2008
0 views

mideastmaps

schulze
12. 10. 2007
0 views

schulze

Sept 17 03B
19. 11. 2007
0 views

Sept 17 03B

Empowerment2
29. 10. 2007
0 views

Empowerment2

LIU MIT 2006
28. 11. 2007
0 views

LIU MIT 2006

USFS Tourism
22. 11. 2007
0 views

USFS Tourism

omni partner guide pps
02. 10. 2007
0 views

omni partner guide pps

convergence
28. 12. 2007
0 views

convergence

sal mauro 061128
28. 02. 2008
0 views

sal mauro 061128

lec05
29. 02. 2008
0 views

lec05

nypss nsta nov 2003
26. 06. 2007
0 views

nypss nsta nov 2003

Movies MC 061129 3
26. 06. 2007
0 views

Movies MC 061129 3

MOUG 08 2002
26. 06. 2007
0 views

MOUG 08 2002

mold
26. 06. 2007
0 views

mold

moilanen movies
26. 06. 2007
0 views

moilanen movies

MMC Bonato
26. 06. 2007
0 views

MMC Bonato

mm class 8
26. 06. 2007
0 views

mm class 8

Oceans 2005
26. 06. 2007
0 views

Oceans 2005

C3A6
04. 01. 2008
0 views

C3A6

Session8Massimiliano Claps
21. 03. 2008
0 views

Session8Massimiliano Claps

paper Columbia pipelines
30. 08. 2007
0 views

paper Columbia pipelines

CDW Ches99 Talk
05. 01. 2008
0 views

CDW Ches99 Talk

Marketing Mix IPG Presentation
26. 03. 2008
0 views

Marketing Mix IPG Presentation

Moab Marketing
27. 03. 2008
0 views

Moab Marketing

0Kim
30. 08. 2007
0 views

0Kim

Coglx to cultlx
22. 11. 2007
0 views

Coglx to cultlx

12 Igra 4pm
06. 12. 2007
0 views

12 Igra 4pm

Rao
28. 03. 2008
0 views

Rao

Goorevich Richard
30. 03. 2008
0 views

Goorevich Richard

06MYMRes2
09. 04. 2008
0 views

06MYMRes2

quickreview
10. 04. 2008
0 views

quickreview

MontanaDDpresentatio n060105a
13. 04. 2008
0 views

MontanaDDpresentatio n060105a

The Happy Monkey
29. 11. 2007
0 views

The Happy Monkey

cnea 376
20. 11. 2007
0 views

cnea 376

e know GV Presentation
17. 04. 2008
0 views

e know GV Presentation

SustainabilityCaseSt udies
22. 04. 2008
0 views

SustainabilityCaseSt udies

mark
30. 08. 2007
0 views

mark

Dialectal Differentiation
24. 11. 2007
0 views

Dialectal Differentiation

Chapter01
30. 08. 2007
0 views

Chapter01

n0102 SPIE1
26. 06. 2007
0 views

n0102 SPIE1

tues RMI cloonan
07. 12. 2007
0 views

tues RMI cloonan

Modi
26. 06. 2007
0 views

Modi

mne tools scripts kskassam
26. 06. 2007
0 views

mne tools scripts kskassam

hausmesse vortrag meyer
16. 11. 2007
0 views

hausmesse vortrag meyer

sjw
21. 12. 2007
0 views

sjw

stew cartons
17. 06. 2007
0 views

stew cartons

stellmach tim
17. 06. 2007
0 views

stellmach tim

Twelfth Night 2
17. 06. 2007
0 views

Twelfth Night 2

tuebingen seminar nov 04
17. 06. 2007
0 views

tuebingen seminar nov 04

TNG Presentation1
17. 06. 2007
0 views

TNG Presentation1

THE SCIENCE OF LOVE
17. 06. 2007
0 views

THE SCIENCE OF LOVE

t06B Functions Examples
17. 06. 2007
0 views

t06B Functions Examples

Sunny
17. 06. 2007
0 views

Sunny

28 1330 HARP rohacs hideg
18. 03. 2008
0 views

28 1330 HARP rohacs hideg

Water way Awareness
17. 06. 2007
0 views

Water way Awareness

Watergate Political Cartoons
17. 06. 2007
0 views

Watergate Political Cartoons

Valentine s PPT
17. 06. 2007
0 views

Valentine s PPT

USB FunctionDrv
17. 06. 2007
0 views

USB FunctionDrv

urban legends
17. 06. 2007
0 views

urban legends

unti 17Le 1 Funny stories
17. 06. 2007
0 views

unti 17Le 1 Funny stories

Understanding Political Cartoons
17. 06. 2007
0 views

Understanding Political Cartoons

Week2 Augustineandhisera
17. 06. 2007
0 views

Week2 Augustineandhisera

Tee
09. 10. 2007
0 views

Tee

seshun
13. 11. 2007
0 views

seshun

Locke 1 07
30. 08. 2007
0 views

Locke 1 07

ames tornado
05. 10. 2007
0 views

ames tornado

TEAM 9
08. 11. 2007
0 views

TEAM 9

Ferragina
23. 11. 2007
0 views

Ferragina

robo wk 4 controls
07. 01. 2008
0 views

robo wk 4 controls

ScottStroup
02. 11. 2007
0 views

ScottStroup

dyer w ref
04. 03. 2008
0 views

dyer w ref

act31sld
30. 08. 2007
0 views

act31sld

WA Final
17. 06. 2007
0 views

WA Final

EnB presentatie Fischbacher
30. 08. 2007
0 views

EnB presentatie Fischbacher

What to do in Harrisonburg
17. 06. 2007
0 views

What to do in Harrisonburg