Dynamische complexiteitsmetrieken

Promotor Koen De Bosschere
Begeleider 1: Bertrand Anckaert
Aantal studenten: 1
Richting: Ir. in de computerwetenschappen, Lic. in de informatica

Contactpersoon: Bertrand Anckaert

Probleemstelling:

Een stuk software is vaak het resultaat van vele manjaren onderzoek en implementatie. Indien een bedrijf deze inspanning levert, is het van belang dat een concurrerend bedrijf niet zomaar de resultaten van dit werk kan overnemen. Een mogelijke bescherming bestaat erin om de code die verspreid wordt moeilijk verstaanbaar te maken (obfusceren). Op die manier kan een concurrerend bedrijf de logica uit een stuk software niet zomaar hergebruiken in zijn eigen producten. Een andere toepassing van obfuscatie is te vinden in digitale containers. Digitale containers bevatten beschermde media (geluid, beeld, film), waarvan de toegang bewaakt wordt door een stuk software dat bijvoorbeeld de gebruiker taxeert elke keer de media worden bekeken of beluisterd. Ook hier is het nuttig ervoor te zorgen dat die software moeilijk verstaanbaar is, zodat er minder makkelijk mee geknoeid kan worden.

Meten hoe "moeilijk verstaanbaar" een stuk software is, is echter geen triviale opgave. In het verleden zijn reeds grote inspanningen geleverd om de complexiteit van software op te meten om onder meer de onderhoudbaarheid na te gaan. Deze metrieken werken echter op een statische voorstelling van de code. In het geval van een aanval tegen een stuk software wordt vaak gebruik gemaakt van informatie over de dynamische uitvoering van de software. Tot op heden zijn er onvoldoende metrieken beschikbaar om na te gaan hoe makkelijk begrip over het programma af te leiden is uit deze dynamische informatie.

Doelstelling:

Het is de bedoeling om in een eerste fase te onderzoeken in hoeverre bestaande statische metrieken aangepast kunnen worden om zinnige uitspraken te doen over de complexiteit van de dynamische uitvoering van een programma. In een tweede fase kunnen dan metrieken ontworpen worden specifiek voor dynamische informatie. Op die manier kunnen obfuscerende transformaties makkelijker geëvalueerd en vergeleken worden.