Kursplan för Språkbaserad datasäkerhet

Kursplan fastställd 2026-02-10 av programansvarig (eller motsvarande).

Kursöversikt

  • Engelskt namnLanguage-based security
  • KurskodTDA602
  • Omfattning7,5 Högskolepoäng
  • ÄgareMPCSC
  • UtbildningsnivåAvancerad nivå
  • HuvudområdeDatateknik, Informationsteknik
  • InstitutionDATA- OCH INFORMATIONSTEKNIK
  • BetygsskalaTH - Mycket väl godkänd (5), Väl godkänd (4), Godkänd (3), Underkänd

Kurstillfälle 1

  • Undervisningsspråk Engelska
  • Anmälningskod 42123
  • Max antal deltagare120 (minst 10% av platserna reserveras för utbytesstudenter)
  • Sökbar för utbytesstudenterJa
  • Endast studenter med kurstillfället i programplan.

Poängfördelning

0112 Projekt 4,5 hp
Betygsskala: TH
4,5 hp
0212 Laboration 3 hp
Betygsskala: UG
3 hp

I program

Examinator

Behörighet

Grundläggande behörighet för avancerad nivå
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från kravet

Särskild behörighet

Engelska 6
Sökande med en programregistrering på ett program där kursen ingår i programplanen undantas från kraven

Kursspecifika förkunskaper

För att delta i kursen krävs att studenten fullgjort
  • Kandidatexamen inom datavetenskap eller motsvarande.
  • 15 hp programmeringskurser krävs.
  • 7,5 hp inom IT-säkerhet eller motsvarande krävs.

Syfte

De säkerhetsmekanismer som kan anses vara standard idag är inte tillräckliga för att skydda mot alla typer av attacker. Flertalet attacker sker på applikationsnivå genom att utnyttja fel och misstag i applikationen. Detta gör att attacken till viss del kan kringgå existerande skydd eftersom den körs med den attackerade applikationens rättigheter. Ett sätt att säkerställa att program är säkra är att använda programspråksmetoder för att analysera programmets källkod - en del av språkbaserad säkerhet. Språkbaserad säkerhet för med sig möjligheten att använda existerande metoder inom programanalys för att specificera och säkerställa säkerhetskrav.

Lärandemål (efter fullgjord kurs ska studenten kunna)

Kunskap och förståelse
  • tillämpa praktisk kunskap om säkerhet för moderna programmeringsspråk
  • påvisa djup kunskap om principerna bakom attacker på applikationsnivå (exempelvis om kapplöpningsproblem, buffertöverskridningsattacker, webbapplikationsattacker, hemliga kanaler och skadlig kod)
  • definiera språkbaserade skyddsmekanismer (exempelvis statisk och dynamisk kodanalys, programövervakning och användning av sandlådor)
Färdigheter och förmåga
  • identifiera säkerhetshot på applikations- och språknivå
  • specificera och argumentera för säkerhetspolicyer på applikations- och språknivå,
  • utforma och utvärdera säkerhet, tydlighet, användbarhet och effektivitet hos lösningar implementera sådana lösningar i uttrycksfulla programmeringsspråk
Värderingsförmåga och förhållningssätt
  • påvisa förmåga att bedöma vilka säkerhetsmekanismer som är lämpliga för ett givet scenario

Innehåll

Denna kurs kombinerar praktiskt och banbrytande forskningsmaterial. Kursen består av föreläsningar, labbar, övningar och projektpresentationer. Temat attack-sårbarhet försvar genomsyrar alla delar av kursen. 

Detaljerna av innehållet:
  • Grunder i språkbaserad säkerhet
    • Introduktion till språkbaserad säkerhet
    • Principer för informationsflödes­säkerhet
    • Saltzer & Schroeders designprinciper för skydd av information
  • Programanalys och säkerhetsmekanismer
    • Statisk analys och programtransformation
    • Referensmonitorer och verkställighetsmekanismer
    • Noninterference och säker multi-exekvering
  • Samtidighet och lågnivåattacker
    • Datastrider, slumpmässighet och determinism
    • TOCTOU-sårbarheter (time-of-check to time-of-use)
    • Buffertöverskridanden och minnessäkerhet
  • Applikations- och plattformsäkerhet
    • Databassäkerhet
    • Säkerhet i Android-applikationer
    • Upphovsrättsskydd och kodobfuskering
    • JavaScript-sandboxing
  • Webbsäkerhet och mjukvarusäkerhet
    • Säkerhet i webbapplikationer (OWASP Top 10)
    • Säkerhet i webbläsartillägg
    • Reguljära uttryck och säkerhet (inmatningsvalidering, ReDoS)
    • Säkerhetsverktyg och praktisk webbsäkerhet

Organisation

Kursen består av föreläsningar, gruppmöten och projektpresentationer.

Litteratur

Ingen specifik bok används för kursen. Kursmaterialet består av artiklar och olika elektroniska resurser.

Examination inklusive obligatoriska moment

För att bli godkänd på kursen krävs det att studenten färdigställer och blir godkänd på samtliga laborationer samt blir godkänd på det examinerande projektet, vilket innefattar både en presentation av projektet i klassen och en godkänd projektrapport.

Kursens examinator får examinera enstaka studenter på annat sätt än vad som anges ovan om särskilda skäl föreligger, till exempel om en student har ett beslut från Chalmers om riktat pedagogiskt stöd på grund av funktionsnedsättning.

Språkbaserad datasäkerhet | Chalmers