Wat is RCE en hoe beperk je de risico’s?
Auteur: Redactie Domeny.ForSale Gepubliceerd
Kort samengevat: RCE, voluit Remote Code Execution, betekent dat code op afstand wordt uitgevoerd op een computer of server. Bij een aanval misbruikt een indringer een fout om het apparaat zonder toestemming van de eigenaar zijn instructies te laten uitvoeren. Dat is een ernstige bedreiging, maar de omvang van de schade hangt onder meer af van de rechten van het aangevallen programma. RCE betekent dus niet altijd dat meteen het hele systeem wordt overgenomen.
Wat betekent code op afstand uitvoeren in de praktijk?
Code bestaat uit instructies die een computer uitvoert. Meestal start je die bewust, bijvoorbeeld door een programma te openen. Bij een RCE-aanval komen de instructies van de aanvaller en voert een kwetsbare applicatie ze uit op een manier waarvoor ze niet bedoeld is.
Je kunt het vergelijken met een loket waar formulieren worden ingeleverd. De medewerker hoort de aangeleverde gegevens te lezen, maar begint in plaats daarvan opdrachten uit te voeren die op het formulier staan. Iets vergelijkbaars gebeurt wanneer een programma inhoud van buitenaf behandelt als instructies in plaats van als gewone gegevens.
De term ‘RCE-kwetsbaarheid’ wordt gebruikt voor een fout die dit mogelijk maakt. RCE zelf beschrijft echter de mogelijkheid om code uit te voeren, of het resultaat daarvan, en niet één specifieke fout. Veel verschillende fouten kunnen tot hetzelfde resultaat leiden.
‘Op afstand’ betekent dat de aanvaller niet achter het apparaat hoeft te zitten. Een aanval kan binnenkomen via internet, het lokale netwerk of een speciaal geprepareerd bestand. Niet elke kwetsbaarheid kan worden misbruikt zonder in te loggen of zonder tussenkomst van een gebruiker. Dat hangt af van de voorwaarden waaronder de kwetsbaarheid te misbruiken is.
Hoe kan een RCE-aanval ontstaan?
RCE kan het gevolg zijn van onjuiste gegevensverwerking, onveilige verwerking van bestanden of fouten in het geheugenbeheer. De kwetsbaarheid kan in de applicatie zelf zitten, maar ook in een bibliotheek die de applicatie gebruikt: een kant-en-klaar softwareonderdeel.
Stel je een webwinkel voor waar klanten foto’s uploaden bij hun bestelling. De server maakt daar automatisch miniaturen van. Als het hulpmiddel voor beeldbewerking een daarvoor geschikte kwetsbaarheid bevat, kan een speciaal geprepareerd bestand ervoor zorgen dat de code van de aanvaller wordt uitgevoerd, in plaats van dat alleen de afbeelding wordt verkleind.
In dit scenario hoeft de eigenaar van de webwinkel niets op zijn laptop te openen. De aanval treft de server die het bestand verwerkt. Dat het formulier alleen foto’s accepteert, garandeert op zichzelf geen veiligheid: ook de daadwerkelijke inhoud van het bestand en de manier waarop die wordt verwerkt, zijn van belang.
Een andere route is commando-injectie: het aanleveren van gegevens die de applicatie ten onrechte toevoegt aan een opdracht die op het systeem wordt uitgevoerd. Dit is een van de mechanismen die tot RCE kunnen leiden, niet een synoniem voor al zulke kwetsbaarheden.
Wat kan een aanvaller doen na het misbruiken van RCE?
De code van de aanvaller draait doorgaans met de rechten van het aangevallen proces, oftewel het actieve programma. Als de applicatie bepaalde bestanden kan lezen of verbinding kan maken met een database, kan de indringer vergelijkbare mogelijkheden krijgen.
Mogelijke gevolgen zijn:
- het uitlezen van klantgegevens, configuratiebestanden en geheime toegangsgegevens;
- het wijzigen van de inhoud van een website of de werking van een applicatie;
- het installeren van schadelijke software;
- het verwijderen of versleutelen van toegankelijke gegevens;
- het gebruiken van de server voor verdere aanvallen.
RCE betekent niet automatisch dat de aanvaller beheerdersrechten heeft. Het isoleren van applicaties en het beperken van hun rechten kunnen de schade verkleinen. Een aanvaller kan wel proberen andere fouten te misbruiken om ruimere toegang te krijgen.
Daarom worden RCE-kwetsbaarheden zeer serieus genomen. De situatie is bijzonder urgent wanneer de kwetsbare dienst via internet bereikbaar is en de fout zonder authenticatie kan worden misbruikt. Een nauwkeurige beoordeling moet gebaseerd zijn op de voorwaarden die de leverancier in zijn melding beschrijft, niet alleen op de afkorting RCE.
Hoe beperk je het risico en beoordeel je een RCE-waarschuwing?
De basis is het bijwerken van het systeem, applicaties, plug-ins en bibliotheken. Een update van één onderdeel verhelpt niet automatisch de kwetsbaarheden in andere onderdelen. Een website-eigenaar moet ook weten welke onderdelen hij zelf moet bijwerken en voor welke de hostingprovider verantwoordelijk is.
Door de rechten van een applicatie te beperken, verklein je de mogelijke impact van een aanval. Een programma dat geüploade foto’s verwerkt, hoort niet onnodig toegang te hebben tot alle gegevens van de webwinkel. Ook kun je een beheerpaneel dat niet openbaar hoeft te zijn, uitsluitend via gecontroleerde toegang beschikbaar stellen.
Als er een RCE-waarschuwing verschijnt voor een product dat je gebruikt:
- Controleer in de officiële melding van de leverancier op welke versies en configuraties het probleem betrekking heeft.
- Ga na of je het kwetsbare onderdeel gebruikt en of een potentiële aanvaller er toegang toe heeft.
- Installeer de beveiligingsupdate of pas de tijdelijke beveiligingsmaatregel toe die de leverancier adviseert. Is er nog geen update, overweeg dan de kwetsbare functie uit te schakelen.
- Als een aanval mogelijk was, controleer dan op sporen van ongeoorloofde activiteiten. Alleen bijwerken maakt de gevolgen van een eerdere inbraak niet ongedaan.
Back-ups helpen om gegevens te herstellen, maar voorkomen niet dat ze worden gestolen. Ook een firewall of antivirusprogramma is geen vervanging voor het verhelpen van de kwetsbaarheid.
Beheer je een website en weet je niet welke versies van de onderdelen worden gebruikt? Begin dan met een inventarisatie en leg vast wie verantwoordelijk is voor de updates. Zo kun je een algemene RCE-waarschuwing omzetten in een concrete beslissing: wat moet je controleren, bijwerken of tijdelijk uitschakelen?
Zie ook: Wat is DDoS?
