het concept van RCE (Remote Code Execution) aanval.

Wat is een RCE (Remote Code Execution) aanval?

uitvoering van externe Code wordt gebruikt om een vorm van kwetsbaarheid bloot te leggen die kan worden benut wanneer gebruikersinvoer wordt geïnjecteerd in een bestand of string en het hele pakket wordt uitgevoerd op de parser van de programmeertaal. Dit is niet het type gedrag dat wordt tentoongesteld door de ontwikkelaar van de webapplicatie. Een externe code uitvoering aanval kan leiden tot een full-scale aanval die een hele web applicatie en de webserver in gevaar zou brengen. U moet er ook rekening mee houden dat vrijwel alle programmeertalen verschillende codeevaluatiefuncties hebben.

een codebeoordeling kan ook voorkomen als u gebruikersinvoer toestaat toegang te krijgen tot functies die code evalueren in dezelfde programmeertaal. Dit type maatregel kan doelbewust worden toegepast om toegang te krijgen tot de wiskundige functies van de programmeertaal of per ongeluk omdat de door de gebruiker gestuurde invoer door de ontwikkelaar is ontworpen om zich binnen een van deze functies te bevinden. Het is niet raadzaam om deze lijn van actie uit te voeren. Veel mensen vinden het kwaadaardig om zelfs code evaluatie te gebruiken.

voorbeeld van Code

laten we eens kijken naar een voorbeeld van een code evaluatie aanval.

het lijkt misschien een beter idee om dynamisch gegenereerde namen van variabelen voor elke gebruiker te hebben en hun Registratiedatum op te slaan. Dit is een voorbeeld van hoe je het kunt doen in PHP

eval("$$user = '$regdate');As long as the username is controlled by the user's input, an attacker may create a name like this:x = 'y';phpinfo();//

de PHP-code die is gegenereerd zou lijken op deze:

$x = 'y';phpinfo();// = 2016';

u kunt nu zien dat de variabele x wordt genoemd, maar de waarde y heeft. wanneer de aanvaller een andere waarde aan de variabele kan toewijzen, kan hij een nieuw commando aanmaken met behulp van een puntkomma (;). Hij kan nu de rest van de string invullen. Op deze manier krijgt hij geen syntaxisfouten in zijn werk. Zodra hij deze code uitvoert, wordt de uitvoer van phpinfo op de pagina weergegeven. Je moet altijd onthouden dat het mogelijk is in PHP en andere talen met functies die input kunnen beoordelen.

het rangschikken van uitvoering van externe Code op oorsprong

de meeste van de onderscheiden RCE-zwakheden zijn het gevolg van bepaalde basisoorzaken die kunnen worden gevolgd naar het beginpunt. De groepering van uitvoering van externe Code door te beginnen wordt als volgt onderzocht.

uitvoering van dynamische Code

uitvoering van dynamische Code is volgens alle accounts de meest algemeen erkende basisreden die aanleiding geeft tot een aanval op het uitvoeren van code. Veel programmeerdialecten zijn zo gepland dat ze code kunnen produceren met een andere code en deze meteen kunnen uitvoeren. Dit idee is een geweldig idee dat verschillende complexe kwesties behandelt. Hoe het ook zij, een kwaadwillige aanvaller kan dit idee controleren om RCE toegang en capaciteiten te verwerven.

Gewoonlijk hangt de snel geproduceerde code af van bepaalde invoer van de client. Gewoonlijk bevat de code de informatie die is onthouden voor een specifieke structuur. Wanneer een kwaadaardige agressor begrijpt dat het krachtige codetijdperk bepaalde informatie zal gebruiken, kan het een substantiële code maken als een soort toegang om de applicatie te scheiden. Als de bijdragen van klanten niet worden onderzocht, zal de code worden uitgevoerd op haar doel.

op het moment dat u ervoor kiest om zorgvuldig te kijken, is dynamische code-uitvoering verantwoordelijk voor twee soorten RCE-gebaseerde aanvallen; onmiddellijk en omslachtig.

Direct

bij het beheren van een illustratie van directe unieke tribute uitvoering, beseft de agressor dat hun feedback zou worden gebruikt om code te produceren.

indirecte

op een afwijkende manier maakt het zich zorgen over het krachtige codetijdperk met clientinvoer. De clientinvoer is meestal onderworpen aan ten minste één laag. Een deel van de lagen kan verantwoordelijk zijn voor het veranderen van de bijdrage voordat het eindigt met dynamische code leeftijd. Bovendien, dynamische code leeftijd kan een volgende impact zijn en niet het onmiddellijke gebruik van de info. Dat is de reden dat het misschien niet duidelijk voor de client die geeft de informatie die zal invullen als een structuur blok in een code scrap die ver zou worden uitgevoerd.

deserialisatie

deserialisatie is een ongelooflijke gids om de huidige omstandigheid weer te geven. Tijdens deserialisatie zou er geen krachtige codeleeftijd mogen optreden. Met tussenpozen is dit de situatie die zich voordoet wanneer het geserialiseerde object ruwe informatievelden of objecten van een vergelijkbare soort bevat. Dingen worden meer verward wanneer de elementen van het artikel worden geserialiseerd. Deserialisatie zou ook een zekere mate van dynamische code leeftijd.

het lijkt erop dat krachtige dialecten de enige zijn die beïnvloed worden door werkserialisatie. Op voorwaarde dat dit waar is, zou de kwestie zeer beperkt zijn. Hoe dan ook, deze situatie is zeer nuttig in statische dialecten ook. Het is moeilijker te bereiken met de statische taal, maar het is zeker niet haalbaar.

met tussenpozen beheert de uitvoering van dit idee deserialisatie-geproduceerde intermediaire capaciteiten. Leeftijd objecten tijdens runtime zijn gewoon denkbaar met dynamische code leeftijd. Dit houdt in dat als de informatie die zal worden gedeserialiseerd wordt gemaakt in een verzoek op afstand gedaan, een kwaadwillige aanvaller kan vorderen en aanpassen. Rondom geplande code bits kan ook bekend zijn met stunt de krachtige code leeftijd om de capaciteit uit te voeren wanneer het is opgenomen als een stuk van de deserialisatie.

Geheugenveiligheid

nog een fundamentele reden voor RCE-aanvallen identificeert zich met geheugenbeveiliging of API-beveiliging. Geheugen welzijn verwijst naar de tegenwerking van code van het krijgen van fundamentele stukken van het geheugen dat het niet installeerde. Het is normaal om te verwachten dat een gebrek aan geheugenbeveiliging zou resulteren in onbevoegde toegang tot informatie. In ieder geval zijn het werkkader en de apparatuur afhankelijk van het geheugen om uitvoerbare code op te slaan. Metadata identificeren met code uitvoering wordt bewaard in het geheugen. Toegang tot dit stuk van het geheugen kan vragen ACE en RCE. Op deze manier, wat zijn een deel van de redenen voor het geheugen welzijn problemen?

de onvolkomenheden van het productplan

onvolkomenheden in de productconfiguratie zijn een soort zwakte voor geheugenwelzijn die optreedt wanneer er een planningsfout is in een specifiek verborgen deel. Met tussenpozen, de tekortkoming deel kan een compiler, vertaler, virtuele machine, of zelfs het werk framework gedeelte of bibliotheek. Er zijn verschillende onvolkomenheden in deze klasse. Een deel van de incorporatie;

Buffer Overflow

Buffer overflow wordt bovendien als buffer overread bedoeld, kan worden gebruikt om te zinspelen op een fundamentele en beroemde methode die wordt gebruikt om het geheugen welzijn te breken. Deze aanval maakt gebruik van een specifiek plan smet of een bug om in contact te blijven met de geheugencellen die zich bevinden in de richting van de afwerking van het geheugen kussen. De ondersteuning zou krijgen gekregen terug van een authentieke oproep aan de openbare API. Niettemin, cradle alleen zinspeelt op een startplaats bedreiging wordt gebruikt om de werkelijke geheugen locaties van een specifiek artikel of programma teller te registreren. Hun scheiding van de wieg is opmerkelijk of kan ongetwijfeld worden gespeculeerd. Het onderzoeken van de code wanneer deze toegankelijk is gemaakt of het oplossen van problemen met de hele uitvoering van het programma tijdens runtime kan uiteindelijk nuttig zijn voor een agressor die moet kijken naar relatieve posities.

dit houdt in dat een cradle flood het mogelijk zou maken om het tot op zekere hoogte niet-beschikbare geheugen te wijzigen. De cradle kan worden gevonden in de locatie ruimte van een andere machine en het zal worden gewijzigd door het aanroepen van een verre API. Dit maakt toegang tot het geheugen van de externe machine. Er zijn tal van benaderingen om dit soort toegang te gebruiken bij het maken van een RCE double-dealing. Er is een algemeen vermoeden dat ervan uitgaande dat er een kussen overstroming zwakte, een RCE – gebaseerde aanval is niet uit de kaarten. Dit houdt in dat code eigenaren worden vertrouwd op om hun steun overstromingen snel vast te stellen voordat een RCE aanval gebeurt.

ontwerpfouten van apparatuur

aanvallen op Geheugenwelzijn kunnen eveneens het gevolg zijn van onvolkomenheden in de configuratie van apparatuur. Ze zijn niet zo normaal als programmeeraanvallen en zijn veel moeilijker te herkennen. Toch beïnvloedt dit soort aanval enorm het kader.

impact van evaluatie van externe Code kwetsbaarheid

een aanvaller die een op externe Code gebaseerde aanval op een systeem met succes kan uitvoeren, zou in staat zijn andere commando ‘ s uit te voeren door gebruik te maken van de programmeertaal of webserver. Op veel programmeertalen zou de aanvaller het systeem kunnen bevelen om bestanden te schrijven, te lezen of te verwijderen. Het kan zelfs mogelijk zijn om verbinding te maken met verschillende databases met het aangevallen systeem.

waarom starten aanvallers RCE-aanvallen?

hoewel er geen specifieke reden is waarom aanvallers ervoor kiezen om RCE-exploitatie te gebruiken om een webapplicatie aan te vallen, is er geen specifieke reden. Het is gewoon dat sommige kwaadaardige vinden het gemakkelijk om te profiteren van deze code uitvoering om toegang te krijgen tot uw systemen.

Hoe Voorkom Je Externe Code Execution Aanvallen?

om te beginnen moet u het gebruik van gebruikersinvoer in de geëvalueerde code vermijden. De beste optie in deze situatie zou zijn om het gebruik van functies zoals eval volledig te vermijden. Het wordt beschouwd als een vorm van slechte praktijk en kan gemakkelijk worden vermeden. Het is ook aan te raden dat je nooit een gebruiker de inhoud van bestanden die kunnen zijn ontleed door de programmeertaal in kwestie te laten bewerken. Vaak, dit omvat het laten van een gebruiker maken van de naam en de bestandsextensies die hij wil uploaden of maken in de webapplicatie.

dit zijn enkele van de dingen die u niet moet doen om RCE-gebaseerde aanvallen te voorkomen. Zij omvatten:

  • gebruikersinvoer wordt ontsmet. Vaak is dit moeilijk te bereiken omdat er een grote hoeveelheid vooraf geïnstalleerde bypasses en beperkingen.
  • laat een gebruiker beslissen of de extensie of inhoud van bestanden maken die op de webserver worden gebruikt. Hij / zij moet veel veilige praktijken gebruiken bij het omgaan met het uploaden van bestanden of het risico lopen dat vitale informatie in verkeerde handen valt.
  • geef elke door de gebruiker gecontroleerde invoer door aan systeem callbacks of evaluatiefuncties
  • actieve zwarte lijst van speciale tekens of functienamen. Dit moet worden vermeden, net als het ontsmetten van gebruikersinvoer. Maar het is ongelooflijk moeilijk om uit te voeren.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.