Please use this identifier to cite or link to this item:
https://hdl.handle.net/10216/161001| Author(s): | Sérgio Rodrigues da Gama |
| Title: | Obfuscating the unreadable, a novel obfuscator for WebAssembly binaries |
| Issue Date: | 2024-07-12 |
| Abstract: | WebAssembly (Wasm for short) is gradually more prominent on the web as the number of web applications and their performance requirements continue to rise. It enables enhanced utilization of hardware capabilities and offers a more memory-efficient format, which consequently makes it the optimal choice for web applications demanding the utmost performance, such as games, technical design tools, and other compute-intensive applications. Due to its client-side nature, Wasm has the potential to be accessed by anyone on the web. Therefore, as the adoption of Wasm expands, there is a critical imperative to enhance the security of client-side codebases by implementing obfuscation methods to protect intellectual property. Obfuscation techniques executed at the Wasm level have not been extensively studied and only two Wasm obfuscation tools have been developed until today. However, the first one, WASMixer, takes advantage of a limited range of five obfuscation techniques, and it is not publicly available. The second tool, emcc-obf, is an adaptation of the Emscripten compiler with built-in obfuscation capabilities. However, studies have shown that it is outperformed by Tigress, a state-of-the-art C obfuscator. Notably, WASMixer does not explore bogus control flow, and emcc-obf lacks features such as memory encryption and alias disruption. Therefore, they do not provide a comprehensive solution to this problem. Combining all these techniques could potentially yield better results than the tools that currently exist. Hence, this work investigates the effectiveness of each obfuscation technique within the realm of Wasm, culminating in the development of a new Wasm obfuscator called WasmX. This tool was assessed using obfuscation metrics such as resilience, where 29 cryptojackers achieved a 91% decrease in detection by various virus analysers. Potency, where WasmX was consistently outper- formed by Tigress, except in cases involving the combination of multiple techniques. Finally, cost efficiency, where WasmX proved to be up to 15 times more efficient than Tigress in terms of file size overhead, albeit with up to 53 times worse execution time overhead. To sum up, it was found that combining obfuscation techniques in Wasm results in files that are more resilient and potent compared to using individual techniques alone, despite the associated higher cost. |
| Description: | WebAssembly (Wasm, abreviadamente) está gradualmente a tornar-se mais uma linguagem mais proeminente na web à medida que o número de aplicações web e os requisitos de desempenho continuam a aumentar. Esta permite uma melhor utilização das capacidades de hardware e ofer- ece um formato mais eficiente em termos de memória, tornando-se assim a escolha ideal para aplicações web que exigem o máximo desempenho, como jogos, ferramentas de design técnico e outras aplicações intensivas em computação. Devido à sua natureza client-side, o Wasm tem o potencial de ser acedido por qualquer pessoa na web. Portanto, à medida que a adoção do Wasm se expande, é imperativo proteger a propriedade intelectual do código que fica do lado do cliente através da implementação de métodos de ofuscação. As técnicas de ofuscação executadas ao nível do Wasm não foram extensivamente estudadas e até hoje apenas foram desenvolvidas duas ferramentas de ofuscação de Wasm. No entanto, a primeira, WASMixer, aproveita uma gama limitada de cinco técnicas de ofuscação e não está disponível publicamente. A segunda ferramenta, emcc-obf, é uma adaptação do compilador Em- scripten com capacidades de ofuscação incorporadas. No entanto, o seu estudo demonstrou que é superado pelo Tigress, um obfuscador C de última geração. Notavelmente, o WASMixer não incorpora a técnica bogus control flow e o emcc-obf carece de funcionalidades como encriptação de memória e alias disruption. Portanto, estas ferramentas não oferecem uma solução abrangente para o problema mencionado. Com efeito, combinar todas estas técnicas pode potencialmente produzir melhores resultados do que as ferramentas atualmente existentes. Assim, este trabalho investiga a eficácia de cada técnica de ofuscação no âmbito da linguagem Wasm, culminando no desenvolvimento de um novo ofuscador de Wasm chamado WasmX. Esta ferramenta foi avaliada utilizando as conhecidas métricas de avaliação de obfuscação, como a resiliência, onde 29 cryptojackers alcançaram uma redução de 91% na sua deteção por vários analisadores de vírus. Potência, onde o WasmX foi consistentemente superado pelo Tigress, ex- ceto nos casos em que foram combinadas várias técnicas. Finalmente, eficiência de custo, onde WasmX provou ser até 15 vezes mais eficiente do que o Tigress em termos de overhead do tamanho dos ficheiros obfuscados, embora se tenha revelado até 53 vezes pior a nível de overhead de tempo de execução dos mesmos ficheiros. Em suma, verificou-se que a combinação de técnicas de ofus- cação em Wasm, apesar de estar associada a um custo mais elevado, resulta em ficheiros com uma obfuscação mais resiliente e potente em comparação com o uso de técnicas individuais isolada- mente. |
| Subject: | Ciências da engenharia e tecnologias Engineering and technology |
| Scientific areas: | Ciências da engenharia e tecnologias Engineering and technology |
| DOI: | 10.34626/yffp-nb55 |
| TID identifier: | 203861833 |
| URI: | https://hdl.handle.net/10216/161001 |
| Document Type: | Dissertação |
| Rights: | embargoedAccess |
| Embargo End Date: | 2027-07-11 |
| Appears in Collections: | FEUP - Dissertação |
Files in This Item:
| File | Description | Size | Format | |
|---|---|---|---|---|
| 682124.pdf Restricted Access | Obfuscating the unreadable, a novel obfuscator for WebAssembly binaries | 3.5 MB | Adobe PDF | View/Open |
Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.