Execution Flow Hijack

Execution Flow Hijack

In questo articolo non parleremo di una singola minaccia, bensì di un insieme di tecniche che consentono l’esecuzione di codice malevolo senza che il sistema operativo ne rilevi la pericolosità.

Stiamo parlando di Execution Flow Hijack, letteralmente “dirottamento del flusso di esecuzione”.

Spiegheremo di cosa si tratta per capirne la pericolosità e quanto il fenomeno sia diffuso.

Sommario degli argomenti

Execution Flow Hijack, la definizione del problema

Parlare al plurale di Execution Flow Hijack è corretto poiché indica una categorie che comprende più tecniche di attacco informatico.

Lo scopo di queste tecniche è dirottare il normale flusso di esecuzione dei programmi o dei sistemi operativi.
Per far sì che questo accada, vengono sfruttate le falle di sicurezza presenti:

  1. nei programmi
  2. ei sistemi operativi
  3. nelle configurazioni di sistema.

L’obiettivo di queste tecniche è modificare percorsi o file di sistema in maniera tale che il sistema operativo veda come attività lecita l’esecuzione di codice in realtà è malevolo.

Questo significa che l’esecuzione del codice malevolo avviene non tanto durante l’attacco di Execution Flow Hijack, ma in seguito al richiamo di file di sistema da parte del sistema operativo o di altro software ritenuto noto e attendibile.

Questa procedura può coinvolgere il corretto funzionamento di browser web, programmi di calcolo o software di video scrittura abitualmente utilizzati.

Principali tipologie di tecniche Execution Flow Hijack

Tra le varie tecniche di Execution Flow Hijacking, vengono codificate delle categorie che si sviluppano in maniera precisa, vediamo di seguito.

DLL Side-Loading

DLL (Dynamic Link Library) comunemente chiamate librerie, non sono altro che dei file contenitori.

Al loro interno possono essere immagazzinati funzioni, dati o collegamenti. Questi elementi vengono richiamati dai software o da altre DLL durante il normale funzionamento di un processo.

DLL Side-Loading è una tecnica che sostituisce DLL note con DLL falsificate contenenti il payload di un malware. Il caricamento laterale della DLL non è una tecnica innovativa quanto più innovativi sono i malare che sfruttano questa tecnica.
Spesso e volentieri, pur trattandosi di una tecnica poco diffusa, il caricamento laterale della DLL è sempre più utilizzato dai creatori di attacchi ransomware. Gli attaccanti infatti, la sfruttano per eseguire il payload del ransomware e eludere il rilevamento della minaccia da parte dei servizi di sicurezza.

Tra gli attacchi ransomware più recenti ricordiamo ransomware REvil ha sfruttato una vulnerabilità di caricamento laterale della DLL per avviare il suo payload.

DLL Search Order Hijack

è una delle tecniche di Execution Flow Hijack più usate e parliamo sempre di DLL.

Quando un software viene eseguito, richiama una serie di librerie che contengono funzioni e dati necessari alla sua esecuzione.

Esistono molti modi in cui un hacker può dirottare i carichi DLL. L’attacco sfrutta l’ordine con il quale normalmente le librerie vengono richiamate da programmi. Infatti, gli attaccanti inseriscono file di libreria a collegamento dinamico (DLL) di trojan in una directory che verrà cercata prima della posizione di una libreria legittima richiesta dal programma, facendo sì che Windows carichi la loro libreria dannosa.

Dylib Hijack

analogo ai precedenti, colpisce i sistemi operativi Apple.

Questa metodologia di attacco viene impiegata contro i computer Apple poiché utilizzano un metodo di ricerca ben preciso per trovare le librerie dinamiche che necessarie ai programmi. Il metodo di ricerca si basa sul principio tramite cui gli attaccanti possono sfruttare questi percorsi per l’escalation dei privilegi.

Gli aggressori conducono ricerche per scoprire i dylib utilizzati da applicazioni specifiche e quindi posizionano una versione dannosa con un nome simile in alto nel percorso di ricerca. Infatti, quando il sistema operativo cercherà il dylib di un’applicazione, troverà in cima alla ricerca quello dannoso.

Executable Installer File Permissions Weakness

Questa tecnica, spesso utilizzata in combinazione con DLL Search Order Hijack, consiste nello sfruttare la debolezza dei permessi di accesso alle cartelle di sistema durante l’installazione di software o aggiornamenti.

In questo modo, durante una normale procedura di installazione di un software ritenuto legittimo e sicuro, il criminale informatico riesce a sostituite file eseguibili noti con quelli contenenti il payload malevolo, senza che il sistema operativo o l’utente sia in grado accorgersi della differenza.

Services Permission Weakness

I servizi sono processi del sistema operativo che vengono caricati ed eseguiti in maniera trasparente rispetto alla normale interfaccia utente.

Questa tecnica sfrutta vulnerabilità sui privilegi di esecuzione di alcuni servizi, sostituendo file eseguibili noti con quelli falsificati dai cyber criminali, consentendo l’esecuzione del codice malevolo da parte di servizi di sistema. Questo genere di tecnica rende l’attacco difficile da individuare e persistente nel tempo, poiché il servizio viene eseguito in automatico dal sistema operativo ogni volta che questo viene avviato.

Services Registry Permissions Weak

questa tecnica, come la precedente, influisce sui servizi, ma lo fa a livello di registro di sistema.

Il registro di Windows, in particolare nella sezione servizi, controlla completamente la modalità di esecuzione e gli eseguibili da invocare per l’esecuzione del servizio stesso.
La presenza di una vulnerabilità nei permessi di accesso e modifica del registro di Windows permette al cyber criminale di modificare in maniera persistente i percorsi e i file richiamati dai vari servizi.

PATH Environment Variable Haijack

ovvero dirottamento del percorso delle variabili d’ambiente.

Esiste un elenco di percorsi che il sistema operativo “legge” per sapere quale percorso fare per ritrovare i programmi che vengono chiamati dall’utente o da un altri programmi. Questa tecnica consiste nell’inserire in questo elenco un percorso diverso di quello corretto, in modo che il sistema operativo vada a cercare il file invocato in una cartella diversa, precedentemente creata tramite Executable Installer File Permissions Weakness, contenente un file con lo stesso nome ma con payload malevolo.

Search Order e Unquoted Path Hijack

Si tratta di due tecniche simili che sfruttano la modalità di ricerca di Windows quando un programma richiama contemporaneamente un altro programma per la sua esecuzione e una vulnerabilità di programmazione dei software stessi.

Nel primo caso, se un software A attendibile durante il suo funzionamento richiama il programma B attendibile senza specificare il percorso, p.e. C:\Programs\B-folder\B.exe.
Windows prima di tutto cercherà l’eseguibile B nella stessa cartella di A, quindi la tecnica consiste nell’inserire il finto programma B nella stessa cartella di A, p.e. C:\Programs\A-folder\B.exe, e Windows farà il resto.

Nel secondo caso il software A richiama B che risiede in un percorso con spazi (C:\Programs\B folder\B.exe), senza specificarlo con gli apici “C:\Programs\B folder\B.exe”.
Gli apici comunicano a Windows che deve leggere il percorso compreso dentro gli apici per intero, senza gli apici Windows inizierà la ricerca dalla cartella superiore, quindi il cybercriminale che scopra una vulnerabilità simile in un qualsiasi software cercherà di mettere il suo finto B.exe nella cartella superiore rispetto a quella del programma vulnerabile, p.e. C:\Programs\B.exe.

Pericolosità delle tecniche di Execution Flow Hijack

Come detto, le tecniche elencate e altre ancora vengono racchiuse nell’insieme dei Execution Flow Hijack.

Queste tecniche sono in continua crescita, secondo il Threat  Detection Report 2022 di Red Canary, l’ 8,4% dei clienti intervistati è stato colpito da almeno una delle tecniche di Execution Flow Hijack di cui 7,8% solo dalla sottocategoria di DLL Search Order Hijack.

Il vantaggio più rilevante di queste tecniche è principalmente quello di riuscire ad eseguire il payload (carico utile, nel nostro caso un virus informatico o una successiva sequenza di Execution Flow Hijack) dei loro file falsificati, con una elevazione dei privilegi che permette quindi di eludere controlli e quindi, poter fare più danni.

In un sistema operativo infatti, esistono diversi livelli di privilegi: da quelli utente a quelli administrator.

I privilegi più alti sono a livello di sistema, sono privilegi che permettono a programmi e servizi di svolgere le loro operazioni di funzionamento, di scrittura e lettura file, di modifica ai programmi, senza interazione con l’utilizzatore.

Riuscire a far eseguire codice malevolo all’apertura di un programma ritenuto attendibile, significa permettere ad un malware di agire pressoché indisturbato.

Le tecniche di Execution Flow Hijack sono state utilizzate per lanciare attacchi di vario tipo, tra cui anche ransomware.
Di recente, Symantec ha rilevato un malware in grado di sfruttare una tecnica di tipo DLL Side-Loading su una DLL comunemente richiamata da un software e attendibile come VLC.

Come difendersi

Queste tecniche sfruttano vulnerabilità spesso insite nei software normalmente utilizzati, oppure vulnerabilità nel sistema di gestione dei permessi.

Nel primo caso, l’unica difesa possibile è tenere i propri sistemi aggiornati costantemente. Così come i cybercriminali sono sempre alla ricerca di vulnerabilità, allo stesso modo gli sviluppatori lavorano costantemente per rivolverle.

Nel secondo caso, si tratta di gestire i privilegi degli utenti che accedono ai computer e in genere alle risorse informatiche all’interno della società. L’obiettivo per il reparto IT è di limitare, ad esempio, la possibilità di installare o modificare impostazioni di sistema solo ad un numero ristretto di utenze autorizzate.

I sistemi di protezione firewall e antivirus permettono di limitare ulteriormente l’azione di queste tecniche di attacco: almeno per le vulnerabilità note.

Uno strumento fondamentale di prevenzione è il Vulnerability Assessment di Cyberment, che permette non solo di conoscere in maniera esaustiva tutte le vulnerabilità del proprio sistema, ma consente di intraprendere le azioni necessarie per risolverle.           

Cyberment Srl

Azienda informatica per la prevenzione degli attacchi informatici

Siamo un’azienda specializzata in consulenza di sicurezza informatica.

Il nostro team di specialisti cybersecurity vanta un’esperienza decennale nel settore e ci occupiamo di identificare le vulnerabilità informatiche nei sistemi informatici e nelle applicazioni web.

Cyberment ha 3 sedi dalle quali studia con costanza l’evoluzione delle minacce informatiche: Milano, Mantova e Londra.

Contattaci!