Hacking in C

Inleiding

De meeste beveiligingsproblemen hebben hun oorsprong in software, en vooral in software die via internet werkt. Deze cursus gaat in op beveiligingsproblemen in software: standaard problemen die vaak voorkomen, de onderliggende oorzaken die deze beveiligingsproblemen mogelijk maken, wat er tegen te doen is, en het ontdekken en exploiteren van zulke problemen.

Dit vak gaat over de klassieke beveiligingsproblemen in C(++) programma's en in machinecode, die vooral gerelateerd zijn aan het geheugengebruik, te weten buffer overflows (op de stack en de heap), integer overflows, en format string attacks.

Leerdoelen

Na afloop van de cursus kan de student:
  • uitleggen hoe standaard datatypes in C gerepresenteerd worden, en programma's schrijven om deze representaties te inspecteren en manipuleren
  • uitleggen hoe de stack en heap gebruikt worden voor data in C programma's
  • C programma's schrijven die gebruik maken van pointers en pointer arithmetic
  • uitleggen hoe de stack gebruikt wordt voor de administratie van procedure aanroepen
  • uitleggen hoe buffer overflows werken
  • uitleggen welke maatregelen er tegen deze zwakheden zijn, hoe deze werken, en sommige ervan toepassen
  • eenvoudige exploits maken voor code met buffer overflow zwakheden.

Onderwerpen

  • representatie van data in C
  • allocatie van data op de stack en heap
  • pointers, malloc, calloc, free, en pointer arithmetic
  • organisatie van informatie op de stack
  • buffer overflows (heap- en stack-based), format string attacks en integer overflows
  • eenvoudige preventie, detectie (zowel dynamisch als statisch) en exploitatie van zulke zwakheden

Werkvormen

  • 16 uur computerpracticum
  • 16 uur hoorcollege
  • 52 uur zelfstudie

Toelichting werkvormen

 Het vak bestaat uit colleges die de principes uitleggen en een computerpracticum waar studenten hier paarsgewijs zelf mee aan de slag gaan, door het schrijven en exploiteren van C programma's.

Toetsvorm

Projectwerk en schriftelijk tentamen.

Vereiste voorkennis

Processoren en Imperatief Programmeren

Literatuur

Online materiaal verspreid via Blackboard. Studenten kunnen ook gebruik maken van hoofdstuk 3 uit Introduction of Computer Security, by Michael Goodrich & Roberto Tamassia , Pearson New International Edition, ISBN 10: 1-292-025490-9, ISBN 13: 9781292025407, 2013. Het boek aanschaffen enkel voor dit vak is niet nodig, maar het  wordt ook bij andere security vakken gebruikt, m.n. Software en Web Security 2.

Website


Deze cursus heeft ook een Engelstalige beschrijving.

Vakcode
NWI-IPC025
Studiepunten
3 ec
Periode
derde kwartaal

Docenten

Opgenomen in

  • Bachelor Informatica