Doctoraat in de ingenieurswetenschappen: computerwetenschappen

Globale obfuscatie van bytecode-toepassingen


Doctorandus Publieke verdediging
Naam: Christophe Foket   Datum: Vrijdag 20/11/2015 om 10:00 
Adres: vakgroep Elektronica en Informatiesystemen (EA06)
Technologiepark Zwijnaarde 15, iGent, 9052 Zwijnaarde
  Lokatie: vergaderzaal 3.1 Edgar Blancquaert, Het Pand, derde verdieping, Onderbergen 1, 9000 Gent
Contact FEA: info.ea@ugent.be   Taal: Nederlands

Curriculum
Bachelor of Science in de informatica, Universiteit Gent, 2007
Master of Science in de ingenieurswetenschappen: computerwetenschappen: software engineering, Universiteit Gent, 2009

Promotor
Bjorn De Sutter
Koen De Bosschere

Examencommissie
em. prof. Hendrik Van Landeghem
Bjorn De Sutter (EA06)
Koen De Bosschere (EA06)
Bart Dhoedt, Universiteit Gent, Faculteit Ingenieurswetenschappen en Architectuur, EA05 - Vakgroep Informatietechnologie, Technologiepark Zwijnaarde 126, 9052 Zwijnaarde
E: bart.dhoedt@ugent.be
Eric Bodden
Christian Collberg
Eric Lafortune

Onderzoeksthema

Programma's geschreven in bytecode-gebaseerde programmeertalen zoals Java en C# bevatten niet alleen veel type-informatie; ze leggen ook veel van hun interne structuur ongewenst bloot in de vorm van meta-informatie. Beide vormen van informatie kunnen echter gebruikt worden door kwaadwillige gebruikers om bytecode-programma’s te reverse engineeren, aan te passen, of te stelen. Om zulke aanvallen te bemoeilijken, stellen we in dit onderzoek drie complementaire obfuscatietechnieken voor bytecode-programma’s voor die samen een belangrijk onderdeel van de programmastructuur en veel van de aanwezige type-informatie obfusceren. Class hierarchy flattening heeft als doel de klassenhiërarchie van een programma maximaal af te vlakken door de overervingsrelaties tussen klassen zoveel mogelijk te verbreken. We combineren deze transformatie met interface merging en object factory insertion, die de overblijvende type-informatie trachten te verwijderen. Interface merging voegt meerdere interfaces in een programma samen tot een enkele interface, waardoor het aantal verschillende types waarmee het programma werkt sterk verminderd. Object factory insertion vervangt code die nieuwe objecten aanmaakt door code die zogenaamde object factories oproept, die veel minder type-informatie vrijgeven. Experimenten op realitische Java-programma’s tonen aan dat onze technieken erin slagen om zowel de aanvallers zelf, als hun automatische aanvalsprogramma’s te verwarren, waardoor aanvallen moeilijker worden.


Taal proefschrift
Engels

Documenten