Links

  • 1. Sogeti
  • 2. JBoss
  • 3. IBM
  • 4. Oracle
  • 5. SpringSource
  • 6. NL-JUG
  • 7. Java

Archives

Syndication  RSS 2.0

RSS 1.0
RSS 2.0

Bookmark this site

Add 'JCN Blog' site to delicious  Add 'JCN Blog' site to technorati  Add 'JCN Blog' site to digg  Add 'JCN Blog' site to dzone

Posted by Tobias Groothuyse at 13:30 on Friday 11 April    Add '“All input is evil!” – Security with/despite Web 2.0' site to delicious  Add '“All input is evil!” – Security with/despite Web 2.0' site to technorati  Add '“All input is evil!” – Security with/despite Web 2.0' site to digg  Add '“All input is evil!” – Security with/despite Web 2.0' site to dzone

All input is evil! Validate all input! Escape all output! Met deze drie zinnen is de presentatie van Christian Wenz (geen baard) eigenlijk goed samen te vatten.

Ondanks de vele aandacht die security tegenwoordig krijgt in presentaties en op internet lijkt het niet echt te helpen. De spreker heeft recentelijk voor een it magazine een onderzoek gedaan naar 24 web 2.0 websites. Hierin werd maximaal 15 minuten besteed per site om een aantal security problemen op te sporen. De “success rate” van dit onderzoek was meer dan 50% en onder de onderzochte sites zaten ook grote namen zoals MySpace, Facebook en Orkut.

Een aantal redenen waarom veel websites/applicaties toch niet secure zijn ligt volgens de spreker aan een aantal dingen:
- Slecht danwel inconsistent advies in presentaties over de onderwerpen
- Gebrek aan tijd (security als laatste)
- AJAX technology maakt security leaks makkelijker
- WEB 2.0 sites zijn afhankelijk van user content en dat is gevaarlijk
- Veel nieuwe (ongeteste) API’s
- Veel code aan de client side, waardoor het systeem minder een black box is

Vervolgens werden een aatal voorbeelden van cross site scripting, cross site request forgery en SQL injection getoont. Met name op het gebied van cross site scripting liet de spreker goed zien dat je maar beter met een whitelist kan werken (welke HTML elementen en attributen sta ik toe in mijn user input) dan met een black list. Want er is altijd wel iets dat je over het hoofd ziet:

  • <img scr=”" onerror=”alert(123)” /> //Ontbreken van de src is een error en met de onerror heb je opeens toegang tot scripting
  • <style type=”text/javascript” > //Dit is valide
  • <img src=”…” style=”width: expression(alert(123))” /> //Ook dit is valide (niet in alle browsers)

SQL injection kan ook leiden tot een denial of service attack. Stel je maar eens voor dat je niet safe bent voor SQL injection en de gebruiker tikt in het inlog scherm in het name veld de volgende waarde:bogus name’ UNION SELECT null, null, BENCHMARK(1000000000000, md5(‘a’)) # DoS attack

Doe dit een aantal keer net zolang totdat alle cores van de webserver(s) md5′s aan het berekenen zijn en de site ligt plat.


© 2020 Java Competence Network. All Rights Reserved.