Beheer

Security
security

JavaScript kraakt niet slot, maar voordeur

De eerste beveiligingswal van besturingssystemen tegen misbruik lijkt geslecht.

© CC BY 2.0 - Flickr.com taymtaym
15 februari 2017

De eerste beveiligingswal van besturingssystemen tegen misbruik lijkt geslecht.

Elk besturingssysteem maakt gebruik van Address Space Layout Randomization (ASLR) om het malware niet te gemakkelijk te maken hun doelen op de pc te vinden. Een proof-of-concept JavaScript laat zien dat die 'waterlinie' niet effectief meer is.

Beveiligingsspecialisten van de Vrije Universiteit laten in een wetenschappelijk artikel (pdf) zien dat met een vrij eenvoudig JavaScript is te achterhalen waar het besturingssysteem de verschillende onderdelen van het OS en programma's heeft weggeschreven. ASLR is in het leven geroepen om die onderdelen op willekeurige plekken weg te schrijven zodat binnengedrongen malware weliswaar crashes kan veroorzaken maar minder makkelijk controle over het systeem kan krijgen.

Gevaarlijker dan eerdere
aanvalstechnieken

De onderzoekers noemen hun aanpak ASLR Cache of AnC vanweg de inzet van een techniek die bekend staat als een side-channel aanval. Het is niet de eerste keer dat er een methode voor een aanval op ASLR is gepubliceerd. Maar deze keer is gevaarlijker omdat de onderzoekers een eigenschap van de microprocessor gebruiken die onafhankelijk is van het besturingssysteem. Daardoor is het extreem lastig voor de effecten van dit JavaScript te compenseren in software.

Dit onderzoek toont aan dat vooral het gevaar van drive-by aanvallen veel groter is dan gedacht. Het is niet ondenkbaar dat ook kwaadwillenden deze techniek hebben ontdekt en inzetten om van bekende kwetsbaarheden in software gebruik te maken.

De onderzoekers demonstreren hun aanpak in een video:

Lees meer over
Zie ook Beheer op AG Connect Intelligence
5
Reacties
Willem Oudshoorn 23 februari 2017 10:44

Wat een merkwaardige reacties. Dit artikel gaat toch helemaal niet over Java of JavaScript? Toevallig is JavaScript gebruikt om het een en ander aan te tonen. Dat had waarschijnlijk ook met Objective C gekund (gaan dan alle Apple gebruikers verontwaardigd reageren?) of met C# (alle Windows .NET gebruikers?)

Hans 17 februari 2017 16:09

Overigens gaat dit artikel over een beveiligingsprobleem van ieder besturingssysteem dat aangetoond is met Javascript code. Het heeft niets met de taal zelf te maken.

Pieter 16 februari 2017 08:30

Idd JS en Java zijn 2 verschillende omgevingen. Maar ik zou ook een Java-loze oplossing zoeken: Java komt wel elke week uit met een of andere nood upgrade/update, met elke update is er kans dat een stuk van je programmatuur niet meer werkt en de toegang tot "any device": da's telkens op hoop van zege en hopen dat de applet opstart en niet in een rondje blijft draaien. Ook nu weer het argument: het is de meest gebruikte programmeertaal. Benzine en diesel zijn de meest gebruikte brandstoffen maar dat wil niet zeggen dat het de beste oplossing is hé, alleen dat er een massa geld in geïnvesteerd is om oude technologie levend te houden. (mijn 2cent hoor)

Hans 15 februari 2017 14:29

Deze reactie bewijst maar weer eens de complete onwetendheid en onkunde op het gebied van browsers en programmeertalen. Java en Javascript (Ecma script) hebben niets met elkaar te maken. Javascript is een programmeertaal die draait aan de clientside. Websites kunnen niet meer zonder door de beperkingen van de Markup Languages (html, xml). Programmeertalen draaien op een besturingssysteem en zijn dus een potentieel risico. Java is een programmeertaal die is ontstaan in de jaren 90 (voordat browser massaal hun intrede deden). Destijds was het mogelijk met een zogenaamde Applet javacode te gebruiken in een browser. Deze techniek zat vol met beveiligingsrisico's en daar is de slechte naam ontstaan. Java is op dit moment de meest gebuikte programmeertaal, onder andere aan de backend-kant van webservers, en de kans is bijna 100% dat het feit dat je deze reactie leest ergens is geraakt door Java code. Geen wonder dat ze je verbaast aankijken, de vraag slaat nergens op.

Peter 15 februari 2017 13:01

Vaak kan Java niet uitgezet worden omdat het een o-zo handige programmeurs tool is.

Als ik de leverancier vraag naar een Java loze versie, dan ziet hij/zij blijkbaar water branden, zo verbaast zijn zij altijd.

Reactie toevoegen