Code Injection e rischi potenziali
Il Code Injection (letteralmente “Iniezione di codice”) è un codice informatico iniettato tramite applicazioni installate sui laptop. Il suo scopo principale è quello di modificare il funzionamento del device o di alterare alcune sue peculiarità. Si tratta di una tecnica che, sfruttando i browser, i sistemi operativi e i client di posta elettronica, viene utilizzata anche da programmi dal nome autorevole per svolgere le mansioni per cui sono stati progettati.
Un esempio comune è quello dei software antivirus, che ricorrono al Code Injection per tenere sotto controllo la navigazione effettuata tramite il browser. Bisogna però tenere conto che si parla di una funzionalità utilizzata da molti malware per infettare i device.
Come funziona il Code Injection
Per praticare il Code Injection è possibile ricorrere a diverse modalità. Una di queste è il ricorso ad alcuni file DDL. Alla base di tutto ci sono le API dei sistemi operativi e la possibilità di collegare tra loro diversi processi. In questi casi, i programmi coinvolti non vengono modificati in maniera diretta. Si attende infatti il completo caricamento dell’applicazione per poi iniettare il codice al suo interno.
La pratica appena descritta del Code Injection viene utilizzata dagli antivirus, ma anche da diversi programmi di traduzione. In questo frangente, lo scopo è quello di attivare il traduttore di una determinata lingua con i tasti del mouse o tramite quelli della tastiera. Da citare è anche il suo ruolo nel funzionamento di alcuni driver di sistema e, in particolare, nelle procedure di ottimizzazione delle periferiche.
Come verificare la presenza di Code Injection sul proprio computer
Il controllo della presenza di Code Injection sul proprio device è molto semplice e può essere effettuato ricorrendo a software gratuiti che permettono di visualizzare non solo il nome dei file DDL, ma anche il loro produttore e le specifiche sul percorso.
Tramite le schermate dei suddetti programmi, è possibile scegliere agevolmente gli applicativi da tenere sotto controllo e, con un semplice click sul loro nome, attendere il caricamento di tutti i file DDL utilizzati in quel determinato momento.
Come difendersi dalla SQL Injection
Quando si parla di SQL Injection, si inquadra una tipologia di Code Injection che viene utilizzata soprattutto per attaccare applicazioni di gestione dei dati. Prevede l’iniezione di stringhe di codice SQL malevole nell’ambito di campi input, facendo in modo che vengano eseguite. Per difendersi, è cruciale innanzitutto controllare gli input automatici delle applicazioni.
In concreto, ciò implica la verifica dei parametri che vengono utilizzati di volta in volta per inserire gli input. In caso di richiesta di un parametro numerico, si può per esempio mettere in atto la verifica attraverso uno script PHP caratterizzato dalla funzione is_numeric(). Nell’eventualità di un filtraggio, vengono ignorati i relativi caratteri speciali.
Fondamentale è pure che le applicazioni non mostrino messaggi di errore esterni tali da rendere palesi sia le informazioni relative al sistema utilizzato, sia alle strutture del database. Essenziale è anche rammentare il ruolo dei cosiddetti prepared statements, i quali possono essere comodamente utilizzati con numerosi DBMS.
Istruzioni predefinite utilizzate originariamente per eseguire interrogazioni frequenti, i prepared statements hanno una struttura tale da aiutare anche a ridurre il rischio di Code Injection aventi scopi malevoli. Grazie alle loro istruzioni parametrizzate, sono infatti in grado di comunicare al database i comandi SQL veri e propri.
Un altro trucco per proteggersi dalla pratica della SQL Injection riguarda infine la cura della sicurezza del server, che può essere ottimizzata prima di tutto tramite l’installazione delle sole applicazioni necessarie al funzionamento del database. A tal proposito, è bene eliminare gli account utente che non risultano necessari e installare tutti gli aggiornamenti richiesti sia per il sistema, sia per i programmi.
