Che cos'è un'iniezione di comando?
Un'iniezione di comando è un exploit di una debolezza del sistema per ottenere l'accesso al sistema allo scopo di eseguire codice dannoso, raccogliere dati utente e impegnarsi in altre attività. Mentre esiste un potenziale per un'iniezione di comando di natura benigna, di solito non lo è e può presentare una significativa minaccia alla sicurezza. Esistono diverse soluzioni progettate per impedire questa attività nei sistemi informatici.
Uno dei punti più comuni di vulnerabilità per un'iniezione di comandi è un modulo, su una pagina Web o in un sistema informatico. I moduli consentono alle persone di inserire dati e vengono quindi elaborati dal sistema. Se non ci sono vincoli sul tipo di dati inseriti nel modulo, è possibile per le persone inserire il codice del computer che il sistema leggerà ed eseguirà. I moduli sulle pagine Web possono anche convertire l'input da visualizzare ad altri utenti, esponendo anche altre persone al codice; ad esempio, qualcuno potrebbe lasciare uno script dannoso nei commenti su un sito Web.
Quando il codice viene eseguito, può fare cose come fornire alle persone l'accesso al back-end di un sistema informatico, incluso l'accesso amministrativo, e può anche impiantare virus e malware su un sistema informatico. Le iniezioni di comandi possono essere progettate per diffondersi, poiché i computer infetti interagiscono con i computer non infetti su una rete. Possono diffondersi molto rapidamente e possono causare danni sostanziali lungo il percorso.
Un modo per evitare un'iniezione di comando è progettare moduli e altri input in modo tale da limitare ciò che le persone possono inserire. Sui commenti su Internet, ad esempio, probabilmente non ci sarebbe alcun motivo legittimo per gli utenti di inserire script e il modulo dei commenti potrebbe semplicemente rifiutare gli script, pur consentendo HTML per il markup e lo stile. Allo stesso modo, in un programma per computer, i moduli di input potrebbero rifiutare input di determinati caratteri, impedendo alle persone di eseguire il codice nel modulo.
Il potenziale rischio presentato dall'iniezione di comando è stato notato per la prima volta negli anni '90. Numerosi progettisti hanno affrontato il problema e escogitato vari modi per prevenire o arrestare gli attacchi di iniezione di comando. Gli hacker hanno anche tentato di sviluppare le proprie soluzioni alternative, sviluppando modi nuovi e creativi per eseguire il codice attraverso punti deboli in un sistema informatico. Alcune persone sviluppano nuove tecniche per puro interesse accademico e occasionalmente provocano il caos per caso quando la loro ricerca sfugge allo stato selvatico, per così dire.