Hva er en kommandoinjeksjon?
En kommandoinjeksjon er en utnyttelse av en systemsvakhet for å få tilgang til systemet med det formål å utføre ondsinnet kode, høste brukerdata og delta i andre aktiviteter. Selv om det er et potensial for at en kommandoinjeksjon er godartet, er den vanligvis ikke det, og den kan utgjøre en betydelig sikkerhetstrussel. Det er en rekke løsninger som er designet for å forhindre denne aktiviteten i datasystemer.
Et av de vanligste punktene med sårbarhet for en kommandoinjeksjon er et skjema, enten på en webside eller i et datasystem. Skjemaer lar folk legge inn data og blir deretter behandlet av systemet. Hvis det ikke er noen begrensninger for typen data som er lagt inn i skjemaet, er det mulig for folk å legge inn datakode som systemet vil lese og utføre. Skjemaer på websider kan også konvertere inndataene som vises til andre brukere, og også eksponere andre for kode; for eksempel kan noen legge igjen et ondsinnet skript i kommentarene på et nettsted.
Når koden kjøres, kan den gjøre ting som å gi folk tilgang til backend av et datasystem, inkludert administrativ tilgang, og kan også plante virus og malware på et datasystem. Kommandoinjeksjoner kan være designet for å spre seg selv, da infiserte datamaskiner samhandler med uinfiserte datamaskiner over et nettverk. De kan spre seg veldig raskt og kan forårsake betydelig skade underveis.
En måte å unngå en kommandoinjeksjon er å designe skjemaer og andre innganger på en måte designet for å begrense hva folk kan komme inn. På Internett-kommentarer, for eksempel, vil det sannsynligvis ikke være noen legitim grunn for brukere å legge inn skript, og kommentarskjemaet kan ganske enkelt avvise skript, samtidig som det tillater HTML for markering og styling. På samme måte i et dataprogram kunne inngangsskjemaene nekte innspill fra visse tegn, og hindre folk i å utføre kode i skjemaet.
Den potensielle risikoen som ble gitt ved kommandoinjeksjonen ble først notert på 1990-tallet. Tallrike designere har taklet problemet og har funnet ut forskjellige måter å forhindre eller stoppe kommandoinjeksjonsangrep. Hackere har også forsøkt å utvikle egne løsninger, og utvikle nye og kreative måter å utføre kode gjennom svake punkter i et datasystem. Noen mennesker utvikler nye teknikker av rent faglig interesse og utøver tidvis ødeleggelser når forskningen deres slipper ut i naturen, så å si.