DV2595 Programvarusäkerhet

Fristående kurs, 7,5 Högskolepoäng, Avancerad nivå, höstterminen 2020

Ansök

Anmäl dig via antagning.se

Kursens huvudsakliga syfte är att förstå samt hantera olika programvarusäkerhetsproblem i en säker och kontrollerad miljö. Riskabla programmeringsmönster som kan utnyttjas för illasinnade syften kan orsaka betydande ekonomiska förluster och anseende skador för organisationer som använder eller utvecklar sårbara produkter. De kunskaper och färdigheter som förmedlas under kursens gång avser att begränsa ovannämnda risker och är därför viktiga för moderna arbetsplatser där professionell programvara utvecklas.

Fakta

  • Undervisningsform: Distans, blandad undervisningstid, deltid 25%
  • Anmälningskod: BTH-D5816
  • Studietid: 2020 vecka 36 till 2021 vecka 02
  • Nivå: A1N
  • Anmälan: Anmäl dig via antagning.se
  • Språk: Undervisningen ges på engelska.
  • Ort: Hela eller delar av undervisningen bedrivs på distans.
  • Antal träffar: Obligatoriska: inga, Frivilliga: inga
  • Huvudområde: Datavetenskap
  • Kursplan: Ladda ner
  • Välkomstbrev: Länk till välkomstbrev från ansvarig lärare finns här senast 3 veckor innan kursstart.
  • Förkunskapskrav: För tillträde till kursen krävs minst 120 hp varav minst 90 hp inom det tekniska området och minst 2 års yrkeserfarenhet inom område som är relaterat till mjukvaruintensiv produkt och/eller tjänsteutveckling (visas exempelvis genom intyg från arbetsgivare.)

Innehåll

Studenten kommer att lära sig förstå motståndarens arbetssätt och känna igen riskabla programmeringsmönster som skall undvikas. Under kursen kommer studenten att bli bekant med olika säkerhetsmekanismer som finns inbyggda i operativsystem eller som tillhandahålls av specifika utvecklingverktyg. Studenten kommer även lära sig att använda verktyg och ramverk för analys och instrumentering av både kod och binärer i syfte att detektera sårbarheter samt skydda programvara. Kursen omfattar följande moment:
• Bakgrund till programvarusäkerhet och orsaker till sårbarheter i programvara
• Snabb introduktion till assembler programmering för x86-32/64 bitar
• Hantering av sårbarheter i minneshantering samt i systemanrop och anrop till biblioteksfunktioner
• Osäker hantering av indata och åtgärder för att motverka detta
• Verktyg och ramverk för analys och instrumentering av källkod och binärer
• Spjutspetsforskning inom programvarusäkerhet

Lärandemål

Kunskap och förståelse
• Kunna förklara hur exploateringstekniker för sårbarheter i programvara fungerar.
• Kunna förklara hur skydd mot specifika exploateringstekniker i programvara fungerar.
Färdighet och förmåga
• Kunna granska exekverande programvarusystem och dess källkod med syfte att hitta säkerhetsbrister.
• Kunna tillämpa de verktyg och ramverk för automatisk detektering av sårbarheter som presenterats under kursens gång.
Värderingsförmåga och förhållningssätt
• Kunna värdera begränsningar för valda åtgårder och skyddmekanismer i förhållande till en specifik sårbarhet eller säkerhetsbrist.

Kurslitteratur och övriga läromedel

Material såsom forskningsartiklar och annat kursmaterial tillhandahålls på kursens lärplattform, och rekommendationer för vidare läsning.

Kurslitteratur och övriga läromedel

Material såsom forskningsartiklar och annat kursmaterial tillhandahålls på kursens lärplattform, och rekommendationer för vidare läsning.

Lärande och undervisning

Undervisningen sker i form av online föreläsningar, inspelat videomaterial, tillsammans med skrivet material,
litteratur och forskningslitteratur. Under kursens gång kommer kommunikation, feedback och diskussioner
med lärare och andra deltagare ske via e-post, kursens lärplattform och via online möten.

Lärare

Examinator
  1. Dragos Ilie
Kursansvarig
  1. Dragos Ilie

Bedömning

Betyg

Kursen bedöms med betygen G Godkänd, UX Otillräckligt, komplettering krävs, U Underkänd.

Tentamina

Du kan läsa mer om tentamen i Studentportalen och där anmäler du dig till de flesta tentamina.


Det kan finnas andra planerade examinationstillfällen. Information om dem finns i lärplattformen Canvas eller på annan plats som kursansvarig hänvisar till.

Kursvärdering

Kursansvarig ansvarar för att studenternas synpunkter på kursen systematiskt och regelbundet inhämtas och att resultaten av utvärderingar i olika former påverkar kursens utformning och utveckling.