Injection attacks : quali sono i più pericolosi ?

Injection attacks : quali sono i più pericolosi ?

I più pericolosi  “Injection attacks”

Ecco una panoramica dei più pericolosi attacchi ad iniezione ( injection attacks ) che possono interessare il tuo sito web.

Gli attacchi a mezzo iniezione di codice malevolo o “Injection attacks” verso siti web sono più comuni di quanto si possa immaginare. Sono stati infatti classificati da OWASP  ( una fondazione noprofit che si occupa di migliorare la sicurezza del software),  come il terzo rischio più significativo per la sicurezza delle applicazioni web. L’attacco al tuo sito web può avvenire in diversi  modi, ma principalmente  “iniettando” comandi, script o codice in form, pagine varie o altri accessi vulnerabili del tuo sito web.

I  danni  che possono verificarsi dipendono dalle vulnerabilità sfruttate e possono essere riepilogati come segue :

  • Furto di dati sensibili : dati clienti, dati bancari, informazioni aziendali o altro per la rivendita a terzi o per la richiesta di riscatto.
  • Utilizzo come host : il tuo sito web viene inconsapevolmente trasformato in host server per inviare spam mail o altre attività.
  • Inutilizzabilità del sito web : sito offline o inaccessibile, tramite codifica di tutti i dati, alterazione o cancellazione dei contenuti, di solito viene richiesto un riscatto per ottenere una chiave di sblocco.
  • Diffusore di virus o malware : il tuo sito web diventa inconsapevolmente una fonte di virus o malware che può infettare i computer dei visitatori, i server locali o le reti connesse.
  • Utilizzo per contenuti offensivi, ingannevoli, vietati o pubblicitari : questo può succedere in particolar modo su siti web che possiedono un alto traffico di visitatori.

Pertanto se sei proprietario di un sito web, devi conoscere gli attacchi injection e adottare misure per impedire che si verifichino sul tuo sito.

Vediamo quali sono i primi dieci injection attacks (attacchi a mezzo  iniezione) più pericolosi.

  1. Cross-site scripting (Script fra siti)

Questo tipo di attacco, noto come XSS, consente agli hacker di inserire script dannosi in siti Web affidabili, che vengono poi trasmessi ad altri utenti. Ciò può consentire allo script dannoso di accedere alle informazioni personali memorizzate dal browser, ad esempio  i cookie. Se lo script è progettato in modo avanzato, potrebbe persino modificare il contenuto del sito Web stesso.

  1. SQL injection

L’attacco SQL si basa sull’inserimento di uno script SQL (SQL è un linguaggio di gestione di database relazionali basati su tale modello ) in un campo di input di testo, che viene poi inviato all’applicazione web. L’applicazione, ignara della natura dannosa dello script, lo esegue direttamente sul database. Ciò può portare a una serie di esiti negativi, come consentire all’attaccante di aggirare le schermate di accesso, accedere a dati sensibili, modificare o distruggere le informazioni del database o persino eseguire operazioni amministrative sul database.

  1. Remote code execution (Esecuzione di codice remoto)

L’esecuzione di codice in modalità remota (RCE), chiamata anche vulnerabilità di code injection, avviene quando un hacker riesce ad inserire il proprio codice dell’applicazione nel tuo sito Web, provocandone l’esecuzione da parte del server. Ad esempio, se il tuo sito Web è stato creato utilizzando PHP, gli hacker possono iniettare codice PHP dannoso che verrà eseguito dall’interprete PHP sul tuo server Web. Ciò avviene prevalentemente a mezzo vulnerabilità conosciute del software, dei plugin, configurazioni errate o verifiche su campi insufficienti.

  1. Host header injection

In un attacco host header injection, un hacker manipola l’intestazione host in modo che punti a un dominio diverso da quello originariamente previsto. Ciò può consentire all’attaccante di:

  • Ignorare i controlli di sicurezza che si basano sul nome di dominio nell’intestazione Host
  • Condurre attacchi di phishing facendo credere alla vittima di interagire con un sito Web legittimo
  • Sfruttare le vulnerabilità nel server Web o nell’applicazione modificando l’intestazione Host per attivare azioni impreviste
  1. LDAP injection

In un attacco di iniezione LDAP (Lightweight Directory Access Protocol), un hacker invia un input dannoso non convalidato all’applicazione Web. Questo input può quindi essere utilizzato per modificare o ignorare le query LDAP utilizzate dall’applicazione per autenticare gli utenti o accedere ai servizi di directory.

Gli attacchi LDAP possono causare le seguenti conseguenze:

  • Compromissione dei dati sensibili archiviati nella directory, come le credenziali dell’utente o altre informazioni riservate
  • Ottenere l’accesso non autorizzato al sistema o all’applicazione
  • Esecuzione di codice arbitrario sul server
  1. XXE injection

A differenza di altri attacchi che sfruttano la scarsa validazione di dati di input, le iniezioni di XXE sfruttano funzionalità legacy non sicure nei parser XML, rendendole particolarmente pericolose.I parser XML sono parti del software di programmazione (package o librerie) che consentono all’applicazione di interfacciarsi con documenti XML Pertanto, è fondamentale prevenire gli attacchi XXE injection con adeguate misure di sicurezza e seguendo le migliori pratiche di gestione degli input XML.

Per proteggere il tuo sito Web da iniezioni XXE, ci sono diversi azioni  da eseguire. Innanzitutto, devi disabilitare il supporto per DTDs (old-style document type definition). Inoltre, devi convalidare, verificare ed eventualmente sanificare i dati inseriti dall’utente per evitare che dati XML dannosi vengano accettati dal tuo sito web. Dovresti anche utilizzare parser XML  sicuri e aggiornati che non siano vulnerabili all’iniezione di XXE, di solito le versioni aggiornate del software risolvono eventuali vulnerabilità conosciute.

  1. SSTI Server-side template injection (Iniezione di modelli lato server)

L ‘applicazione Web che non convalida correttamente l’input dell’utente, può consentire ad un hacker di inserire un payload SSTI dannoso nel template, portando all’esecuzione di codice remoto (RCE). Ciò significa che l’attaccante può assumere il controllo del server da remoto. I template engines consentono agli sviluppatori di generare pagine dinamiche combinando dati e template. Alcuni popolari template engines includono Liquid per Ruby, Smarty e Twigs per PHP, Tornado, JINJA e Mako per Python, Velocity e Freemaker per Java e Jade e Rage per JavaScript.

Gli attacchi SSTI sono particolarmente pericolosi perché consentono agli hackers di eseguire codice dannoso  sul server, accedendo a dati sensibili  o assumendo il controllo dell’intero sistema.

  1. CRLF injection

Un’iniezione CRLF si verifica quando un hacker aggiunge caratteri CRLF (Carriage Return Line Feed) in dati di input non filtrati. Ciò può  indurre le applicazioni Web a eseguire azioni indesiderate e potenzialmente dannose, con conseguenze da moderate a gravi.. L’iniezione di CRLF prende di mira i difetti di sicurezza del livello dell’applicazione e gli aggressori possono sfruttarlo per alterare i dati dell’applicazione, comprometterne l’integrità e sfruttare altre vulnerabilità come la contaminazione della cache del proxy e del server Web, il danneggiamento del browser Web del client, il dirottamento della sessione del client e altre azioni nocive.

  1. Mail command injection

L’iniezione di mail command  prende di mira i server e le applicazioni di posta elettronica che utilizzano i protocolli IMAP o SMTP e non riescono a convalidare correttamente l’input dell’utente. Rispetto ai server web, i server IMAP e SMTP spesso sono più vulnerabili. Infiltrandosi in un server di posta, gli hackers possono aggirare funzionalità di sicurezza come captcha e limitazione dei tentativi di accesso. Si utilizza in questo caso  un account di posta valido che contiene messaggi con comandi malevoli iniettati all’interno. Se il server ricevente è vulnerabile, risponderà a queste richieste, consentendo all’attaccante di aggirare le restrizioni del server e utilizzare i suoi servizi per scopi dannosi, come l’invio di e-mail di spam. Le conseguenze di iniezioni di mail command possono essere gravi, dall’accesso improprio a dati sensibili alle interruzioni del servizio.

  1. NoSQL injection 

Gli attacchi NoSQL injection si riferiscono ad attacchi a  database non relazionali (quindi non basati sul linguaggio SQL). Anche in questo caso si utilizzano  query con script malevoli, che possono potenzialmente accedere e modificare non solo i dati ma anche la logica dell’applicazione. Di conseguenza, gli aggressori possono aggirare i controlli di autenticazione e autorizzazione ed operare con il pieno controllo.

Come posso prevenire gli “Injection Attacks” ?

Le responsabilità della prevenzione sono sia a carico degli sviluppatori del sito web che degli amministratori. Ecco alcune pratiche corrette che puoi adottare.

  1. Convalida, verifica e “sanifica” gli input dell’utente.
  2. Utilizza una gamma di istruzioni parametrizzate.
  3. Definisci e utilizza le procedure archiviate nel database (stored procedure).
  4. Limita l’uso di caratteri speciali in campi di input.
  5. Riduci al minimo o elimina i campi di input per utenti.
  6. Riduci al minimo i privilegi degli utenti autorizzati.
  7. Utilizza un firewall per applicazioni Web (WAF).
  8. Utilizza la crittografia e l’hashing.
  9. Utilizza l’autenticazione a più fattori (MFA).
  10. Utilizza funzioni di captcha.
  11. Aggiorna costantemente il software.
  12. Monitora con appositi tool il tuo sito web per rilevare rapidamente eventuali variazioni.
  13. Effettua back up regolari.
  14. Se sei un amministratore di siti web, educa gli utilizzatori alle pratiche di sicurezza.

I suggerimenti elencati non possono azzerare il rischio di Injection Attacks sul tuo sito web. Infatti vengono continuamente scoperte nuove tecniche basate sulle vulnerabilità,  ma sicuramente potrai ridurre i rischi e gli eventuali danni causati da un attacco ad iniezione.

Vai alla nostra home page