Un leader nel Magic Quadrant™ Gartner® 2025 per la Protezione di Endpoints. Cinque anni di fila.Leader nel Magic Quadrant™ di Gartner®Leggi il report
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 Che cos'è l'OS Command Injection? Sfruttamento, impatto e difesa
Cybersecurity 101/Sicurezza informatica/OS Command Injection

Che 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 (Full Command Control)
Il flusso dell'attacco
Operatori e metacaratteri di injection comuni
Separatori di comando ed esecuzione inline
Cause dell'OS Command Injection
Validazione insufficiente dell'input
Uso dell'esecuzione shell invece delle API native del linguaggio
Affidamento al filtraggio 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 autenticazione
Bypass tramite argument injection
Chi è colpito dall'OS Command Injection?
Tipologie di applicazioni più vulnerabili
Settori a rischio più elevato
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 del tutto i comandi OS
Usa API di comando parametrizzate
Validazione input tramite allowlisting
Applica il principio del minimo privilegio (NIST AC-6)
Implementa 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

  • Che cos'è un Secure Web Gateway (SWG)? Difesa della rete spiegata
  • Statistiche Malware
  • Statistiche sulle violazioni dei dati
  • Statistiche sugli attacchi DDoS
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 continuo targeting di appliance di rete documentato in un avviso CISA. CWE-78 si colloca tra i MITRE Top 25, insieme a out-of-bounds write, cross-site scripting e SQL injection.

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

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 di dominio. La shell esegue sia nslookup example.com che cat /etc/passwd, restituendo il file delle password del server.

Sottotipo 2: Indiretto (Full Command Control)

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 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 lo rendono possibile variano in base alla piattaforma.

Operatori e metacaratteri di injection comuni

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

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 insufficiente dell'input

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

Calling system(), exec(), shell_exec(), or os.system() invoca la shell OS come intermediario. Ogni invocazione della shell crea una superficie di injection. La cheat sheet OWASP identifica le 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 filtraggio 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 i percorsi assoluti degli 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 flaw 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 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
Remote Code ExecutionCVE-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
Botnet RecruitmentMirai variant
Ransomware DeliveryCISA 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 vulnerability chaining.

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 di 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 metodi.

Chaining di bypass 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 prefissate da - 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.

Tipologie 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 a livello OS.
  • IoT e firmware embedded: I dispositivi NAS QNAP (CVE-2023-47218), i router TP-Link (CVE-2023-1389) e i 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 di botnet.
  • Applicazioni web con chiamate di sistema 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 l'exploitation delle interfacce di gestione Ivanti Cloud Service Application tramite chained command injection.

Settori a rischio più elevato

  • Infrastrutture critiche e telecomunicazioni: CISA advisory documenta l'exploitation da parte di attori statali cinesi di command injection in appliance di rete rivolte 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 flaw a livello di codice a un danno su scala organizzativa.

Esempi reali di OS Command Injection

Incidenti confermati di OS command injection spaziano dalla massiccia 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 flaw 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 su 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 exploitation di massa 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 della categoria Injection. L'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 i network appliance di perimetro. 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 flaw di injection prima del deployment. Il suo limite principale è 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 la blind injection.

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 blind injectionLimite principale
SASTPre-deploymentN/A (statico)Non trova problemi solo runtime
DASTPre/post-deploymentSì (tramite OAST)Può mancare flussi complessi
Visibilità comportamentaleProduzioneSìRichiede tuning baseline
WAFProduzioneParzialmenteBypassabile, non risolve la causa radice

Individuare le vulnerabilità da solo non basta. 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 del tutto i comandi OS

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 la shell come intermediario.

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 al bypass da parte di attaccanti esperti. L'allowlisting è sempre preferibile.

Applica il principio del 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

Implementa sandboxing e containerizzazione

L'isolamento tramite container con filesystem root in sola lettura, namespace e cgroup Linux, e profili mandatory access control (AppArmor o SELinux) riducono il blast radius in caso di 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 application security testing, protezione runtime e visibilità endpoint. Un alert congiunto CISA e FBI rivolto specificamente all'OS command injection raccomanda 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 flaw 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 layer defense-in-depth 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

Piattaforme di endpoint security 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: la mancata separazione 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 di 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 stesso (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 filtraggio dei separatori di comando è in atto.
  • 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 verso 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 verso l'esecuzione a livello OS, rendendo essenziale una difesa stratificata su tutti i tipi di injection.

CVE correlate

ID CVEDescrizioneGravitàProdotto interessatoAnno

CVE-2026-33718

Command injection nell'endpoint API git diff che 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 dalla 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 a livello 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. 

Anche le applicazioni web che invocano comandi di sistema lato server e le interfacce di gestione aziendale presentano un rischio elevato.

Gli attaccanti testano i campi di input, gli header HTTP, i cookie e i 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 generano processi shell inattesi (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 di applicazioni 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 debolezze 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 una "compromissione completa del sistema, esfiltrazione di dati o infiltrazione della 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 le 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 encoding. 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 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

Statistiche sulle minacce interneSicurezza informatica

Statistiche sulle minacce interne

Ottieni informazioni su tendenze, aggiornamenti e altro sulle ultime statistiche sulle minacce interne per il 2026. Scopri quali pericoli stanno affrontando attualmente le organizzazioni, chi è stato colpito e come rimanere protetti.

Per saperne di più
Che cos'è un Infostealer? Come funziona il malware per il furto di credenzialiSicurezza informatica

Che cos'è un Infostealer? Come funziona il malware per il furto di credenziali

Gli infostealer estraggono silenziosamente password, cookie di sessione e dati del browser dai sistemi infetti. Le credenziali rubate alimentano ransomware, compromissione di account e frodi.

Per saperne di più
Statistiche sulla cyber assicurazioneSicurezza informatica

Statistiche sulla cyber assicurazione

Le statistiche sulla cyber assicurazione per il 2026 evidenziano un mercato in rapida crescita. Si osservano cambiamenti nei modelli di sinistro, una sottoscrizione più rigorosa e un ampliamento dei gap di protezione tra grandi imprese e aziende più piccole.

Per saperne di più
Che cos'è la sicurezza delle applicazioni? Guida completaSicurezza informatica

Che cos'è la sicurezza delle applicazioni? Guida completa

La sicurezza delle applicazioni protegge il software durante tutto il SDLC utilizzando strumenti come SAST, DAST, SCA e difese in fase di esecuzione. Scopri come costruire un programma AppSec.

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