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à. Sebbene sia possibile che un’iniezione di comando sia di natura benigna, di solito non lo è e può rappresentare una significativa minaccia alla sicurezza. Esistono numerose soluzioni alternative progettate per impedire questa attività nei sistemi informatici.

Uno dei punti di vulnerabilità più comuni per un’iniezione di comando è 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 un codice informatico 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 potrebbe anche piantare 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 la strada.

Un modo per evitare un’iniezione di comandi è progettare moduli e altri input in modo da limitare ciò che le persone possono inserire. Sui commenti su Internet, ad esempio, probabilmente non ci sarebbe motivo legittimo per gli utenti di inserire script e il modulo di commento potrebbe semplicemente rifiutare lo script, pur consentendo HTML per il markup e lo stile. Allo stesso modo, in un programma per computer, i moduli di input potrebbero rifiutare l’immissione di determinati caratteri, impedendo alle persone di eseguire il codice nel modulo.

Il rischio potenziale presentato dall’iniezione di comando è stato notato per la prima volta negli anni ‘1990. Numerosi progettisti hanno affrontato il problema e hanno escogitato vari modi per prevenire o arrestare gli attacchi di iniezione di comandi. Gli hacker hanno anche tentato di sviluppare le proprie soluzioni alternative, sviluppando modi nuovi e creativi per eseguire il codice attraverso i punti deboli in un sistema informatico. Alcune persone sviluppano nuove tecniche per puro interesse accademico e occasionalmente provocano scompiglio per caso quando la loro ricerca si perde nel nulla, per così dire.