Software Development for Mobile Computing, the Internet of Things and Wearable Devices: Inspecting the Past to Understand the Future
Total Page:16
File Type:pdf, Size:1020Kb
Load more
Recommended publications
-
Differential Fuzzing the Webassembly
Master’s Programme in Security and Cloud Computing Differential Fuzzing the WebAssembly Master’s Thesis Gilang Mentari Hamidy MASTER’S THESIS Aalto University - EURECOM MASTER’STHESIS 2020 Differential Fuzzing the WebAssembly Fuzzing Différentiel le WebAssembly Gilang Mentari Hamidy This thesis is a public document and does not contain any confidential information. Cette thèse est un document public et ne contient aucun information confidentielle. Thesis submitted in partial fulfillment of the requirements for the degree of Master of Science in Technology. Antibes, 27 July 2020 Supervisor: Prof. Davide Balzarotti, EURECOM Co-Supervisor: Prof. Jan-Erik Ekberg, Aalto University Copyright © 2020 Gilang Mentari Hamidy Aalto University - School of Science EURECOM Master’s Programme in Security and Cloud Computing Abstract Author Gilang Mentari Hamidy Title Differential Fuzzing the WebAssembly School School of Science Degree programme Master of Science Major Security and Cloud Computing (SECCLO) Code SCI3084 Supervisor Prof. Davide Balzarotti, EURECOM Prof. Jan-Erik Ekberg, Aalto University Level Master’s thesis Date 27 July 2020 Pages 133 Language English Abstract WebAssembly, colloquially known as Wasm, is a specification for an intermediate representation that is suitable for the web environment, particularly in the client-side. It provides a machine abstraction and hardware-agnostic instruction sets, where a high-level programming language can target the compilation to the Wasm instead of specific hardware architecture. The JavaScript engine implements the Wasm specification and recompiles the Wasm instruction to the target machine instruction where the program is executed. Technically, Wasm is similar to a popular virtual machine bytecode, such as Java Virtual Machine (JVM) or Microsoft Intermediate Language (MSIL). -
Seamless Offloading of Web App Computations from Mobile Device to Edge Clouds Via HTML5 Web Worker Migration
Seamless Offloading of Web App Computations From Mobile Device to Edge Clouds via HTML5 Web Worker Migration Hyuk Jin Jeong Seoul National University SoCC 2019 Virtual Machine & Optimization Laboratory Department of Electrical and Computer Engineering Seoul National University Computation Offloading Mobile clients have limited hardware resources Require computation offloading to servers E.g., cloud gaming or cloud ML services for mobile Traditional cloud servers are located far from clients Suffer from high latency 60~70 ms (RTT from our lab to the closest Google Cloud DC) Latency<50 ms is preferred for time-critical games Cloud data center End device [Kjetil Raaen, NIK 2014] 2 Virtual Machine & Optimization Laboratory Edge Cloud Edge servers are located at the edge of the network Provide ultra low (~a few ms) latency Central Clouds Mobile WiFi APs Small cells Edge Device Cloud Clouds What if a user moves? 3 Virtual Machine & Optimization Laboratory A Major Issue: User Mobility How to seamlessly provide a service when a user moves to a different server? Resume the service at the new server What if execution state (e.g., game data) remains on the previous server? This is a challenging problem Edge computing community has struggled to solve it • VM Handoff [Ha et al. SEC’ 17], Container Migration [Lele Ma et al. SEC’ 17], Serverless Edge Computing [Claudio Cicconetti et al. PerCom’ 19] We propose a new approach for web apps based on app migration techniques 4 Virtual Machine & Optimization Laboratory Outline Motivation Proposed system WebAssembly -
Webassembly a New World of Native Exploits on the Web Agenda
WebAssembly A New World Of Native Exploits On The Web Agenda • Introduction • The WebAssembly Platform • Emscripten • Possible Exploit Scenarios • Conclusion Wasm: What is it good for? ● Archive.org web emulators ● Image/processing ● Video Games ● 3D Modeling ● Cryptography Libraries ● Desktop Application Ports Wasm: Crazy Incoming ● Browsix, jslinux ● Runtime.js (Node), Nebulet ● Cervus ● eWASM Java Applet Joke Slide ● Sandboxed ● Virtual Machine, runs its own instruction set ● Runs in your browser ● Write once, run anywhere ● In the future, will be embedded in other targets What Is WebAssembly? ● A relatively small set of low-level instructions ○ Instructions are executed by browsers ● Native code can be compiled into WebAssembly ○ Allows web developers to take their native C/C++ code to the browser ■ Or Rust, or Go, or anything else that can compile to Wasm ○ Improved Performance Over JavaScript ● Already widely supported in the latest versions of all major browsers ○ Not limited to running in browsers, Wasm could be anywhere Wasm: A Stack Machine Text Format Example Linear Memory Model Subtitle Function Pointers Wasm in the Browser ● Wasm doesn’t have access to memory, DOM, etc. ● Wasm functions can be exported to be callable from JS ● JS functions can be imported into Wasm ● Wasm’s linear memory is a JS resizable ArrayBuffer ● Memory can be shared across instances of Wasm ● Tables are accessible via JS, or can be shared to other instances of Wasm Demo: Wasm in a nutshell Emscripten ● Emscripten is an SDK that compiles C/C++ into .wasm binaries ● LLVM/Clang derivative ● Includes built-in C libraries, etc. ● Also produces JS and HTML code to allow easy integration into a site. -
Superoptimization of Webassembly Bytecode
Superoptimization of WebAssembly Bytecode Javier Cabrera Arteaga Shrinish Donde Jian Gu Orestis Floros [email protected] [email protected] [email protected] [email protected] Lucas Satabin Benoit Baudry Martin Monperrus [email protected] [email protected] [email protected] ABSTRACT 2 BACKGROUND Motivated by the fast adoption of WebAssembly, we propose the 2.1 WebAssembly first functional pipeline to support the superoptimization of Web- WebAssembly is a binary instruction format for a stack-based vir- Assembly bytecode. Our pipeline works over LLVM and Souper. tual machine [17]. As described in the WebAssembly Core Specifica- We evaluate our superoptimization pipeline with 12 programs from tion [7], WebAssembly is a portable, low-level code format designed the Rosetta code project. Our pipeline improves the code section for efficient execution and compact representation. WebAssembly size of 8 out of 12 programs. We discuss the challenges faced in has been first announced publicly in 2015. Since 2017, it has been superoptimization of WebAssembly with two case studies. implemented by four major web browsers (Chrome, Edge, Firefox, and Safari). A paper by Haas et al. [11] formalizes the language and 1 INTRODUCTION its type system, and explains the design rationale. The main goal of WebAssembly is to enable high performance After HTML, CSS, and JavaScript, WebAssembly (WASM) has be- applications on the web. WebAssembly can run as a standalone VM come the fourth standard language for web development [7]. This or in other environments such as Arduino [10]. It is independent new language has been designed to be fast, platform-independent, of any specific hardware or languages and can be compiled for and experiments have shown that WebAssembly can have an over- modern architectures or devices, from a wide variety of high-level head as low as 10% compared to native code [11]. -
Swivel: Hardening Webassembly Against Spectre
Swivel: Hardening WebAssembly against Spectre Shravan Narayan† Craig Disselkoen† Daniel Moghimi¶† Sunjay Cauligi† Evan Johnson† Zhao Gang† Anjo Vahldiek-Oberwagner? Ravi Sahita∗ Hovav Shacham‡ Dean Tullsen† Deian Stefan† †UC San Diego ¶Worcester Polytechnic Institute ?Intel Labs ∗Intel ‡UT Austin Abstract in recent microarchitectures [41] (see Section 6.2). In con- We describe Swivel, a new compiler framework for hardening trast, Spectre can allow attackers to bypass Wasm’s isolation WebAssembly (Wasm) against Spectre attacks. Outside the boundary on almost all superscalar CPUs [3, 4, 35]—and, browser, Wasm has become a popular lightweight, in-process unfortunately, current mitigations for Spectre cannot be im- sandbox and is, for example, used in production to isolate plemented entirely in hardware [5, 13, 43, 51, 59, 76, 81, 93]. different clients on edge clouds and function-as-a-service On multi-tenant serverless, edge-cloud, and function as a platforms. Unfortunately, Spectre attacks can bypass Wasm’s service (FaaS) platforms, where Wasm is used as the way to isolation guarantees. Swivel hardens Wasm against this class isolate mutually distursting tenants, this is particulary con- 1 of attacks by ensuring that potentially malicious code can nei- cerning: A malicious tenant can use Spectre to break out of ther use Spectre attacks to break out of the Wasm sandbox nor the sandbox and read another tenant’s secrets in two steps coerce victim code—another Wasm client or the embedding (§5.4). First, they mistrain different components of the under- process—to leak secret data. lying control flow prediction—the conditional branch predic- We describe two Swivel designs, a software-only approach tor (CBP), branch target buffer (BTB), or return stack buffer that can be used on existing CPUs, and a hardware-assisted (RSB)—to speculatively execute code that accesses data out- approach that uses extension available in Intel® 11th genera- side the sandbox boundary. -
Webassembly Backgrounder
Copyright (c) Clipcode Limited 2021 - All rights reserved Clipcode is a trademark of Clipcode Limited - All rights reserved WebAssembly Backgrounder [DRAFT] Written By Eamon O’Tuathail Last updated: January 8, 2021 Table of Contents 1: Introduction.................................................................................................3 2: Tooling & Getting Started.............................................................................13 3: Values.......................................................................................................18 4: Flow Control...............................................................................................27 5: Functions...................................................................................................33 6: (Linear) Memory.........................................................................................42 7: Tables........................................................................................................50 1: Introduction Overview The WebAssembly specification is a definition of an instruction set architecture (ISA) for a virtual CPU that runs inside a host embedder. Initially, the most widely used embedder is the modern standard web browser (no plug-ins required). Other types of embedders can run on the server (e.g. inside standard Node.js v8 – no add-ons required) or in future there could be more specialist host embedders such as a cross- platform macro-engine inside desktop, mobile or IoT applications. Google, Mozilla, Microsoft and -
Formally Verifying Webassembly with Kwasm
Formally Verifying WebAssembly with KWasm Towards an Automated Prover for Wasm Smart Contracts Master’s thesis in Computer Science and Engineering RIKARD HJORT Department of Computer Science and Engineering CHALMERS UNIVERSITY OF TECHNOLOGY UNIVERSITY OF GOTHENBURG Gothenburg, Sweden 2020 Master’s thesis 2020 Formally Verifying WebAssembly with KWasm Towards an Automated Prover for Wasm Smart Contracts RIKARD HJORT Department of Computer Science and Engineering Chalmers University of Technology University of Gothenburg Gothenburg, Sweden 2020 Formally Verifying WebAssembly with KWasm Towards an Automated Prover for Wasm Smart Contracts RIKARD HJORT © RIKARD HJORT, 2020. Supervisor: Thomas Sewell, Department of Computer Science and Engineering Examiner: Wolfgang Ahrendt, Department of Computer Science and Engineering Master’s Thesis 2020 Department of Computer Science and Engineering Chalmers University of Technology and University of Gothenburg SE-412 96 Gothenburg Telephone +46 31 772 1000 Cover: Conceptual rendering of the KWasm system, as the logos for K ans Web- Assembly merged together, with a symbolic execution proof tree protruding. The cover image is made by Bogdan Stanciu, with permission. The WebAssembly logo made by Carlos Baraza and is licensed under Creative Commons License CC0. The K logo is property of Runtime Verification, Inc., with permission. Typeset in LATEX Gothenburg, Sweden 2020 iv Formally Verifying WebAssembly with KWasm Towards an Automated Prover for Wasm Smart Contracts Rikard Hjort Department of Computer Science and Engineering Chalmers University of Technology and University of Gothenburg Abstract A smart contract is immutable, public bytecode which handles valuable assets. This makes it a prime target for formal methods. WebAssembly (Wasm) is emerging as bytecode format for smart contracts. -
Microsoft Band SDK
Microsoft Band SDK SDK Documentation By using this Microsoft Band SDK, you agree to be bound by the Terms of Use. Further, if accepting on behalf of a company, you represent that you’re authorized to act on your company’s behalf. 1 Introduction and Features ............................................................................................................ 4 1.1 Multi-Platform Support ..................................................................................................................... 4 1.2 Getting Sensor Data ........................................................................................................................... 4 1.3 Creating Tiles and Sending Notifications ............................................................................................. 6 1.3.1 App Tiles ................................................................................................................................................................... 6 1.3.2 App Notifications ...................................................................................................................................................... 7 1.3.3 Haptic Notifications .................................................................................................................................................. 7 1.3.4 Band Personalization ................................................................................................................................................ 8 1.3.4.1 Me Tile ............................................................................................................................................................ -
Why You Should Consider Web Assembly in Your Next Frontend Project
Why you should consider Web Assembly in your next frontend project Håkan Silfvernagel Who Am I? • Background in software development for process automation and robotics • Worked on the .NET platform since its release 2001-2002 • Consultant since 2010 • 19 years’ experience of software development in various positions such as developer, tester, architect, project manager, scrum master, practice manager and team lead. • MIT Artificial Intelligence: Implications for business strategy • MIT Internet of Things: Business implications and opportunities What is Web Assembly? Web Assembly • Group formed in 2015 (all major browsers) • 2017, Nov, Web Assembly Released • 2018, Feb, W3C public draft published Source: https://webassembly.org/ Web platform as virtual machine Virtual Machine • JavaScript • High level language • Flexible and expressive • Dynamically typed JS WASM • No compilation • Huge ecosystem • WebAssembly (WASM) • Low level assembly like language • Compact binary format • Near native performance • C, C++, Rust, Go… Wasm • A new browser standard • Based on asm.js • Intermediate language • Java (bytecode), C# (msil) • Strongly typed • i32, i64, f32, f64 Hello WASM WASM example (1) add.wat (module (func $addTwo (param i32 i32) (result i32) get_local 0 get_local 1 i32.add) (export "addTwo" (func $addTwo))) 0000000: 0061 736d ; WASM_BINARY_MAGIC 0000004: 0100 0000 ; WASM_BINARY_VERSION ; section "Type" (1) 0000008: 01 ; section code 0000009: 00 ; section size (guess) 000000a: 01 ; num types WASM example (2) ; type 0 000000b: 60 ; func -
Comparison Chart Microsoft Band – Kevin Martin Sony Smartwatch 3
What Wearable Device Do I Buy and Why? PC Retreat 2015 What Do You Want in a Smartwatch? • Fitness Tracking • Phone notifications • Tell time • Long battery life • Style What Wearable Device • Affordability Do I Buy and Why? • More? Kevin Martin, Jonathan Lewis, Parag Joshi Comparison Chart Microsoft Band –Kevin Martin Motorola Apple Pebble Fitbit Sony Microsoft • Windows 8.1, iOS 7.1+, Android 4.3+ Moto 360 Watch Classic Charge HR SmartWatch 3 Band • Battery Life: 2 days Operating Windows Vista+, Windows 8.1+, Android 2.3+ Mac OS X 10.6+, System Android 4.3+ iOS 8+ Android 4.1+ Android 4.1+ iOS • Screen Size: 11mm x 33mm iOS 5+ iOS 6+, Android Syncs With 7.1 4.1+ • Wireless Connectivity: Bluetooth Battery Life 1.5 days 1 day 7 days 5 days 2 days 2 days Screen Size 1.56 inches 1.32 inches 1.26 inches .83 inches 1.6 inches 11mm x 33mm • Splash proof Wireless Bluetooth and Bluetooth Bluetooth and Bluetooth, NFC Bluetooth Bluetooth Connectivity WiFi and WiFi USB cable and WiFi • Built‐in fitness tracking, heart rate monitor and GPS Waterproof? Up to 30m No Up to 50m No Up to 1.5m No • Virtual keyboard Fitness Built‐in + HR + Built‐in + HR + UV + Built‐in + HR Built‐in With app Built‐in Tracking? Sleep Tracking GPS • Notifications: Alarm, Calendar Reminder, E‐mail, Facebook, Incoming Notifications? Yes Yes Yes Yes Yes Yes Call, Missed Call, Text Message, Timer, Twitter, and Weather Starting Price $300 $350 $100 $150 $180 $160 • Starting at $160 with $40 rebate Sony SmartWatch 3 – Jonathan Lewis Apple Watch – Parag Joshi • iOS 8+ • Android -
Notice of Dispute—Kinect for Windows
Notice of Dispute—Microsoft Software, Devices, and Services with Arbitration Agreements Microsoft is committed to resolving disputes fairly and efficiently. If you are unsatisfied with the resolution a customer service representative offers for your problem, you may notify us of your dispute by mailing this form to Microsoft. Please print legibly and complete this form. Send the completed form by U.S. mail to: Microsoft Corporation CELA Arbitration One Microsoft Way Redmond, WA 98052-6399 Keep a copy for your records. A Microsoft representative will respond within 60 days of receiving this form. If the dispute is not resolved to your satisfaction, you may begin arbitration after 60 days by submitting a Demand for Arbitration to the American Arbitration Association. You can find a Demand for Arbitration form at go.microsoft.com/fwlink/?linkid=245497. Your name Your phone number Additional number during business hours Your e-mail address Your fax number Your address: Your gamertag (if your dispute is about Xbox) Your Microsoft account (if you have one) (formerly called Windows Live ID) Your serial number (for devices) My dispute is about (check Microsoft software, device, or service): Bing Ads Program Cortana Microsoft Health, HealthVault, or Device Health App Kinect Bundled with Xbox 360 E Microsoft OneNote (Windows Store) or Onenote.com Kinect for Xbox One Kinect for Windows Microsoft Answer Desk Support Services (continued on page two) Microsoft Band Microsoft Office 2013 or 2016 Microsoft Business Applications Services Microsoft -
Microsoft Band 2 Experience Design Guidelines
1 Microsoft Band 2 Experience Design Guidelines Published for Third Party Version 2.0 Microsoft Band 2 2 Welcome Microsoft Band 2 Experience Design Guidelines These guidelines provide an overview of the Band, and define guidelines for the user experience for developers of third party apps. Microsoft Band 2 3 Table of Contents Introduction Glossary Interaction Patterns Typography Color Iconography Template Library Microsoft Band 2 Introduction 4 Microsoft Band 2 Direct, yet discrete. Forgiving. Experience Principals Notifications are timely, not disruptive and quick to Interactions are hyper-mobile. A nondestructive dismiss. Information passes from you to the cloud and interface tailored for the range of human motion. The experience principles should be back again in a direct, yet personal way. Positive reactions to your actions. Compensates taken into consideration when for error. creating app tiles for the Microsoft Band. Hyper-glanceable. In and out in eight. Buzz, ping, glance, swipe... Indoors or out, dark or Never break the stride of life... Glance, peek, and bright, the information most important to you is decide all in less than eight seconds — the right always at arm’s length. type and amount of information at the right time. Not a mini-phone. About you. Free your hands from the fear of missing out. Provide Knows your patterns and what you’ve done. enough information in the moment so you know if Anticipates your needs through smart and when you need to dig into your phone. It’s all recommendations and tracking. about the right amount of information, so you’ll never miss the moments that are most important to you.