Leader nel Gartner® Magic Quadrant™ 2026 per Endpoint Protection. Sei anni consecutivi.Sei anni. Gartner® Magic Quadrant™ Leader.Scopri perché
La tua azienda è stata compromessa?Blog
IniziareContattaci
Header Navigation - IT
  • Piattaforma
    Panoramica della piattaforma
    • Singularity Platform
      Benvenuti nella Sicurezza Aziendale Integrata
    • IA per la sicurezza
      Leader nelle Soluzioni di Sicurezza basate su AI
    • Sicurezza dell’IA
      Accelera l’adozione dell’IA con strumenti, applicazioni e agenti di IA sicuri.
    • Come funziona
      La Differenza di Singularity XDR
    • Marketplace di Singularity
      Integrazioni con un solo clic per sbloccare la potenza di XDR
    • Prezzi e Pacchetti
      Confronti e indicazioni in sintesi
    Data & AI
    • Purple AI
      Accelerare la SecOps con l'IA generativa
    • Singularity Hyperautomation
      Automatizzare facilmente i processi di sicurezza
    • AI-SIEM
      Il SIEM AI per il SOC autonomo
    • AI Data Pipelines
      Pipeline di dati di sicurezza per AI SIEM e ottimizzazione dei dati
    • Singularity Data Lake
      Alimentato dall'IA, unificato dal lago di dati
    • Singularity Data Lake for Log Analytics
      Ingestione dei dati da ambienti on-premise, cloud o ibridi senza soluzione di continuità
    Endpoint Security
    • Singularity Endpoint
      Prevenzione, rilevamento e risposta autonoma
    • Singularity XDR
      Protezione, rilevamento e risposta nativa e aperta
    • Singularity RemoteOps Forensics
      Orchestrare l'analisi forense su larga scala
    • Singularity Threat Intelligence
      Intelligence avversaria completa
    • Singularity Vulnerability Management
      Scoperta di risorse illecite
    • Singularity Identity
      Rilevamento e risposta alle minacce per l'identità
    Cloud Security
    • Singularity Cloud Security
      Bloccare gli attacchi con una CNAPP basata sull'IA
    • Singularity Cloud Native Security
      Proteggere il cloud e le risorse di sviluppo
    • Singularity Cloud Workload Security
      Piattaforma di protezione del carico di lavoro del cloud in tempo reale
    • Singularity Cloud Data Security
      Rilevamento delle minacce potenziato dall'intelligenza artificiale
    • Singularity Cloud Security Posture Management
      Rilevare e correggere le configurazioni errate del cloud
    Protezione dell’IA
    • Prompt Security
      Proteggere gli strumenti di IA in tutta l’azienda
  • Perché SentinelOne?
    Perché SentinelOne?
    • Perché SentinelOne?
      Cybersecurity per il futuro
    • I nostri Clienti
      Scelta dalle aziende leader nel mondo
    • Riconoscimenti dal mercato
      Testato e comprovato dagli esperti
    • Chi siamo
      Il leader del settore nella sicurezza informatica autonoma
    SentinelOne a confronto
    • Arctic Wolf
    • Broadcom
    • CrowdStrike
    • Cybereason
    • Microsoft
    • Palo Alto Networks
    • Sophos
    • Splunk
    • Trellix
    • Trend Micro
    • Wiz
    Settori Verticali
    • Energia
    • Governo Federale
    • Servizi Finanziari
    • Sanitario
    • Scuola Superiore
    • Istruzione Primaria e Secondaria
    • Manifatturiero
    • Retail
    • Settore pubblico statale e locale
  • Servizi
    Managed Services
    • Panoramica dei Managed Services
      Wayfinder Threat Detection & Response
    • Threat Hunting
      Competenza di livello mondiale e Threat Intelligence.
    • Managed Detection & Response
      MDR esperto 24/7/365 per tutto il tuo ambiente.
    • Incident Readiness & Response
      DFIR, preparazione alle violazioni & valutazioni di compromissione.
    Supporto, implementazione e igiene
    • Gestione tecnica dei clienti
      Customer Success con un servizio personalizzato
    • SentinelOne GO
      Consulenza per l'onboarding e l'implementazione
    • SentinelOne University
      Formazione live e on-demand
    • Panoramica dei Servizi
      Soluzioni complete per operazioni di sicurezza senza interruzioni
    • SentinelOne Community
      Community Login
  • Partner
    La Nostra Rete
    • Partner MSSP
      Successo più veloce con SentinelOne
    • Marketplace di Singularity
      Amplia la potenza della tecnologia SentinelOne
    • Partner specializzati nel Cyber Risk
      Ingaggiare i team per gestire le risposte agli incidenti
    • Alleanze Tecnologiche
      Soluzione aziendale integrata su larga scala
    • SentinelOne per AWS
      Ospitato nelle regioni AWS di tutto il mondo
    • Partner di canale
      Offriamo le soluzioni giuste, insieme
    • SentinelOne for Google Cloud
      Sicurezza unificata e autonoma che offre ai difensori un vantaggio su scala globale.
    Per saperne di più sul Programma→
  • Risorse
    Centro Risorse
    • Schede tecniche
    • eBook
    • Video
    • Whitepaper
    • Events
    Accedi a tutte le risorse→
    Blog
    • Riflettori puntati sulle funzionalità
    • Per CISO/CIO
    • Direttamente dalla prima linea
    • Identità
    • Cloud
    • macOS
    • Blog di SentinelOne
    Blog→
    Risorse Tecniche
    • SentinelLABS
    • Glossario del Ransomware
    • Cybersecurity 101
  • Chi siamo
    Informazioni su SentinelOne
    • Informazioni su SentinelOne
      Il leader di mercato nella sicurezza cyber
    • SentinelLABS
      Ricerche sulle minacce per il moderno Threat Hunter
    • Carriere
      Opportunità di lavoro
    • Stampa e notizie
      Annunci dell’azienda
    • Blog
      Tutto sulle minacce alla cyber security, le ultime notizie e molto altro
    • FAQ
      Ottieni risposte alle domande più frequenti
    • DataSet
      La Piattaforma dal vivo
    • S Foundation
      Garantire un futuro più sicuro per tutti
    • S Ventures
      Investire nella sicurezza e nei dati di prossima generazione
IniziareContattaci
Background image for Cos'è l'OS Command Injection? Sfruttamento, Impatto e Difesa
Cybersecurity 101/Sicurezza informatica/OS Command Injection

Cos'è l'OS Command Injection? Sfruttamento, Impatto e Difesa

L'OS Command Injection (CWE-78) consente agli attaccanti di eseguire comandi arbitrari tramite input non sanificato. Scopri le tecniche di sfruttamento, CVE reali e le difese.

CS-101_Cybersecurity.svg
Indice dei contenuti
Che cos'è l'OS Command Injection?
Come funziona l'OS Command Injection?
Sottotipo 1: Diretto (Command Separator Injection)
Sottotipo 2: Indiretto (Controllo Completo del Comando)
Il flusso dell'attacco
Operatori e Metacaratteri di Injection Comuni
Separatori di Comando ed Esecuzione Inline
Cause dell'OS Command Injection
Validazione dell'Input Insufficiente
Uso dell'Esecuzione Shell invece delle API Native del Linguaggio
Affidamento al Filtering Denylist
Manipolazione delle Variabili d'Ambiente
Violazione del Principio del Minimo Privilegio
Impatto e Rischio dell'OS Command Injection
Gravità per Categoria di Impatto
I punteggi CVSS non raccontano tutta la storia
Come gli Attaccanti Sfruttano l'OS Command Injection
Discovery ed Enumerazione
Direct Output Injection
Blind Injection tramite Ritardi Temporali
Exfiltration Out-of-Band (OAST)
Chaining di Bypass di Autenticazione
Bypass tramite Argument Injection
Chi è colpito dall'OS Command Injection?
Tipi di Applicazioni più Vulnerabili
Settori a Maggior Rischio
Esempi Reali di OS Command Injection
Shellshock (CVE-2014-6271), 2014
Violazione Equifax (CVE-2017-5638), 2017
Log4Shell (CVE-2021-44228), 2021
Velvet Ant / CVE-2024-20399, 2024
Sfruttamento Firewall Zyxel (CVE-2023-28771), 2023
Timeline e Storia dell'OS Command Injection
Come rilevare l'OS Command Injection
Static Application Security Testing (SAST)
Dynamic Application Security Testing (DAST)
Visibilità Comportamentale a Livello di Processo
Regole Web Application Firewall (WAF)
Confronto dei Metodi
Come prevenire l'OS Command Injection
Difesa Primaria: Evitare Comandi OS del tutto
Usa API di Comando Parametrizzate
Validazione Input tramite Allowlisting
Applicare il Minimo Privilegio (NIST AC-6)
Implementare Sandboxing e Containerizzazione
Controlli Specifici per PHP
Strumenti per il Rilevamento e la Prevenzione dell'OS Command Injection
Strumenti di Application Security Testing
Protezione Runtime e di Rete
Visibilità Endpoint e Comportamentale
Vulnerabilità Correlate
CVE Correlate
Conclusione

Articoli correlati

  • OWASP Top 10: Vulnerabilità, rischi e come risolverli
  • Requisiti di sicurezza GDPR: checklist di conformità e guida
  • Cos'è la conformità CMMC? Definizione, livelli e requisiti
  • Cos'è la strategia di backup 3-2-1? Esempi e best practice
Autore: SentinelOne
Aggiornato: May 11, 2026

Che cos'è l'OS Command Injection?

L'OS command injection è una vulnerabilità che consente agli attaccanti di eseguire comandi arbitrari del sistema operativo su un server tramite un'applicazione vulnerabile. Classificata come CWE-78 da MITRE, si verifica quando un'applicazione costruisce comandi OS utilizzando input forniti esternamente senza neutralizzare correttamente i caratteri speciali che possono alterare il comando previsto. Il risultato è un accesso diretto e non autorizzato al sistema operativo sottostante.

Questa classe di vulnerabilità è stata collegata a importanti attacchi informatici, dalla massiccia exploitation di Shellshock del 2014 al targeting continuo di appliance di rete documentato in un avviso CISA. CWE-78 si colloca tra i primi 25 della classifica MITRE, insieme a out-of-bounds write, cross-site scripting e SQL injection.

Nell'OWASP Top 10, la categoria più ampia Injection mappa sia CWE-77 che CWE-78. Comprendere come funziona la vulnerabilità a livello di shell è il primo passo per fermarla.

OS Command Injection - Featured Image | SentinelOne

Come funziona l'OS Command Injection?

L'OS command injection sfrutta un difetto fondamentale: un'applicazione passa input controllato dall'utente direttamente in un comando shell OS senza separare i dati dalle istruzioni di controllo.

MITRE identifica due sottotipi di OS command injection.

Sottotipo 1: Diretto (Command Separator Injection)

L'applicazione intende eseguire un singolo programma fisso, utilizzando input esterni solo come argomenti. Gli attaccanti iniettano separatori di comando (;, |, &&, || o newline) per aggiungere comandi aggiuntivi.

Considera un'applicazione web che esegue ricerche DNS:

Java String

Un attaccante fornisce example.com; cat /etc/passwd come parametro dominio. La shell esegue sia nslookup example.com sia cat /etc/passwd, restituendo il file delle password del server.

Sottotipo 2: Indiretto (Controllo Completo del Comando)

L'applicazione accetta input che determina interamente quale programma eseguire. L'attaccante controlla il comando completo, non solo i suoi argomenti:

Indirect Full Command Control

Se un attaccante controlla la proprietà SCRIPTNAME, può puntarla a qualsiasi eseguibile sul sistema.

Il flusso dell'attacco

Un tipico attacco di OS command injection segue questa sequenza:

  1. L'attaccante identifica un campo di input, come un parametro di form, header HTTP, cookie o stringa di query URL, che alimenta un comando lato server.
  2. L'attaccante inietta metacaratteri della shell combinati con un comando malevolo in quell'input.
  3. L'applicazione passa l'input non sanificato alla shell OS.
  4. La shell interpreta i metacaratteri ed esegue il comando iniettato con gli stessi privilegi del processo applicativo. Se l'applicazione gira come root, l'attaccante ottiene gli stessi privilegi.

Ognuno di questi passaggi dipende dall'interpretazione da parte della shell di caratteri specifici come istruzioni di controllo. Gli operatori che rendono possibile ciò variano in base alla piattaforma.

Operatori e Metacaratteri di Injection Comuni

L'OS command injection si basa su metacaratteri della shell che alterano il modo in cui il sistema operativo interpreta una stringa di comando. Gli operatori disponibili per un attaccante dipendono dalla piattaforma di destinazione.

Separatori di Comando ed Esecuzione Inline

OperatoreFunzionePiattaforma
;Esegue i comandi in sequenzaUnix
&Esegue il secondo comando in backgroundUnix e Windows
&&Esegue il secondo comando solo se il primo ha successoUnix e Windows
||Esegue il secondo comando solo se il primo fallisceUnix e Windows
|Passa l'output del primo comando al secondoUnix e Windows
` (backticks)Esecuzione inline; l'output sostituisce l'espressioneUnix
$()Esecuzione inline; funzionalmente equivalente ai backticksUnix
0x0a (newline)Avvia un nuovo comando su alcune shellUnix

Quando l'input utente finisce all'interno di una stringa quotata nel comando originale, l'attaccante deve prima chiudere la quota (" o ') prima che qualsiasi separatore abbia effetto. Tecniche di encoding come URL encoding, double encoding e normalizzazione Unicode possono anche bypassare i filtri che cercano questi caratteri nella loro forma letterale. Questi operatori raggiungono la shell a causa di pattern di codifica specifici che non separano i dati utente dalla sintassi del comando.

Cause dell'OS Command Injection

L'OS command injection deriva da pratiche di codifica che consentono all'input utente di raggiungere una shell di sistema senza controlli adeguati. Cinque cause principali spiegano la maggior parte delle vulnerabilità.

Validazione dell'Input Insufficiente

Questa è la causa più diretta. Secondo la guida OWASP, gli attacchi di command injection diventano possibili quando un'applicazione passa dati non sicuri forniti dall'utente, come form, cookie e header HTTP, a una shell di sistema senza sanificazione. Se si presume che gli utenti forniscano valori attesi, si può saltare completamente la validazione.

Uso dell'Esecuzione Shell invece delle API Native del Linguaggio

Chiamare system(), exec(), shell_exec() o os.system() invoca la shell OS come intermediario. Ogni invocazione della shell crea una superficie di injection. La cheat sheet OWASP identifica API pericolose nei principali linguaggi:

LinguaggioAPI Pericolose
JavaRuntime.exec()
C / C++system(), exec(), ShellExecute()
Pythonexec(), eval(), os.system(), os.popen(), subprocess.Popen(), subprocess.call()
PHPsystem(), shell_exec(), exec(), proc_open(), eval(), passthru()
Node.jschild_process.exec(), execSync(), spawn()

Affidamento al Filtering Denylist

Si può tentare di bloccare caratteri pericolosi specifici invece di definire ciò che è permesso. Questo approccio, classificato come CWE-184 (Denylist Incompleto), fallisce costantemente. OWASP documenta esplicitamente che escapeshellcmd() di PHP previene l'esecuzione di comandi aggiuntivi ma consente comunque l'argument injection. Gli attaccanti possono iniettare flag come --output-document= per ottenere la scrittura di file senza usare separatori di comando.

Manipolazione delle Variabili d'Ambiente

Quando le applicazioni non specificano percorsi assoluti per gli eseguibili e non puliscono le variabili d'ambiente, gli attaccanti possono reindirizzare $PATH verso binari malevoli. Se l'applicazione gira con privilegi setuid root, il binario dell'attaccante viene eseguito con accesso root.

Violazione del Principio del Minimo Privilegio

Le applicazioni che girano con privilegi elevati amplificano ogni difetto di injection. Una command injection contro un'applicazione in esecuzione come www-data limita l'attaccante ai permessi di quell'utente. La stessa injection contro un processo a livello root concede il controllo completo del sistema. Se una di queste cause non viene affrontata, l'impatto risultante si estende ben oltre l'applicazione vulnerabile stessa.

Impatto e Rischio dell'OS Command Injection

L'OS command injection ottiene costantemente i punteggi più alti nei sistemi di classificazione delle vulnerabilità. L' OWASP Top 10:2021 identifica l'injection come una categoria di rischio importante e persistente. L'impatto funzionale è diretto: un attaccante ottiene la capacità di eseguire comandi arbitrari sul server con gli stessi privilegi del processo applicativo compromesso.

Gravità per Categoria di Impatto

ImpattoEvidenza
Esecuzione di Codice RemotoCVE-2024-3400
Compromissione Completa del SistemaSANS report: "compromissione completa del sistema, esfiltrazione dati o infiltrazione di rete"
Lateral MovementCISA advisory: OS command injection combinato con path traversal che abilita intrusioni multi-stage
Reclutamento BotnetMirai variant
Distribuzione RansomwareCISA advisory; CISA advisory

I punteggi CVSS non raccontano tutta la storia

CVE-2024-20399 (Cisco NX-OS) ha un punteggio CVSS relativamente modesto e richiede accesso locale e privilegi amministrativi. Tuttavia CISA lo ha aggiunto al catalogo Known Exploited Vulnerabilities dopo aver confermato l'exploitation da parte della campagna Velvet Ant di matrice cinese. 

Questo caso illustra che i punteggi CVSS da soli non riflettono il rischio operativo. L'appartenenza al catalogo KEV, l'exploitation da parte di stati-nazione e la posizione del dispositivo nella rete sono fattori di rischio indipendenti che possono superare di gran lunga un punteggio base. Comprendere le tecniche specifiche utilizzate dagli attaccanti aiuta a spiegare perché l'exploitation confermata è così comune.

Come gli Attaccanti Sfruttano l'OS Command Injection

Gli attaccanti utilizzano una progressione di tecniche per trovare, confermare e sfruttare l'OS command injection, iniziando dalla discovery ed escalando tramite blind injection e chaining di vulnerabilità.

Discovery ed Enumerazione

Gli attaccanti identificano campi di input che interagiscono con comandi di sistema lato server, testando tutti i parametri, header HTTP (User-Agent, Referer), cookie, stringhe di query URL e input dati strutturati (JSON, XML, SOAP).

Direct Output Injection

Un attaccante inietta un separatore di comando seguito da un comando di output noto:

Direct Output Injection

Se la risposta contiene il nome utente del processo in esecuzione, l'injection è confermata e l'attaccante può procedere con comandi più dannosi.

Blind Injection tramite Ritardi Temporali

Quando l'output del comando non appare nella risposta HTTP, gli attaccanti iniettano comandi di ritardo temporale e misurano la latenza della risposta. Iniettando & sleep 10 & su un target Linux si ottiene un ritardo misurabile se il comando viene eseguito.

Exfiltration Out-of-Band (OAST)

Gli attaccanti iniettano comandi che attivano callback DNS verso infrastrutture sotto il loro controllo:

Out-of-Band (OAST) Exfiltration

Una query DNS che arriva al server dell'attaccante conferma l'esecuzione del codice, anche quando non è osservabile alcun output o differenza di tempo. PortSwigger OAST osserva che Burp Collaborator ha permesso di trovare vulnerabilità di OS command injection blind prima non identificabili con altri mezzi.

Chaining di Bypass di Autenticazione

CVE-2024-21887 (Ivanti Connect Secure) richiede accesso amministrativo autenticato, ma gli attaccanti lo hanno combinato con CVE-2023-46805 (bypass autenticazione) per eliminare completamente tale requisito. Secondo CISA, attori statali cinesi hanno utilizzato sistematicamente questo pattern di chaining su Ivanti, Cisco e altri appliance di rete.

Bypass tramite Argument Injection

Quando i difensori filtrano i separatori di comando (;, |, &&), gli attaccanti passano all' argument injection (CWE-88). Iniettando flag o opzioni con prefisso - o --, manipolano il comportamento di un programma già invocato senza introdurre nuovi comandi. OWASP documenta che escapeshellcmd() di PHP consente questa via di attacco anche quando i separatori di comando sono bloccati. L'ampiezza di queste tecniche significa che l'impatto non è limitato a un solo tipo di applicazione o settore.

Chi è colpito dall'OS Command Injection?

L'OS command injection colpisce qualsiasi sistema in cui il codice applicativo passa input utente a una shell OS. Alcuni tipi di applicazioni e settori presentano un rischio sproporzionato in base ai dati di exploitation confermata.

Tipi di Applicazioni più Vulnerabili

  • Network Appliance e Dispositivi SSL-VPN: Questa categoria produce la più alta concentrazione di entry CWE-78 confermate come sfruttate nel catalogo CISA KEV. CVE-2023-44221 (SonicWall SMA100), CVE-2024-8190 (Ivanti Cloud Services Appliance), CVE-2024-40891 (Zyxel CPE) e CVE-2023-28771 (Zyxel Firewall/VPN) coinvolgono tutte interfacce di gestione che passano input direttamente all'esecuzione di comandi OS.
  • IoT e Firmware Embedded: I dispositivi NAS QNAP (CVE-2023-47218), router TP-Link (CVE-2023-1389) e router Wavlink presentano tutti vulnerabilità CWE-78 confermate. La variante Mirai ha sistematicamente sfruttato CVE di OS command injection su più piattaforme router e firmware IoT per il reclutamento botnet.
  • Applicazioni Web con System Call lato Server: Lo scenario canonico dell' OWASP Top 10 descrive un'applicazione Java che costruisce un comando OS tramite Runtime.getRuntime().exec() con concatenazione di stringhe.
  • Interfacce di Gestione Enterprise: CISA advisory documenta exploitation di interfacce di gestione Ivanti Cloud Service Application tramite chained command injection.

Settori a Maggior Rischio

  • Infrastrutture Critiche e Telecomunicazioni: CISA advisory documenta exploitation da parte di attori statali cinesi di command injection in appliance di rete rivolti a infrastrutture telecom e router.
  • Pubblica Amministrazione: Le entry CISA KEV dichiarano esplicitamente che "pongono rischi significativi per l'enterprise federale". Le agenzie federali affrontano scadenze KEV per le CVE di command injection elencate in KEV.

I dati di exploitation in queste categorie mostrano come l'OS command injection si traduca da un difetto a livello di codice a un danno su scala organizzativa.

Esempi Reali di OS Command Injection

Incidenti confermati di OS command injection spaziano dalla mass exploitation di software open-source a campagne mirate di stati-nazione contro infrastrutture di rete.

Shellshock (CVE-2014-6271), 2014

GNU Bash fino alla versione 4.3 processava stringhe finali dopo definizioni di funzione nelle variabili d'ambiente, consentendo a valori craftati di iniettare comandi shell. Questa vulnerabilità era sfruttabile tramite script CGI, client DHCP e configurazioni SSH ForceCommand, dimostrando la superficie di attacco su scala Internet di un singolo difetto di OS command injection.

Violazione Equifax (CVE-2017-5638), 2017

Apache Struts 2 consentiva agli attaccanti di iniettare espressioni OGNL tramite header Content-Type, abilitando l'esecuzione di codice arbitrario. Secondo il rapporto della Camera, Apache ha rilasciato una patch il 7 marzo 2017. Tre giorni dopo, il 10 marzo, gli attaccanti hanno sfruttato per la prima volta la vulnerabilità sulla rete Equifax. La violazione risultante ha portato a un accordo da 700 milioni di dollari e alle dimissioni dei dirigenti.

Log4Shell (CVE-2021-44228), 2021

La funzionalità JNDI message lookup di Apache Log4j2 ha consentito l'esecuzione remota di codice non autenticata tramite messaggi di log craftati, CVSS 10.0. Secondo CISA advisory, attori APT hanno sfruttato Log4Shell su server VMware Horizon non patchati, ottenuto lateral movement ed esfiltrato dati sensibili. LockBit affiliates e gruppi nordcoreani hanno entrambi sfruttato questa vulnerabilità.

Velvet Ant / CVE-2024-20399, 2024

Sygnia report ha descritto un gruppo di spionaggio di matrice cinese che ha sfruttato una vulnerabilità di command injection CLI su Cisco NX-OS. Nonostante il punteggio CVSS relativamente basso, il gruppo ha eseguito codice malevolo sul sistema operativo Linux sottostante degli switch Nexus. CISA lo ha aggiunto al catalogo KEV, evidenziando che il rischio operativo spesso supera quanto riflesso dal CVSS.

Sfruttamento Firewall Zyxel (CVE-2023-28771), 2023

La gestione impropria dei messaggi di errore nel firmware dei firewall Zyxel ha consentito l'esecuzione remota non autenticata di comandi OS, CVSS 9.8. Cybersecurity Dive ha riportato targeting attivo in un solo giorno senza attività precedente.

Questi incidenti fanno parte di un pattern più ampio che risale ai primi giorni delle applicazioni web.

Timeline e Storia dell'OS Command Injection

  1. 1988-1998: L'era CGI. I primi web server invocavano script shell con input utente non sanificato, creando le prime superfici di attacco OS command injection. Il dataset DARPA Intrusion Detection Evaluation presso MIT Lincoln Laboratory ha catalogato attacchi CGI-based e exploitation di sendmail di questo periodo.
  2. 1999: Classificazione formale. CVE-1999-0067 ha documentato una delle prime entry formali di command injection: un programma CGI che non neutralizzava il metacarattere pipe (|) quando invocava un programma rubrica. MITRE ha codificato la vulnerabilità come CWE-78.
  3. 2014: Shellshock. CVE-2014-6271 è diventata la prima vulnerabilità di OS command injection a raggiungere la mass exploitation su scala Internet.
  4. 2017: Conseguenze Enterprise. La violazione Equifax tramite CVE-2017-5638 ha dimostrato che primitive di esecuzione comandi incorporate nei framework applicativi hanno conseguenze equivalenti all'OS command injection diretta su scala enterprise.
  5. 2021: Consolidamento delle categorie Injection. OWASP Top 10:2021 ha consolidato tutti i tipi di injection sotto la categoria A03 Injection. Log4Shell (CVE-2021-44228) ha esteso il pattern a una libreria di logging ubiqua.
  6. 2023-2026: Targeting di Network Appliance. La superficie di attacco si è spostata decisamente verso appliance di rete perimetrali. Secondo CISA, attori statali cinesi hanno sfruttato sistematicamente command injection nei dispositivi di rete dal 2021 al 2025. L'OWASP Top 10:2025 ha esplicitamente aggiunto CWE-88 (Argument Injection) come weakness mappata.

Con l'exploitation ancora in corso, l'identificazione precoce rimane una priorità lungo tutto il ciclo di vita applicativo.

Come rilevare l'OS Command Injection

Individuare l'OS command injection richiede un approccio stratificato che combina test pre-deployment con visibilità runtime.

Static Application Security Testing (SAST)

Secondo l' OWASP Top 10, la revisione del codice sorgente è il metodo migliore per trovare vulnerabilità di injection. Gli strumenti SAST segnalano chiamate a system(), exec(), popen(), shell_exec() e altre API pericolose quando ricevono input controllato dall'utente. I pattern chiave da segnalare includono concatenazione di stringhe che alimenta funzioni di esecuzione comandi OS e l'uso di escapeshellcmd() in PHP invece del più sicuro escapeshellarg().

Dovresti eseguire SAST nella pipeline CI/CD per intercettare difetti di injection prima del deployment. La sua principale limitazione è che non può trovare vulnerabilità che si manifestano solo a runtime.

Dynamic Application Security Testing (DAST)

DAST valida ciò che è effettivamente sfruttabile testando l'applicazione in esecuzione. Web Security Academy documenta tre tecniche DAST:

  1. Direct output injection: Inietta & echo uniquestring & e verifica se la stringa appare nella risposta.
  2. Blind time-based injection: Inietta & sleep 10 & e misura il ritardo della risposta.
  3. Out-of-band (OAST) injection: Inietta comandi di callback DNS e monitora richieste esterne verso un server controllato. Questa è la tecnica più affidabile per l'injection blind.

Visibilità Comportamentale a Livello di Processo

A livello host, NIST SP 800-53 (Information System Monitoring) stabilisce il framework per l'identificazione di anomalie comportamentali. Il SOC dovrebbe cercare questi indicatori specifici:

  • Processi web server (apache, nginx, tomcat) che generano processi shell (bash, sh, cmd.exe, powershell)
  • Chiamate execve() o system() inattese originate da contesti di processo applicativo web
  • Connessioni di rete in uscita avviate da processi applicativi verso IP esterni

Regole Web Application Firewall (WAF)

L'OWASP ModSecurity Core Rule Set segnala metacaratteri shell (;, |, &, backticks, $()) e comandi OS comuni (whoami, cat /etc/passwd, nslookup) negli input HTTP. Le regole WAF possono essere bypassate tramite encoding e variazioni di case, quindi dovrebbero essere considerate come una fonte di segnale, non un controllo completo.

Confronto dei Metodi

MetodoTempisticaRileva Injection BlindLimitazione Chiave
SASTPre-deploymentN/A (statico)Non trova problemi solo runtime
DASTPre/post-deploymentSì (tramite OAST)Può mancare flussi complessi
Visibilità ComportamentaleProduzioneSìRichiede tuning baseline
WAFProduzioneParzialeBypassabile, non risolve la causa radice

Trovare le vulnerabilità da solo non è sufficiente. La prevenzione richiede l'eliminazione della causa radice nel codice e nell'architettura.

Come prevenire l'OS Command Injection

La prevenzione si concentra sull'eliminazione della causa radice: invocazione diretta della shell OS con input controllato dall'utente. Dove le chiamate shell non possono essere rimosse, controlli stratificati riducono la superficie di attacco.

Difesa Primaria: Evitare Comandi OS del tutto

Secondo PortSwigger, la prevenzione più forte è non chiamare mai comandi OS dal codice applicativo. Nella quasi totalità dei casi, è possibile implementare la funzionalità richiesta usando API native della piattaforma più sicure. Se serve inviare email, usa una libreria SMTP. Se serve la risoluzione DNS, usa una libreria DNS. Elimina l'intermediario shell.

Usa API di Comando Parametrizzate

Quando l'esecuzione di comandi OS è inevitabile, usa meccanismi strutturati che impongano la separazione tra dati e comando. In Python, ciò significa usare la forma lista di subprocess.run():

Parameterized Command APIs

La forma basata su lista impedisce alla shell di interpretare metacaratteri in qualsiasi argomento.

Validazione Input tramite Allowlisting

La cheat sheet OWASP raccomanda la validazione basata su allowlist come secondo livello di difesa. Definisci caratteri permessi e lunghezza massima della stringa usando espressioni regolari rigorose. OWASP fornisce l'esempio ^[a-z0-9]{3,10}$, escludendo tutti i metacaratteri e gli spazi.

PortSwigger avverte esplicitamente: non tentare mai di sanificare l'input tramite escaping dei metacaratteri shell. Questo approccio è soggetto a errori e vulnerabile a bypass da parte di attaccanti esperti. L'allowlisting è sempre preferibile.

Applicare il Minimo Privilegio (NIST AC-6)

NIST SP 800-53 impone l'applicazione del principio del minimo privilegio. Per la difesa dal command injection:

  • Esegui i processi applicativi web come account di servizio dedicati e non privilegiati
  • Limita i permessi dell'account di servizio solo ai percorsi filesystem necessari
  • Nega l'accesso shell (/bin/sh, /bin/bash) agli account di servizio applicativi web
  • Applica profili seccomp su Linux per limitare le system call disponibili

Implementare Sandboxing e Containerizzazione

L'isolamento tramite container con filesystem root in sola lettura, namespace e cgroup Linux, e profili di accesso obbligatorio (AppArmor o SELinux) riducono il raggio d'azione se si verifica un'injection. Questi controlli sono in linea con i principi NIST CM-7 di least functionality.

Controlli Specifici per PHP

Se lavori in PHP e devi invocare comandi shell, usa escapeshellarg() invece di escapeshellcmd(), poiché limita l'input a un singolo parametro e previene l'argument injection.

Questi controlli di codifica e architetturali costituiscono la base, ma gli strumenti forniscono la visibilità necessaria per applicarli su larga scala.

Strumenti per il Rilevamento e la Prevenzione dell'OS Command Injection

Una difesa efficace richiede strumenti che coprano test di sicurezza applicativa, protezione runtime e visibilità endpoint. Un avviso congiunto CISA e FBI mirato all'OS command injection raccomanda specificamente funzioni di libreria integrate che separano i comandi dagli argomenti, la parametrizzazione degli input e la validazione di tutti gli input forniti dall'utente.

Strumenti di Application Security Testing

  • Strumenti SAST analizzano il codice sorgente alla ricerca di chiamate API pericolose che ricevono input utente. Puoi integrarli nella pipeline CI/CD per intercettare difetti di injection prima del deployment.
  • Strumenti DAST come Burp Suite testano le applicazioni in esecuzione per punti di injection sfruttabili. Le capacità OAST di Burp Suite sono particolarmente efficaci per trovare command injection blind che non producono output visibile.

Protezione Runtime e di Rete

  • Soluzioni WAF che utilizzano l'OWASP ModSecurity Core Rule Set forniscono filtraggio a livello di rete di metacaratteri shell e payload di injection comuni. Questi agiscono come livello di difesa in profondità ma non devono sostituire la correzione della causa radice.
  • Soluzioni RASP strumentano le applicazioni a runtime e possono bloccare tentativi di injection con pieno contesto applicativo, fungendo da controllo compensativo per applicazioni legacy difficili da correggere.

Visibilità Endpoint e Comportamentale

Le piattaforme di sicurezza endpoint che monitorano la creazione di processi, le relazioni padre-figlio e gli argomenti della riga di comando sono fondamentali per individuare attività post-exploitation. Quando un processo web server genera una shell inattesa, l'analisi comportamentale a livello kernel diventa l'ultima linea di difesa.

Liberate la cybersicurezza alimentata dall'intelligenza artificiale

Elevate la vostra posizione di sicurezza con il rilevamento in tempo reale, la risposta automatica e la visibilità totale dell'intero ambiente digitale.

Richiedi una demo

Vulnerabilità Correlate

L'OS command injection appartiene a una famiglia di vulnerabilità di injection che condividono una causa radice comune: il mancato isolamento tra dati utente e istruzioni eseguibili. Diverse classi di vulnerabilità correlate possono concatenarsi o sovrapporsi a CWE-78.

  • SQL Injection (CWE-89): Prende di mira i motori database SQL invece della shell OS. L'SQL injection può concatenarsi all'OS command injection tramite funzionalità database come xp_cmdshell.
  • Code Injection (CWE-94): Prende di mira il runtime del linguaggio applicativo (PHP eval(), Python exec()). Il code injection consente all'attaccante di aggiungere codice proprio che viene poi eseguito dall'applicazione, e può scalare a OS command injection se il codice iniettato chiama system() o exec().
  • Argument Injection (CWE-88): Una variante figlia di CWE-78. Invece di iniettare nuovi comandi tramite separatori, gli attaccanti manipolano gli argomenti di un programma già invocato usando caratteri flag (-, --). Questo attacco riesce anche quando il filtering dei separatori di comando è attivo.
  • Server-Side Template Injection (CWE-1336): Prende di mira i motori di template (Jinja2, FreeMarker). L'SSTI spesso scala a OS command injection perché i motori di template hanno spesso accesso al runtime del linguaggio sottostante.
  • Expression Language Injection (CWE-917): Prende di mira i parser di expression language nei framework web (OGNL, Spring SpEL). Log4Shell (CVE-2021-44228) è l'esempio più noto, spesso concatenato all'esecuzione di comandi OS.
VulnerabilitàCWEInterprete TargetPercorso Diretto a Esecuzione OS
OS Command InjectionCWE-78Shell OSDiretto
SQL InjectionCWE-89Motore SQLIndiretto (tramite xp_cmdshell)
Code InjectionCWE-94Runtime applicativoIndiretto (tramite system call)
Argument InjectionCWE-88Parser argomenti shell OSDiretto (manipola comando invocato)
SSTICWE-1336Motore templateSpesso scala a comandi OS
EL InjectionCWE-917Parser expression languageSpesso scala a comandi OSs

La tabella sopra mostra che diverse classi di vulnerabilità forniscono un percorso diretto o indiretto all'esecuzione a livello OS, rendendo essenziale una difesa in profondità su tutti i tipi di injection.

CVE Correlate

ID CVEDescrizioneGravitàProdotto InteressatoAnno

CVE-2026-33718

Command injection nell'endpoint API git diff bypassa i controlli di esecuzione agentCriticaOpenHands AI Platform2026

CVE-2026-25857

OS command injection nella funzionalità diagnostica WAN tramite parametro curlCriticaTenda G300-F Router2026

CVE-2026-0631

OS command injection nei moduli VPN; attaccante autenticato adiacenteAltaTP-Link Archer BE2302026

CVE-2025-64127

OS command injection non autenticata in dispositivi di comunicazione ICSCriticaZenitel Devices2025

CVE-2025-34041

OS command injection non autenticata in piattaforma di gestione EDR; sfruttata attivamenteCriticaSangfor EDR2025

CVE-2025-11730

Command injection post-autenticazione nella configurazione CLI DDNSAltaZyxel ATP/USG FLEX Firewalls2025

CVE-2025-65791

Command injection tramite input non sanificato passato a exec() in image.phpCriticaZoneMinder v1.36.342025

CVE-2025-54123

RCE non autenticata tramite command injection in endpoint API middlewareCriticaHoverfly API Simulator2025

CVE-2024-20399

CLI command injection su switch Nexus; sfruttata da campagna Velvet AntMediaCisco NX-OS2024

CVE-2024-10443

OS command injection non autenticata nel componente Task ManagerCriticaSynology BeePhotos/Photos2024

CVE-2024-29972

Command injection non autenticata in endpoint remote_help-cgiCriticaZyxel NAS326/NAS5422024

CVE-2024-40890

Command injection post-autenticazione tramite HTTP POST in programma CGI; CISA KEVAltaZyxel VMG1312-B10A2024

CVE-2024-12828

Command injection tramite richiesta CGI che abilita esecuzione codice a livello rootCriticaWebmin2024

CVE-2023-20273

Command injection a livello root tramite web UI; sfruttata attivamente; CISA KEVCriticaCisco IOS XE2023

CVE-2023-2868

Command injection tramite nomi file .tar malevoli; sfruttata attivamente; CISA KEVCriticaBarracuda ESG2023

CVE-2023-27992

OS command injection pre-autenticazione tramite richieste HTTP; CISA KEVCriticaZyxel NAS326/540/5422023

CVE-2023-35138

Command injection non autenticata nella funzione show_zysync_server_contentsCriticaZyxel NAS326/NAS5422023

CVE-2023-51385

OS command injection tramite metacaratteri shell in nomi utente o hostMediaOpenBSD OpenSSH2023

CVE-2022-44877

Injection di metacaratteri shell non autenticata nell'interfaccia di login; CISA KEVCriticaControl Web Panel 72022

CVE-2022-2068

Command injection tramite nomi file certificato malevoli nello script c_rehashCriticaOpenSSL2022

CVE-2021-4039

OS command injection non autenticata tramite interfaccia di gestione webCriticaZyxel NWA1100-NH2021

CVE-2020-8515

Command injection pre-autenticazione nel firmware router; CISA KEVCriticaDrayTek Vigor Routers2020

CVE-2020-9054

Command injection pre-autenticazione tramite weblogin.cgi; escalation root; CISA KEVCriticaZyxel NAS3262020

CVE-2020-10987

Command injection tramite parametro deviceName in goform/setUsbUnload; CISA KEVCriticaTenda AC15 Router2020

Conclusione

L'OS command injection offre agli attaccanti esecuzione diretta a livello OS tramite applicazioni che passano input non sicuro agli interpreti shell. Riduci l'esposizione eliminando dove possibile le chiamate a comandi OS, usando API parametrizzate quando necessario e applicando la validazione tramite allowlist. 

Se la prevenzione fallisce, la visibilità comportamentale sull'endpoint aiuta a individuare rapidamente spawning di shell, connessioni in uscita e altri segnali di exploitation.

Domande frequenti

L'OS command injection (CWE-78) è una vulnerabilità in cui un'applicazione costruisce comandi del sistema operativo utilizzando input esterno non sanificato. Gli attaccanti iniettano metacaratteri della shell (;, |, &&) per aggiungere comandi dannosi che la shell del sistema operativo esegue con i privilegi dell'applicazione. 

La causa principale è la mancata separazione tra i dati dell'utente e la sintassi dei comandi prima di passare l'input a un interprete della shell.

Sì. L'OS command injection è classificato nella categoria Injection sia in OWASP Top 10:2021 che in OWASP Top 10:2025. Sia CWE-77 che CWE-78 sono esplicitamente inclusi. 

L'edizione 2025 ha inoltre aggiunto CWE-88 (Argument Injection) come debolezza mappata.

Sì. La maggior parte delle vulnerabilità CWE-78 confermate nel catalogo CISA KEV non richiede autenticazione ed è sfruttabile da remoto. CVE-2014-6271 (Shellshock), CVE-2023-28771 (Zyxel) e CVE-2024-3400 consentono tutte lo sfruttamento remoto senza autenticazione.

Le appliance di rete, inclusi firewall, concentratori VPN e switch aziendali, producono la più alta concentrazione di voci CWE-78 confermate come sfruttate. Il firmware IoT e embedded, inclusi dispositivi NAS e router, è sistematicamente preso di mira per il reclutamento in botnet. 

Le applicazioni web che richiamano comandi di sistema lato server e le interfacce di gestione aziendale presentano anch'esse un rischio elevato.

Gli attaccanti testano campi di input, header HTTP, cookie e parametri URL iniettando metacaratteri della shell seguiti da comandi diagnostici. Per l'injection cieca, utilizzano ritardi temporali (sleep 10) o callback DNS verso server controllati dall'attaccante. 

Scanner e strumenti di fuzzing testano sistematicamente tutti i vettori di input.

Indicatori chiave includono processi del web server (apache, nginx, tomcat) che avviano processi shell inaspettati (bash, sh, cmd.exe). Altri segnali sono connessioni di rete in uscita da processi applicativi verso IP sconosciuti e chiamate insolite a execve() o system() da contesti di processo dell'applicazione web.

L'OS command injection è una classe di vulnerabilità ad alta gravità perché offre agli attaccanti accesso diretto a livello di sistema operativo, consentendo l'esecuzione di qualsiasi comando supportato dal sistema operativo host. 

CWE-78 è tra le principali categorie di debolezza software MITRE e i CVE confermati riportano regolarmente punteggi CVSS pari o superiori a 9.0.

Sì. Il SANS, nel suo report su CVE-2024-40891, descrive esplicitamente "compromissione completa del sistema, esfiltrazione di dati o infiltrazione nella rete." Quando l'applicazione compromessa viene eseguita con privilegi elevati, gli attaccanti ottengono un accesso equivalente a livello di sistema operativo. 

Le conseguenze confermate includono la distribuzione di ransomware, movimento laterale e installazione persistente di backdoor.

Gli strumenti SAST segnalano in modo affidabile chiamate API pericolose nel codice sorgente ma non rilevano vulnerabilità presenti solo a runtime. Gli strumenti DAST individuano punti di injection sfruttabili, soprattutto utilizzando tecniche OAST per injection cieca. 

Le regole WAF rilevano pattern noti ma possono essere aggirate tramite codifica. La visibilità comportamentale a livello di processo offre l'identificazione runtime più affidabile. Nessuno strumento rileva ogni variante, quindi è necessaria una copertura stratificata.

Le infrastrutture critiche e le telecomunicazioni affrontano il rischio confermato più elevato. I documenti di advisory CISA segnalano lo sfruttamento da parte di attori statali cinesi contro infrastrutture di telecomunicazioni e router. 

Le agenzie governative federali sono soggette a tempistiche obbligatorie di remediation KEV. Qualsiasi settore che utilizza appliance di rete esposte a Internet o firmware embedded è un potenziale bersaglio.

Scopri di più su Sicurezza informatica

Cos'è il Purdue Model? Definizione, livelli e best practiceSicurezza informatica

Cos'è il Purdue Model? Definizione, livelli e best practice

Il Purdue Model è lo standard federale per la segmentazione delle reti ICS, organizzando gli ambienti OT in sei livelli gerarchici con confini di trust applicati.

Per saperne di più
Che cos'è un Secure Web Gateway (SWG)? Difesa della rete spiegataSicurezza informatica

Che cos'è un Secure Web Gateway (SWG)? Difesa della rete spiegata

I Secure Web Gateway filtrano il traffico web, bloccano il malware e applicano le policy per workforce distribuite. Scopri i componenti SWG, i modelli di deployment e le best practice.

Per saperne di più
Statistiche MalwareSicurezza informatica

Statistiche Malware

Scopri le ultime statistiche malware per il 2026 nei mondi del cloud e della cyber security. Scopri contro cosa si trovano ad affrontare le organizzazioni, preparati per i tuoi prossimi investimenti e altro ancora.

Per saperne di più
Statistiche sulle violazioni dei datiSicurezza informatica

Statistiche sulle violazioni dei dati

Consulta le ultime statistiche sulle violazioni dei dati nel 2026 per scoprire quali sfide devono affrontare le aziende. Scopri come gli attori delle minacce causano le violazioni dei dati, chi stanno prendendo di mira e altri dettagli.

Per saperne di più
Provate la piattaforma di cybersecurity più avanzata

Provate la piattaforma di cybersecurity più avanzata

Scoprite come la piattaforma di cybersecurity più intelligente e autonoma al mondo può proteggere la vostra organizzazione oggi e in futuro.

Richiedi una demo
  • Iniziare
  • Richiedi una demo
  • Presentazione del prodotto
  • Perché SentinelOne
  • Prezzi e Pacchetti
  • Contattaci
  • Contattaci
  • Supporto
  • SentinelOne Status
  • Lingua
  • Piattaforma
  • Singularity Platform
  • Singularity Endpoint
  • Singularity Cloud
  • Singularity AI-SIEM
  • Singularity Identity
  • Singularity Marketplace
  • Purple AI
  • Servizi
  • Wayfinder TDR
  • SentinelOne GO
  • Gestione tecnica dei clienti
  • Servizi di Supporto
  • Settori Verticali
  • Energia
  • Governo Federale
  • Servizi Finanziari
  • Sanitario
  • Scuola Superiore
  • Istruzione Primaria e Secondaria
  • Manifatturiero
  • Retail
  • Settore pubblico statale e locale
  • Cybersecurity for SMB
  • Risorse
  • Blog
  • Labs
  • Video
  • Presentazione del prodotto
  • Events
  • Cybersecurity 101
  • eBooks
  • Stampa
  • Pers
  • Notizie
  • Glossario del Ransomware
  • Azienda
  • Chi siamo
  • I nostri clienti
  • Opportunità di Lavoro
  • Partner
  • Legale e conformità
  • Sicurezza e conformità
  • S Foundation
  • S Ventures

©2026 SentinelOne, Tutti i diritti riservati.

Informativa sulla privacy Condizioni di utilizzo

Italiano