1 / 22

Design av sikre web-applikasjoner

Design av sikre web-applikasjoner. Vidar Kongsli , Bekk Consulting AS. Tekna - Risiko og sikkerhet i IKT-systemer – 12. mars 2008. Vidar Kongsli. Manager i BEKK Før 1.1.2008: Fagleder for sikkerhet Etter 1.1.2008: Fagleder for kvalitet og testing http://www.kongsli.net/blog.cg i.

nira
Download Presentation

Design av sikre web-applikasjoner

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 1.1.2008: Fagleder for kvalitet og testing • http://www.kongsli.net/blog.cgi 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 Risiko og sikkerhet i IKT-systemer 2008

  8. Hva er gyldige data? • 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: http://www.foo.bar/readfile?file=store/log-2008-03-07-1.txt • Eksempel: http://www.foo.bar/transaction?toAccount=4444.11.55555 Risiko og sikkerhet i IKT-systemer 2008

  13. Interne referanser – mottrekk – hvor i arkitekturen? Web-applikasjon Original  Ref. Ref  Original Risiko og sikkerhet i IKT-systemer 2008

  14. Hva er eksekverbar kode? – Command/SQLinjection • 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: • ”Metacharacterescaping” – data sendt til subsystem • Principleofleastprivilege – 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 • Preparedstatements, storedprocedures 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 Test” ”XSS”);</script><” Test • 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><"">... 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 siterequestforgery Sluttbruker Web-server Back end/Database Web-server Sluttbruker Risiko og sikkerhet i IKT-systemer 2008

  21. Crosss siterequestforgery - 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 • Metacharacterescaping • Håndter kontrolltegn for ulike subsystemer – databaser, nettlesere Risiko og sikkerhet i IKT-systemer 2008

More Related