OWASP Topp 10 2013. De 10 allvarligaste riskerna i webbapplikationer. 2013-10-03 OWASP East Sweden: Uppstartsmöte



Relevanta dokument
Säkerhet i applikationslagret och slaget om webben. John Wilander, Omegapoint, Rätt säkerhet, maj 2010

Säkerhet. Säkerhet. Johan Leitet twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Datum: Version: Författare: Christina Danielsson Senast ändrad:

Modul 6 Webbsäkerhet

Avancerade Webbteknologier 2. AD11g Göteborg 2012 Säkerhet

Essential Php Security Författare: Shiflett, Chris Antal sidor: 124 Förlag: O'Reilly

Webbsäkerhet för IT-tekniker VT2014 Johan Leitet Nätverkssäkerhet, 1DV425 johan.leitet.se twitter.com/leitet facebook.

Lagring i molnet. Per Hellqvist Senior Security Specialist Symantec Nordic AB

Virus och andra elakartade program

Webbsäkerhet. för IT-tekniker VT2013. Johan Leitet johan.leitet.se

E11 "Protection" Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I

Säkra webbapplikationer. John Wilander, Omegapoint, KTH maj 2010

Swedish Association for Software Testing Inspect it AB

Storegate Pro Backup. Innehåll

Introduktion till datasäkerhet. Christian Ohlsson 1

ASP.NET MVC. Copyright Mahmud Al Hakim Innehåll

Instruktion för integration mot CAS

Riktlinjer för informationssäkerhet

Ekonomiportalen Sa kommer du iga ng

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: Mottagare: Visi Web kund

Identity Management i ett nätverkssäkerhetsperspektiv. Martin Fredriksson

Säkra Designmönster (Secure Design Patterns)

Säkerhet. Föreläsning 6 Säkerhet. Johan Leitet twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449

Bokmärket En säker webbapplikation. Maria Westin. Projektrapport, DT144G Webbapplikationssäkerhet, 7,5 poäng

JobOffice SQL databas på server

Karlstads Universitet, Datavetenskap 1

Innehåll Security. Chapter 4 och 7 Beginning SQL Server 2008 for Developers

Riktlinje för säkerhetskrav vid upphandling av IT-stöd

Kunskapsbank ICARUS DB

Installationsanvisning. Dokumenttyp Installationsanvisning Område Boss med delad databas

Försöksnomineringssystem 2013

Överföring av filer med Zendto v 1.1. stora filer som inte kan skickas via e-post konfidentiella uppgifter som inte kan skickas via okrypterad e-post

Säkerhet ur ett testperspektiv

Kapitel 4 Arkivmenyn Innehåll

Konfigurationer Video- och distansmöte Bilaga till Tekniska anvisningar

Webbsäkerhet och vanliga brister - kunskapsläget bland utvecklare.

tisdag 8 november 11

WordPress och säkerhet inom tillägg från tredje parter

Övning MS SQL och MVC del 2

Webbservrar, severskript & webbproduktion

2 Varför är XSS och SQL-injection så vanligt?

Webbprogrammering. Sahand Sadjadee

Innehåll. Dokumentet gäller från och med version

TrustedDialog 3.3 installation

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

WiFi4EU-kontrollfunktion. Vägledning v1.0

Kunskapsbank ICARUS DB

Remote Access Service

Installationsbeskrivning för CAB Service Platform med CABInstall

Version: 1.1 Datum: evry.com. Användardokumentation. Case Portal

Krav på webbläsare. Manual för arbetslöshetkassorna. De webbläsare som är kompatibla med portalen är minst Internet Explorer 6.x och Firefox 2.

Modul 8 Hantering av indata

Datasäkerhet. Informationsteknologi sommarkurs 5p, Agenda. Slideset 10. Hot mot datorsystem. Datorsäkerhet viktigare och viktigare.

Webbprogrammering, grundkurs 725G54

E-legitimationsnämndens legitimeringstjänster för test

Icke funktionella krav

Dovado Tiny - installationsguide

Kryptering. Krypteringsmetoder

Skapa din egen MediaWiki

FileMaker Pro 10 och FileMaker Pro 10 Advanced

Innehåll Security. Chapter 4 och 7 Beginning SQL Server 2008 for Developers

Innehåll. MySQL Grundkurs

Electronic Purse Sweden AB

Boss installationsmanual förberedelser

Vad är molnet? Vad är NAV i molnet? Vem passar NAV i molnet för? Fördelar med NAV i molnet Kom igång snabbt...

Exemple på Tentauppgifter Webbprogrammering

Anvisningar för inkoppling till Mikrodataåtkomst vid SCB

JavaScript in SharePoint and not just for Apps. Wictor Wilén

Metoder för datasäkerhet. Vad handlar en sådan kurs om???

Installation och konfiguration av klientprogramvara 2c8 Modeling Tool

Modern webbutveckling. av Robert Welin-Berger

Åtkomst till Landstingets nät via Internet

Nya webbservern Dvwebb.mah.se

LVDB i GEOSECMA. Innehåll. Inledning. Produkt: GEOSECMA Modul: LVDB Skapad för Version: Uppdaterad:

Version Namn Datum Beskrivning 1.0 Förutsättningar Vitec Ekonomi 1.1 Marie Justering för krav på Windows Server

Kandidatexamen Säkerhetstestning av webbapplikationer och CMS plattformen EPiServer

Mappar och filer för webbsidor

Pentetrationstest - Pentest är en sårbarhetgranskning mot en applikation,

Installation av Virtualiseringsplattform

FLEX Personalsystem. Uppdateringsanvisning

Granskning av säkerheten i mobila enheter. Internrevisionsrapport

Viktigt! Läs igenom hela anvisningen innan du påbörjar inloggningen för första gången.

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011

Telia Centrex IP Administratörswebb. Handbok

Programbeskrivning. Chaos på Web. Version

Konfigurationer Videooch distansmöte Bilaga till Tekniska anvisningar

Handbok SSCd. Peter H. Grasch

SNITS-Lunch. Säkerhet & webb

Se övergripande tidplan för arbetet med SITHS Kontinuitetssäkring och SITHS e-id på denna sida:

Innehållsförteckning ADSync Windows Azure Active Directory ADSynC- Installation Konfigurera ADSync... 4

Inledning LAMP Perl Python.

Lite mer om CGI-programmering

3.2 1H[W*HQHUDWLRQ6HFXULW\ Användarmanual

Installation/uppdatering av Hogia Personal fr.o.m. version 13.1

Sätta upp e-post server Ubuntu 14.04, del 1 installation av programvara, konfiguration av mysql och Postfix

INNEHÅLL. Konfigurering av SQL Server. Egenskaper Kommunikationsprotokoll

Microsoft Operations Manager 2005

Alla rättigheter till materialet reserverade Easec

Innehåll 1 Inledning Serverinstallation 2.1 Systemkrav 2.2 SQL Server 2.3 Behörighet vid installation 2.4 Behörighetskontroll i Microsoft SQL Server

Transkript:

OWASP Topp 10 2013 De 10 allvarligaste riskerna i webbapplikationer 2013-10-03 OWASP East Sweden: Uppstartsmöte

Vad är OWASP Topp 10? Är ett av OWASP mest populära projekt Är inte en standard Fokuserad på att hantera risker, inte bara undvika dem Riktar sig till utvecklare, inte enbart säkerhetsintresserade Finns på engelska, franska, kinesiska, koreanska och portugisiska Snart på svenska Refereras av bl.a. MITRE, PCI DSS, DISA, FTC m.fl. Underhålls av Aspect Security Begränsa er inte till OWASP topp 10! https://www.owasp.org/index.php/category:owasp_top_ten_project

Siffror Första versionen kom 2003, baserad på förekomst Andra versionen kom redan 2004, därefter vart tredje år (2007, 2010, 2013) Från version 2010 och framåt baseras listan på risk Bygger på 8st datainsamlingar från 7st företag 4 konsultfirmor 3 programföretag 500 000 sårbarheter

Värdering Värderas och prioriteras efter OWASP riskvärderings-metod; Exploaterbarhet: Svårt, Medel, Lätt Förekomst: Ovanlig, Vanlig, Välspridd Upptäckbarhet: Svårt, Medel, Lätt Påverkan: Lite, Begränsad, Allvarlig https://www.owasp.org/index.php/owasp_risk_rating_methodology

A1 Injektion Injektionsbrister, såsom SQL-, OS- och LDAP-injektioner, uppstår när opålitlig data skickas till en interpreterare som en del av ett kommando eller fråga. Attackerarens illasinnade data kan lura interpretatorn att exekvera oönskade kommandon eller komma åt skyddad data. Exploaterbarhet: Lätt (3) Förekomst: Vanlig (2) Upptäckbarhet: Medel (2) Påverkan: Allvarlig (3)

A1 Injektion - exempel query = "SELECT * FROM pages WHERE id=" + http.get[id] + ";" http://example.com/?id=1 => SELECT * FROM pages WHERE id=1; http://example.com/?id=1337 => SELECT * FROM pages WHERE id=1337; http://example.com/?id=1;%20drop%20pages => SELECT * FROM pages WHERE id=1; DROP pages; query = "SELECT * FROM pages WHERE id='" + http.get[id] + "';" http://example.com/?id=1 => SELECT * FROM pages WHERE id='1'; http://example.com/?id=1337 => SELECT * FROM pages WHERE id='1337'; http://example.com/?id=1;%20drop%20pages => SELECT * FROM pages WHERE id='1; DROP pages'; http://example.com/?id=1';%20drop%20pages;--%20 => SELECT * FROM pages WHERE id='1'; DROP pages;-- '; query = "SELECT * FROM pages WHERE id='" + (int)http.get[id] + "'"; query = "SELECT * FROM pages WHERE id='#param1'", http.get[id];

A2 Bristfällig autentisering och sessionshantering Funktionalitet relaterat till autentisering och sessionshantering är inte alltid korrekt implementerade. Detta kan leda till att en attackerare får tillgång till lösenord, nycklar, sessionsbiljetter eller på annat vis kan överta en annan användares identitet. Exploaterbarhet: Medel (2) Förekomst: Välspridd (3) Upptäckbarhet: Medel (2) Påverkan: Allvarlig (3)

A2 Bristfällig autentisering och sessionshantering - exempel Sessions-ID i URL:n http://example.com/?sessionid=t1dbu1agrwfzdcbtd2vkzw4= Sessions-ID inte som HTTP-only Set-Cookie: sessionid=t1dbu1agrwfzdcbtd2vkzw4=; Domain=example.com; Path=/; HttpOnly Lösenord lagras i klartext +----+-------------+----------+ id username password ---- ------------- ---------- 1 admin password 2 servicedesk 123456 +----+-------------+----------+ Andra exempel Återställ lösenord-svaret inte krypterat Inloggningen kvar efter stängt ner webbläsaren, t.ex. bibliotek Återuppfinn inte hjulet använd befintliga lösningar!

A3 Cross-site scripting (XSS) XSS-brister uppstår när en applikation tar opålitlig data och sänder den till besökarens webbläsare utan korrekt validering eller escaping. XSS möjliggör attackerare att exekvera skript i offrets webbläsare vilket kan kapa sessioner, byta ut element på sidan eller omdirigera till en annan skadlig hemsida. Exploaterbarhet: Medel (1) Förekomst: Väldigt välspridd (4) Upptäckbarhet: Lätt (3) Påverkan: Begränsad (2)

A3 Cross-site scripting (XSS) - exempel Reflekterad html = "<h1>söker efter '" + http.get[query] + "'</h1>" http://example.com/?query=n%e5got%20oskyldigt => <h1>söker efter 'något oskyldigt'</h1> http://example.com/?query=%3cscript%3edocument.write(document.cookie);%3c/script%3e => <h1>söker efter '<script>document.write(document.cookie);</script>'</h1> Lagrad html = "<b>författare:</b> " + sql.row[author] + "<br />" + sql.row[comment]

A3 Cross-site scripting (XSS) - exempel DOM-baserad Välj språk: <select> <script> url = decodeuri(document.location.href); document.write("<option>" + url.substring(url.indexof("lang=") + 5) + "</option>"); document.write("<option>engelska</option>"); </script> </select> http://example.com/?lang=svenska => Välj språk: <select> <option>svenska</option> <option>engelska</option> </select>

A3 Cross-site scripting (XSS) - exempel DOM-baserad Välj språk: <select> <script> url = decodeuri(document.location.href); document.write("<option>" + url.substring(url.indexof("lang=") + 5) + "</option>"); document.write("<option>engelska</option>"); </script> </select> http://example.com/?lang=%3cscript%3ealert(document.cookie);%3c/script%3e => Välj språk: <select> <option><script>alert(document.cookie);</script></option> <option>engelska</option> </select>

A3 Cross-site scripting (XSS) - exempel DOM-baserad Välj språk: <select> <script> url = decodeuri(document.location.href); document.write("<option>" + url.substring(url.indexof("lang=") + 5) + "</option>"); document.write("<option>engelska</option>"); </script> </select> http://example.com/#lang=%3cscript%3ealert(document.cookie);%3c/script%3e => Välj språk: <select> <option><script>alert(document.cookie);</script></option> <option>engelska</option> </select>

A4 Osäkra direktreferenser En direktreferens uppstår när en utvecklare exponerar en referens till ett internt objekt, t.ex. en fil, mapp eller databasrad. Utan tillräcklig verifiering eller andra kontroller kan en attackerare modifiera referensen för att få tillgång till skyddad data. Exploaterbarhet: Lätt (3) Förekomst: Vanlig (2) Upptäckbarhet: Lätt (3) Påverkan: Begränsad (2)

A4 Osäkra direktreferenser - exempel Icke-validerad kontoinformation http://example.com/account_info?id=1 http://example.com/account_info?id=1337 Obegränsad filtillgång http://example.com/documents/internal_report.pdf Katalogtraversering http://example.com/show_file?file=../../etc/passwd

A5 Felaktig konfiguration Bra säkerhet kräver en säker konfiguration för applikationer, ramverk, applikations-, webb- och databasservrar och inte minst operativsystemet. Säkerhetsinställningen bör vara definierade, implementerade och underhållna, då standardinställningar ofta är osäkra. Slutligen bör all mjukvara hållas uppdaterade. Exploaterbarhet: Lätt (3) Förekomst: Vanlig (2) Upptäckbarhet: Lätt (3) Påverkan: Begränsad (2)

A5 Felaktig konfiguration - exempel Standardlösenord mysql u root p root Pratsamma felsidor Microsoft OLE DB Provider for SQL Server error '80040e07' Conversion failed when converting the nvarchar value 'liljon' to data type int. Gammal mjukvara uname a Debian GNU/Linux 4.0 (2.6.30.5-ph33r)

A6 Exponering av känslig data Många webbapplikationer saknar tillräckligt skydd av känslig data, t.ex. kreditkortsnummer, personuppgifter och inloggningsuppgifter. Attackerare kan stjäla eller modifiera data för att genomföra kreditkortbedrägeri, identitetsstöld och andra brott. Känslig data förtjänar extra åtgärder, såsom kryptering både vid lagring och transport. Exploaterbarhet: Svårt (1) Förekomst: Ovanlig (1) Upptäckbarhet: Medel (2) Påverkan: Allvarlig (3)

A6 Exponering av känslig data - exempel Okrypterad trafik http://example.com/do_login Skyddad data säkerhetskopieras till oskyddad disk rsync /var/www backupuser@backupserver:/var/www Lösenord lagras i klartext +----+-------------+----------+ id username password ---- ------------- ---------- 1 admin password 2 servicedesk 123456 +----+-------------+----------+

A7 Bristande åtkomstkontroll på funktionsnivå De flesta webbapplikationer verifierar funktionsrättigheter när funktionen görs synlig för användaren, däremot saknas samma kontroll när funktionen utförs. Ifall en funktionsbegäran inte kontrolleras kan en attackerare utan rätt behörighet utföra funktionen. Exploaterbarhet: Lätt (3) Förekomst: Vanlig (2) Upptäckbarhet: Medel (2) Påverkan: Begränsad (2)

A7 Bristande åtkomstkontroll på funktionsnivå - exempel Icke-validerad kontoadministration http://example.com/edit_account?id=1 http://example.com/edit_account?id=1337 Ingen rättighetskontroll back-end http://example.com/api/account/delete/1

A8 Cross-site request forgery (CSRF) En CSRF-attack tvingar en inloggad offers webbläsare att skicka en HTTP-begäran, inkl. offrets kakor eller andra autentiseringsuppgifter, till en sårbar webbapplikation. Detta möjliggör för en attackerare att skapa begäran som den sårbara applikationen tror är legitima begäran från offret. Exploaterbarhet: Medel (2) Förekomst: Vanlig (2) Upptäckbarhet: Lätt (3) Påverkan: Begränsad (2)

A8 Cross-site request forgery (CSRF) - exempel Get-parametrar utan hemlighet https://examplebank.com/transfer_funds?amount=1500&dest_acc=12345678 <img src="https://examplebank.com/transfer_funds?amount=1500&dest_acc=13371337" /> Post-parametrar utan hemlighet <form action="change_password" method="post"> <input type="password" name="new_password" /> <button type="submit" /> </form> xmlhttp = new XMLHttpRequest(); xmlhttp.open("post", "http://example.com/change_password", true); xmlhttp.setrequestheader("content-type","application/x-www-form-urlencoded"); xmlhttp.send("new_password=lolichangedyourpassword");

A9 Använda komponenter med kända sårbarheter Komponenter, t.ex. bibliotek, ramverk eller andra moduler, kör nästan alltid med fulla rättigheter. Ifall en sårbar komponent utnyttjas kan en sådan attack åsamka stora skador. Applikationer som använder sårbara komponenter kan underminera säkerhetsåtgärder och öppnar för en rad möjliga attackvektorer. Exploaterbarhet: Medel (2) Förekomst: Välspridd (3) Upptäckbarhet: Svårt (1) Påverkan: Begränsad (2)

A9 Använda komponenter med kända sårbarheter Aspect Security & Sonatype analyserade nerladdningar från Maven 31st bibliotek 61 800 organisationer 113,9 miljoner nerladdningar under 2011 113,9 miljoner nerladdningar 26% 29,8 miljoner med kända sårbarheter vid tidpunkten för nerladdning https://www.aspectsecurity.com/news/the-unfortunate-reality-of-insecure-libraries/

A10 Ickevaliderade vidarebefordringar Webbapplikationen dirigerar ofta om användare till andra sidor och hemsidor och använder opålitlig data för att avgöra destinationen. Utan tillräcklig validering kan en attackerare vidarebefordra offer till phising- eller malware-siter, eller använda vidarebefordringen för att ge sig själv tillgång till skyddade sidor. Exploaterbarhet: Medel (2) Förekomst: Ovanlig (1) Upptäckbarhet: Lätt (3) Påverkan: Begränsad (2)

A10 Ickevaliderade vidarebefordringar - exempel Ickevaliderad vidarebefodran http://example.com/redirect?url=google.com http://example.com/redirect?url=malware.nu http://example.com/redirect?url=example.ru Ickevaliderad intern vidarebefordran http://example.com/wizard?next_step=db_config

Tack! Frågor? David Johansson, Gustav Nyqvist, Åke Bengtsson david.johansson@owasp.org, gustav.nyqvist@owasp.org, ake.bengtsson@owasp.org