Software Security
Informatica en informatiekunde | 5 EC | Voor dit product gelden ingangseisen
Code IM0302
Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de begeleiding is ingeroosterd.

De cursus gaat over de beveiliging van software, waarbij technische, organisatorische en ethische aspecten worden belicht. Het doel van software security is ervoor te zorgen dat software vrij is van beveiligingslekken en correct blijft werken, ook als een kwaadwillende hacker deze probeert te misbruiken. De cursus bespreekt veelvoorkomende beveiligingsproblemen, de onderliggende oorzaken en oplossingen. Centraal staat de filosofie dat beveiliging niet achteraf gerepareerd moet worden, maar dat software zodanig ontwikkeld wordt dat problemen met beveiliging voorkomen worden.
In de cursus maakt u kennis met kwetsbaarheden zoals SQL-injectie, XSS en buffer overflows. U leert hoe u deze kwetsbaarheden kunt voorkomen tijdens het softwareontwikkelproces aan de hand van ontwerpprincipes, risicomanagement, risicoanalyse, statische codeanalyse en security-testen. De cursus besteedt ook aandacht aan security-aspecten van programmeertalen en programmeerplatformen en ethische aspecten van software security. Naast het bestuderen van theorie voert u diverse praktische opdrachten uit waarin u de beveiliging van applicaties onderzoekt en verbetert.

Algemeen

Inhoud

De cursus bestaat uit achttien leereenheden, gegroepeerd in vijf blokken.

Het eerste blok bevat een introductie tot software security. Hierin wordt een definitie van software security gegeven, worden basisbegrippen toegelicht en wordt uitgelegd hoe software security geïntegreerd kan worden in alle fasen van de softwareontwikkeling.

Het tweede blok behandelt een aantal veel voorkomende kwetsbaarheden in software. Er is aandacht voor beveiligingsproblemen rondom validatie van invoer en uitvoer van gegevens, die kunnen leiden tot SQL-injectie en XSS. Verder is er aandacht voor buffer overflows en exception handling. Het blok wordt afgerond met een praktische opdracht waarin u kwetsbaarheden in een webapplicatie opspoort en aangeeft welke mogelijkheden tot misbruik hierdoor mogelijk zijn.

Het derde blok is gewijd aan activiteiten die uitgevoerd worden in verschillende fasen van het softwareontwikkelproces om beveiligde software te creëren. Er is aandacht voor ontwerpprincipes, risicomanagement, risicoanalyse, statische codeanalyse en security-testen. Het blok bevat twee praktische opdrachten: het uitvoeren van een architectural risk analysis op een webapplicatie en het uitvoeren van een statische codeanalyse met behulp van een moderne tool.

In het vierde blok komen security-aspecten van programmeertalen en programmeerplatformen aan de orde komen. Er is aandacht voor safety van programmeertalen en diverse vormen van access control zoals sandboxing en informatieflowanalyse. Het blok wordt afgerond met een praktische opdracht waarin u access control toevoegt aan een webapplicatie.

In het vijfde blok staan ethische aspecten van software security centraal. Er wordt aandacht besteed aan ethiek van hacking, het publiceren over vulnerabilities en ethiek van security in onderwijs en onderzoek. Het blok wordt afgerond met een opdracht waarin u een ethisch vraagstuk verkent in een case studie.

Leerdoelen
Na het bestuderen van deze cursus wordt verwacht dat u:
- een aantal veelvoorkomende beveiligingsproblemen in software kent, waaronder buffer overflow en problemen gerelateerd aan invoer- en uitvoervalidatie zoals cross-site scripting;
- de onderliggende oorzaken van deze beveiligingsproblemen kent, gesitueerd in specifieke applicaties en applicatietypes, programmeertalen en -platformen en besturingssystemen;
- kunt aangeven welke activiteiten ('best practices') in het softwareontwikkelproces uitgevoerd moeten worden om beveiligde software te creëren, waaronder risicoanalyse en statische codeanalyse;
- principes en richtlijnen kunt geven om beveiligingsproblemen te voorkomen of te detecteren;
- taalgebaseerde en platformgebaseerde oplossingen kent zoals sandboxing;
- op verantwoorde wijze kunt omgaan met ethische aspecten rondom software security;
- een analyse kunt maken van een beveiligingsprobleem, de onderliggende oorzaak kunt aanduiden en oplossingen kunt aandragen;
- de voor- en nadelen van de verschillende oplossingen naast elkaar kunt zetten, vanuit technisch, organisatorisch en ethisch perspectief.

Aanmelden

Ingangseisen

Aanmelden is alleen mogelijk voor opleidingsstudenten die formeel zijn toegelaten tot de masteropleiding Computer Science of de masteropleiding Software Engineering.

Aanmelden

Aanmelden is alleen mogelijk voor studenten die formeel zijn toegelaten tot de masteropleiding.

Toelichting aanmelden

Deze cursus is reeds gestart. Aanmelden in het lopende academisch jaar is niet meer mogelijk.

Deze cursus start 4 september 2017. We adviseren u om u uiterlijk 14 augustus 2017 aan te melden, zodat u tijdig het cursusmateriaal ontvangt, toegang heeft tot de leeromgeving en (indien van toepassing) ingedeeld kunt worden in een studiegroep.

Bij deze cursus hoort online activerende begeleiding. Deze cursus start op vastgestelde momenten, en ook tijdens de bestudering van de cursus zijn er vaste inlevermomenten van opdrachten en feedback. U studeert online samen met een groep medestudenten. Deze begeleiding is erop gericht u sneller, effectiever en met een beter begrip van de stof door de cursus te helpen. U kunt vooraf aan de begeleidingsperiode in uw eigen tempo de stof alvast doornemen; het materiaal wordt één kwartiel tevoren al uitgeleverd. Aansluitend aan de begeleidingsperiode is uw eerste tentamenkans. Na de begeleidingsperiode heeft u nog twee ingeroosterde tentamenkansen. Informatie over begeleiding en tentamen vindt u op de respectievelijke tabbladen.

Voorkennis

Basiskennis van computer security, software engineering en programmeren in een objectgeoriënteerde programmeertaal (bijvoorbeeld Java of C++). Studenten die de OU-cursussen Security en IT, Software engineering en Objectgeoriënteerd programmeren in Java 1 en 2 hebben afgerond, beschikken over deze basiskennis.

Begeleiding

Begeleidingsvorm

Deze cursus heeft een vast startmoment. Kijk in het Jaarrooster wanneer de cursus van start gaat en wanneer de begeleiding is ingeroosterd.

Per kwartiel worden groepen studenten gevormd. De docent organiseert in het eerste kwartiel extra begeleidingsactiviteiten, zoals online bijeenkomsten, en tevens kunt u dan opdrachten inleveren waarop u feedback krijgt. Tijdens de bijeenkomsten gaat de docent inhoudelijke in op de lesstof en bereidt u zich voor op het tentamen. De bijeenkomsten vinden plaats in de avonduren.
De geboden begeleidingsbijeenkomsten hebben een zeer grote toegevoegde waarde en een verhoogde slagingskans.

Begeleidingsbijeenkomsten


Online bijeenkomsten
Kwartiel 1 - begeleider: dhr. dr. ir. H. Vranken
1. wo 06-09-2017 / 19.30-21.00 uur
2. wo 04-10-2017 / 19.30-21.00 uur
3. wo 01-11-2017 / 19.30-21.00 uur

Docenten

Dhr. dr. ir. H. Vranken.

Bereikbaarheidsoverzicht

Bereikbaarheidsinformatie docenten/examinatoren

Tentamen

Tentamenvorm

Regulier schriftelijk tentamen bestaande uit open vragen (ov) en een opdracht.

Tentamendata

Schriftelijk tentamen: 13-11-2017, 06-02-2018, 29-08-2018.
Opdracht: volgens afspraak.

Tentamenhulpmiddelen

Een 'schoon' verklarend Nederlands woordenboek (op eigen risico)

Meer info

Cursusmateriaal

De cursus bestaat uit Engelstalige tekstboeken, een werkboek met studeeraanwijzingen, opgaven en uitwerkingen, en een reader met aanvullende literatuur. Op de cursussite in de digitale leeromgeving wordt software aangeboden die u gebruikt bij het uitvoeren van de opdrachten.

Mediagebruik

Als student heeft u toegang tot een groot aantal online diensten die u nodig heeft tijdens uw studie. Deze zijn bereikbaar via MijnOU, uw persoonlijke online werkplek bij de Open Universiteit, Hier heeft u o.a. toegang tot onze digitale leeromgeving, tentamenroosters, en onze uitgebreide digitale bibliotheek.

Digitale leeromgeving

Als medewerker of als student (na inschrijven) kunt u via de cursussite in de digitale leeromgeving naar de discussiegroepen. Hier kunt u met medestudenten en begeleider informatie uitwisselen en discussiëren over de leerstof.