Ontwikkeling van veilige software

Ga naar: navigatie, zoeken
FrankPiessens.jpg

Samenvattingen

Klik hier om de samenvattingen te bekijken

Informatie over het examen

Je vragen zo volledig mogelijk uitschrijven. Tijdens het mondeling leest hij die dan zorgvuldig na en begint dan zo veel mogelijk vragen te stellen om die kleine details die er nog bijhoorden ook eruit te krijgen.

Examenvragen

2015 - 2016

14 januari 2016 (14.00h)

  • Beschrijf volgende begrippen beknopt (1 punt / begrip):
    1. Second order injection
    2. Indirect pointer overwrite
    3. ...
    4. Information Flow Security
    5. Phishing
  • CSRF aan de hand van een voorbeeld uitleggen, wat kan je er tegen doen? (5ptn)
  • Een security automaat gebaseerd op Lattice Based Access Control. In plaats van dat de gebruiker zelf kiest in welk level hij een sessie start, begint hij op het laagste level en verhoogt automatisch als hij een object leest van een hoger level.
  • Bespreking van het project.

2014 - 2015

19 januari 2015

  • Beschrijf volgende begrippen beknopt (1 punt / begrip):
    1. Software vulnerability
    2. Second order injection
    3. Address space layout randomization (ASLR)
    4. Indirect pointer overwrite
    5. Shellcode
  • Bespreek session management. Hoe val je aan? Hoe verdedig je? etc.
  • Een security automaat maken. Er zijn studenten die oplossingen kunnen indienen, daar op kunnen commenten en andere oplossingen lezen (als ze zelf al een oplossing hebben ingediend). Beschrijf Solve(User, Exercise), Read(User, Exercise, User) en Comment(User, Exercise, User). Extra constraints: 1) User mag max. 10 comments schrijven over het ganse systeem. 2) User mag enkel comments maken of exercises readen als de user zelf al een solution heeft ingediend voor de betreffende exercise.
  • Bespreking van het project. Dit jaar moest iedereen dit doen.

9 januari 2015

  • Beschrijf volgende begrippen beknopt (1 punt / begrip):
    1. Return-into-libc attack
    2. Elevation of privilege
    3. Control flow integrity
    4. Information Flow Security
    5. Clickjacking
  • Bespreek zo precies mogelijk hoe same origin policy werkt en bespreek welke restricties het oplegt bij scripts in browsers. Welke exploits gaat dit tegen? Welke exploits kunnen er nog langs?
  • Een security automaat gebaseerd op Lattice Based Access Control. In plaats van dat de gebruiker zelf kiest in welk level hij een sessie start, begint hij op het laagste level en verhoogt automatisch als hij een object leest van een hoger level.
  • Bespreking van het project. Dit jaar moest iedereen dit doen.

2013-2014

31 januari 2014 (namiddag)

  • Verklaar de volgende begrippen (1 punt elk)
    1. Elevation of privilege
    2. Sandboxing
    3. Drive-by download
    4. Session Fixation
    5. Non-Control Data-Only Attack
  • Maak een security-automaat van DAC, uitgebreid om meerdere owners te ondersteunen. Wat zijn mogelijke voor- en nadelen? (5 punten)
  • Gegeven een stuk C-code, hoe kan je die misbruiken? Leg gedetailleerd uit. (5 punten)
  • Bespreking practicum (optioneel, 5 punten)

16 januari 2014 (voormiddag)

  • Verklaar volgende begrippen (1pt elk)
    1. Defacement
    2. elevation of privilege
    3. Second Order Injection
    4. Non-repudiation
    5. Vulnerability
  • Leg uit hoe return-to-lib c werkt (5pt)
  • Leg uit hoe CSRF werkt en geef countermeasurs (5pt)
  • Bespreking practicum indien er iets mis was

10 januari 2014 (namiddag)

  • Verklaar volgende begrippen:
    1. Return-to-libc (doorvraag: hoe zou je hiermee meerdere keren kunnen terugkeren naar adres)
    2. control flow integrity
    3. elevation of privilege
    4. clickjacking
    5. sandboxing
  • XSS vs CCRF: leg beiden uit adhv (technish) gedetailleerd voorbeeld, vergelijk en bespreek verschillen.
  • Gegeven policy model over chinese wall (http://www.cs.utexas.edu/~byoung/cs361/lecture25.pdf). Gevraagd: construeer security automaton (zoals DAC)
  • bespreking project indien onregelmatigheden (zoals laattijdig indienen of vermoedens van samenwerken)


16 januari 2014 (voormiddag)

  • Verklaar volgende begrippen: (1pt/begrip)
    1. Software vulnerability
    2. Elevation of privilege
    3. Defacement
    4. Non-repudiation
    5. Second order injection
  • CSRF aan de hand van een voorbeeld uitleggen, wat kan je er tegen doen? (5ptn)
  • Leg in detail return-to-libc uit (5ptn)
  • Bij onregelmatigheden/onduidelijkheden mondelinge bespreking van het project (5ptn)

16 januari 2014 (namiddag)

  1. Definieer de volgende termen (1 punt per term)
    1. Address Space Layour Randomization (ASLR)
    2. Elevation of privileges
    3. Control flow integrity (CFI)
    4. Descretionary access control
    5. Sandboxing
  2. Specificeren van security automata (5 pnt)
    1. Beschouw een computersysteem met meerdere gebruikers. Het systeem beheert resources (vb. muziekbestanden), en de toegang tot die resources moet beveiligd worden. Gebruikers kunnen twee acties doen: pay(r) en use(r). Bij de pay(r) actie betaalt de gebruiker die de actie uitvoert een vast bedrag voor de toegang tot resource r. Bij de use(r) actie wordt de resource r gebruikt. De informele access control policy voor dit systeem is: voor elke pay(r) die een gebruiker g doet, mag g de resource r 10 keer gebruiken. Schrijf deze policy neer als een security automaat.
    2. Breidt daarna het systeem uit met een actie transfer(n,r,g2). Bij uitvoering van deze actie door gebruiker g1 geeft g1 n resourcerechten op resource r door aan gebruiker g2. Na uitvoering van deze actie kan g1 de resource r dus n keer minder gebruiken en kan g2 de resource r n keer meer gebruiken.
  3. Wat is de Same Origin Policy (SOP) voor een web browser? Definieer zo precies mogelijk welke beperkingen de SOP oplegt aan web scripts. Welke rol speelt de SOP bij web script security? Geef voorbeelden van threats die door de SOP gecounterd worden, en geef voorbeelden van overblijvende vulnerabilities in de SOP. (5 pnt)
  4. (Eventueel:) Mondelinge verdediging van het project. (5 pnt)

2012-2013

17 januari 2013 (voormiddag)

  • Verklaar volgende begrippen:
    1. adress space layout randomisation
    2. control flow integrity
    3. elevation of privilege
    4. clickjacking
    5. ...
  • XSS vs CCRF: leg beiden uit adhv gedetailleerd voorbeeld, vergelijk en bespreek verschillen.
  • DAC met meerdere owners, geef automaat + voor en nadelen van meerdere owners vs 1 owner.
  • bespreking project

17 januari 2013 (namiddag)

  • Cross-Site Request forgery: leg uit aan de hand van voorbeeld + geef mogelijke tegenmaatregelen
  • Verklaar volgende begrippen:
    1. software vulnerability
    2. non-repudiation
    3. defacement
    4. elevation of privilege
    5. second order injection attack
  • stuk code gegeven: Deze code bevat een buffer overflow vulnerability: Waar zit ze en hoe kan ze worden uitgebuit. Beschrijf gedetailleerd.
  • bespreking practicum


2010-2011

21 januari 2011 (namiddag)

  • Project bespreken (+ bijvragen over het hele webapplicaties-gedeelte: bv. gebruik van tokens als oplossing voor CSRF) (5p)
  • Security automaat geven voor volgend systeem (5p):
    1. a) Je hebt users en multimediaobjecten die beschermd moeten worden. Je heb 2 operaties: pay(Resource r) waarbij een user een vast bedrag betaalt en zo de resource aankoopt ; en use(Resource r) waarbij de user de resource gebruikt. De informele policy is: een user die een resource betaald heeft via pay(..) mag een resource 10 keer downloaden/gebruiken via use(..).
    2. b) breid dit systeem uit, als je weet dat er ook een action transfer(integer n,user g1, user g2,resource r) is waarbij user g1 n van de downloadrechten van r die hij bezit afgeeft/doorgeeft aan user g2.
  • (5p) Stukje code gegeven waarin een pointer en een buffer gedeclareerd zijn naeen, de buffer is 256 bytes groot en er wordt een strcpy in gedaan van een meegegeven argument. Erna wordt de functie van de pointer opgeroepen op het tweede argument.

Vraag: In deze code zit een buffer overflow vulnerability. Waar ? En beschrijf in detail hoe je die kan uitbuiten ? (bijvragen: tegenmaatregelen ?). Code lijkt ongeveer hierop

       int main(int args, char **argc) {
       extern system,puts;	//Refers to system and output function. system(s) betekent voer
                               // command s uit, en puts(a) betekent print a uit.
       void *fn(char*) = (void *(char*)) &system; // fn is functiepointer en wijst initieel naar system
 	char[256] buf;

	fn = (void *(char*)) &puts;
	strcpy(buf,argc[1]);
	fn(argc[2]);
	exit(0);
}
  • (5p) Leg Role based access control uit. Wat zijn de voor- en nadelen tov de andere geziene modellen ?

Bijvraag: roles komen een beetje overeen met groepen. Zou je RBAC kunnen mappen op DAC ? Wat is het probleem ? -> antwoord: wie is de owner van een object = delicate kwestie; best root owner maken van alles, anders is het geen RBAC meer).

17 januari 2011 (namiddag)

  • Project bespreken (+ bijvragen over het hele webapplicaties-gedeelte) (5p)
  • Security automaat geven voor DAC waar een object meerdere eigenaars kan hebben (5p)
  • Leg indirect pointer overwrite uit: (5p)
    1. Geef een voorbeeld-C-programma waar deze aanval kan gebruikt worden.
    2. Leg elke stap van de aanval uit en teken telkens de geheugeninhoud schematisch.
    3. Bespreek 2 tegenmaatregelen.
  • Geef een beknopte definitie voor: (1p/begrip)
    • Software vulnerability
    • Defacement
    • Non-repudiation
    • Elevation of privilege
    • Stack canary

17 januari 2011 (voormiddag)

  • Bespreking practicum/websecurity (5p)
    • Wat vond je van Fortify?
    • Jullie hebben vooral gefocused op destroy, is er niets anders dat een aanvaller zou willen?
    • modsecurity vraagje
    • iets van mashups
  • Security automaat geven voor DAC waar een object van eigenaar kan wisselen (5p)
DAC: beschrijf in het algemeen wat het doet,
  • schrijf code die een object aanmaakt
  • schrijf code die eigenaar van object zou wijzigen
Bijvragen mondeling: iets geavanceerd: schrijf eentje die rechten toekent
  • Wat is Heap-based-vulnerability? Hoe gebruikt een attacker dit om een aanval te plaatsen? Bespreek kort 2 tegenmaatregelen. (5p)
Bijvragen:
  • stack unwinding
  • omzeilen van counter measures
  • Geef een beknopte definitie voor: (1p/begrip)
    • Defacement
    • Phishing
    • Data origin authentication
    • XSS
    • CAPTCHA

2009-2010

11 januari (Ma informatica)

  1. Project bespreken (5p)
  2. Geef een security automaat voor DAC waar een file meerdere eigenaars kan hebben. Geef enkele voor- en nadelen die je ziet t.o.v. standaard DAC. (De DAC security automaat is NIET gegeven)(5p)
  3. Leg indirect pointer overwrite uit a.d.h.v. een voorbeeld (bijvraag: waarom niet gewoon een buffer overflow uitvoeren?) (5 p)
  4. Geef een beknopte definitie voor: (1p/begrip)
  • Software vulnerability
  • Defacement
  • Elevation of privilege
  • Non-repudiation
  • Stack canary

20 januari

  1. Mondelinge bespreking van het project. (5p) (Hier worden ook bijvragen gesteld die niet enkel over het project gaan maar over de volledige leerstof van web applicaties)
  2. Geef een security automaat voor DAC waar een object van eigenaar kan wisselen. Het object heeft wel op elk moment slechts één eigenaar. (5p)
  3. Leg basic stack buffer overflows uit aan de hand van een voorbeeld. (5p)
  4. Waarvoor dienen de enable_permission() en disable_permission() stack modifiers? Wat is het belang van deze modifiers? (5p)

Q6rFbf <a href="http://aeiufgmidktg.com/">aeiufgmidktg</a>, [url=http://dvrjpjfeskko.com/]dvrjpjfeskko[/url], [link=http://azrclfzztwpd.com/]azrclfzztwpd[/link], http://hmgjhvxdmsek.com/

2005-2006

15 januari (burgies)

  1. Project bespreken
  2. Bespreek Kerberos (single sign-on, key distribution, ... heel de reutemeteut)
  3. Access control in Win2000: bespreek de algemene concepten en pas concreet toe.

maandag 23 januari

  • project bespreken bij tine
  • entity authentication: wat is dat? hoe dat men dat?
  • beschrijf hoe men mobiele code uitvoert in platformen als Java en .net
  • beschrijf de fout in volgend programma:
int main(int argc, char *argv) {
  if( argc < 2 ) { exit(1); } // argc is het aantal command line argumenten + 1
  a( argv[1] ); // argv[1] is het eerste argument
}

void a( char* a ) {
  char b[200];
  strcpy( a, b ); // kopieer alles van a naar b tot het speciale "end of string" karakter wordt tegengekomen
}

dinsdag 20 januari 2006

  • Bespreek de cryptografische primitieven en geef voor- en nadelen (en bespreek aan welke voorwaarden ze moeten voldoen (= known text only, .. die dinges).
  • Hoe werkt toegangscontrole in Windows 2000/XP
  • Bespreek certifivaatvalidatie in een PKI
  • Project: overview geven / stackwalking (authorization) uitleggen / authentication uitleggen / andere security beveiligingen omschrijven en die Discretionnary forumowner uitleggen: NIET mogelijk via policy omdat die niet dynamisch gemaakt kan worden, moet dus extra in code gecontroleerd worden.

30 januari 2006 (burgies)

  1. Mondelinge bespreking van het project. (5 punten)
  2. Bespreek de principiële werking van cryptografische protocols voor data protection, zowel voor het geval van synchrone (sessie-georiënteerde) communicatie als asynchrone (bericht-georiënteerde) communicatie (5 punten)
  3. Wat is het belang van de enable_permission() en disable_permission() stack walk modifiers? (5 punten)
  4. Wat is een "non-atomic check-and-use vulnerability"? Geef een voorbeeld. (5 punten)

Voor 2006

  • Bespreking project (5pt)
  • Geef een definitie van volgende begrippen: (1pt per begrip)
    • collision-resistant
    • opaque en transparent keys
    • type sound
    • single sign-on
    • buffer overflow attack
    • chosen-plaintext attack
    • DAC
    • Operation Modes (bij Block Ciphers)
    • Key Authentication / Key Confirmation
  • Geef een overzicht van de belangrijkste cryptografische primitieven, en zeg welke bescherming ze bieden. (5pt)
  • Ontwikkel een veilig systeem om een garagedeuropener te laten werken met een poort zodat een vijand die alle radiosignalen opvangt niet de poort kan openen. Analyseer de veiligheid van het door u ontwikkelde systeem (zwakheden e.d.) de poort kan niet terugsturen naar de zender (dus 1 richtingsverkeer)
  • digi cash volledig uitleggen
  • wat betekent het als een taal safe is, wat is type soundness in deze context, en wat is de invloed van deze twee begrippen op de veiligheid van software?
  • in het kerberos protocol houden de clients de tickets bij als een soort "capabilities". de servers houden geen informatie bij over hun clients. men zou het protocol zo kunnen aanpassen dat de servers een soort tokens bij houden, waarbij deze tokens de informatie bevatten over de identiteit van de client en de sessiesleutel die gebruikt wordt voor deze client. beschrijf welke aanpassingen er nodig zijn aan het protocol om op deze alternatieve manier te werken, welke voordelen en nadelen je aan het nieuwe systeem ziet.
  • Ontwerp een beveiliging voor een garagepoort met afstandsbediening. Het moet onmogelijk zijn om de radiogolven op te nemen en later opnieuw af te spelen. De afstandsbediening stuurt 1 digitale boodschap. Hoe ziet die er uit? Geef beveiligingsaspecten bij je ontwerp. Hoe gaat het algoritme in de garagepoort te werk?
  • Leg Mandatory Acces Control uit en laat zien hoe het omgaat met Trojans.
  • Bespreek Kerberos (5punten) zowel single sign-on als authenticatie als ..(nog iets)
    • bijvraag: wat als je in stap 3 de authenticator {A,T}Ka weglaat?
      • antwoord: meer aanvallen mogelijk op KDC
  • Bespreek Access Control in Win2000 (5p)
    • bijvraag: kan je tot meerdere groepen tegelijk horen (antwoord = JA)
  • Wat is sandboxing? En waarvoor dient het? (5p)
  • leg buffer overflow uit
    • bijvraag: hoe kunt ge als ge een gecompileerd C programma koopt en ge wilt niet testen op bufferoverflow toch zorgen dat ge niet met een bufferoverflow wordt aangevallen ?
    • antwoord:zorgen dat uw OS onderscheid maakt tussen code en data in het geheugen data kan nooit worden uitgevoerd (ook niet als ge daar code overschrijft)
  • leg stack walking uit voor mobiele code
  • wat is MAC, + Trojaanse paard en verband tussen beide (5punten)
  • geef commentaar op "SSL is waardeloos zonder deftige PKI" (5 punten)
  • wat is het belang van enable_permission(0 en disable_permission() bij stackwalking
  • Wat is een "man-in-the-middle" aanval? Geef een concreet voorbeeld.
  • Geef een overzicht van hoe de Java Cryptografie Architectuur en Extensies werken.
  • Geef een overzicht van mogelijke oorzaken van software beveiligings-zwakheden (vulnerabilities).
  • Wat is een "Cryptographic Service Provider (CSP)"? Hoe werken CSP's en wat zijn de voordelen ervan?
  • Bytecode verificatie van mobiele code en verificatie van handtekeningen op mobiele code zijn twee mechanismen die de JVM gebruikt om te beschermen tegen "kwaadaardige" code. Bespreek in hoeverre het nuttig is om beide mechanismen te combineren. Of met andere woorden: is het al dan niet nog zinvol om bytecode verificatie te doen van een klasse waarvan de handtekening al correct geverifieerd is?
  • Bespreek het systeemmodel voor een multi-user besturingssysteem
  • Bespreek verificatie van een certificaat in een PKI
  • Mac's en Digitale handtekeningen zorgen beiden voor integrity controle en origin authentication, definieer beiden, geef verschillen en gelijkenissen, voor en nadelen. (5ptn)
  • Geef een threatanalyse van een p2p file sharing systeem, bespreek de architectuur en bespreek de threats die je ziet. (gelijkaarding aan geziene emailsysteem) (5ptn) toch wil ie hier graag horen wat de assets zijn van het systeem en dan via het STRIDE model (laatste slides) zo de threats gaan identificeren...