Stagelopen en afstuderen bij Securify.

Beter beveiligen van Java applicaties met behulp van JVM Plugins

Inleiding:

De Java Virtual Machine (JVM) voorziet in een aantal opzichten niet in het doorvoeren van softwarematige checks om applicaties veiliger te maken. Een voorbeeld van zo’n check is het detecteren van een Integer over- of underflow. Helaas passen veel Java applicaties geen validatie toe waarbij het toewijzen van een waarde aan een variabele binnen het bereik van MIN_INT en MAX_INT valt. Het logische gevolg is dat deze applicaties in hun gebruik afwijkend gedrag kunnen vertonen en eventueel zelfs kwetsbaar kunnen zijn.

Opdrachtbeschrijving:

De JVM weet bij voorhand al dat een variabele van het type integer is en kan zodoende verifiëren of een variabele in het bereik van het datatype valt. De opdracht is daarom om een JVM plugin te ontwikkelen die precies deze functionaliteit implementeert en bij afwijking een exceptie stuurt.

Onderzoeksvragen:

1.   Wat zijn de voor- en nadelen van het implementeren van een JVM plugin die het bereik van datatypes valideert?
2.   Zijn er meerdere type beveiligingslekken die binnen de JVM gezien en voorkomen kunnen worden.
3.   Wat is de impact performance-wise voor het implementeren van deze functionaliteit in het gebruik bij veelvoorkomende Java operaties? 

Eisen/wensen (werkwijze):

1.   Voer vooronderzoek uit waarin je je inleest in bestaand onderzoek aangaand het ontwikkelen van JVM plugins en meer generiek de toepassing van condities in programmeertalen.
2.   Ontwikkel een JVM plugin die voor operaties met het integer datatype checks op under- en overflow uitvoert.
3.   Optimaliseer de plugin zodanig dat de impact voor veelgebruikte Java operaties minimaal is.
4.   Onderzoek of er meerdere type Java-specifieke beveiligingslekken kunnen worden gezien en voorkomen via JVM Plugins.

Keywords: Java, JVM, software testing

Latest News & Research

Work with us →