Trojan source è la nuova tecnica d’attacco che consiste nell’iniettare il trojan nel codice sorgente in modo da nascondere l’introduzione di vulnerabilità invisibili dentro il software. “È come se in una ricetta venisse nascosto un ingrediente segreto che non si vede, ma è in grado di avvelenare la torta che cucineremo seguendo quelle istruzioni”, commenta Paolo Dal Checco, consulente informatico forense.
Indice degli argomenti
La pericolosità del trojan source
“La compromissione è davvero insidiosa, anche perché il trojan source ha trovato un modo più facile per diffondersi, andando alla fonte, rispetto a uno già compilato che può essere rilevato. Fra l’altro, è innovativo anche perché per anni può rimanere nel codice sorgente prima di iniziare il contagio. Ricorda un caso di phishing in cui il mittente dell’e-mail sfruttava l’omografia e sembrava provenire da una nota azienda, ma una lettera latina era stata sostituita da una lettera analoga dal punto di vista grafico ma in cirillico, in modo da impedire di essere rilevata dagli esseri umani che vedono un codice che però, in fase di compilazione, viene interpretato in maniera differente.”, conclude Paolo Dal Checco. “Per fortuna l’anti-malware può riconoscere la presenza della minaccia, nonostante la manipolazione”.
Effetti potenzialmente devastanti per le supply chain
“La metodica di attacco scoperta dai ricercatori è estremamente insidiosa in quanto consente di inserire del codice malevolo all’interno del sorgente di progetti software”, ci spiega Pierluigi Paganini, analista di cyber security e Ceo Cybhorus. “Tali manipolazioni risultano trasparenti ad una review del codice condotta da uno sviluppatore software.”
“Questa tecnica è estremamente insidiosa in quanto apre le porte a potenziali attacchi di supply chain“, continua Paganini: “Utilizzando tale tecnica per inserire un codice malevolo in componenti software utilizzate da una moltitudine di aziende oppure in librerie importate da diversi progetti si potrebbe colpire una numero elevato di organizzazioni con effetti potenzialmente devastanti. Il recente attacco SolarWinds ha dimostrato quando siano insidiosi attacchi alla supply chain di software di largo uso”.
Come funziona il trojan source
La tecnica “effettua l’exploit di subalternità negli standard di text-encoding come Unicode per generare codice sorgente i cui token sono inseriti secondo una logica in un ordine differente rispetto a quello in cui sono posizionati, portando a vulnerabilità che non possono essere percepite da esseri umani”, hanno riportato in un nuovo studio i ricercatori dell’Università di Cambridge, Nicholas Boucher e Ross Anderson.
Le vulnerabilità, tracciate come CVE-2021-42574 e CVE-2021-42694, affliggono i compiler di tutti i più popolari linguaggi di programmazione:
- C
- C++
- C#
- JavaScript
- Java
- Rust
- Go
- Python
I compilatori, lo ricordiamo, sono programmi che traducono il codice sorgente di alto livello leggibile dall’uomo nelle loro rappresentazioni di basso livello come il linguaggio assembly, il codice oggetto o il codice macchina che possono poi essere eseguiti dal sistema operativo.
L’attacco trojan source sfrutta il fatto che l’algoritmo bidirezionale (o Bidi) di Unicode prevede il supporto sia per le lingue scritte da sinistra a destra (ad esempio, l’italiano o l’inglese) sia per quelle da destra a sinistra (ad esempio, l’arabo o l’ebraico), consentendo anche il cosiddetto override bidirezionale che consente di scrivere parole da sinistra a destra all’interno di una frase da destra a sinistra, o viceversa, rendendo così possibile l’inserimento di testo di una diversa direzione di lettura all’interno di grandi blocchi di testo.
In questo modo, alcuni comandi iniettati nei commenti cambiano l’ordine di visualizzazione dei blocchi di codice, o l’utilizzo di controlli che fanno sembrare che un commento o stringhe fossero parte del codice stesso, ma che, una volta compilato, non sarebbe presente
La vulnerabilità CVE-2021-42694, in particolare, è quella che sfrutta l’omografia, ovvero l’utilizzo di caratteri di alfabeti stranieri che sembrano affini a quelli latini, ma la cui immissione nel codice, invece, può cambiare il modo in cui un software funziona, impedendo a un essere umano di riconoscere l’inserimento anomalo.
Le finalità del trojan source
Ogni software open source è frutto del lavoro cooperativo di molteplici collaboratori: dunque, l’avvelenamento operato dal trojan source colpisce, in particolare, questa modalità di sviluppo. Gli attacchi bidirezionali e homoglyph sono molto insidiosi, soprattutto se inseriti nei commenti che non vengono letti.
Il trojan source intende iniettare vulnerabilità nei codici sorgenti delle applicazioni per sfruttarle in una seconda fase, ma potrebbero rimanere nascosti per lungo tempo, diventando davvero una “spada di Damocle” su chi utilizza le applicazioni infette. In epoca di attacchi alle supply chain, trojan source è una minaccia più insidiosa del solito.