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
Modul | LP1 | LP2 | LP3 | LP4 | Sommar | Ej LP | Tentamensdatum |
|---|---|---|---|---|---|---|---|
| 0112 Projekt 4,5 hp Betygsskala: TH | 4,5 hp | ||||||
| 0212 Laboration 3 hp Betygsskala: UG | 3 hp |
I program
- MPALG - Datavetenskap - algoritmer, programspråk och logik, Årskurs 1 (obligatoriskt valbar)
- MPCSC - Datorer, system och cybersäkerhet, Årskurs 1 (obligatoriskt valbar)
- MPSOF - Software engineering and technology - utveckling och implementering av mjukvara, Årskurs 2 (valbar)
Examinator
- Andrei Sabelfeld
- Professor (N2), Computing Science, Data- och informationsteknik
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 6Sö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)
- 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
- 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.- Grunder i språkbaserad säkerhet
- Introduktion till språkbaserad säkerhet
- Principer för informationsflödessä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
Litteratur
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.
