Return to search

Securing Trigger-Action Platforms With WebAssembly / Säkra trigger-aktion-plattformar med WebAssembly

The number of internet-connected devices and online services is increasing in the everyday lives of people. These devices and services solve independent tasks when used separately. However, they can solve complex tasks when used together. Trigger-action platforms (TAPs) allow users to create applications that connect their devices and services. The applications wait for a condition to be true in a device or service (trigger), and perform an operation in another device or service (action). JavaScript-driven TAPs allow users to add JavaScript code that is executed before the action. Currently, JavaScript-driven TAPs execute this code in the same JavaScript runtime for different applications. The problem is that they use unsafe isolation techniques that fail to secure code across applications. Thus, malicious applications can compromise other applications to leak their private data or control their behavior. Motivated to secure TAPs, we investigate isolation techniques on TAPs. The goal of this work is to propose isolation with WebAssembly, a recent language that is praised for its safe isolation. In line with the proposal, we prototype a WebAssembly-driven TAP. We also evaluate WebAssembly in terms of security, usability, and performance. For security, we perform a qualitative analysis of the security of current isolation techniques and WebAssembly. For usability, we implement and evaluate a set of applications on our novel platform. For performance, we conduct benchmarks on different isolation techniques including WebAssembly. The findings show that WebAssembly provides better isolation of code across applications than current isolation techniques. Our evaluation of usability and performance indicates that WebAssembly is also a practical and efficient solution. Furthermore, the performance results demonstrate that current JavaScript isolation techniques have significant performance issues that WebAssembly does not have. We conclude that WebAssembly can protect code across applications with isolation and it can be used in combination with other security measures to secure TAPs. / Antalet internetanslutna enheter och onlinetjänster ökar i det vardagliga livet. Dessa enheter och tjänster används för deras avsedda ändamål men i en kombination av varandra kan de användas för mer komplexa ändamål. Trigger-aktion-plattformar (TAP:ar) möjliggör för sina användare att skapa applikationer som sammankopplar deras enheter och tjänster. Applikationerna väntar på att ett visst villkor uppfylls på en enhet eller tjänst (trigger), och sedan utför den en handling på en annan enhet eller tjänst (aktion). JavaScript-drivna TAP:ar tillåter sina användare att skriva JavaScript-kod som exekveras före aktionen. Nuvarande JavaScript-drivna TAP:ar exekverar kod från olika applikationer i samma JavaScript-körtid. Problemet är att de använder osäkra isoleringsstrategier och därför misslyckas de med att säkra kod mellan applikationerna. Skadliga applikationer kan därmed angripa andra applikationer för att läcka deras privata data eller för att kontrollera dem. Vi undersöker isoleringsstrategier i TAP:ar med avsikt att säkra dem. Målet med detta arbete är att föreslå isolering med WebAssembly; ett nytt språk berömt för sin säkra isolering. I linje med vårt mål skapar vi en prototyp av en WebAssembly-driven TAP. Vi utvärderar även WebAssembly med avseende på säkerhet, användarbarhet och prestanda. För det förstnämnda utför vi en kvalitativ analys av säkerheten i nuvarande isoleringsstrategier och WebAssembly. För användarbarheten implementerar och evaluerar vi en uppsättning av applikationer på vår nya plattform. För prestanda utför vi flera tester på olika isoleringsstrategier inklusive WebAssembly. Resultaten visar att WebAssembly erbjuder bättre isolering för kod mellan applikationer än nuvarande isoleringsstrategier. Evalueringen av användarbarhet och prestanda påvisar dessutom att WebAssembly är en praktisk lösning med hög prestanda. Prestandaresultaten demonstrerar även att nuvarande isoleringsstrategier i JavaScript har prestandaproblem som WebAssembly inte har. Slutsatsen är att WebAssembly kan säkra kod genom att isolera applikationer och att det kan användas tillsammans med andra säkerhetsåtgärder för att säkra TAP:ar.

Identiferoai:union.ndltd.org:UPSALLA1/oai:DiVA.org:kth-321994
Date January 2022
CreatorsSalim, Djiar
PublisherKTH, Skolan för elektroteknik och datavetenskap (EECS)
Source SetsDiVA Archive at Upsalla University
LanguageEnglish
Detected LanguageSwedish
TypeStudent thesis, info:eu-repo/semantics/bachelorThesis, text
Formatapplication/pdf
Rightsinfo:eu-repo/semantics/openAccess
RelationTRITA-EECS-EX ; 2022:642

Page generated in 0.0887 seconds