Simple Science

Scienza all'avanguardia spiegata semplicemente

# Informatica# Crittografia e sicurezza

WebAssembly e la minaccia del Cryptojacking

WebAssembly porta nuovi rischi come il cryptojacking che gli utenti devono capire.

― 7 leggere min


Minacce di cryptojackingMinacce di cryptojackingin WebAssemblycryptojacking.Scoprire i rischi di WebAssembly e
Indice

WebAssembly, spesso chiamato wasm, è un nuovo modo di eseguire codice sul web. Permette agli sviluppatori di scrivere codice in linguaggi come C, C++ e Rust, e far girare questo codice nei browser in modo veloce e sicuro. Questo è importante perché apre molte opportunità per costruire applicazioni web potenti. Tuttavia, come con qualsiasi nuova tecnologia, WebAssembly porta anche alcuni rischi di sicurezza. Un grande rischio è il Cryptojacking, un modo per i malintenzionati di usare segretamente il computer di qualcuno per minare criptovalute.

Il cryptojacking può avvenire senza che gli utenti lo sappiano, rendendolo una minaccia pericolosa. Man mano che WebAssembly cresce in popolarità, è fondamentale capire come viene utilizzato nel cryptojacking e come prevenirlo.

Cos'è WebAssembly?

WebAssembly è un linguaggio di programmazione di basso livello pensato per girare nei browser web. È progettato per essere veloce, efficiente e sicuro, il che lo rende interessante per gli sviluppatori. Con WebAssembly, le applicazioni possono girare quasi alla stessa velocità delle applicazioni native, che sono programmi che girano direttamente sul sistema operativo del computer.

WebAssembly permette agli sviluppatori di prendere il loro codice esistente e farlo girare nel browser senza doverlo riscrivere in JavaScript. Questo rende più facile portare applicazioni desktop sul web, migliorando le Prestazioni e l'esperienza utente. Dalla sua introduzione nel 2017, WebAssembly ha ricevuto molta attenzione da grandi aziende tecnologiche e sviluppatori.

Comprendere il Cryptojacking

Il cryptojacking è un tipo di attacco informatico in cui gli attaccanti usano le risorse del computer di qualcun altro per minare criptovalute senza il loro consenso. Il cryptojacking può avvenire in vari modi, comprese le vulnerabilità di siti web che usano WebAssembly per eseguire script di mining in background.

Il mining di criptovalute è un processo molto pesante dal punto di vista computazionale e può usare la potenza della CPU di una persona, rallentando spesso il dispositivo. La sfida con il cryptojacking è che le vittime potrebbero nemmeno rendersi conto che i loro dispositivi vengono sfruttati.

Come Funziona il Cryptojacking

Quando un utente visita un sito compromesso, il suo browser potrebbe scaricare un codice malevolo sotto forma di un binario WebAssembly. Questo codice può spesso girare in modo rapido ed efficiente, usando il dispositivo dell'utente per fare il lavoro pesante del mining di criptovalute. Il mining è essenzialmente il processo di risolvere complessi problemi matematici per creare nuove monete di criptovaluta.

Spesso, il processo di mining può essere innescato da una semplice visita a un sito web, il che significa che gli utenti non devono nemmeno cliccare su nulla per far usare i loro dispositivi per il mining. Il browser eseguirà il codice WebAssembly e il mining inizierà in background.

Sfide nella Rilevazione

Rilevare il cryptojacking può essere difficile a causa dei modi astuti in cui si amalgama nel traffico web normale o si comporta come applicazioni legittime. I metodi tradizionali di rilevazione spesso si basano sull'analisi dei comportamenti delle applicazioni, ma a volte possono mancare casi di cryptojacking. Inoltre, dato che WebAssembly può nascondere la sua reale intenzione mentre opera, aggiunge un ulteriore livello di difficoltà agli sforzi di rilevazione.

Alcuni metodi per rilevare il cryptojacking comprendono l'analisi di metriche di prestazione come l'uso della CPU e della memoria o il controllo di traffico di rete insolito. Tuttavia, molti strumenti di rilevazione non si concentrano specificamente sui binari WebAssembly, rendendo ancora più difficile identificare usi malevoli in questo contesto.

Tecniche di Offuscamento

Un modo per combattere il cryptojacking è attraverso l'offuscamento, un processo che rende un codice o un binario più difficile da analizzare e comprendere. In questo contesto di WebAssembly, l'offuscamento trasforma il codice in modo che sembri diverso pur continuando a svolgere la stessa funzione. Ciò significa che anche se un detector prova ad analizzare il codice, potrebbe non riconoscere le azioni dannose che vengono eseguite.

Ci sono diversi tipi di tecniche di offuscamento che possono essere utilizzate, tra cui:

  1. Offuscamento del Flusso di Controllo: Questo metodo altera l'ordine e il flusso di esecuzione in un programma. Ad esempio, potrebbe aggiungere condizioni false o cambiare i comportamenti dei loop per confondere gli strumenti di rilevazione.

  2. Offuscamento dei Dati: Questa tecnica cambia il modo in cui i dati sono rappresentati nel codice, rendendo difficile per chi analizza il codice capire cosa sta facendo. Questo può includere la codifica di determinati valori o la scomposizione delle strutture dati in forme meno riconoscibili.

  3. Trasformazioni Preventive: Questi aggiustamenti puntano a interrompere le tecnologie di reverse engineering comunemente usate per analizzare i codici, come le tecniche per rilevare il debugging o la manomissione.

  4. Offuscamento del Layout: Questo cambia il modo in cui gli elementi del codice sono disposti, rendendolo più difficile da leggere e seguire.

Applicando queste tecniche, l'obiettivo è creare un ambiente in cui i metodi di rilevazione faticano a identificare la vera natura del codice e quindi a catturare i tentativi di cryptojacking.

L'Importanza di Valutare l'Offuscamento

Per garantire che le tecniche di offuscamento siano efficaci, è fondamentale valutarne l'impatto sia sulla rilevazione del codice che sulle prestazioni. Valutare quanto bene questi metodi di offuscamento possono travestire azioni dannose è essenziale per capire il loro valore nella prevenzione del cryptojacking.

Una valutazione efficace misura diversi aspetti chiave:

  1. Efficacia: Quanto bene l'offuscamento traveste la vera intenzione del codice? I binari risultanti sono abbastanza diversi da far sì che i detector facciano fatica a riconoscere un comportamento malevolo?

  2. Rilevabilità: I binari offuscati riescono ad evitare con successo il riconoscimento da parte degli strumenti di rilevazione esistenti? Questo comprende determinare quali tipi di offuscamento funzionano meglio contro specifici metodi di rilevazione.

  3. Sovraccarico: L'offuscamento aggiunge un sovraccarico di elaborazione significativo che impatta le prestazioni? Questo significa esaminare se il codice offuscato gira più lentamente dell'originale, potenzialmente dissuadendo il suo utilizzo in scenari in tempo reale.

Impostazione Sperimentale

Negli esperimenti per analizzare le tecniche di offuscamento, è stato utilizzato un assortimento di applicazioni esistenti scritte in C. L'obiettivo era applicare diverse tecniche di offuscamento a queste applicazioni, compilarle in WebAssembly e poi valutare la loro efficacia contro le comuni strategie di rilevazione. Gli strumenti utilizzati in questo test includevano:

  • Tigress: Un offuscatore da sorgente a sorgente che applica varie trasformazioni.
  • emcc-obf: Una versione modificata di un popolare compilatore WebAssembly con supporto per l'offuscamento integrato.
  • wasm-mutate: Uno strumento che si concentra sulla diversificazione dei binari WebAssembly.

Dopo aver applicato l'offuscamento, le applicazioni risultanti sono state testate usando metodi di rilevazione del cryptojacking per vedere quanto bene potevano identificare la presenza di attività di mining nascoste.

Risultati delle Tecniche di Offuscamento

Gli esperimenti hanno rivelato diversi approfondimenti sull'efficacia dei metodi di offuscamento.

  1. Efficacia Generale: Tigress si è dimostrata la più efficace nel produrre codice difficile da analizzare per gli strumenti di rilevazione. È riuscita a generare binari significativamente diversi dalle loro versioni originali.

  2. Rilevabilità: Quando testati contro metodi di rilevazione, molti binari offuscati sono riusciti a evitare il riconoscimento, in particolare quelli trasformati tramite tecniche di offuscamento del flusso di controllo.

  3. Sovraccarico: Anche se alcune tecniche di offuscamento hanno introdotto riduzioni delle prestazioni in termini di potenza di elaborazione utilizzata, altre sono riuscite a mantenere o addirittura migliorare le prestazioni. Questo suggerisce che l'offuscamento può essere applicato strategicamente senza impattare severamente le operazioni in tempo reale.

  4. Risultati Specifici per Applicazione: L'efficacia di specifiche trasformazioni dipendeva spesso dal tipo di applicazione che veniva offuscata. Ad esempio, i miner di cryptojacking beneficiavano di più dalle tecniche di codifica aritmetica.

Conclusione

L'ascesa di WebAssembly porta sia opportunità che sfide. La sua capacità di far girare applicazioni complesse direttamente nei browser web apre nuove possibilità per gli sviluppatori, ma espone anche gli utenti a potenziali rischi, incluso il cryptojacking.

Con l'aumento degli attacchi che sfruttano tecnologie come WebAssembly per scopi malevoli, è fondamentale continuare a ricercare e sviluppare contromisure efficaci. Le tecniche di offuscamento offrono una via per mitigare i rischi del cryptojacking, ma sarà necessario un continuo monitoraggio e adattamento per tenere il passo con le minacce in evoluzione.

Aumentare la consapevolezza riguardo a questi rischi e sviluppare migliori metodi di rilevazione sarà fondamentale per garantire che i benefici di WebAssembly possano essere goduti senza compromettere la sicurezza. Affrontando efficacemente il problema del cryptojacking, gli utenti possono sentirsi al sicuro sapendo che i loro dispositivi non vengono sfruttati in silenzio per scopi malevoli.

Fonte originale

Titolo: Cryptic Bytes: WebAssembly Obfuscation for Evading Cryptojacking Detection

Estratto: WebAssembly has gained significant traction as a high-performance, secure, and portable compilation target for the Web and beyond. However, its growing adoption has also introduced new security challenges. One such threat is cryptojacking, where websites mine cryptocurrencies on visitors' devices without their knowledge or consent, often through the use of WebAssembly. While detection methods have been proposed, research on circumventing them remains limited. In this paper, we present the most comprehensive evaluation of code obfuscation techniques for WebAssembly to date, assessing their effectiveness, detectability, and overhead across multiple abstraction levels. We obfuscate a diverse set of applications, including utilities, games, and crypto miners, using state-of-the-art obfuscation tools like Tigress and wasm-mutate, as well as our novel tool, emcc-obf. Our findings suggest that obfuscation can effectively produce dissimilar WebAssembly binaries, with Tigress proving most effective, followed by emcc-obf and wasm-mutate. The impact on the resulting native code is also significant, although the V8 engine's TurboFan optimizer can reduce native code size by 30\% on average. Notably, we find that obfuscation can successfully evade state-of-the-art cryptojacking detectors. Although obfuscation can introduce substantial performance overheads, we demonstrate how obfuscation can be used for evading detection with minimal overhead in real-world scenarios by strategically applying transformations. These insights are valuable for researchers, providing a foundation for developing more robust detection methods. Additionally, we make our dataset of over 20,000 obfuscated WebAssembly binaries and the emcc-obf tool publicly available to stimulate further research.

Autori: Håkon Harnes, Donn Morrison

Ultimo aggiornamento: 2024-03-22 00:00:00

Lingua: English

URL di origine: https://arxiv.org/abs/2403.15197

Fonte PDF: https://arxiv.org/pdf/2403.15197

Licenza: https://creativecommons.org/licenses/by/4.0/

Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.

Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.

Altro dagli autori

Articoli simili