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

Storlek: px
Starta visningen från sidan:

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

Transkript

1 Kandidatarbete I programvaruteknik Webbsäkerhet och vanliga brister - kunskapsläget bland utvecklare. Jane Strandberg Mattias Lyckne Kontaktinformation: Author(s): Jane Strandberg jane.strandberg@gmail.com Mattias Lyckne mattias.lyckne@gmail.com Handledare: Conny Johansson School of Computing Blekinge Institute of Technology SE Karlskrona Sweden Internet : Phone : Fax :

2 Sammanfattning Den här kandidatavhandlingen undersöker utvecklares kunskaper inom webbsäkerhet både när det gäller deras egen syn på sin kunskap men även deras faktiska kunskap om de vanligaste säkerhetshålen och hur man mitigerar dessa. Webbutvecklares kunskaper inom webbsäkerhet blir allt viktigare i takt med att fler och fler applikationer och tjänster blir webbaserade och fler föremål blir uppkopplade mot internet. Vi har genomfört en undersökning bland utvecklare som för närvarande studerar inom området eller redan är ute i arbetslivet för att se hur kunskapsläget ligger till inom de vanligaste säkerhetsbegreppen. Vad vi såg var att resultatet varierar mellan de olika begreppen och många saknar en stor del av den kunskap inom webbsäkerhet som blir allt viktigare att inneha. Keywords webb, säkerhet, webbsäkerhet, sql injections, xss, csrf Abstract This bachelor thesis looks at developers knowledge about web security both regarding their own view on their knowledge and their actual knowledge about vulnerabilities and how you mitigate against them. Web developers knowledge regarding web security are becoming more and more important as more applications and services moves to the web and more and more items become connected to the internet. We are doing this by conducting a survey among developers that are currently studying in the field or are working in the field to get a grip on how the knowledge is regarding the most common security concepts. What we saw was that the result varies between the different concepts and many lack much of the knowledge in web security that is getting increasingly more important to have. Keywords web, security, web security, sql injections, xss, csrf 2

3 Innehåll 1 Introduktion Relevans Mål Bakgrund Säkerhetsbegrepp Risker inom webbsäkerhet Forskningsfrågor Metod Undersökning Litteraturstudien Databaser Nyckelord Kombineradenyckelord Specifikadelar Relevanta träffar Fokus Resultatavlitteraturstudien Vad finns det för lösningsförslag? Analys av undersökningsresultat Utförande Insamladdata Bakgrund och uppfattning Kunskapombegrepp Kunskap om lösningar Analys Brister Diskussion Slutsats Framtidaarbete Glossary AppendixA Website security survey Svar påsurveyn Surveydata-bilder... 62

4 4

5 1 Introduktion I dagens informationssamhälle är det vanligt att vara online hela tiden. Smartphones, surfplattor, datorer, TV-apparater, spelkonsoler, brödrostar osv är eller har potential att vara anslutna till internet. Detta leder till att mer information om varje person blir tillgänglig och sparas. Den lagrade mängden data förväntas bara att fortsätta att växa. En studie utförd av IDC[5] visar att datamängden förväntas att växa från 120 exabyte till exabyte från 2005 till De flesta webbplatser erbjuder, och ibland till och med kräver, att du registrerar dig som användare. Våra egna erfarenheter har gett oss en indikation påattsäkerheten kring detta inte alltid är vad den borde vara, vilket har oroat men även väckt ett intresse. Ett vanligt scenario vi har stött på är att efter en genomförd registrering skickas ett e-postmeddelande ut till en med det anvigna användarnamnet och lösenordet i klartext. Detta kan också inträffa när man vill återställa ett bortglömt lösenord. Det är inte bara en säkerhetsrisk att skicka lösenordet via mail i klartext, det tyder också påattlösenordet lagras i klartext. Något som Dustin har visat prov på[7]. Detta faktum har gjort oss nyfikna att ta reda på varför vi ser dessa brister upprepat dyka upp. Det finns utvecklare bakom dessa sidor som antingen missar eller inte vet om dessa brister. Utvecklare som av en eller annan anledning har gett möjlighet till attacker och informationsläckor. Det blir också lättare för alla att lära sig att skapa webbsidor, antingen genom tutorialer på nätet och instruktionsböcker, eller genom ett brett utbud av fristående kurser på olika skolor. Om säkerheten inte är en stor fråga i dessa forum, kan det då vara en orsak till vi har många fall av webbplatser och system som brister i säkerheten? De flesta människor har en generell definition av säkerhet. Vi vill behålla vår integritet och att stjäla någon annans identitet är ett straffbart brott. Mängden lagrad data ökar konstant med vår nya teknik och IDC[5] har dragit slutsatsen att den data som måste skyddas växer snabbare än vad den digitala världen gör. De uppskattar att endast ungefär hälften av dessa uppgifter faktiskt skyddas på något vis. Då kan man dra slutatsen att den andra hälften sparas oskyddat och görs tillgängligt till de som har eller skapar tillgång till dessa källor. IDC[5] har uppfattningen om att säkerhet är en stor fråga, men att det är en fråga som fortfarande i hög grad är förbisedd. Även fast att tekniken blir bättre. De efterlyser en standardisering bland webbsidor så att privata data inte kan brytas ut, kombineras och därmed äventyras. 1.1 Relevans Precis som det blir lättare att lära sig skapa webbsidor blir det lättare att lära sig hacka dem. Vi ser att både stora och små webbplatser blir mål för attacker. Bland 5

6 nyheterna kan vi finna att Facebook[12], Twitter[8], Adobe[4] och Microsoft[9] har blivit hackade. Likaså har LinkedIn[15], Sony[14] och Yahoo[24] blivit det. Även om lösenord inte läckt kan andra typer av data göra dig sårbar för attacker så som phishing. Nyligen drabbades VPS-webbhotellet Linode av en attack där angriparna kom åt deras databaser och information om användare läckte ut. Enligt Linodes egna blogg[1] var data som kreditkortsnummer och salt krypterade, men lösenord till andra delar av tjänsten var i klartext. System blir mer och mer komplexa och ansluter till varandra i en större utsträckning. Denna komplexitet och utveckling av tekniken i sig gör systemen i allmänhet mer sårbara, något som Bruce Schneier beskriver i sin bok Beyond Fear[17]. 1.2 Mål Målet med denna uppsats är att nå en slutsats kring om det finns brist i kunskapen gällande säkerhetshål hos utvecklare, eller om dessa har en mer eller mindre omfattande kunskap gällande nuvarande vanliga säkerhetshål. Det är ett mål att påvisa om utvecklare är övermodiga gällande sin kunskap om hoten eller om de lever upp till sina påstående och innehar den kunskap de själva tror. Vi hoppas ge ytterligare inblick till hur situationen ser ut med säkerhet på webben idag och framöver samt pålysa de problem vi själva upplever finns. Detta gäller framförallt okunskap från utvecklarens håll samt brist på utbildning inom ämnet. Vi vill förmedla att det finns en brist i kunskap som utbildning kan motverka och riktar oss på så vis mycket till ansvariga inom företags- och utbildningssektorn. Vi bygger detta arbete på tidigare forskning och en egen undersökning bland utvecklare för att få en inblick i hur stor kunskapen är kring vanliga säkerhetshål och bregreppen som omfattar dessa. 6

7 2 Bakgrund 2.1 Säkerhetsbegrepp Det finns flera viktiga begrepp inom säkerhet. Bruce Scheneier tar upp de tre viktigaste: Identifiering (vem du är), autentisering (bevis på vemduär) och tillstånd (du är tillåten att göra detta)[17]. Identifiering. Som identifikation kan man använda till exempel namn och nummer, där nummer är det mest unika då flera personer kan ha samma namn. Detta är också den design som använts i dagens teknik. Ett användarnamn kan också användas som identifierare, förutsatt att det är unikt. Autentisering. Autentisering används tillsammans med identifiering och Schneier ger oss ett exempel där ett användarnamn identifierar dig och ett lösenord autentiserar dig. Schneier skriver om tre sätt du kan autentisera någon på: något han vet, något han har och något han är. Lösenord var ett exempel på något han vet. Scheneier påpekar att det är skört att förlita sig på endast ett av dessa. En del webbsidor som tex Google har en möjlighet till så kallad tvåstegsverifiering, vilket innebär att du autentiserar dig med ditt lösenord (något du vet) och en kod du får till din mobiltelefon (något du har). Tillstånd. Autentisering sker ofta genom så kallade tokens. En token indikerar att du är tillåten att vara där du är och göra det du gör. De är också oftabegränsade i tid, ett visst antal användningar eller endast i vissa områden. Det finns några fler begrepp som är giltiga i webbsäkerhet. Integritet är att säkerställa att informationen är korrekt och oförändrad. Sekretess är att se till att information som skickas inte kan ses av obehöriga användare. Oavvislighet är att säkerställa att transaktionen av information kan spåras så att ingen kan förneka dess förekomst. Tillgänglighet är att se till att informationen alltid är tillgänglig för den som har tillstånd att se den[13]. 2.2 Risker inom webbsäkerhet När man tittar på hoten inom webbsäkerhet är det en bra början att titta på OWASPs senaste topp tio[23]. 1. Injektion (Injection) 2. Trasig autentisering och sessionshantering (Broken Authentication and Session Management) 3. Cross-site Scripting (XSS) 4. Osäkra referenser till objekt (Insecure Direct Object Reference) 5. Felkonfigurering av säkerheten (Security Misconfiguration) 7

8 6. Exponering av känsliga uppgifter (Sensitive Data Exposure) 7. Saknaden av funktionsstyrd accesskontroll (Missing Function Level Access Control) 8. Cross-Site Request Forgery (CSRF) 9. Använda komponenter med kända sårbarheter (Using Components with Known Vulnerabilities) 10. Icke-validerade redirects (Unvalidated Redirects and Forwards) Genom att granska övrig litteratur så har vi fokuserat på de av dessa i Top 10 som omnämns och beskrivs i någon form. Nr 10, icke-validerade redirects föll här bort, då vi bara kunde hitta en beskrvning och omnämning av denna form av attack i just OWASP. Det är viktigt att även nämna att en del av Top 10 även är begrepp som innefattar flera olika attacker som faller under samma kategori. Sessionshantering är en sådan. Nedan följer beskrivingar på de vi har valt att flyta fram. Angripare är hackaren som via säkerhetshålen attackerar en användare (klient) eller en webbplats (server, tjänst). Användaren är den som besöker en webbplats för att utnyttja dess tjänster. SQL injektion (SQL injection) Injekton är att mata in kod till en applikation som interagerar med intepretatorn. Enligt OWASP är det ett vanligt fel i koden och är svårt att upptäcka via tester. Risken är stor eftersom det kan resultera i förlust och förvanskning av data. En vanlig form av injektion är SQL injektion där operationer utförs på en SQL-databas. En angripare kan till exempel dumpa hela databasens innehåll till sig själv[3]. En vanlig orsak till detta beror på att själva databasfrågan (queryn) konstrueras efter input och att input inte valideras eller filtreras.[6] Exempelkod: 1 $query = SELECT FROM u s e r s WHERE i d =. $ POST [ userid ]; 2 $result = mysql query($query); 3 // Display result Om angriparen skickar in 123 or 1 = 1 i $ POST[ userid ]-variablen, kommer sql-queryn bli: 1 SELECT FROM users WHERE id = 123 or 1 = 1 och eftersom 1=1 är sant kommer alla rader i users-tabellen att returneras. Trasig autentisering och sessionshantering (Broken Authentication and Session Management) 8

9 När denna risken finns är det möjligt för en angripare att få information om användaren och utge sig för att vara denne. Brister som denna kan hittas i saker som hantering av lösenord, timeouts, kom ihåg mig-funktioner med mera. Enligt OWASP är effekten stor eftersom det ger angripare tillgång till att utföra saker som en vanlig användare eller rentav som administratör. Exempel på attacker är cookie poisoning, session fixation och session hijacking. Cookies används för att spara information om en användare och dess session.[3] Vid cookie poisioning så modifieras en cookie-fil för att t.ex ge höjda privilegier till användaren.[6] Vid session fixation så skapar en angripare en session som denne sedan lurar en användare att använda, i syfte att användaren använder samma session som angriparen. [20] Påsåsätt kan angriparen t.ex komma åt kontouppgifter som tillhör användaren.[11] Session hijacking går ut på att en angripare stjäl en cookie eller andra sessionvariablar för att utge sig för att vara användaren. På såsätt kan angriparen komma åt ett konto utan att behöva ange användnamn eller lösenord, för sidan uppfattar det som att användaren redan är inloggad eftersom sessionen är aktiv.[3] Exempel: 1. Webbplatsen skapar ett session-id och skickar med detta i URLen i varje request - Användaren kopierar länken och skickar till en vän, vännen klickar på länken och får påså vis användarens session-id och agerar som användaren. 2. Webbplatsen har inte satt korrekt timeout på sessions. Användaren använder en publik dator och istället för att logga ut stänger ner webbläsaren. En annan användare använder datorn, går till samma sida och är fortfarande inloggad som förra användaren. Cross-site Scripting (XSS) Cross-site scripting (XSS) är när indata från en användare innehåller script som sedan exekveras på webbsidan. Detta uppfattas som en utbredd brist enligt OWASP, men är ganska lätt att upptäcka. Det finns tre typer av XSS: Lagrade, reflekterade och DOM-baserade. Vid en reflekterad attack så måste användaren luras att skicka skadlig kod till sidan själv varpå det sedan visas/körs på sidan. Vid en lagrad attack så sparas den skadliga koden på sidan (t.ex på forum eller liknande). Vid en DOM-attack så luras användaren in på angriparens hemsida som innehåller kod för att se till att skadlig kod körs när användaren sedan går till den faktiska sidan. Ett mer konkret exempel är en script-tagg som inkluderar en 9

10 script-fil från en annan webbsida som skrivs in i en kommentar som postas på webbsidan. När kommentaren renderas och visas för användare kommer scriptet exekveras.[6] XSS används ofta för att t.ex stjäla cookies.[22] Det nämns också attxss inte bara innefattar attacker med JavaScript, men även språk som Java, Flash och ren HTML.[3] Exempelkod, skriven som en kommentar på tex ett blogginlägg: 1 Wow, bra skrivet! <script src= http :// example.com/ badfile. js ></ script> När andra användare sedan går in och läser kommentaren till detta inlägget renderas script-taggen och koden i badfile.js exekveras på klienten (användaren). Osäkra referenser till objekt (Insecure Direct Object Reference) Genom att ändra en parameter som är en referens till ett objekt kan en behörig användare få tillgång till föremål som ligger över användarens åtkomstnivå. Anses vara vanligt enligt OWASP, men lätt att upptäcka och med måttlig inverkan. Exempelkod: 1 $stmt = $db >prepare( SELECT FROM messages WHERE id = : messageid ); 2 $stmt >bindparam( : messsageid, $ GET [ messageid ], PDO:: PARAM INT) ; 3 $stmt >execute () ; 4 5 $result = $stmt >fetchall () ; 6 // display $result Den här koden öppnar upp att visa meddelande med vilket ID som helst, oavsett vem meddelandet tillhör. Användaren kan således visa meddelande med t.ex ID 100 genom att gå till även om det meddelandet inte tillhörde användaren. Felkonfigurering av säkerheten (Security Misconfiguration) Detta kan ske på alla nivåer i applikationen. Genom att inte ta bort saker som standardkonton och lösenord, oanvända sidor och inte skydda filer och kataloger kan en angripare få tillgång till både systemet och funktionalitet och i vissa fall äventyra hela systemet. Annat exempel är att glömma 10

11 ändra till production på webbplatsen och på så vis visa för mycket debuginformation som till exempel hela stack trace vid fel. Exponering av känsliga uppgifter (Sensitive Data Exposure) Om känslig data inte krypteras eller på annat sätt skyddas kan den bli stulen eller avlyssnas. Att använda svaga algoritmer för att till exempel hasha ett lösenord anses också vara en svaghet. Detta är ovanligt men konsekvenserna är allvarliga med tanke på vilken typ av data som kan äventyras. Det kan vara information som kreditkortsnummer, personuppgifter och patientjournaler. Saknaden av funktionsstyrd accesskontroll (Missing Function Level Access Control)] När en autentiserad eller anonym användare kan ändra parametrarna på en begäran för att få tillgång till en funktion som inte är inom deras behörighetsnivå. Detta fel inträffar till exempel när utvecklare glömmer att inkludera kod för att kolla om användaren ska ha tillgång eller inte. En typ av attack är forced browsing. Några exempel är t.ex en adminsida som inte finns länkad någonstans på hemsidan men går att nå av vilken användare som helst bara de anger rätt URL, eller när man kan ändra URLparametrar till att nå filerpå andra platser i filstrukturen som man inte ska kunna nå.[3] Watson tar även upp ett exempel där man ändrar användar-id som parameter i URL en och får därmed tillgång till någon annan användares konto eller uppgifter.[22] Exempel: Nya användare läggs till via sidan och kräver administratör-behörighet. Det sker validering av användaren om den går via den vägen, men utvecklaren glömmer lägga till validering i adduser.php, som ärdenfilensomhåller funktionaliteten för att lägga till en ny användare. Detta innebär att användaren kan gå direkt till och få tillgång till sidan utan att ha rätt behörighet. Cross-Site Request Forgery (CSRF) Angriparen skapar en förfalskad begäran som de sedan lurar en användare att skicka till webbsidan, som påså vis utför något med användarens behörighetsnivå. Det kräver att användaren som omedvetet skickar begäran redan är autentiserad på webbsidan. Till exempel används det för att skicka formulärdata, så att en användare luras att skicka datan till sidan. Datan i sig tolkas som att den kommer 11

12 från en authentiserad användare, när den i själva verket är skapad av en angripare.[6] Skillnaden mellan XSS och CSRF beskrivs av Siddiqui och Verma som att vid XSS så litar användaren på sidan denne besöker, medan i CSRF så litar sidan på den autentiserade användaren.[18] Exempelkod liggandes på angriparens sida: 1 <img src= http :// examplebank.com/sendmoney.php?amount=1000& toaccount=attackersaccount > när användaren besöker denna sida hos angriparen kommer img-taggen göra ett anrop till URLen. Är användaren redan autentiserad och examplebank inte har skydd mot CSRF kommer koden exekveras och en summa på 1000 flyttas från användarens konto till angriparens. Det kräver alltså att användaren är autentiserad på sidan och luras in på angriparens sida. Använda komponenter med kända sårbarheter (Using Components with Known Vulnerabilities) Det är möjligt för en angripare att använda sig av redan kända brister i komponenter för att få sig tillgång till en applikation. Graden av skada kan variera från minimal till stor. Detta blir en större risk när utvecklarna inte ser till att uppdatera komponenterna frekvent. 12

13 3 Forskningsfrågor RQ1. Vilka är de stora säkerhetshålen enligt litteraturen och vilka lösningar finns det för att motverka dessa? RQ2. Hur omfattande är kunskapen gällande både de funna vanliga säkerhetshålen och dess lösningar bland utvecklare? RQ3. Kan man peka ut brister i faktiskt och uppfattad kunskap om de vanliga säkerhetshålen och dess lösningar? Dessa kommer besvaras på följande vis: RQ1. Forskning i litteratur RQ2. Undersökning RQ3. Forskning i litteratur/undersökning 4 Metod 4.1 Undersökning Vi kommer att skapa en mindre undersökning som riktar sig till utvecklare samt studenter för att få en inblick i hur stor kunskapen är kring vanliga säkerhetshål och begreppen som omfattar dessa. Samt så kommer undersökningen att försöka få en inblick i hur stor kunskap de svarande har när det gäller att mitigera en del utav dessa säkerhetshål. Kommer vi kunna se att vissa begrepp är mer kända än andra, att man har kunskap om hålen men inte lösningarna? Kommer vi kunna peka på brister i kunskapen? 13

14 5 Litteraturstudien 5.1 Databaser Inspec/Compendex för relevanta rapporter och undersökningar Rekommenderades av biblioteket och dessa databaser har hjälpt oss att hitta relevanta artiklar baserade på våra nyckelord och gett oss möjlighet att förfina våra sökningar. Alla rapporter är tilldelade nyckelord, både av själva databasen och författarna. Genom att gå igenomsökresultaten har vi haft möjlighet att prova de olika sökorden och på så vis breddat vårt resultat. BTH Summon för att hitta rapporter listade hos Inspec/Compendex Inspec/Compendex ger användbar information om sökord och ett abstrakt för varje rapport, men inte hela texten. För att få hela texten har vi använts BTHs sökmotor Summon. Google för att hitta tidigare attacker Genom relevanta webbsidor som Wired 1,PCWorld 2 och teknikrelaterade nyhetssidor eftersom de ger ny kunskap om säkerhetsfrågor och är en bra portal för att hitta och följa både större och mindre nyheter om sårbarheter och hackade webbplatser. De ger ofta länkar till tidigare relaterade artiklar och bloggar för de berörda företagen. Till exempel den senaste Linode-hacken publicades med en länk till Linodes officiella blogg. OWASP-projektet OWASP-projektet är ett onlineprojekt som fokuserar på webbsäkerhet och har omfattande material om både risker och hanteringen av dessa. Genom detta har vi funnit de vanligaste attackerna och ökat förståelse för några viktiga begrepp. Det har gett oss de sökord vi behövt för att fördjupa vårt sökande, och hitta relevant information om specifika attacker istället för rapporter fokuserade på en mer bred översikt om webbsäkerhet. Nyckelord web, security, threats, risks, vulnerabilities, hacked, development Kombinerade nyckelord web security, web vulnerabilities web application risks web security threats, hacked websites, secure web development, developing secure web, Specifika delar sql injection, cross-site scripting, cross site request forgery, session management, cookie management, Som synes finns det en hel del synonymer att bygga sökningen på, och för ett bredare result har vi kombinerad orden på detsätt vi bedömt varit relevant. Detta har naturligtvis gett oss en hel del material att gå igenom, ofta flera tusentals träffar

15 Relevanta träffar web security, web security risks, web application security, web application risks, web attacks, common web threats/vulnerabilities 5.2 Fokus Vi har fokus på nyare rapporter på grund av det faktum att webbtjänster utvecklas i en snabb takt i och med att webben är långt mer tillgänglig nu med saker som cloud computing, smartphones och andra bärbara enheter. Även om vissa nyckelfrågor rörande säkerhet naturligtvis förmodligen alltid kommer förbli detsamma och utvecklare och angripare alltid kommer tävla mot varandra att hitta nya sätt att arbeta på. Med nyare rapporter menar vi från , men i vissa fall där träffarna har varit färre har vi gått tillbaka ytterligare några år. Många attacker som till exempel SQL-injections har funnits länge och är därför kan äldre rapporter om dessa fortfarande var giltiga. 15

16 6 Resultat av litteraturstudien Webbsäkerhet och attacker har skiftat från servrar till klientsidan. I takt med att serveradministratörer blev bättre på attsäkra sina servrar hittade angripare nya sätt att attackera applikationer på[21]. Choukse et al.[3] uppger också att säkerhet finns på nätverksnivå genom brandväggar, routrar och andra systemintrång. Dessa säkerhetsåtgärder bidrar dock bara med säkerhet för intrång utanför applikationen, medan webbsårbarheter ofta existerar inuti själva applikationen. Choukse et al. skriver att informationen som skickas från programmet oftast ser likadan ut på nätverksnivå, oavsett om den är legitim eller inte. Hela 70% sker nu på applikationsnivå[3]. Vi kan se att webbapplikationer också blir allt vanligare inom företag. Rudman skriver att när användare får teknik i sina vanliga liv känns det naturligt att även ha tekniken på jobbet[16]. Hastigheten i utvecklingen av företagets applikationer har gått så fort att fokus har förflyttats från säkerhet till tillgänglighet. Allt eftersom fler affärer görs online öppnas nya arenor upp för angripare. Rudman påpekar att mängden tillgängliga personuppgifter ökar vilket leder till mer socialt konstruerade attacker så som phishing. Riktad phishing kan vara en större risk än enkla spam-mail eftersom dessa nu med de tillgänliga personuppgifterna kan anpassa sig. Rudman talar i allmänhet om konsekvenserna av hoten. Dataläckage kan leda till att varumärken förlorar både integritet och immaterilla rättigheter. Gollmann skriver att den ökade användningen av komplexa program på webben markant har ökat antalet attacker mot webbplatser [6]. 6.1 Vad finns det för lösningsförslag? I denna delen av studien tar vi upp de förslag som finns för att motverka och mitigera de vanliga säkerhetshålen som finns. SQL Injektion (SQL Injection) När det kommer till SQL-injections föreslås ofta stored procedures som metod, men detta flyttar bara problemet till backend-servern. Förslaget är att istället använda prepared statements, det vill säga SQL-queries som byggs iförväg med placeholders istället för faktiskt data i webbplatskoden. Dessa placeholders byts sedan ut mot input. [6] En annan teknik är att validera inkommande data. Choukse et al.[3] föreslår att man ska kolla datan efter sådant som apostrofer och diverse nyckelord som används för SQL injection, men Gollmann hävdar att där finns problem med att använda denna typ av black list[6]. Gollmann påstår att det är svårt att få listor som täcker allt. Han föreslår dock att man kan encoda speciella tecken, t.ex genom att omvandla dem med HTML encoding. White listing fungerar bra i de fall då det finns tydliga strukturer i inputen som när den ska vara numerisk, eller som kan valideras med t.ex regular expressions.[6]. 16

17 Ser vi till OWASP så föreslås prepared statements, stored procedures och escaping. [2] Trasig autentisering och sessionshantering (Broken Authentication and Session Management) Session hijacking och Session fixation Skapa ett nytt sessions-id efter en lyckad inloggning, så att en användares sessions-id roteras och inte kan fixeras. Spara även undan användarens IP och annan användbar information som kan användas för att verifiera användaren. [3] För att minska risken för att sessionen stjäls ha en så kort session som möjligt, samt se till att sessionen tas bort vid utloggning. [20] OWASP förelår även att sessions-idt ska vara tillräckligt långt att det inte kan gissas eller testas fram, och av samma anledning ska den vara slumpmässig. [19] Cookie poisioning För att undvika att någon stjäl en användares cookie när den skickas så råder Choukse et al.[3] att man ska skicka denna krypterad via HTTPS (SSL). Cookie-filen bör heller inte vara tillgängliga via script så som JavaScript, genom att ange HTTPOnly-flaggan. [20] Cross-site Scripting (XSS) Det finns olika sätt att försvara sig mot XSS. Som med SQL injection såkan man använda sig av black list och white list, det vill säga att man kan ta bort alla definierat otillåtna tecken eller validerar input mot vad som godtas. Det är som nämnt svårt att få dessa att täcka allt. Escapea otillåtna tecken (lägg till en \(backslash) framför) och använd HTML-encoding av tecken (<blir <, >blir &rt;) [6]. Även OWASP föreslår detta. Riktlinjen är att santinera inkommande data från användaren genom att validera, oskadligöra och/eller ta bort delar av den. Kerschbaum [10] föreslår en mer strukturell lösning på problemet. Han delar upp sidorna i två typer: reguljära och inträdesidor och menar sedan på att all tillgång till reguljära sidor ska gå via inträdessidorna. Dessa i sin tur rensar bort all inkommande data från användaren så som URL-parametrar och liknande, så att dessa måste skapas via inträdessidorna. Man behöver då verifiera att HTTP Request till de reguljära sidorna kommer från just inträdessidorna. Gollmann påpekar dock att HTTP Referer inte alltid finns och kan förfalskas så denna metod är inte helt pålitlig[6] vilket Choukse et al[3] även nämner. Osäkra referenser till objekt (Insecure Direct Object Reference) OWASP föreslår här att man ska använda mapping av referenser. Istället för att använda samma nyckel som t.ex kan finnas i databasen så har man ett värde som sedan i koden omvandlas till den önskade nyckeln. Man bör också verifiera att användaren verkligen ska ha tillgång till objektet. [23] 17

18 Felkonfigurering av säkerheten (Security Misconfiguration) OWASP rekommenderar att alla miljöer man arbetar i ska vara identiska och snabba att sätta upp. Det bör dessutom finnas som vana att uppdatera all mjukvara och kodbibliotek för att minska risken för säkerhetshål. Man bör även ha en tydlig arkitetkur på projektet,så att komponenter har en tydlig och säker separering. Detta för att minska risken att felkonfigurering ikomponenterpåverkar övriga icke felaktiga komponenter. Exponering av känsliga uppgifter (Sensitive Data Exposure) OWASP föreslår att man bör hasha och kryptera känslig data, samt inte använda svaga algoritmer så som MD5 och SHA1. Man bör även se till att salta t.ex lösenord, där salta innebär att man skapar en sträng som läggs ihop med datan vid hashning av den. Detta för att undvika användning av så kallade rainbow tables. Man ska heller inte spara data längre än vad det är nödvändigt. Som förslag för själva sidorna som tar emot datan så bör man avaktivera saker som cashing och automatiskt komplettering av formulär (autocomplete). Missing Function Level Access Control Denna del inkluderar forced browsing. Choukse et al. rekommenderar att man undviker att använda vanliga namn för känsliga sidor, så somadmin. Cross-Site Request Forgery (CSRF) Siddiqui och Verma föreslår en rad olika saker för att mitigera CSRF, bland annat användning av random token.[18] Även Gollman[6] föreslår tokens, men beskriver det då somnågot som skapas av något som bara servern och klienten vet. Därför kan det skickas i klartext, eftersom att den bara går att använda det tillfället och valideras av servern när det kommer fram. Gollman föreslår att man kan skicka den både som GET-parameter såväl som en POST-parameter (i så fall i ett dolt fält), men Siddiqui och Verma rekommenderar att man hellre använder POST enbart, då man annars lätt ser alla parametrar i URL en. Gollman tar även upp ett annat exempel där en användare kan råka dela med sig av en länk som inkluderar parametrar och därmed av misstag skapa en säkerhetsrisk själv, i det fallet att tokens är återanvändbara. Ett annat förslag är att se till att hålla livslängden på cookies kort (för att fönstret för en attack ska vara så liten som möjligt).[18] Använda komponenter med kända sårbarheter (Using Components with Known Vulnerabilities) Det är svårt att hålla koll på sårbara komponenter enligt OWASP. Det gäller att hålla koll på vilka versioner man kör och övervaka mailinglistor, publika databaser och andra forum som kan innehålla information om en komponent är sårbar. Utöver det så bör man hålla komponenter uppdaterade. 18

19 7 Analys av undersökningsresultat 7.1 Utförande Undersökningen utformades på ettsådant sätt att den skulle ta kort tid att genomföra i hopp om att fler skulle vara villiga att ta sig tid att genomföra den. Eftersom att vårat syfte med undersökningen även var att ta reda på hur mycket deltagaren kunde om säkerhetshål och lösningar så var stora delar av den utformad som ett test med flera svarsalternativ. Testet består av tre delar: bakgrund och uppfattning, kunskap om hål och kunskap om lösningar. Vid bakgrund och uppfattning så ville vi dels ha reda på vilken typ av utbildning och erfarenhet deltagaren har samt vilken uppfattning deltagaren själv har om sina kunskaper. Delen som berör kunskap av hål utformades med målet att ta reda på omanvändaren hade kunskap om hålen genom att först fråga efter vilka koncept de kunde och sen ställa direkta frågor om dessa för att se om de faktiskt hade den kunskapen. Delen som berör kunskap om lösning på hålen ville vi helt enkelt se om de visste hur man täpper till de säkerhetshål som finns. Antal svarande Undersökningen har 37 svar som datan är framtagen på. Vi estimerar att vi har nått ut till ca 200 personer, vilket har gett oss en svarsfrekvens på ca18%.dettaharviåstakommit genom kontaktnät och forum. Det är via kontaktnät som svarsfrekvensen har varit störst, medan det gjorde ingen märkbar skillnad i antal svar efter publicering i ett forum för webbprogrammering. Där hade över 100 personer dock läst inlägget. Eftersom att vi främst har nått ut via egna kontaktnät nät har vi sett att svarsgruppen består mycket utav nuvarande eller tidigare BTH-studenter inom våran egna åldersgrupp. Men där finns även ca en tredjedel som har angett att det saknar utbildning eller där vi inte kan bedöma på vilket lärosäte den svarande har utbildat sig. Vi kommer därför inte direkt ha möjligheten att peka utifallbristikunskapskullevaraenföljd av avsaknad av säkerhetsutbildning för just BTHs utbildningar inom webb och säkerhet. 7.2 Insamlad data Bakgrund och uppfattning Ålder Majoriteten befann sig i gruppen år (62%), medan det inte fanns någon i de två grupper som är över 51 år (51-60 och 60+). Spridningen på de 3 övriga grupperna var jämn, med 4 i gruppen upp till 20 år, och 5 vardera för grupperna och Figur 10 i Appendix A 19

20 Utbildning Vi fick in fler svar från personer som har utbildning än personer som inte har det. 25 (68%) har utbildning och övriga 12 saknar. Utav de som i sin tur har svarat på vad de har gått för utbildning så är det främst webbutbildningar, datorsäkerhet (kandidat och civilingejörs), datasystemvetenskap och software enginering som vi ser är återkommande. Av de som har angett att de har utbildning (28st, se Brister angående varför detta inte stämmer med ovan antal på 25) så har strax över hälften av dessa (15st) en utbildning på 3år. 2 andra större grupper är utbildning på mindre än ett år (6st) samt utbildning på 4år (3st). Övriga grupper har 1 var. Figur 15 i Appendix A Erfarenhet 26 (70%) av 37 svarade att de har tidigare erfarenhet av webb eller säkerhet utanför skolan. Av dessa 26 så hade 16 angett att de har utbildning, medan 10st hade erfarenhet men utan utbildning bakom (inom ämnena). 11st (30%) saknar alltså tidgare arbetserfarenhet inom ämnena i fråga. Vid frågan om hur mycket erfarenhet deltagarna hade så vardet29som svarade (se Brister). 13 (45%) av dessa 29 hade under ett års erfarenhet, vilket gjorde det till den överlägset största gruppen. Den efterföljs av 1-2 år samt 5-10 år som vardera hade 5st (17%). En enstaka hade över 20 år. Figur 16 i Appendix A Svarsalternativ Antal Procent less than 1 year 13 45% 1 to 2 years 5 17% 3 to 5 years 2 7% 5-10 years 5 17% years 3 10% more than 20 years 1 3% Språkkunskap Nästan alla (33st, 89%) har kunskap om MySQL. Det följs utav PHP(81%), CSS(78%), HTML5(73%), JavaScript(70%) och CSS3(68%). Figur 17 i Appendix A Egen uppfattning om kunskap Många har en hög uppfattning om sina webbprogrammeringskunskaper, då 35% satte en 4a på en5-gradigskala(nybörjare till expert), och 30% satte en 3a. 11% satte en 5a (max) Figur 18 i Appendix A. Medelvärdet för alla svarande är 3,19. När det gäller säkerhet så var spridningen bland svaren jämnare. Det fanns ingen som valde en 5a. 2a och 4a hade vardera 30%, medan 1a och 3a hade 19% och 22% Figur 18 i Appendix A. Medelvärdet hamnade här lägre: 2,62. Kunskap om begrepp Mer än hälften anser sig känna till SQL Injections, XSS, Session hijacking och Buffer overflow. Resterande begrepp (Server-side includes injection, CSRF, Cookie poisoning, Forceful browsing och Session fixation) kände färre än hälften 20

21 till. Lägst var Session fixation där 6% svarade att de kände till begreppet. Högst antal fanns på SQL Injections som 91% känner till. Därefter kommer XSS som lite drygt 60% känner till. Majoriteten har svarat rätt på begreppför SQL Injections. Alla andra resultat gällande begrepp är sämre än resultatet på huruvidadeär bekanta med begreppen eller inte. Ihopslagna felaktiga svar och blanka svar visar att bara SQL Injections och Cookie poisoning hade antal rätt svar som översteg hälften, och bara SQL injections med god marginal. CSRF utmärker sig då straxöver hälften av de som påstod sig vara bekanta med begreppet svarade fel. Figur 1. Svarsfördelning gällande beskrivning av begrepp, fördelat över rätt, fel och inget svar. Vid jämförelse av kunskap mellan de som har en utbildning och de som inte har så ligger de med utbildningen högre procentuellt än de med utbildning på allt utom SQL injections. Detbästa resultatet är på SQL Injections där 84% med utbildning och 91% utan utbildning svarade rätt. Lägsta resultatet finner vi på Insecure direct object reference med 32% med utbildning och 8% utan utbildning. Även CSRF hamnar på 32% för de med utbildning. Skillnaderna är som minst på CSRF med 32% för de med utbildning och 25% för de utan och SQL Injections med redan nämnda 84% för de med utbildning och 91% för de utan. När det kommer till erfarenhet har vi valt att kolla på de utan erfarenhet, de med mindre än ett år och de med mer än ett års erfarenhet. På SQL injections och XSS ligger alla tre kategorier nära varandra. De två som följs närmast åt är de utan erfarenhet och de med mer än ett års erfarenhet som ligger nära varandra på alla utom CSRF där de med erfarenhet ligger på 43% jämfört med de utan erfarenhet på 20%. De med mindre än ett års erfarenhet utmärker sig och är betydligt bättre än övriga på Forceful browsing och Insecure direct object 21

22 Figur 2. Rätt svar med (blå) och utan (orange) utbildning. Uträknad andel baserar sig på antalrätt svar bland alla som har svarat inom de angiva grupperna (med och utan utbildning). reference, mensnäppet sämre på SQL Injections och Cookie poisoning. XSS och CSRF hamnar de ungefär samma som de två övriga kategorierna. Figur 3. Rätt svar med mindre än 1 års erfarenhet, mer än 1 års efarenhet, samt utan erfarenhet. Andel rätt svar bland alla som har svarat inom de angiva grupperna. 22

23 Kunskap om lösningar Alla frågor har minst 2 rätt alternativ av totalt 5 alternativ. Injection, XSS och sensitive data har 3 rätt svar. Procentvärden för varje person har räknats ut på totalt antal rätt svar mot maxvärdet om man har alla rätt. Vid ett felaktigt svar så har inga avdrag gjorts. Totalt antal rätt som går att ha på dessa frågor är 19. Videngränsdragning på 50% rätt på frågorna så ligger 58% av de svarande under gränsen och resterande 42% ligger alltså över den. Den som svarade bäst hade 17 av 19 rätt svar, och de två sämsta hade 1 av 19. Medelvärdet för alla svarande ligger på 8,06av19rätt (42% rätt). Alla svaren hade även ett Vet ej -alternativ. För frågorna gällande security misconfigurations, insecure direct object reference och forceful browsing såsvarade 50% med detta alterantiv. Endast för sensitive data så var det ingen som tog detta alterantiv. För injection så var det 8%. Resterande frågor hade alla mellan 30 och 40% som svarade att de inte visste hur man löser hålen. Figur 4 När det kommer till de som har svarat med något eller flera andra alternativ som har varit enbart fel så är siffrorna lägre. Security misconfigurations hade 0%. Session hijacking, XSS och forceful browsing hade vardera 3%. För resterande frågor var antalet större, mellan 11 till 15%. Figur 4 Övriga har haft minst 1 rätt. Figur 4. Svarsfördelning gällande lösningar, med vet ej (blå), enbart fel svar (orange) och minst 1 rätt (grå). 23

24 Vi har tagit fram antal som har haft minst 1, 2 och 3 (där det fallet gäller) rätt. Figur 5 Om man enbart ser till det antal som har haft minst 1 rätt så ligger frågorna gällande sensitive data (92%) och injection (81%) bäst till (många som kan minst 1 lösning). Insecure direct object reference samt forceful browsing ligger båda under 50% som har haft minst 1 rätt och ligger därmed sämst till. Övriga frågor har mellan 50 och 67%. Kollar vi på helhetensåstickerfrågan gällande sensitive data ut då hela72% har haft minst 2 rätt, och 44% har haft alla 3 rätt. CSRF samt Forceful browsing är de frågor som har under 10% (respektive 6 och 3%) där de svarande har haft alla 2 rätt. Insecure direct object reference som hade sämst resultat bland minst 1rätt hade 14% som hade alla 2 rätt. Övriga frågor ligger på ca 30-40% för minst 2 rätt. Figur 5. Svarsfördelning vid rätt svar gällande lösningar. Andel räknat på antalrätt svar gentemot alla svarande. Minst 1 rätt (blå), minst 2 rätt (orange) och minst 3 rätt (grå). Vidare så har vi tagit fram antal som har haft 1 rätt, 2 rätt och 3 rätt (där det fallet gäller) för samtliga frågor. Vi kan tydligt se att för frågorna gällande session hijacking, security misconfigurations och sensitive data så är antalen som har alla rätt större (mer än 10) än för resterande frågor (5 och under). Figur 7 Forced access och CSRF låg sämst till, där bara 1 repektive 2 av de svarande hade alla rätt (2 av 2). Figur 7 För de frågor där det finns 3 rätta svar så ser vi att för injection så är det majoriteten av de svarande som bara har haft 1 rätt (15st, 42%). Även vid XSS så är det majoriteten av de som har haft rätt som bara har haft 1 rätt (11st). Bara för sensitive data så var det minst antal som hade endast 1 rätt (7st). Figur 7 24

25 Figur 6. Total fördeling av svar för varje lösningsfråga. Här ser man även vet ej samt felsvar. 7.3 Analys Det är tydligt att den egna uppfattningen om kunskap gällande webbprogrammering är hög (de som svarat 3 eller 4) i de flesta fall, medan den är betydligt mer spridd när det gäller webbsäkerhet. Det går direkt se att ca hälften av de svarande själva upplever att de inte besitter stor kunskap inom webbsäkerhet (RQ2 ). Bland svarande för de som har utbildning inom webbprogrammering är förtroendet högre till deras egna programmeringskunskaper men de har max satt en 3a gällande kunskap inom webbsäkerhet. Detta ger en indikation på attsäkerhet inte får fokus inom denna typen av utbildning. Gällade bekanthet med begrepp kan vi se att för SQL injection såkänner de flesta av de svarande att de skulle kunna beskriva detta säkerhetshål. Nivån är rimlig även för XSS, session hijacking och buffer overflow, mengår under hälften för resterande begrepp. Vi ser alltså attdetråder osäkerhet kring begrepp som CSRF, cookie poisoning och session fixation. Svaren visar oss dock inte om man inte alls känner till begreppet, eller om man känner till det men inte är säker nog på att kunna beskriva det. Oavsett vilket fall så tyderdetpå att kunskapen inte är omfattande för många begrepp (RQ2 ). 25

26 När det gäller beskrivningarna av begrepp så är det endast SQL injection som har ett övergripande bra resultat, med många rätt svar och få blanka eller fel svar. I relation till bekanthet så stämmer den påstådda kunskapen gällande SQL injection väl överens med resultatet (lika många angav att de var bekanta med begreppet som de som svarade rätt på beskrivningen av begreppet), vilket visar att för denna fråga så är kunskapsbristen väldigt liten (RQ3 ) om man ser till själva begreppet. Bryter man ner det i utbildning och icke utbildning så är det bara är SQL injection som har ett bra resultat. Resterande ligger under 60%, där alla utom Cookie poisoning och XSS hamnar under hälften, vilket visar på en kunskapsbrist med eller utan utbildning. Gällande erfarenhet så ligger Cookie poisoning även här över 60% rätt antal svar om man ser till gruppen med erfarenhet över 1år. Utöver det är Cookie poisoning för de utan erfarenhet strax över 50% och Forceful browsing för de med mindre än ett års erfarenhet hamnar över 50%. Resterande är under hälften, vilket visar på en stor kunskapsbrist även här. Insecure direct object reference hamnar lågt oavsett utbildning och erfarenhet. Även CSRF hamnar lågt även om de med ett års erfarenhet svarar något bättre än övriga. Även när de gäller kunskap om lösningar så ligger SQL injection bland de säkerhetshål som mer än 80% har har minst 1 rätt svar på. Det är bara när det gäller 2 frågor (insecure direct object reference och forced access)där mindre än hälften har haft 1 rätt. För dessa två är andelen som har haft 2 rätt väldigt liten. Den fråga som de svarande presterade bäst på varsensitive data, där över 90% hade minst 1 rätt och över 40% hade alla 3 rätt, jämfört med injection där strax över 10% hade alla tre rätt (båda frågorna hade 3 av 5 svar som var korrekta). CSRF och forced access hörde till de frågorna där under 5% svarade med båda rätt, där båda dessa även hade under 50% som hade minst 1 rätt. Vi ser alltså en kunskapsbrist gällande dessa frågor särskilt, vilket vi alltså ocksåsåg gällade beskrivningen av CSRF där de som svarade rätt var den minsta andelen (30%) och de som svarade fel var störst (40%). Vi ser samma koppling till insecure direct object reference där resultatet gällande begreppen var snarlika till CSRF och som ovan nämnt så vardetden fråga som minst antal hade minst 1 rätt på gällande lösningar (under 40%). Om man även kollar de som har svara vet ej så syns samma trend. Insecure direct object reference, CSRF och forced access är de tre där flest antal har svarat med detta alternativ (17, 17 och 14) och förutom för CSRF så överstiger det antalet som har haft minst 1 rätt. 26

27 Dock så skadetnämnas att varken XSS, session hijacking eller security misconfigurations ligger långt efter i antalet, då alla dessa även har ett vet ej - antal på över 10 (av 37). Bara SQL injection och sensitive data har ett lågt eller inget antal (5 och under). Med och utan utbildning För att jämföra hur de som har utbildning svarar mot de som saknar det så tog vi fram hur många som hade minst 1 rätt för båda grupperna. Utifrån detta tog vi fram det procentuella värdet. Med en linjegraf så kan vi se att de utan utbildning ligger lägre i svarsfrekvens än de med utbildning för alla frågor utom för security misconfigurations och sensitive data, där samma andel har haft rätt i båda grupperna. Figur 7 Vi ser även via denna graf att skillnaderna i kunskap är störst för XSS och CSRF när det gäller hur de med och utan utbildning har svarat (en skillnad påca 25%), och att båda grupperna presterade sämst i frågan om insecure direct object reference. De utan utbildning presterade även dåligt gällande CSRF (under 40% med minst 1 rätt svar). Figur 7. Svarsfördelning baserat på utbildning, med eller utan. Procentuellt värde baserar sig på antalrätt av de som har svarat inom repektive grupp. Kollar man på varje individ så syns det att det finns undantag där ett antal med utbildning har fått sämre resultat (totalt antal rätt svar på lösningar), medan det även finns de som utan utbildning eller kort utbildning har svarat med bra resultat. Jämförelse mot erfarenhet Vid jämförelse för de som har haft minst 1 rätt svar gällande de utan erfarenhet, med erfarenhet under 1 år och med erfarenhet 1 år 27

28 eller mer så är fördelningen inte lika tydlig. För de med erfarenhet 1 år eller mer så ligger andelen rätt svar strax över de som har erfarenhet under 1 år. För de som saknar erfarenhet så ser vi att för injection, XSS och security misconfigurations så har de bättre svarsandel än de övriga grupperna, men ligger annars under eller tangerar de andra 2 grupperna. Figur 8 Skillnaderna gällande svarsprestation är inte avsevärtmycketstörre gällande specifika frågor, till skillnad från ovan jämförelse gällande utbildning. Det som dock nämnvärt sticker ut är linjen för de som saknar erfarenhet. Här ligger det både över och under de andra två grupperna. Men skillnaderna i de fall de ligger under som för forced access och CSRF är stora (20% skillnad). Den enda punkten där alla tre grupperna har svarat något så när lika är för sensitive data. Figur 8. Svarsfördelning baserat på erfarenhet, med 1 år eller mer, under 1 år eller utan. Procentuellt värde baserar sig på antalrätt av de som har svarat inom repektive grupp. Ser man till indviduell prestation gällande erfarenhet så ser vi ett par undantag till medelvärdena. Den svarande med över 20 års erfarenhet hade endast 2av19rätt. Även andra med mer än 10 års erfarenhet har haft sämre än medelvärdet med 4 respektive 5 rätt (fördelat på 2-3frågor). Figur 22 i Appendix A Vi har även räknat ihop antal års erfarenhet (tagit lägsta siffran i intervallen) med antal års utbildning och sammanställt det. Figur 23 i Appendix A 7.4 Brister Undersökningen kan ha flera brister. Vi har t.ex sett att 3 av 37 personer har fyllt i frågan om hur lång erfarenhet man har trots att de vid frågan innan 28

29 om de har erfarenhet har svarat nej. I dessa fall har vi antagit att de inte har någon erfarenhet, så att bara kombination av ett Ja-svar och antal år räknas som erfarenhet. 2 av 37 har fyllt i att de har utbildning inom något av ämnena men har inte fyllt i vad för utbildning. 3 av 37 har fyllt i att de inte har utbildning men har ändå svaratpåhurlång den var. I detta fall har vi antagit att de inte har någon utbildning bortsett från årsantalet. Brister med själva utformningen är problemet med flervalsfrågor. Vi har gett instruktion på attmanskahoppaöver en fråga om man inte kan den, eller har angett som alternativ Jag vet inte för att minska på risken att gissar på svaret. Dock kan de ha fyllt i ett svar för att de har missat denna instruktion eller gissar ändå. Figur 9 samt Figur 4 Figur 9. Andel blanka svar (blå) mot övriga svar (orange) vilket innefattar både rätt och fel svar. Dock så är det i så fallettstörre problem på delen som berör kunskap om hål där man bara får fylla i ett svar, vilket gör folk mer benägna att svara. Men kollar vi på antal tomma svar på vissa frågor så skulle vi kunna dra slutsatsen att detta inte är sant, då ett stort antal ändå lämnat blanka eller vet ej -svar. Problemet med detta blir att det i analysen ser ut som att fler faktiskt har kunskap om hålen än vad som är sant eftersom att de som har gissat rätt inkluderas. Vi har inte möjlighet att avgöra om det har skett. Utöver detta så var vi tvugna att tänka påhurlång/kort undersökning vi gjorde. Vi var medvetna om att vi kanske skulle få in mindre svar om undersökningen var för lång eftersom att alla inte är villiga att ta sig tiden att fylla i den då, samtidigt 29

30 som det även skulle ge oss mer data än vi hade hunnit med att analysera. Av dessa anledningar så tog vi bort delen med kodexempel som vi hade planerat att ha med, vilket i sin tur leder till att vi inte kan göra bedömningen huruvida de som svarat rätt på mitigeringsfrågorna också har kunskapen om hur man kodar dessa mitigeringar. Det är en sak att ha en uppfattning om vad lösningen är och en annan sak att implementera den. Det vi inte heller kan få fram med undersökningen är om de kan vara så att de i själva verket motverkar många av säkerhetshålen redan idag, men bara inte vet att de säkerhetshål de motverkar har dessa begrepp. Att de inte vet vad ett begrepp innebär och svarar fel på hur man mitigerar det behöver inte per automatik innebära att de lämnar dessa säkerhetshål öppna i de applikationer de bygger. Vi hade kunnat lösa detta genom de kodexempel vi hade tänkt, eller genom att inför frågan hur man mitigerar ett säkerhetshål först förklara vad begreppet innebär. Något mer som kan upplevas som ett problem är att det finns för en del attacker och hål flera olika begrepp, eller begrepp som omfattar flera olika hål. Det är möjligt att vi på grund av detta har missat personer som har kunskap om hål och attacker men inte via de begrepp vi har använt. Detta kan dock leda till diskussionen om att man borde ha en övergripande kunskap om begrepp och det är en kunskapbrist att inte ha det. Figur 10. Åldersfördelning bland de svarande. Efter att ha analyserat resultaten så kan vi också diskutera om våra svarsalternativ har varit utformade på bästa sätt. Exempelvis så fallerdeflestaini åldersgruppen år (Figur 10). Denna grupp kan innefatta både unga studenter som påbörjat sin utbildning och personer som varit ute i arbetslivet i många år. I efterhand så borde i alla fall denna gruppen ha delats upp i två alternativ. 30

31 Något som bör nämnas är att vi i efterhand inser att vi borde haft tydliga gränser för vad som är bra och dåligt resultat uppsatta redan från början, för att lättare kunna analysera resultaten och även kunna dra slutsatser baserat på vad vi faktiskt hade förväntat oss. Det finns ju dock en svårighet i hur man ska komma fram till vad som är rimliga gränser. 31

32 8 Diskussion Varierande kunskapsnivå. Vi såg tydligt att det finns begrepp och säkerhetshål bland de vi tog upp som kunskapen är låg inom, så somcsrf, forceful browsing, insecure direct object refernce och faktiskt även XSS. Samtidigt var kunskapen inom enstaka frågor större, främst för injection och sensitive data. Kunskapsnivån är alltså intelåg för alla frågor utan varierar snarare i viss utsträckning. Detta tillåter oss att dra slutsatsen att det för många frågor finns okunskap, men att nivån på den varierar. Att vi har begrepp som sticker ut där kunskapen är bättre kan bero på att fokus har lagts på dessa, i utbildning och även i litteratur och medier. Framförallt har vi själva sett att SQL injection har varit en av säkerhetshålen som har fått mycket plats i litteraturen vi har studerat. Figur 11. Svarsfördelning för minst 1, 2 och 3 antal rätt i procent Bra grundläggande kunskap - ej bred kunskap. Baserat på resultaten för begrepp och lösningar såkanviianalysenäven se att även om det finns en grundläggande kunskap om många av begreppen så är det ett litet antal som faktiskt kan ange hur man mitigerar säkerhetshål på merän ett sätt. Främst har vi sett att det gäller för CSRF, forced access, XSS och insecure direct object reference. Ett bra exempel är just XSS där ändå ett rimligt antal kunde begreppet (ca hälften) men bara ett fåtal (4 st) hade alla rätt gällande lösningar. Figur 12 Det är viktigt att veta om flera alternativ till lösningar för att mitigera hålen fullständigt (det kan behövas en kombination för att motverka riskerna helt) eller för att välja ut rätt lösning fördenkodmanhar(allalösningar kan nödvändigtvis inte appliceras på enskod-manbehöver veta om flera olika alternativ). Att det finns en brist i denna bredare kunskap kan leda till att hål 32

33 kvarstår i viss utsträckning för att utvecklarna inte har haft rätt kunskap att applicera på sinkod. Säkerhetsrisker med överlag låg kunskap. Ser vi till CSRF så kan vi se en överlag låg nivå både gällande kunskap om begreppet och kunskap om lösningar (Figur 12). En väldigt stor andel hade fel gällande vad begreppet beskriver, och bara hälften hade 1 rätt på lösningarna. Vi kan alltså här peka ut att det råder okunskap kring CSRF, vare sig det är på grund av otydligheter i skillnaderna till XSS eller allmän okunskap. Även insecure direct object reference är ett säkerhetshål som har få rätt svar och många felsvar eller vet ej. När det gäller Forced access & forceful browsing så ser vi att det finns de som har svarat rätt, men en lika stor eller större andel som heller inte vet svaren. För XSS är det lite bättre ställt, i alla fall om man ser till de som har haft 1 rätt eller mer, men vi ser även här både ett större antal som inte vet eller har svarat fel. Det gör oss ännu mer säkra på att okunskap faktiskt råder i en större omfattning. Figur 12. Svarsfördelning över begrepp och lösningar sammantaget. För begrepp: Rätt svar (grön), inget svar (orange) och fel svar (röd). För lösningar: Antal alla rätt (mörk grön), alla rätt -1 (grön), alla rätt -2 (ljus grön), vet ej (orange), fel (röd). Många som svarat vet ej eller inte svarat alls. Vi sågatt det fannsflerasäkerhetshål som de svarande erkände själva att de inte kunde något (Figur 12) om vilket visar på att de svarande i omfattningen av våran undersökning även själva är medvetna om sin egen okunskap. Däremot så kanmanhär diskutera om det gäller själva begreppen enbart där de vet om ett säkerhetshål men inte har ett namn fördet,elleromdeinteharnågon kunskap alls. Men baserat på attvi hade flervalsfrågor i undersökningen där man kan koppla sin kunskap till något svarsalternativ kan vi anta att den erkända okunskapen beror på att de helt enkelt inte vet om detta säkerhetshål alls. Till denna gruppen behöver vi också 33

34 inkludera de som kanske har en mindre uppfattning om vad begreppet står för men inte är säkra nog på sinaegnakunskaperför att vilja svara på frågorna, och har valt att inte göra det istället. Okunskapen i sig kan sedan bero på att svarande tycker sig inte behöva veta om dessa och andra säkerhetshål, och kanske av den anledningen inte har känt behovet av att lära sig, eller att de helt enkelt inte har fått en medvetenhet kring att dessa finns. Vi anser att utbildning både på högskolan och arbetsplatsen kan hjälpa att skapa medvetenhet och intresse så att utvecklarna själva kan jobba påettsådant sätt att hålen motverkas. Detta i kombination med att de svarande har bedömt sin egen kunskap inom webbsäkerhet överlag lägre än webbprogrammering (Figur 18 i Appendix A visar att utvecklarna inte i någon större utsträckning uppfattar att de besitter mer kunskap än vad de faktiskt har. Utbildning och svar. Vi har även sett att man oavsett om man har utbildning eller inte har svarat med låga antal rätt för samma begrepp, även om de med utbildning i de alla flesta fallen har svarat snäppet men inte markant bättre. För de frågor där skillnaden är större ser vi just de frågor som redan är nämnda som problemfrågor där kunskapen är låg: XSS och CSRF. Våran undersökning visar att man drar ändå nytta av att ha en utbildning för grundläggande kunskap höjs inom frågor där okunskapen verkar vara mer utbredd, men även för övriga frågor. Figur 13. Fördelning med utbildning och utan både för begrepp och lösningar. Erfarenhet och svar. Mer intressant var när vi tog fram kunskap baserat på hur mycket erfarenhet man har. Här är det inte en lika tydlig skillnad som för jämförelsen vid utbildning, utan det finns frågor där man med mycket erfarenhet klarar sig sämre än både de med lite erfarenhet eller ingen alls. Vi hade innan undersökningen förväntat oss att de som hade mer erfarenhet även skulle svara bättre, men vi har alltså istället sett att detta inte genomgående är fallet. Men tar man åter igen CSRF som ett exmpel så har vi sett att det med erfarenhet har svarat överlag mycket bättre än de som helt saknar det. Vi kan alltså inte 34

35 dra slutsatsen att erfarenhet alltid ökar ens kunskap inom webbsäkerhet, men det är i många fall bättre än att inte ha det alls. Figur 14. Fördelning med erfarnehet och utan både för begrepp och lösningar. 35

36 9 Slutsats Grundläggande kunskap för begrepp och lösning finns men varierar sig mellan de olika begreppen. Det är tydligt att det för de allra flesta begrepp saknas mer omfattande kunskap gällande lösningar, då de svarande antingen i majoritet inte har vetat om lösningen alls eller bara haft 1 av 2 eller 3 rätt. Vi kan alltså se att brister inom kunskapen finns, även om det inte var i den omfattning vi förväntade oss gällande samtliga frågor. Det saknas omfattande kunskap om begrepp för alla de begrepp vi tog upp, förutom för injection. Detta visar att injection har i någon form fått större fokus än resterande begrepp, och kunskapen är överlag inte lika stor gällande samtliga vanliga säkerhetshål. En majoritet har också svarat att de har kunskap i MySQL, vilket kan förklara varför just den ligger bättre till än övriga. Ytterligare en bidragande faktor är att den får stor fokus i litteratur. Vi har kunnat se att om man har utbildning såharmansvaratbättre gällande kunskapen än om man saknar utbildning, även om skillnaden inte är så markant. Detta har gett oss en indikation på att man via sin utbildning får en grundläggande men ej omfattande kunskap gällande säkerhetshål. Vi kan se att erfarenhet inte spelar någon nämnvärd roll i ens kunskap, även om det överlag ger något bättre kunskap på deflestaområde än ingen erfarenhet alls. Osäkerheten kring säkerhetshålen och dess lösningar är stor, då vi har sett en stor andel blanka samt vet ej -svar, vilket även frågan gällande ens egen uppfattning om webbsäkerhet gav en indikation på. Slutsatsen vi kan dra här att även om det finns grundläggande kunskap så råder det även osäkerhet kring ens kunskap. Dock kan man se att de verkar medvetna om detta själva då dehar satt längre gällande sin egen uppfattning om vad det kan om webbsäkerhet än om webbprogrammering. Vi har dock svårt att jämföra vårat resultat av undersökningen med andra publikationer då vi inte har hittat några arbeten gällande kunskapsnivån i sig, utan snarare endast gällande själva säkerhetshålen. Sådanna arbeten skulle i sig heller inte direkt vara jämförbara med vårat då det troligtvis inte har genomförts inom samma geografiska område (Sverige) där vi är verksamma och riktar oss främst till. Vårat arbete placerar sig främst i åldersgruppen år med utvecklare både med och utan både erfarnehet och utbildning, där majoriteten är verksamma i södra Sverige. Vårat arbete går att använda för att motivera vidare kunskapstester inom mer specifika områden, både på skolorochföretag, för att få en tydligare bild över hur det ser ut just där. På såsätt kan man arbeta på de punkter som är viktigast, då detmöjligtvis ser olika ut beroende på t.exvad man har för utbildningsbakgrund eller erfarenheter. Vad gäller lösningar så gick litteraturstudien främst ut på att ge oss en kunskapsbakgrund att bygga undersökningen på. Vi har genom den också sammanfattat säkerhetshål och lösningar inte bara via OWASP, men också detvihar hittat i annan litteratur, vilket till stor del har bekräftat validiteten av OWASP s 36

37 Top 10. Till skillnad från andra arbeten så tarvårat upp fler säkerhetshål, dock mer sammanfattande än djupgående. 10 Framtida arbete Vi hade gärna viljat se om olika utbildningar resulterade i olika kunskapsnivåer. Tyvärr så hade vi dels inte data nog för att kunna ta ut detta (bara ett fåtal som hade samma utbildning) och dels så hadeintevåran utformning av undersökningen underlättat i det arbetet eftersom de svarande tilläts att själva skriva in namnet på sin utbildning. Vi märkte snabbt att många hade angett olika namn för samma utbildning eller typ av utbildning. Tyvärr hann vi heller inte granska ingående de svar som var utförligare (då man tilläts att skriva i även egna svar vilket ett fåtal valde att göra). Vi hade i detfalletbehövt granska deras föreslagna lösningar för att sedan bedömma om det var korrekt eller inte, vilket dessutom hade gett oss andra värden för antal rätt och fel svar. Tanken med att tillåtna öppna svar utöver de angivna svaren var att de svarande som hade större och bredare kunskap skulle kunna visa på denna. Vi har inte heller granskat kunskapsnivån i de olika åldersgrupperna, då vi i efterhand insett att den åldersgrupp som är mest dominant borde ha delats upp i 2 alternativ istället för ett enda. Vi har inte avsevärt mycket data gällande övriga grupper för att kunna göra någon relevant bedömning. Vi hade även viljat göra en jämförelse mellan uppfattad kunskapsnivå(frågorna med skala 1-5) och faktiska resultat, men detta hanns inte med. Som nämnt i brister hade vi även viljat haft möjligheten att på enstörre grupp människor granska igenkänningen av kodexempel som relaterade till säkerhetshål, en del som vi för att göra undersökningen mer attraktiv att göra valde att ta bort. Det hade eventuellt kunnat gett oss en större insikt i vilken kunskap de svarande besitter när det gäller själva kodningen av hål och lösningar, jämfört med det vi har i nuläget som tar upp begrepp och endast lösningsförslag. Något som möjligtvis hade kunnat hjälpa oss att förstå resultaten hade varit om vi hade granskat vad de som svarade fel hade valt för alternativ - för att få en uppfattning om vi antingen har varit otydliga i våra svarsalternativ eller om det faktiskt råder missförstånd kring vanliga begrepp (t.ex CSRF ). 37

38 Litteraturförteckning [1] Security incident update. security-incident-update/, April [2] Sql injection prevention cheat sheet. SQL_Injection_Prevention_Cheat_Sheet, April [3] Dharmendra Choukse, Dimitris N Kanellopoulos, and Umesh Kumar Singh. Developing secure web applications. International Journal of Internet Technology and Secured Transactions, 4(2): , [4] Jim Finkle. Trove of adobe user data found on web after breach. us-adobe-cyberattack-idusbre9a61d ?irpc=932, Nov [5] John Gantz and David Reinsel. The digital universe in 2020: Big data, bigger digital shadows, and biggest growth in the far east. Technical report, Technical report, IDC, [6] Dieter Gollmann. Securing web applications. Information Security Technical Report, 13(1):1 9, [7] Michael Jenselius. Dustin sparar kundernas lösenord - i klartext. dustin-sparar-kundernas-losenord---i-klartext, Nov [8] Nishta Kanal. Twitter hacked, nearly 250,000 accounts may have been compromised. twitter-hacked-nearly accounts-may-have-been-compromised/ 7, feb [9] John Kennedy. Microsoft confirms it is the latest tech giant to suffer cyber attacks microsoft-confirms-it-is/, Feb [10] Florian Kerschbaum. Simple cross-site attack prevention. In Security and Privacy in Communications Networks and the Workshops, Secure- Comm Third International Conference on, pages IEEE, [11] Mitja Kolsek. Session fixation vulnerability in web-based applications [12] David Kravets. Face.com app allowed facebook, twitter account hijacking. klik-app-vulnerability/, jun [13] Mohamad Ibrahim Ladan. Web services: security challenges. In Internet Security (WorldCIS), 2011 World Congress on, pages IEEE, [14] Kevin Ooulsen. Sony hit yet again; consumer passwords exposed. http: // Feb [15] Ian Paul. Update: Linkedin confirms account passwords hacked. http: //bit.ly/utj1w7, Jun [16] Riaan J Rudman. Incremental risks in web 2.0 applications. Electronic Library, The, 28(2): , 2010.

39 [17] Bruce Schneier. Beyond fear: Thinking sensibly about security in an uncertain world. Springer, [18] Mohd. Shadab Siddiqui and Deepanker Verma. Cross site request forgery: A common web application weakness IEEE 3rd International Conference on Communication Software and Networks, ICCSN 2011, pages , [19] Raul Siles. Session management cheat sheet. index.php/session_management_cheat_sheet, April [20] CA Vlsaggio and Lorenzo Convertito Blasio. Session management vulnerabilities in today s web. Security & Privacy, IEEE, 8(5):48 56, [21] David Watson. The evolution of web application attacks. Network Security, 2007(11):7 12, [22] David Watson. Web application attacks. Network Security, 2007(10):10 14, [23] Dave Wichers. Owasp top OWASP Foundation, February, [24] Kim Zetter. Report: Half a million yahoo user accounts exposed in breach. Dec

40 11 Glossary exabyte Exabyte är en informationsenhet som motsvarar en miljard gigabyte. phishing Phishing, eller nätfiske, är en olaglig metod att lura till sig kreditkortnummer, lösenord och liknande från personer, oftast via epost där man utgör sig för att vara mottagarens bank eller dylikt och ber de klicka på en länk och logga in, och på så vis få tagianvändarens bankuppgifter. användare Ivårat sammahang är en användare den som besöker webbplatser och utnyttjar dess tjänster. salt Salt innebär att man skapar en sträng som läggs ihop med datan, till exempel ett lösenord, för att göra det svårare att lista ut den riktiga datan. token En token indikerar att du är tillåten att vara där du är och göra det du gör. De är också oftabegränsadeitid,ettvisstantalanvändningar eller endast i vissa områen. interpretatorn En interpretator är en sorts tolk som läser in och exekverar källkoden. stack trace En stack trace visar call stack, dvs historiken för hur exekveringen nått fram till en metod. stored procedures En lagrad procedur, vilket kan förenklas till en sparad funktion i SQL. placeholders Platshållare, används i vårat sammanhang för att hålla en plats åt input. Placeholders byts sen alltså ut mot i kod angiven input. encoding Innebär att förvandla något till kod, i detta fallet kod som sedan tolkas om till ett tecken. escaping Innebär att markera tecken så attdeläses som text och inte t.ex programkod. regular expressions Regular expressions eller reguljära uttryck är en sträng som motsvarar ett sökmönster. Ett sätt att kolla att en sträng följer ett visst mönster, till exempel att kolla om en sträng ser ut som en mailadress. rainbow tables Innehåller ett värde och dess hash, och används för att ta fram lösenord från en given hash. cashing Innebär att temporärt spara senast eller ofta använd data, för att snabbare kunna hämta det på nytt. GET Det vanligaste HTTP-kommandot, vilket innebär att klienten ber servern att skicka en viss fil. POST HTTP-kommando där klienten sänder information till servern. HTTP HTTP står för Hypertext Transfer Protocol och är det protokoll som används för att visa webbsidor. BTH Akronym för Blekinge Tekniska Högskola. 40

41 12 Appendix A 12.1 Website security survey 41

42

43

44

45

46

47 12.2 Svar på surveyn 47

48 Timestamp Age Do you have an education in web development or other relevant subjects? If you have an education: Name your education(s) If you have an education: How long was it? Do you have previous experience in web development? :20: Yes Webbprogrammering 4 years No :29: Yes Webdevelopment 3 years No :39: No Yes :41: Yes itsäk 3 years Yes :26: Yes Bachelor degree in WIP 3 years Yes :18: Yes Software Engineering 3 years Yes :53: No Yes :54: Yes dsv 3 years Yes :58: Yes Computer Science IT Security 3 years No :01: Yes 5 years Yes :04: Yes IT security 3 years Yes :15: Yes systemarkitektursutbildningen 3 years Yes Game programming, but only some :18: Yes courses includes the above. Less than 1 year No :56:06-20 Yes Web programming 1 year Yes :12: Yes Civ.Ing. Datorsäkerhet 3 years No :13: Yes Webb design Less than 1 year Yes :24: Yes Webb, internet och programvaruteknik 3 years Yes :06: Yes Data och systemvetenskap 3 years Yes :17: Yes software enginering 3 years Yes :54: Yes security engeenering 3 years Yes :57: Yes Pågående kandidaturbildning i programmering 2 years No :48: No Yes

49 :17: No Yes :15:58-20 No Less than 1 year Yes :02: No Selfeducated 6 or more years Yes :44:18-20 No No :30: Yes Less than 1 year No :44: No Less than 1 year Yes :19: Yes Bachelor of Computer Science at Blekinge Institute of Technology 3 years Yes :28: Yes Webprogramming 3 years Yes :16:28-20 No No :02: Yes Less than 1 year Yes :19: No Yes :58: No Yes :32: No Yes :54: Yes software engineering 4 years No :49: Yes Software engineering 4 years No

50 If you have experience, how much? What languages/solutions are you familiar with? How would you How would you grade grade your your knowledge of webprogramming? knowledge of web security? less than 1 year less than 1 year 5-10 years PHP, HTML5, CSS, CSS3, MySQL, SQLite, MSSQL, JavaScript, AJAX, jquery, node.js 4 3 PHP, HTML5, CSS, CSS3, MySQL, SQLite, Ruby, JavaScript, AJAX, jquery, node.js, Mongo, 4 2 HTML5, CSS, CSS3, MySQL, MSSQL, ASP, Java,.NET, JavaScript, AJAX, jquery, node.js 4 2 less than 1 year PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, Java, Python to 2 years years PHP, XHTML, CSS, CSS3, MySQL, SQLite, Ruby, JavaScript, AJAX, jquery, node.js 4 3 PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, MSSQL, Python, JavaScript, AJAX, jquery, node.js 5 4 less than 1 year PHP, MySQL, Perl years PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, MSSQL, Java, Python, Ruby,.NET, JavaScript, AJAX, jquery, node.js 4 2 MySQL, Python, C, C++, shellscript 1 3 less than 1 year PHP, CSS, MySQL, SQLite, Java, Python 3 4 less than 1 year PHP, MySQL, Perl, Python, Ruby 1 4 less than 1 year HTML5, MySQL, Java,.NET, JavaScript, AJAX, jquery, node.js, C/C MySQL, Java, Python years PHP, HTML5, CSS, CSS3, MySQL, SQLite, JavaScript, AJAX, jquery, node.js 5 3 PHP, HTML5, CSS, CSS3, MySQL, Java, Python, JavaScript, LESS 3 4 less than 1 year PHP, XHTML, MySQL, MSSQL, Java 3 1 less than 1 year less than 1 year 1 to 2 years 1 to 2 years PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, MSSQL, Java, JavaScript, AJAX, jquery 3 1 PHP, HTML5, XHTML, CSS, CSS3, MySQL, Java, JavaScript, AJAX, jquery 3 3 PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, Java, Python, Ruby, JavaScript, AJAX, jquery, node.js 4 3 PHP, HTML5, XHTML, CSS, MySQL, SQLite, Java, Python, JavaScript, AJAX, jquery, node.js, angular 4 4 PHP, HTML5, CSS, CSS3, MySQL, SQLite, Java, Python, Ruby, JavaScript, AJAX, jquery, node.js years PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, MSSQL, Python,.NET, JavaScript, AJAX, jquery, node.js, Heh, AJAX, jquery, note.js och JavaScript ÄR samma sak damnit.. 5 4

51 3 to 5 years PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, Java,.NET, JavaScript, AJAX, jquery, node.js to 2 years PHP, HTML5, CSS, wordpress 3 2 more than 20 years MSSQL 1 1 PHP, HTML5, CSS, CSS3, MySQL, SQLite, Java,.NET 3 2 PHP, HTML5, CSS3, MySQL, SQLite to 5 years 1 to 2 years less than 1 year PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, MSSQL,.NET, JavaScript, AJAX, jquery, node.js 4 4 HTML5, XHTML, CSS, CSS3, MySQL, MSSQL, Java, Ruby, JavaScript, AJAX, jquery, node.js 4 2 PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, MSSQL, Java, Python, JavaScript, AJAX, jquery, Django 4 2 PHP, HTML5, XHTML, CSS, CSS3, MySQL, JavaScript, AJAX, jquery years less than 1 year years 5-10 years HTML5, XHTML, CSS, CSS3, MSSQL,.NET, JavaScript, AJAX, jquery, node.js 4 2 PHP, HTML5, CSS, CSS3, SQLite, Ruby, JavaScript, AJAX, jquery 3 2 PHP, HTML5, XHTML, CSS, CSS3, MySQL, MSSQL,.NET, JavaScript, AJAX, jquery, node.js 4 3 PHP, HTML5, XHTML, CSS, CSS3, MySQL, SQLite, Ruby, JavaScript, AJAX, jquery 5 4 PHP, CSS, MySQL, Java, Perl, Python, JavaScript 2 4 less than 1 year PHP, CSS, MySQL, Java, Perl, JavaScript 2 4

52 Which of these concepts do you feel familiar with? SQL injection, XSS, Forceful browsing, Buffer overflow SQL injection, Session hijacking, Buffer overflow SQL injection, Server-side includes injection An SQL injection can be describes as... Cookie poisoning is... Adding SQL-code to user input in order to retrieve, change or delete database Modifying a cookie file in order to gain entries elevated access Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding code to cookie file so that it installs malware SQL injection, Cookie poisoning, XSS, CSRF, Forceful browsing, Session hijacking, Session fixation, Server-side includes injection, Buffer overflow SQL injection, XSS, CSRF, Session hijacking SQL injection, XSS, CSRF, Session hijacking, Server-side includes injection, Buffer overflow SQL injection SQL injection, XSS XSS, Forceful browsing, Buffer overflow SQL injection, Cookie poisoning, XSS, CSRF, Session hijacking, Server-side includes injection, Buffer overflow SQL injection, Cookie poisoning, XSS, CSRF, Forceful browsing, Session hijacking, Session fixation, Server-side includes injection, Buffer overflow SQL injection, Cookie poisoning, XSS, CSRF, Forceful browsing, Buffer overflow All of the above Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Opt#2 and Opt#3, but mostly #3. Poisoning doesn't imply usefulness. Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access SQL injection, XSS, Session hijacking, Server-side includes injection, Buffer overflow SQL injection, Cookie poisoning, XSS, Session hijacking, Server-side includes injection, Buffer overflow SQL injection Changing SQL queries in the site to run malicious code Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access Adding code to cookie file so that it installs malware Modifying a cookie file in order to gain elevated access Cookie poisoning, Session hijacking Adding SQL-code to user input in order SQL injection, Cookie poisoning, XSS, CSRF, Buffer to retrieve, change or delete database overflow entries SQL injection, Cookie poisoning, XSS, CSRF, Adding SQL-code to user input in order Session hijacking, Session fixation, Server-side to retrieve, change or delete database includes injection, Buffer overflow entries Adding code to cookie file so that it installs malware Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access SQL injection, XSS, Session hijacking, Session fixation, Server-side includes injection Adding SQL-code to user input in order to retrieve, change or delete database entries Adding code to cookie file so that it installs malware SQL injection, Cookie poisoning, XSS, CSRF, Forceful browsing, Session hijacking, Session fixation, Server-side includes injection, Buffer overflow Adding SQL-code to user input in order to retrieve, change or delete database entries The first answer is party true, but is not limited to elevated access. The level of access can be the same but under another identity which is the root threat with cookie poisoning attacks.

53 SQL injection, XSS, CSRF, Forceful browsing, Session hijacking, Server-side includes injection, Buffer overflow SQL injection, XSS, Session hijacking SQL injection SQL injection, Server-side includes injection SQL injection SQL injection, Cookie poisoning, XSS, CSRF, Forceful browsing, Session hijacking, Session fixation, Server-side includes injection, Buffer overflow SQL injection, XSS, Session hijacking, Buffer overflow SQL injection, XSS SQL injection, Cookie poisoning, Session hijacking SQL injection, Server-side includes injection CSRF SQL injection, XSS, CSRF SQL injection, Cookie poisoning, XSS, Session hijacking, Buffer overflow SQL injection, Cookie poisoning, XSS, CSRF, Session hijacking, Server-side includes injection, Buffer overflow SQL injection, Cookie poisoning, XSS, CSRF, Session hijacking, Server-side includes injection, Buffer overflow Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Changing SQL queries in the site to run malicious code Adding SQL-code to user input in order to retrieve, change or delete database entries Adding SQL-code to user input in order to retrieve, change or delete database entries Modifying a cookie file in order to gain elevated access Modifying content of cookies so that it is rendered useless Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access Adding code to cookie file so that it installs malware Modifying a cookie file in order to gain elevated access Adding code to cookie file so that it installs malware Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access Modifying a cookie file in order to gain elevated access

54 XSS-attacks occur when... CSRF-attacks occur when... Insecure direct object reference is when you can... Scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious code is executed at a website by an unsuspecting authorized user Change a parameter to access an object you're not authorized to see Malicious code is executed at a website by a tricked and unsuspecting authorized user Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Change a parameter to access an object you're not authorized to see Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious code is executed at a website by a tricked and unsuspecting authorized user Malicious code is executed at a website by a tricked and unsuspecting authorized user Malicious code is executed at a website by a tricked and unsuspecting authorized user Change a parameter to access an object you're not authorized to see Link directly to an object that is hidden Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Modifying a script file in order to gain elevated access Modifying a script file in order to gain elevated access Modifying a script file in order to gain elevated access Access the private functions of an object as if they were public Access the private functions of an object as if they were public Change a parameter to access an object you're not authorized to see Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Executing forged requests using stolen content (such as session ids) a website trusts. Malicious code is executed at a website by a tricked and unsuspecting authorized user Change a parameter to access an object you're not authorized to see Change a parameter to access an object you're not authorized to see Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious code is executed at a website by a tricked and unsuspecting authorized user Change a parameter to access an object you're not authorized to see No idea. Server side script code is changed to load external malicious resources that installs malware Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious code is executed at a website by a tricked and unsuspecting authorized user Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Change a parameter to access an object you're not authorized to see Access the private functions of an object as if they were public Server side script code is changed to load external malicious resources that installs malware Modifying a script file in order to gain elevated access Change a parameter to access an object you're not authorized to see A script loaded from an external resource gaining additional features not present in the original page. more often than not these do not install malware but track your movement on Much like XSS but CSRF uses the trust the web or try to retrieve your input. between a site has for a users browser. Note sure if this was mentioned in the list above.. Anyway, this is a attack where the attacker gain access to a function or object by modifying data (parameters etc) in order to gain previously hidden functionality or information.

55 Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Server side script code is changed to load external malicious resources that installs malware Malicious code is executed at a website by a tricked and unsuspecting authorized user Malicious code is executed at a website by a tricked and unsuspecting authorized user Modifying a script file in order to gain elevated access Access the private functions of an object as if they were public Link directly to an object that is hidden Malicious code is executed at a website by a tricked and unsuspecting authorized user Server side script code is changed to load external malicious resources that installs malware Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Access the private functions of an object as if they were public Server side script code is changed to load external malicious resources that installs malware Malicious code is executed at a website by a tricked and unsuspecting authorized user Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious scripts are posted on a trusted site that are then viewed by a user and run on a client Malicious code is executed at a website by a tricked and unsuspecting authorized user Modifying a script file in order to gain elevated access - Malicious code is executed at a website by a tricked and unsuspecting authorized user Access the private functions of an object as if they were public Access the private functions of an object as if they were public Link directly to an object that is hidden

56 Forceful browsing is to... How do you prevent injection? How do you prevent session hijacking? Find resources that are not linked on a page but still accessible White list input, Remove all special characters, Only use prepared statements Name sessions, Use random or other types of unpredictable session ID's Force a browser to load another malicous website instead of the intended Remove all special characters Use binary in-memory parameters for all SQL queries Only use SSL Only use SSL Find resources that are not linked on a page but still accessible Only use prepared statements, Sanitize input and output data Only use SSL, Use unpredictable session ID's Find resources that are not linked on a page but still accessible Trick a user to visit a malicious copy of the intended page White list input, Remove all special characters, Only use prepared statements Use unpredictable session ID's White list input, Only use POST, Remove all special characters, Only use prepared statements, Only use SSL, Use shorter session ID's, add Only use saved hardcoded queries browser/ip-info to session Find resources that are not linked on a page but still accessible Find resources that are not linked on a page but still accessible Remove all special characters, Only use prepared statements, Only use saved hardcoded queries White list input, Remove all special characters, Only use prepared statements White list input, Only use prepared statements, Only use saved hardcoded queries Only use SSL, Use unpredictable session ID's Only use SSL, Use unpredictable session ID's Find resources that are not linked on a page but still accessible White list input, Only use prepared statements Use unpredictable session ID's Find resources that are not linked on a page but still accessible Only use prepared statements, Encode all special characters Only use SSL, Bind session to IP, Make session cookies HTTPOnly, Make sure logout button kills sessions and not just removes cookie. Find resources that are not linked on a page but still accessible Remove all special characters Use unpredictable session ID's Force a browser to load another malicous website instead of the intended Only use prepared statements, Only use saved hardcoded queries Remove all special characters, Only use prepared statements Only use SSL, Use unpredictable session ID's Only use SSL, Name sessions, Use unpredictable session ID's Trick a user to visit a malicious copy of the intended page Remove all special characters, Only use prepared statements Name sessions Only use POST Use unpredictable session ID's Find resources that are not linked on a page but still accessible Only use prepared statements Use unpredictable session ID's Force a browser to load another malicous website instead of the intended Only use POST, Remove all special characters, Only use prepared statements Name sessions, Use unpredictable session ID's Find resources that are not linked on a page but still accessible Remove all special characters Only use SSL, Name sessions, Use unpredictable session ID's Find resources that are not linked on a page but still accessible White list input, Only use saved hardcoded queries Only use SSL, Use unpredictable session ID's

57 Find resources that are not linked on a page but still accessible Only use prepared statements Only use SSL Force a browser to load another malicous website instead of the intended White list input, Remove all special characters Trick a user to visit a malicious copy of the intended page Only use prepared statements Only use prepared statements Find resources that are not linked on a page but still accessible Only use prepared statements Only use SSL Only use saved hardcoded queries Find resources that are not linked on a page but still accessible Only use prepared statements Remove all special characters, Only use prepared statements Only use POST, Remove all special characters, Only use prepared statements, Only use SSL, Use unpredictable session ID's Find resources that are not linked on a page but still accessible Only use saved hardcoded queries Only use SSL Trick a user to visit a malicious copy of the intended page - Only use prepared statements White list input, Only use POST, Only use prepared statements White list input, Remove all special characters, Only use prepared statements Only use SSL, Name sessions, Use unpredictable session ID's Only use SSL, Use unpredictable session ID's Find resources that are not linked on a page but still accessible White list input, For SQL use stored_procedures Only use SSL, Use unpredictable session ID's

58 How do you prevent XSS? Whitelist input, Remove all HTML-content, Escape or encode untrusted data How do you prevent insecure direct object reference? Check that user has access to object, Use indirect referencing, by mapping input and resource keys How do you prevent attacks exploting security misconfigurations? Keep all software up-to-date, Turn off unused services Whitelist input Escape or encode untrusted data Make user verify identify again when trying to access a restricted page Check that user has access to object, Use indirect referencing, by mapping input and resource keys Turn off unused services, Keep all software up-todate Keep all software up-to-date Turn off unused services, Turn off error and debug messages, Supress sql errors, Harden configuration for services (i.e. make it harder to determine version numbers) Whitelist input, Remove all HTML-content,, Check that user has access to Escape or encode untrusted data, Only object, Use indirect referencing, by mapping allowed authorized users to send input input and resource keys Remove all HTML-content, Escape or encode untrusted data, Only allowed authorized users to send input Check that user has access to object Turn off unused services, Keep all software up-todate Turn off unused services, Keep all software up-todate Whitelist input, Remove all HTML-content, Escape or encode untrusted data Turn off unused services, Keep all software up-todate Whitelist input, Escape or encode untrusted data Escape or encode untrusted data Escape or encode untrusted data Escape or encode untrusted data Use direct referencing so that you can validate reference and target Check that user has access to object, Make user verify identify again when trying to access a restricted page Check that user has access to object, Make user verify identify again when trying to access a restricted page Turn off unused services, Keep all software up-todate Turn off unused services, Keep all software up-todate, Show more informative error messages so you can find faults in the software easier and fix them Turn off unused services Turn off unused services, Keep all software up-todate Escape or encode untrusted data Check that user has access to object, Use indirect referencing, by mapping input and resource keys Turn off unused services, Keep all software up-todate Remove all HTML-content, Escape or encode untrusted data Check that user has access to object, Make user verify identify again when trying to access a restricted page Turn off unused services, Keep all software up-todate Keep all software up-to-date Escape or encode untrusted data Check that user has access to object Keep all software up-to-date Check that user has access to object, Make Escape or encode untrusted data, Only user verify identify again when trying to access Turn off unused services, Keep all software up-todate, allowed authorized users to send input a restricted page Only use older trusted software Whitelist input, Remove all HTML-content, Escape or encode untrusted data Whitelist input, Escape or encode untrusted data Check that user has access to object, Use indirect referencing, by mapping input and resource keys, Make user verify identify again when trying to access a restricted page Check that user has access to object Turn off unused services, Keep all software up-todate, Definitely do NOT show too much information in error messages to the user since this can help attackers find the security flaws. Turn off unused services, Only use older trusted software, misconfigurations can't be prevented.. You can't prevent misshaps, that's why they are called misshaps. But you can minemize the risk by doing the above and by having audits of the system from an external part and also perform regular securith penetration tests.

59 Escape or encode untrusted data Turn off unused services Keep all software up-to-date Whitelist input, ssl Check that user has access to object, Use indirect referencing, by mapping input and resource keys Turn off unused services, Keep all software up-todate Remove all HTML-content, Escape or encode untrusted data Remove all HTML-content, Escape or encode untrusted data, Turn off unused services, Keep all software up-to-date Only allowed authorized users to send input Use direct referencing so that you can validate reference and target Turn off unused services Whitelist input, Escape or encode untrusted data, Only allowed authorized users to send input Check that user has access to object Turn off unused services, Keep all software up-todate Whitelist input, Remove all HTML-content, Escape or encode untrusted data - Turn off unused services, Keep all software up-todate, Only use older trusted software Whitelist input Make user verify identify again when trying to access a restricted page

60 How do you prevent forced access (missing function level access control)? Authorize by using an external module on all pages, Deny all access by default and verify user How do you prevent CSRF (Crosssite Request Forgery)? How do you handle sensitive data (like passwords, credit card numbers and so on)? Include unique unpredictable tokens in hidden fields Deny all access by default and verify user Include unique unpredictable tokens in hidden fields Include unique unpredictable tokens in hidden fields, Check refferrer path (one cannot change password witout Don't link to sensitive pages, Deny all first going to options menu etc, in access by default and verify user addition to hidden token) Don't link to sensitive pages, Deny all access by default and verify user, Authorize by using an external module on all pages Use a secret cookie, Make user reauthenticate, Include unique unpredictable tokens in hidden fields Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Only use POST-requests, Include unique unpredictable tokens in hidden fields Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Use salts when saving passwords, Don't save any unnecessary sensitive data, Limit the max lenghts of input to match the expected input Hardcode access to all files, Deny all access by default and verify user Include unique unpredictable tokens in hidden fields Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Deny all access by default and verify user Include unique unpredictable tokens in hidden fields Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Deny all access by default and verify user Include unique unpredictable tokens in hidden fields Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Don't link to sensitive pages, Deny all access by default and verify user Only use POST-requests, Make user reauthenticate Don't save any unnecessary sensitive data Don't save any unnecessary sensitive data Deny all access by default and verify user Don't link to sensitive pages, Deny all access by default and verify user Include unique unpredictable tokens in hidden fields Use salts when saving passwords, Don't save any unnecessary sensitive data Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Save all data hashed/encrypted Deny all access by default and verify user Hardcode access to all files, Don't link to sensitive pages, Deny all access by default and verify user Only use GET-requests, Include unique unpredictable tokens in hidden fields Include unique unpredictable tokens in hidden fields Only use POST-requests, Include unique unpredictable tokens in hidden fields Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Save all data hashed/encrypted, Don't save any unnecessary sensitive data, Limit the max lenghts of input to match the expected input Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Use salts when saving passwords, Don't save any unnecessary sensitive data, Limit the max lenghts of input to match the expected input Don't link to sensitive pages, Authorize by using an external module on all pages Make user reauthenticate, Include unique unpredictable tokens in hidden fields Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Hardcode access to all files, Deny all access by default and verify user Make user reauthenticate, Include unique unpredictable tokens in hidden fields, Auth tokens are a good way to do it. Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data, Limit the max lenghts of input to match the expected input, credic card numbers is something you don't touch or save at all, and if you REALLY need to you use a PCI certified vendor because you're required to if you want to be connected with Visa/MasterCard etc.

61 Make user reauthenticate Save all data hashed/encrypted, Don't save any unnecessary sensitive data Use salts when saving passwords, Don't save any unnecessary sensitive data Don't save any unnecessary sensitive data Save all data hashed/encrypted, Use salts when saving passwords Save all data hashed/encrypted Deny all access by default and verify user ssl Don't save any unnecessary sensitive data, Limit the max lenghts of input to match the expected input Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Use salts when saving passwords, Don't save any unnecessary sensitive data Save all data hashed/encrypted, Don't save any unnecessary sensitive data Deny all access by default and verify user Make user reauthenticate Don't save any unnecessary sensitive data Include unique unpredictable tokens in hidden fields Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data, Limit the max lenghts of input to match the expected input Authorize by using an external module on all pages - Include unique unpredictable tokens in hidden fields Use a secret cookie, Make user reauthenticate, Include unique unpredictable tokens in hidden fields Save all data hashed/encrypted, Use salts when saving passwords Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data Deny all access by default and verify user Make user reauthenticate Save all data hashed/encrypted, Use salts when saving passwords, Don't save any unnecessary sensitive data

62 12.3 Surveydata - bilder Figur 15. Graf över hur de svarande var fördelade gällande hur lång utbildning man hade, där de största kategorierna var ingen eller 3 års utbildning. Figur 16. Graf över hur de svarande var fördelade gällande hur lång erfarenhet man hade, där det dominerande var ingen eller under 1 år. 62

63 Figur 17. Graf över fördelningen av tidigare spårkkunskap, där MySQL och PHP var känt av nästan alla svarande. Figur 18. En graf över den egna uppfattningen om kunskap inom de två ämnena (webbprogrammering och webbsäkerhet) på skala1-5(nybörjare-expert). 63

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

Säkerhet. Säkerhet. Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449 Säkerhet Säkerhet Webbteknik II, 1DV449 Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet F06 Säkerhet Dagens agenda HTTPS Autentisiering - Egen autentisiering - Lösenordshantering

Läs mer

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

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

Läs mer

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

Säkerhet i applikationslagret och slaget om webben. John Wilander, Omegapoint, Rätt säkerhet, maj 2010 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

Läs mer

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

OWASP Topp 10 2013. De 10 allvarligaste riskerna i webbapplikationer. 2013-10-03 OWASP East Sweden: Uppstartsmöte 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

Läs mer

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

Avancerade Webbteknologier 2. AD11g Göteborg 2012 Säkerhet Avancerade Webbteknologier 2 AD11g Göteborg 2012 Säkerhet Korta punkter Projekt: Något som behöver redas ut? Product: Public Guid CategoryID {g; s;} Public virtual Category Category {g; s;} Category: Public

Läs mer

Webbprogrammering. Sahand Sadjadee

Webbprogrammering. Sahand Sadjadee Webbprogrammering Sahand Sadjadee Agenda Webb The World Wide Web (WWW) is a network of online content that is formatted in HTML and accessed via HTTP. The term refers to all the interlinked HTML pages

Läs mer

Webbprogrammering - 725G54 PHP. Foreläsning II

Webbprogrammering - 725G54 PHP. Foreläsning II Webbprogrammering - 725G54 PHP Foreläsning II Agenda Serverskript PHP Validering av data med serverskript Säkerhet Lab 2. Live coding Serverskript Kör ett program på servern och resultatet skickas till

Läs mer

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

Essential Php Security Författare: Shiflett, Chris Antal sidor: 124 Förlag: O'Reilly PHP Säkerhet & Optimering tobias.landen@chas.se se Att läsa om ämnet Bra och kortfattad tt dbok: Essential Php Security Författare: Shiflett, Chris Antal sidor: 124 Förlag: O'Reilly ISBN 10: 059600656X

Läs mer

Modul 6 Webbsäkerhet

Modul 6 Webbsäkerhet Modul 6 Webbsäkerhet Serverskript & Säkerhet Webbservrar & serverskript exponerar möjlighet för fjärranvändare att skicka data och köra kod vilket medför risker. Man ska aldrig lita på att alla vill göra

Läs mer

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

Webbsäkerhet. för IT-tekniker VT2013. Johan Leitet johan.leitet.se Webbsäkerhet för IT-tekniker VT2013 Johan Leitet johan.leitet.se Dagens agenda Klient/server-arkitektur, attackvektorer HTTPS Attackvektorer, klientsida - Cross-site-scripting - Session-hijacking - CSRF

Läs mer

Instruktion för integration mot CAS

Instruktion för integration mot CAS IT-enheten Instruktion för integration mot CAS Per Hörnblad Instruktion 2010-10-29 Sid 1 (7) Instruktion för integration mot CAS Projektnamn Instruktioner för Integration mot CAS Fastställt av Per Hörnblad

Läs mer

Datum: 2011-02-10 Version: Författare: Christina Danielsson Senast ändrad:

Datum: 2011-02-10 Version: Författare: Christina Danielsson Senast ändrad: I N T E R N T Säkerhetskrav på extern part För enskild individs direktåtkomst till Datum: 2011-02-10 Version: Författare: Christina Danielsson Senast ändrad: Dokumentnamn: Säkerhetskrav på extern part

Läs mer

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

E11 Protection Föreläsning 11, HT2014 Säkerhet, tillgänglighet. Johan Leitet. Kurs: 1dv403 Webbteknik I Föreläsning 11, HT2014 Säkerhet, tillgänglighet E11 "Protection" Kurs: 1dv403 Webbteknik I Johan Leitet E11 Protection Dagens agenda Tillgänglighet Säkerhet Webbsajt vs. Webbapp Webbsida/webbsajt Webbapplikation

Läs mer

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

Säkerhet. Föreläsning 6 Säkerhet. Johan Leitet twitter.com/leitet facebook.com/leitet. Webbteknik II, 1DV449 Säkerhet Föreläsning 6 Säkerhet Webbteknik II, 1DV449 Johan Leitet johan.leitet@lnu.se twitter.com/leitet facebook.com/leitet F06 Säkerhet Dagens agenda HTTPS Autentisiering - Egen autentisiering - Lösenordshantering

Läs mer

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

Lagring i molnet. Per Hellqvist Senior Security Specialist Symantec Nordic AB Lagring i molnet Per Hellqvist Senior Security Specialist Symantec Nordic AB Först: Symantec har SaaS-tjänster* (*Storage as a Service) I Symantec Protection Network ingår Symantec Online Storage Symantec

Läs mer

Om integritet och sekretess på nätet. Stefan Ternvald, SeniorNet Lidingö,

Om integritet och sekretess på nätet. Stefan Ternvald, SeniorNet Lidingö, Om integritet och sekretess på nätet Stefan Ternvald, SeniorNet Lidingö, 2017-10-09 Påståenden kopplade till integritet: Rätten till Internet är en mänsklig rättighet. Jag har inga hemligheter. Jag har

Läs mer

Tentamen etjänster och webbprogrammering

Tentamen etjänster och webbprogrammering Tentamen etjänster och webbprogrammering Institutionen för informatik och media, informattionssystem Datum 26/8 Tid 8.00 12.00 Lärare Owen Eriksson Fredrik Bengtsson Maxpoäng 65 För Godkänd krävs minst

Läs mer

Riktlinjer för informationssäkerhet

Riktlinjer för informationssäkerhet Dnr UFV 2014/1307 Riktlinjer för informationssäkerhet Fastställda av Säkerhetschef 2014-10-28 Innehållsförteckning 1 Inledning 3 2 Ansvar 3 2.1 Efterlevnad 3 2.2 Uppdatering av riktlinjerna 4 3 Definitioner

Läs mer

4. Lösenordens brister

4. Lösenordens brister 4. Lösenordens brister Varför är det viktigt att ha unika lösenord? Det korta svaret på den frågan är att lösenord har en tendens att läcka. Det långa svaret på den frågan ägnar vi hela detta inledande

Läs mer

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor http://w3.msi.vxu.se/multimedia Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor Rune Körnefors Innehåll Variabler i JavaScript

Läs mer

Webbservrar, severskript & webbproduktion

Webbservrar, severskript & webbproduktion Webbprogrammering Webbservrar, severskript & webbproduktion 1 Vad är en webbserver En webbserver är en tjänst som lyssnar på port 80. Den hanterar tillgång till filer och kataloger genom att kommunicera

Läs mer

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund

Installationsanvisningar VisiWeb. Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund Sida: 1(7) Installationsanvisningar VisiWeb Ansvarig: Visi Closetalk AB Version: 2.3 Datum: 2009-12-14 Mottagare: Visi Web kund Detta dokument Detta dokument beskriver hur man installerar VisiWeb på en

Läs mer

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

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 EIT060 Datasäkerhet - Projekt 2 Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 Innehåll 1 Introduktion 1 2 SSL 1 2.1 Anslutningsprocessen.........................

Läs mer

Swedish Association for Software Testing 2009-05-12. 2009 Inspect it AB

Swedish Association for Software Testing 2009-05-12. 2009 Inspect it AB AB Applikationssäkerhetstestning Swedish Association for Software Testing 2009-05-12 Presentation Vem är jag? Mattias Bergling, Inspect it Arbetar med Informationssäkerhet Fokus på IT-säkerhet Intrångstester

Läs mer

Elektronisk publicering TNMK30

Elektronisk publicering TNMK30 Elektronisk publicering TNMK30 Förra gången Färger CSS - layout och styling Lite repetition (X)HTML och SEO Att separera innehåll från presentation. CSS, layoutproblem med float och boxar CSS, layoutproblem

Läs mer

Installationsguide fo r CRM-certifikat

Installationsguide fo r CRM-certifikat Installationsguide fo r CRM-certifikat För att säkerställa en säker inloggning till CRM Finance webb så behöver alla kunder installera ett kund-unikt klientcertifikat innan man kan försöka logga in i systemet.

Läs mer

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

Innehåll. Dokumentet gäller från och med version 2014.3 1 Innehåll Introduktion... 2 Före installation... 2 Beroenden... 2 Syftet med programmet... 2 Installation av IIS... 2 Windows Server 2008... 2 Windows Server 2012... 6 Installation av webbapplikationen

Läs mer

Projekt Foreläsning VI

Projekt Foreläsning VI Webbprogrammering - 725G54 Projekt Foreläsning VI Agenda Sessions update Labb 5 Genomgång projektuppgift Kursinnehåll avstämning Kursmål avstämning Sessions På IDA måste ni göra session_save_path('dir)

Läs mer

Internetsäkerhet. banktjänster. September 2007

Internetsäkerhet. banktjänster. September 2007 Internetsäkerhet och banktjänster September 2007 Skydda din dator Att använda Internet för att utföra bankärenden är enkelt och bekvämt. Men tänk på att din datormiljö måste vara skyddad och att du aldrig

Läs mer

Telia Centrex IP Administratörswebb. Handbok

Telia Centrex IP Administratörswebb. Handbok Telia Centrex IP Administratörswebb Handbok Telia Centrex IP Administratörswebb Handbok 2 Handbok Telia Centrex IP Administratörswebb Du hittar alltid senaste versionen av denna handbok på https://ipac.telia.com

Läs mer

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion

Webbteknik. Innehåll. Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender. En kort introduktion Webbteknik En kort introduktion Innehåll Historisk återblick Teknisk beskrivning Märkspråk Standardisering Trender 1 Historisk återblick 89 CERN Tim Berners Lee Ett plattformsoberoende sätt att sprida

Läs mer

Att bygga enkla webbsidor

Att bygga enkla webbsidor Nivå 1 Att bygga enkla webbsidor All Code Clubs must be registered. Registered clubs appear on the map at codeclubworld.org - if your club is not on the map then visit jumpto.cc/18cplpy to find out what

Läs mer

Filleveranser till VINN och KRITA

Filleveranser till VINN och KRITA Datum Sida 2017-04-25 1 (10) Mottagare: Uppgiftslämnare till VINN och KRITA Filleveranser till VINN och KRITA Sammanfattning I detta dokument beskrivs översiktligt Vinn/Kritas lösning för filleveranser

Läs mer

Joomla CMS Del 2 av 2

Joomla CMS Del 2 av 2 JOOMLA 3 CMS GRUNDKURS DEL 2 AV 2 Innehåll Extern Struktur Menyer och Sidor Användare och Åtkomstnivåer Skapa en sida som kräver inloggning Moduler och Positioner Sökmotor och undermenyer Copyright Mahmud

Läs mer

Bedragarens mål Att få den anställda att föra över medel eller information till bedragaren.

Bedragarens mål Att få den anställda att föra över medel eller information till bedragaren. Säkerhetsenheten Informationssäkerhet Christian Nähl 2019-01-22 Vanliga bedrägerier så skyddar du dig Här är en lista på några av de vanligaste typerna av bedrägeri. Du får råd och tips om hur du undviker

Läs mer

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning

Generell säkerhet. Loggning - Hur mycket ska man logga? Inloggningsrutinerna i Unix. Loggning fortsättning Generell säkerhet Här finns det inga direkta rätt eller fel. Snarare saker man bör tänka på när man implementerar ett program. Kort sagt: Efter att du kommit på hur du tänkt göra, sov på saken och tänk

Läs mer

Åtkomst till Landstingets nät via Internet

Åtkomst till Landstingets nät via Internet Åtkomst till Landstingets nät via Internet https://landstingetsormland.se/distansarbete 1 (12) Innehåll 1 Så fungerar PointSharp app eller dosa...3 1.1 Support...3 2 Lägg till Webaccess.dll.se som en tillförlitlig

Läs mer

Modul 8 Hantering av indata

Modul 8 Hantering av indata Modul 8 Hantering av indata Indata De flesta webbplatser idag tillåter användare att mata in data Utan denna möjlighet hade inte webben varit vad den är idag Tyvärr innebär detta stora säkerhetsrisker

Läs mer

Det fasta innehållet finns på sidor och kan inte ändras av den som har rollen författare.

Det fasta innehållet finns på sidor och kan inte ändras av den som har rollen författare. Allmänt om hemsidan och Wordpress Brantevik.se är baserad på Wordpress (WP). Från Wickipedia: Wordpress, ofta versaliserat WordPress, är ett blogg- och innehållshanteringssystem. Det distribueras under

Läs mer

Webbprogrammering, grundkurs 725G54

Webbprogrammering, grundkurs 725G54 Webbprogrammering, grundkurs 725G54 Lab 4, 5 ERD PHP + MySQL Återblick Idag Sessions PHP och MySQL för samband Lab 6 725G54: Genomgång projektuppgift Avstämning av kursmål Om sessions På IDA måste ni göra

Läs mer

Lathund. Skolverkets behörighetssystem för e-tjänster. Rollen rektor

Lathund. Skolverkets behörighetssystem för e-tjänster. Rollen rektor Information 2014-12-03 1 (14) Lathund Skolverkets behörighetssystem för e-tjänster Rollen rektor Postadress: 106 20 Stockholm Besöksadress: Fleminggatan 14 Telefon: 08-527 332 00 vx Fax: 08-24 44 20 skolverket@skolverket.se

Läs mer

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

Metoder för datasäkerhet. Vad handlar en sådan kurs om??? Metoder för datasäkerhet Vad handlar en sådan kurs om??? Vad avses då media rapporterar om datasäkerhet? Oftast resultat av brister i säkerheten Allt möjligt av helt olika karaktär, som Försvunna viktiga

Läs mer

Åtkomst Du kommer till ditt system via en webblänk som erhålles från oss. Via denna länk ges tillgång till sökning i bibliotekets katalog.

Åtkomst Du kommer till ditt system via en webblänk som erhålles från oss. Via denna länk ges tillgång till sökning i bibliotekets katalog. Handledning för BIBBLAN bibliotekssystem BIBBLAN är ett svensktutvecklat biblioteksprogram helt webbaserat, som innebär att man endast behöver en uppkopplad dator mot nätet. Man slipper dessutom tänka

Läs mer

Föreläsning 6 Databaser och säkerhet

Föreläsning 6 Databaser och säkerhet Databasbaserad publicering Föreläsning 6 1 Föreläsning 6 Databaser och säkerhet & Läs kapitel 13 i Databasteknik och kapitel 9 i boken PHP & MySQL: Novice to Ninja Databasbaserad publicering Föreläsning

Läs mer

Byggsektorns Miljöberäkningsverktyg Användarmanual

Byggsektorns Miljöberäkningsverktyg Användarmanual IVL Svenska Miljöinstitutet Byggsektorns Miljöberäkningsverktyg Användarmanual Version 1.1 December 17, 2018 Författare: Anders Sidvall Nils Boberg 12/17/2018 Page 1 Innehållsförteckning INSTALLERA BYGGSEKTORNS

Läs mer

Tillämpad programmering CASE 1: HTML. Ditt namn

Tillämpad programmering CASE 1: HTML. Ditt namn Tillämpad programmering CASE 1: HTML Ditt namn 18 [HTML] Din handledare vill se din skicklighet i att använda HTML-koden. Du ska utveckla en webbplats om ditt intresse, inriktning eller gymnasiearbete.

Läs mer

Säker programmering - Java

Säker programmering - Java Säker programmering - Java Information är en värdefull tillgång i dagens värld och en effektiv hantering sätter höga säkerhetskrav på medarbetarna. Säker programmering - Java Nowsec säkerhetsgranskar dagligen

Läs mer

Installationsanvisning. Dokumenttyp Installationsanvisning Område Boss med delad databas

Installationsanvisning. Dokumenttyp Installationsanvisning Område Boss med delad databas Ort och datum Ort och datum Namn Namn Magnus Einarsson/+46 (0)+46 54 291742 2010-06-29 1.0 1 (5) Innehållsförteckning 3 1 Inledning 3 1.1 Introduktion... 3 1.2 Revisionshistoria... 3 1.3 Referenser...

Läs mer

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php

Alla filer som bearbetar PHP script ska avslutas med ändelsen.php, exempelvis ska en indexsida till en hemsida heta index.php Introlektion PHP är ett av de enklare språken att lära sig just pga. dess dynamiska struktur. Det används för att bygga upp båda stora och mindre system. Några vanliga system som använder sig av PHP är

Läs mer

Skydd av personuppgifter för användare som registrerats av EU-kommissionens identitetshanteringstjänst (Identity Management Service)

Skydd av personuppgifter för användare som registrerats av EU-kommissionens identitetshanteringstjänst (Identity Management Service) Skydd av personuppgifter Skydd av personuppgifter för användare som registrerats av EU-kommissionens identitetshanteringstjänst (Identity Management Service) 1. Vad är identitetshanteringstjänsten? EU-kommissionens

Läs mer

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors 1ME323 Webbteknik 3 Lektion 6 API Rune Körnefors Medieteknik 1 2019 Rune Körnefors rune.kornefors@lnu.se Agenda API (Application Programming Interface) Mashup Flickr API Google Maps API Labb 6 2 API (Application

Läs mer

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Klient/server Översikt Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning. Lektion 1: Webbtekniker från Microsoft Microsoft webbtekniker. ASP.NET. Klientsidan. Internet Information Server.

Läs mer

Dataintrång hos Dataföreningen. Annica Bergman Dataföreningen i Sverige Internetdagarna 21 oktober 2008

Dataintrång hos Dataföreningen. Annica Bergman Dataföreningen i Sverige Internetdagarna 21 oktober 2008 Dataintrång hos Dataföreningen Annica Bergman Dataföreningen i Sverige Internetdagarna 21 oktober 2008 Dataföreningen i Sverige Dataföreningens verksamhet omfattar drygt 26 000 medlemmar, fördelade på

Läs mer

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

Datasäkerhet. Informationsteknologi sommarkurs 5p, 2004. Agenda. Slideset 10. Hot mot datorsystem. Datorsäkerhet viktigare och viktigare. Informationsteknologi sommarkurs 5p, 2004 Mattias Wiggberg Dept. of Information Technology Box 337 SE751 05 Uppsala +46 18471 31 76 Collaboration Jakob Carlström Datasäkerhet Slideset 10 Agenda Hot mot

Läs mer

Introduktion till protokoll för nätverkssäkerhet

Introduktion till protokoll för nätverkssäkerhet Tekn.dr. Göran Pulkkis Överlärare i Datateknik Introduktion till protokoll för nätverkssäkerhet Innehåll Varför behövs och hur realiseras datasäkerhet? Datasäkerhetshot Datasäkerhetsteknik Datasäkerhetsprogramvara

Läs mer

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

EIT060 Datasäkerhet - Projekt 2. Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 EIT060 Datasäkerhet - Projekt 2 Jacob Ferm, dt08jf0 Johan Paulsson, dt08jp8 Erik Söderqvist, dt08es8 Magnus Johansson, dt08mj9 26 februari 2011 Innehåll 1 Introduktion 1 2 SSL 1 2.1 Anslutningsprocessen.........................

Läs mer

Säkerhet. Säker kommunikation - Nivå. Secure e-mail. Alice wants to send secret e-mail message, m, to Bob.

Säkerhet. Säker kommunikation - Nivå. Secure e-mail. Alice wants to send secret e-mail message, m, to Bob. Säkerhet Förra gången Introduktion till säkerhet och nätverkssäkerhet Kryptografi Grunder Kryptografiska verktygslådan Symmetriska algoritmer Envägs hashfunktioner Asymmetriska algoritmer Digitala signaturer

Läs mer

1 Installationsinstruktioner

1 Installationsinstruktioner 1 Installationsinstruktioner 1.1 Förbereda installationen Kontrollera systemkraven. Försäkra dig om att din dators hårdvara uppfyller de systemkrav som är specificerade. Vid installering av Engineering

Läs mer

DNSSec. Garanterar ett säkert internet

DNSSec. Garanterar ett säkert internet DNSSec Garanterar ett säkert internet Vad är DNSSec? 2 DNSSec är ett tillägg i Domain Name System (DNS), som säkrar DNS-svarens äkthet och integritet. Tekniska åtgärder tillämpas vilket gör att den dator

Läs mer

teknisk manual Direktbetalning handelsbanken.se/e-handel

teknisk manual Direktbetalning handelsbanken.se/e-handel Direktbetalning handelsbanken.se/e-handel Innehållsförteckning Beskrivning av tjänsten...3 Direktbetalning...4 Från företaget till Handelsbanken...4 Från Handelsbanken till företaget...6 Betalningskontroll...8

Läs mer

ico-worker.com Användarvillkor och andra saker som du bör känna till för att kunna vara säker online.

ico-worker.com Användarvillkor och andra saker som du bör känna till för att kunna vara säker online. ico-worker.com Användarvillkor och andra saker som du bör känna till för att kunna vara säker online. Vi har alla ansvar för säkerheten En del av IKEA andan är att Jag gör lite grann, du gör lite grann,

Läs mer

Dyna Pass. Wireless Secure Access

Dyna Pass. Wireless Secure Access Dyna Pass Wireless Secure Access Säkerheten kring lösenord är ofta debatterad och det finns ett antal viktiga frågor man bör ställa sig. Några exempel på detta är: Hur stor risk ligger i den mänskliga

Läs mer

Stockholm Skolwebb. Information kring säkerhet och e-legitimation för Stockholm Skolwebb. skolwebb.stockholm.se

Stockholm Skolwebb. Information kring säkerhet och e-legitimation för Stockholm Skolwebb. skolwebb.stockholm.se S Stockholm Skolwebb Information kring säkerhet och e-legitimation för Stockholm Skolwebb Innehållsförteckning Säkerhet i Stockholm Skolwebb... 3 Roller i Stockholm Skolwebb... 3 Hur definieras rollerna

Läs mer

Integritetspolicy SwedOffice.se

Integritetspolicy SwedOffice.se Integritetspolicy SwedOffice.se Introduktion Detta dokument förklarar hur vi samlar in, lagrar, skyddar och använder personuppgifter. Med begreppet personuppgift syftar vi till upplysningar som direkt

Läs mer

Fr om version ser inloggningen med HogiaID lite annorlunda ut i Hogias Ekonomisystem

Fr om version ser inloggningen med HogiaID lite annorlunda ut i Hogias Ekonomisystem Fr om version 2018.2 ser inloggningen med HogiaID lite annorlunda ut i Hogias Ekonomisystem Vad är ett HogiaID? Ett Hogia Identity (HogiaID) är en unik identitet för en användare av ett eller flera Hogia-system.

Läs mer

Bordermail instruktionsmanual

Bordermail instruktionsmanual Bordermail instruktionsmanual Du kan själv skapa upp till 4 nya e-postadresser via självadministrationssidorna Du kan läsa och skicka e-post på 2 sätt För att komma till självadministrationssidorna öppna

Läs mer

ANVÄNDARMANUAL HUR INSTALLERAR JAG MOBILEPASS PÅ MIN TELEFON ELLER DATOR

ANVÄNDARMANUAL HUR INSTALLERAR JAG MOBILEPASS PÅ MIN TELEFON ELLER DATOR ANVÄNDARMANUAL HUR INSTALLERAR JAG MOBILEPASS PÅ MIN TELEFON ELLER DATOR Dokumentet beskriver hur anställda på Region Halland, samt externa samarbetspartners, installera sin MobilePASS app. Utfärdat av:

Läs mer

Cipher Suites. Rekommendationer om transportkryptering i e-tjänster

Cipher Suites. Rekommendationer om transportkryptering i e-tjänster Cipher Suites Rekommendationer om transportkryptering i e-tjänster Innehåll 1. Bakgrund och syfte... 2 2. Revisionshistorik... 2 3. Inledning... 2 3.1 Cipher suites... 2 4. Protokoll för transportkryptering...

Läs mer

Skapa aktörer och roller i Nationell katalog för produkter och avtal

Skapa aktörer och roller i Nationell katalog för produkter och avtal Skapa aktörer och roller i Nationell katalog för produkter och avtal Till leverantörer som arbetar i Nationell katalog för produkter och avtal För att kunna arbeta i Nationell katalog för produkter och

Läs mer

Foto: Björn Abelin, Plainpicture, Folio bildbyrå Illustrationer: Gandini Forma Tryck: Danagårds Grafiska, 2009

Foto: Björn Abelin, Plainpicture, Folio bildbyrå Illustrationer: Gandini Forma Tryck: Danagårds Grafiska, 2009 Om trådlösa nät 2 Foto: Björn Abelin, Plainpicture, Folio bildbyrå Illustrationer: Gandini Forma Tryck: Danagårds Grafiska, 2009 Om trådlösa nät Trådlösa nät för uppkoppling mot Internet är vanliga både

Läs mer

Det finns olika typer av Cookies och pixlar

Det finns olika typer av Cookies och pixlar EntryDraft s cookiepolicy Entrydraft är ett dotterbolag till GetIT Nordic och precis som dem använder vi cookies, tracking pixels och liknande teknologier på vår hemsida www.entrydraft.se för att samla

Läs mer

Västerviks kommuns E-portal

Västerviks kommuns E-portal Västerviks kommuns E-portal Inledning Genom E-portalen får du åtkomst till vissa program och funktioner i kommunens IT-miljö utan att vara ansluten till kommunens interna nätverk. E-portalen är en säker

Läs mer

Programbeskrivning. Chaos på Web. Version 1.0 2005-09-21

Programbeskrivning. Chaos på Web. Version 1.0 2005-09-21 2005-09-21 Programbeskrivning Chaos på Web Version 1.0 Chaos systems AB Tel. 08-410 415 00 e-post: info@chaos.se Solna strandväg 18, 6tr Fax. 08-29 06 66 http://www.chaos.se 171 54 SOLNA Reg. nr: 556476-6813

Läs mer

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR

MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR MANUAL FÖR JÄGAREFÖRBUNDETS KRETSAR I följande dokument hittar ni information om hur ni administrerar er nya hemsida. Manualen går endast igenom grundläggande administration. För mer avancerad redigering

Läs mer

LUPstudentpapers. Manual Reviewer

LUPstudentpapers. Manual Reviewer LUPstudentpapers Manual Reviewer 1:1 10/3 2009 Manual Reviewer Om du vill granska uppsatser vid din institution men ännu inte är registrerad som Reviewer, vänligen kontakta Publicera@lub.lu.se. Om du redan

Läs mer

Extern åtkomst Manual för leverantör

Extern åtkomst Manual för leverantör Extern åtkomst Manual för leverantör 1. Webbresurserna i portalen körs i klientlöst läge och kräver ingen klient för att starta. Däremot krävs det att Citrix Receiver finns installerat om man ska köra

Läs mer

DGC IT Manual Citrix Desktop - Fjärrskrivbord

DGC IT Manual Citrix Desktop - Fjärrskrivbord DGC IT Manual Citrix Desktop - Fjärrskrivbord Ver 130912 Innehåll 1 Använda Citrix Desktop - Fjärrskrivbord... 2 2 Inställningar i Fjärrskrivbordet... 7 Kontrollera att de applikationer du har tillgång

Läs mer

E V - C E R T I F I K AT: VA R F Ö R A N V Ä N D A D E N S TA R K A S T E S S L AUTENTISERINGSPROCESS?

E V - C E R T I F I K AT: VA R F Ö R A N V Ä N D A D E N S TA R K A S T E S S L AUTENTISERINGSPROCESS? E V - C E R T I F I K AT: VA R F Ö R A N V Ä N D A D E N S TA R K A S T E S S L AUTENTISERINGSPROCESS? D i n t a l a r e i d a g J o n a t h a n A g e r i u s W e b S e c u r i t y C o n s u l t a n t

Läs mer

KOMMUNIKATIONS- OCH INTEGRITETSPOLICY

KOMMUNIKATIONS- OCH INTEGRITETSPOLICY KOMMUNIKATIONS- OCH INTEGRITETSPOLICY I denna policy vill vi informera dig om vilken typ, omfattning och i vilket syfte vi samlar in personuppgifter när du använder vår hemsida och våra sociala media kanaler.

Läs mer

Åtkomst till Landstingets nät via Internet

Åtkomst till Landstingets nät via Internet Åtkomst till Landstingets nät via Internet http://landstingetsormland.se/extranet 1 (12) Innehåll 1 Så fungerar PointSharp-dosan/-appen... 3 1.1 Support... 3 2 Lägg till Webaccess.dll.se som en tillförlitlig

Läs mer

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet 2009-08-09 1. Introduktion till webbprogrammering Webbprogrammering består av ett antal

Läs mer

Anvisningar för inkoppling till Mikrodataåtkomst vid SCB

Anvisningar för inkoppling till Mikrodataåtkomst vid SCB Anvisningar för inkoppling till Mikrodataåtkomst vid SCB Välkommen till systemet för mikrodataåtkomst, MONA. Denna handledning hjälper dig att snabbt komma igång och arbeta med MONA-systemet. Om du stöter

Läs mer

Koppla din Gavlenetmail till mobilen/surfplattan

Koppla din Gavlenetmail till mobilen/surfplattan Koppla din Gavlenetmail till mobilen/surfplattan Vill du använda din Gavlenetmail på din mobil eller surfplatta? För tillfället stödjer våra mailservrar enbart mottagande av mail till mobil/surfplatta,

Läs mer

3.2 1H[W*HQHUDWLRQ6HFXULW\ Användarmanual

3.2 1H[W*HQHUDWLRQ6HFXULW\ Användarmanual 3.2 1H[W*HQHUDWLRQ6HFXULW\ Användarmanual ,QQHKnOOVI UWHFNQLQJ,QVWDOODWLRQDY931NOLHQW 'DWRUHUVRPLQJnULHQ)DVW7UDFNPLOM $QYlQGDUHPHGNRQWRL9+6RFKGDWRUPHG:LQGRZV;3 $QYlQGDUHPHGNRQWRLDQQDQGRPlQlQ9+6HOOHUGDWRUPHG:LQGRZV

Läs mer

ANVÄNDARMANUAL HUR INSTALLERAR JAG MOBILEPASS PÅ MIN TELEFON ELLER DATOR

ANVÄNDARMANUAL HUR INSTALLERAR JAG MOBILEPASS PÅ MIN TELEFON ELLER DATOR ANVÄNDARMANUAL HUR INSTALLERAR JAG MOBILEPASS PÅ MIN TELEFON ELLER DATOR Dokumentet beskriver hur anställda på Region Halland, samt externa samarbetspartners, installera sin MobilePASS app. Utfärdat av:

Läs mer

Guide för Google Cloud Print

Guide för Google Cloud Print Guide för Google Cloud Print Version A SWE Beskrivning av anmärkningar Följande anmärkning används i den här bruksanvisningen: Information om hur du agerar i en viss situation eller hur du använder en

Läs mer

FÖRHINDRA DATORINTRÅNG!

FÖRHINDRA DATORINTRÅNG! FÖRHINDRA DATORINTRÅNG! Vad innebär dessa frågeställningar: Hur görs datorintrång idag Demonstration av datorintrång Erfarenheter från sårbarhetsanalyser och intrångstester Tolkning av rapporter från analyser

Läs mer

TELIA CENTREX IP ADMINISTRATÖRSWEBB HANDBOK

TELIA CENTREX IP ADMINISTRATÖRSWEBB HANDBOK TELIA CENTREX IP ADMINISTRATÖRSWEBB HANDBOK Telia Centrex IP Administratörswebb Handbok 2 Handbok Telia Centrex IP Administratörswebb Du hittar alltid senaste versionen av denna handbok på https://ipac.telia.com

Läs mer

Använda Outlook 2003 mot Exchange

Använda Outlook 2003 mot Exchange Använda Outlook 2003 mot Exchange Jens Granlund 6.4.2006 Exchange kalendern kan användas via webben (Outlook Web Access) på adressen https://exchange.vasa.abo.fi/exchange eller om du har en mobiltelefon

Läs mer

PREMIUM COMAI WEBBKALENDER

PREMIUM COMAI WEBBKALENDER 1 PREMIUM COMAI WEBBKALENDER 2.0 ADMINISTRATÖR utvecklar och säljer anpassningsbara smartphone 2 Innehåll 1 Inledning... 3 1.1 Terminologi... 3 1.2 Teknisk kravspecifikation... 4 1.3 Behörigheter... 4

Läs mer

dit06omr@cs.umu.se 12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE

dit06omr@cs.umu.se 12 juni 2009 Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE Projektplan Webb-baserat bokningssystem för flyg Kurs: Applikationsutveckling för internet, TFE VT-09 Innehållsförteckning Inledning & problembeskrivning...1 Systembeskrivning...2 Affärsobjekt...2 Databasen...4

Läs mer

DIG IN TO Nätverkssäkerhet

DIG IN TO Nätverkssäkerhet DIG IN TO Nätverkssäkerhet CCNA 1 1.- Inledning 1a.- Risker på Internet 1b.- Säkerhetsområde 1c.- Attack och försvasmetoder 2.- Nätverksinfrastruktur 2a.- Säkerhetskonfigurationer 2b.- SSH konfiguration

Läs mer

Slutrapport YUNSIT.se Portfolio/blogg

Slutrapport YUNSIT.se Portfolio/blogg Slutrapport YUNSIT.se Portfolio/blogg RICKARD HANSSON 2012-06-04 Abstrakt Rapporten du har i din hand kommer handla om mitt projektarbete som jag genomfört under tio veckor för utbildningen Utvecklare

Läs mer

Det här dokumentet går kortfattat igenom registrerings- och ansökningsprocessen.

Det här dokumentet går kortfattat igenom registrerings- och ansökningsprocessen. Det här dokumentet går kortfattat igenom registrerings- och ansökningsprocessen. 1. Webbläsare Följande versioner av webbläsare stöds: Netscape från version 7.x Firefox från version 1.x Internet Explorer

Läs mer

Om du misstänker att värdens privata nyckel har manipulerats kan du skapa en ny genom att utföra följande steg:

Om du misstänker att värdens privata nyckel har manipulerats kan du skapa en ny genom att utföra följande steg: Bästa säkerhetspraxis för Symantec pcanywhere I det här dokumentet beskrivs ändringarna för förbättrad säkerhet i pcanywhere 12.5 SP4 och pcanywhere Solution 12.6.7, hur huvuddragen i dessa förbättringar

Läs mer

SÄKERHET KUNSKAPER OM SÄKERHET OCH FÖRMÅGA ATT IDENTIFIERA OCH MOTARBETA ATTACKER

SÄKERHET KUNSKAPER OM SÄKERHET OCH FÖRMÅGA ATT IDENTIFIERA OCH MOTARBETA ATTACKER SÄKERHET KUNSKAPER OM SÄKERHET OCH FÖRMÅGA ATT IDENTIFIERA OCH MOTARBETA ATTACKER ANSLUTA=RISK Fast bredband attraktiv plattform att angripa från Mobilt bredband/trådlösa nätverk/bluetooth lätt att ta

Läs mer

Säkra Designmönster (Secure Design Patterns)

Säkra Designmönster (Secure Design Patterns) Säkra Designmönster (Secure Design Patterns) Marcus Bendtsen Institutionen för Datavetenskap (IDA) Avdelningen för Databas- och Informationsteknik (ADIT) Säkra designmönster Beskrivningar eller mallar

Läs mer

WP-Edit. Robin Larsson Martin Davik. Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet

WP-Edit. Robin Larsson Martin Davik. Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet WP-Edit Robin Larsson Martin Davik 2014 Examensarbete, grundnivå, 15 hp Datavetenskap Internetteknologprogrammet Handledare: Anders Jackson Examinator: Carina Pettersson WP-Edit av Robin Larsson Martin

Läs mer

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det Behörighetssystem Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det Systemet måste kunna registrera vilka resurser, d v s data och databärande

Läs mer

Vitec Connect. Teknisk beskrivning REVIDERAT SENAST: VITEC. VITEC Affärsområde Mäklare

Vitec Connect. Teknisk beskrivning REVIDERAT SENAST: VITEC. VITEC Affärsområde Mäklare VITEC Vitec Connect Teknisk beskrivning REVIDERAT SENAST: 2016-02-10 VITEC Affärsområde Mäklare www.vitec.se/maklare info.maklare@vitec.se GÖTEBORG: REDEGATAN 1 B, 426 77 V. FRÖLUNDA VÄXEL: 031-360 61

Läs mer