Code injection

Kwetsbaarheid voor Code injection komt veel voor bij WEBapplicaties. Veel WEBapplicaties vragen de gebruiker om input, zoals een Username en wachtwoord bij het inloggen. Een gebruiker mag bijvoorbeeld een zoekopdracht geven in een achterliggende database. De kern van het probleem is dat er vaak onvoldoende invoercontrole plaatsvindt. Er wordt vanuit gegaan dat de gebruiker alleen data invoert in de velden. Een gebruiker kan echter ook speciale karakters invoeren of zelfs een stukje scipt. De ontwikkelaar van de webapplicatie zou op de volgende zaken moeten letten:

  • een inputstring kan een bepaalde maximumgrootte overschrijden
  • een inputvalue kan ook niet-numerieke waarden bevatten
  • een inputvalue kan buiten de veronderstelde grenzen vallen
  • een inputstring kan niet-asccii karakters bevatten
  • een inputstring kan een stukje uitvoerbare code zijn

Voorbeelden van code injection:

Door een browser wordt via een dynamische pagina, genaamd getnews.asp, het nieuws van 24 januari 20076 opgevraagd. Bij het uitvoeren van onderstaande instructie door de webserver, ontvangt getnews.asp het bestand 24Jan2007.html van het file systeem en stuurt deze naar de browser. http://www.nieuwsorganisatie.nl/online/getnews.asp?item=24Jan2007.html
Een persoon met kwaadwillende bedoelingen herkent het potentiële probleem en zal de waarde van het item vervangen door: http://www.nieuwsorganisatie.nl/online/getnews.asp?item=../../../../ Windows/win.ini
De term "../" staat voor "één directory omhoog". Dus betekent de waarde van het item "ga vier directories omhoog en geef win.ini weer in de browser".

Dit voorbeeld wordt ook wel 'directory traversal' genoemd. Een Internetgebruiker kan dan als het ware uit de beschermde root-directory stappen en toegang verkrijgen tot andere directories en bestanden. Het uitvoeren van commando's van het systeem behoort dan tot de mogelijkheden. Bovenstaand voorbeeld behoort tot de categorie 'eerste orde code injection' aanvallen. Bij de verschillende vormen van code-injectie gericht op web-based applicaties, berust het principe op de directe uitvoering van de 'ingevoegde' code om een aanval uit te voeren.

Een omgeving waar de kwetsbaarheid voor code-injection veel voorkomt zijn de sites met een gastenboek. Vaak wordt datgene wat de gebruiker invoert, zonder controle op de site gezet. Als de invoer een stukje uitvoerbare code is, kan hiermee bijvoorbeeld gevoelige gegevens van de betreffende server worden ontsloten. Dit is een tweede orde code injection.
Kwetsbaarheid voor code-injection is de basis voor een veelgebruikte aanval: Cross site scripting.

Mogelijke beveiligingsmaatregelen:

  • De beste manier om te controleren of uw website en applicaties kwetsbaar zijn voor Directory Traversal, SQL Injectie, Cross site scripting en andere web kwetsbaarheden aanvallen is om een Web Vulnerability Scanner te gebruiken;
  • Webprogrammeurs dienen ervoor te zorgen dat geen van hun pagina's gebruikersinvoer terugstuurt welke niet gevalideerd is: het ontleden van een string en nagaan of er geen vreemde karakters en woorden in voorkomen.
  • Organisaties dienen er voor te zorgen dat alle primaire dataverwerkingscomponenten en secundaire applicaties in staat zijn om de data die daadwerkelijk wordt gebruikt te 'zuiveren' van malafide code en data van andere verwerkingsbronnen niet zonder meer te vertrouwen;
Column Header

Secure Connection BV
EditRegion4





Column Footer
Column Header
Zoeken


WWW assutools.com

Google

EditRegion5
Column Footer