Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Design av sikre web-applikasjoner

Liknende presentasjoner


Presentasjon om: "Design av sikre web-applikasjoner"— Utskrift av presentasjonen:

1 Design av sikre web-applikasjoner
Vidar Kongsli, Bekk Consulting AS Tekna - Risiko og sikkerhet i IKT-systemer – 12. mars 2008

2 Vidar Kongsli Manager i BEKK Før 1.1.2008: Fagleder for sikkerhet
Etter : Fagleder for kvalitet og testing Risiko og sikkerhet i IKT-systemer 2008

3 Design av sikre web-applikasjoner
Hva er en ’sikker’ web-applikasjon? Fins det en ’sikker’ web-applikasjon? ”Design av tilstrekkelig sikre web-applikasjoner” Risiko og sikkerhet i IKT-systemer 2008

4 OWASP – 10 mest kritiske sikkerhetsfeil
Cross Site Scripting (XSS) Injection Flaws Malicious Code Execution Insecure Direct Object Reference Cross Site Request Forgery Information Leakage and Improper Error Handling Broken Authentication and Session Management Insecure Cryptographic Storage Insecure Communications Failure to Restrict URL Access Cross Site Scripting (XSS) Injection Flaws Malicious Code Execution Insecure Direct Object Reference Cross Site Request Forgery Information Leakage and Improper Error Handling Broken Authentication and Session Management Insecure Cryptographic Storage Insecure Communications Failure to Restrict URL Access Risiko og sikkerhet i IKT-systemer 2008

5 Tre kritiske spørsmål Hva er gyldige data? Hvor befinner dataene seg?
Hva er data og hva er eksekverbar kode? Risiko og sikkerhet i IKT-systemer 2008

6 En typisk web-arkitektur
Sluttbruker Web-server Back end/Database Sluttbruker Web-server Sluttbruker Risiko og sikkerhet i IKT-systemer 2008

7 Sikkerhetsbarrieren Data som sendes til klient
Åpent for lesing Åpent for endring Kan komme på avveie Gjelder for eksempel cookies eller skjulte HTML felter Unngå å måtte stole på data som kommer fra klienten Viewstate har vanligvis en mac Viewstate kan være kryptert Risiko og sikkerhet i IKT-systemer 2008

8 Hva er gyldige data? Input validating
Valider data som kommer fra utsiden av sikkerhetsbarriæren White-listing istedenfor black-listing Web-applikasjon Input validating Risiko og sikkerhet i IKT-systemer 2008

9 Data på avveie - Feilhåndtering
Risiko og sikkerhet i IKT-systemer 2008

10 Data på avveie – feilhåndtering – hvor i arkitekturen?
Vis en generisk feilside Logg feil/stacktrace etc. Web-applikasjon Output filter Risiko og sikkerhet i IKT-systemer 2008

11 Data på avveie - handlevognen
Brukeren kan manipulere data: Salgssummen i handlekurven sendes til nettleseren i en cookie eller som et skjult HTML-felt Brukeren setter salgssummen til 1 kr og gjennomfører kjøpet Ikke stol på data fra klienten Salgssummen lagres på serveren (i brukerens sesjon) Lag en saltet hash av salgssummen for å validere dataenes integritet Risiko og sikkerhet i IKT-systemer 2008

12 Data på avveie – interne referanser
Referanser til interne ressurser blir sendt til nettleseren Filnavn, primærnøkler i databasen, brukernavn, kontonummer Eksempel: Eksempel: Risiko og sikkerhet i IKT-systemer 2008

13 Interne referanser – mottrekk – hvor i arkitekturen?
Web-applikasjon Original  Ref. Ref  Original Ref. Original 982373… file/log.txt 324243… file/leg.txt Risiko og sikkerhet i IKT-systemer 2008

14 Hva er eksekverbar kode? – Command/SQL injection
Applikasjon klarer ikke å skille hva som er data og hva som er kode Ondsinnet bruker injiserer eksekverbar kode der applikasjonen forventer data Eksempler: SELECT * FROM User WHERE Username=”test” AND Password=”123” SELECT * FROM User WHERE Username=”Test” --” AND Password=”” Mottrekk: ”Metacharacter escaping” – data sendt til subsystem Principle of least privilege – begrense rettigheter i subsystem [xkcd.com] Test” -- Risiko og sikkerhet i IKT-systemer 2008

15 SQL Injection – mottrekk – hvor i arkitekturen?
SQL tolker ’ og % som kontrolltegn Output escaping Prepared statements, stored procedures Web-applikasjon Output escaping Risiko og sikkerhet i IKT-systemer 2008

16 Hva er eksekverbar kode? – Cross site scripting
Applikasjonen klarer ikke å skille hva som er data og hva som er kode Ondsinnet bruker injiserer eksekverbar kode der applikasjonen forventer data Også kjent som XSS og HTML-injection Utnytter metategn i HTML og/eller javascript Risiko og sikkerhet i IKT-systemer 2008

17 Hva er eksekverbar kode? – Cross site scripting (2)
Sluttbruker Web-server Ekstern server Ondsinnet bruker Risiko og sikkerhet i IKT-systemer 2008

18 Cross site scripting - Eksempel
Søkefelt Bruker søker på: test HTML: ...<input type="text" value="test">... Bruker søker på: test” HTML: ...<input type="text" value="test"">... Bruker søker på: test”><script>alert(”XSS”);</script><” HTML: ...<input type="text" value="test"><script>alert("XSS");</script><"">... Test Test” ”XSS”);</script><” Risiko og sikkerhet i IKT-systemer 2008

19 Cross site scripting – mottrekk – hvor i arkitekturen?
HTML-escaping av data før den sendes til nettleseren Benytt rammeverk Web-applikasjon Output escaping Risiko og sikkerhet i IKT-systemer 2008

20 Hva er eksekverbar kode? - Cross site request forgery
Sluttbruker Web-server Back end/Database Web-server Sluttbruker Risiko og sikkerhet i IKT-systemer 2008

21 Crosss site request forgery - mottrekk
Legg et unikt tall (nonce) i siden som sendes til klient Sjekk at verdien er den samme når siden postes tilbake ”De-luxe” versjonen: spør om sikkerhetskode for hver transaksjon Nettbanker Risiko og sikkerhet i IKT-systemer 2008

22 Tre kritiske spørsmål – om igjen
Hva er gyldige data? Input validation Hvor befinner dataene seg? Indirekte objektreferanser Ikke send unødvendig data til nettleseren Ikke send unødvendig feilinformasjon til nettleseren/brukeren Hva er data og hva er eksekverbar kode? JavaScript-eksekvering er kilde til XSS og XSRF Metacharacter escaping Håndter kontrolltegn for ulike subsystemer – databaser, nettlesere Risiko og sikkerhet i IKT-systemer 2008


Laste ned ppt "Design av sikre web-applikasjoner"

Liknende presentasjoner


Annonser fra Google