Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: add WasmEdge Project Security Self-Assessment #1343
base: main
Are you sure you want to change the base?
feat: add WasmEdge Project Security Self-Assessment #1343
Changes from all commits
3c23c96
c59eedc
File filter
Filter by extension
Conversations
Jump to
There are no files selected for viewing
WasmEdge Security Self-assessment
Authors: dm4(@dm4)
Security reviewers: dm4(@dm4), Yi-Ying He(@q82419), Shen-Ta Hsieh(@ibmibmibm), Hung-Ying Tai(@hydai)
Table of contents
Metadata
A table at the top for quick reference information, later used for indexing.
Security links
Overview
WasmEdge is a lightweight, high-performance, and extensible WebAssembly runtime. It is the fastest Wasm VM today. Its use cases include modern web application architectures (Isomorphic & Jamstack applications), microservices on the edge cloud, serverless SaaS APIs, embedded functions, smart contracts, and smart devices.
Background
The WasmEdge Runtime provides a well-defined execution sandbox for its contained WebAssembly bytecode program. The runtime offers isolation and protection for operating system resources (e.g., file system, sockets, environment variables, processes) and memory space. The most important use case for WasmEdge is to safely execute user-defined or community-contributed code as plug-ins in a software product (e.g., SaaS, software-defined vehicles, edge nodes, or even blockchain nodes). It enables third-party developers, vendors, suppliers, and community members to extend and customize the software product.
Actors
Actions
To execute WebAssembly code, WasmEdge follows a series of steps involving multiple components, each with specific responsibilities. Here is a detailed description of the process, focusing on data flow and interactions between components:
Interacting with Users (WasmEdge Tool)
Loading the WebAssembly Bytecode (WasmEdge Loader)
Validating the Bytecode (WasmEdge Validator)
Executing the Bytecode (WasmEdge Engine)
The interaction between these components ensures a smooth and secure execution flow for WebAssembly programs in WasmEdge. The Loader initiates the process by parsing the bytecode, the Validator ensures its compliance with standards, the Engine executes the validated code, and the Tool provides a user-friendly interface for these operations. This modular approach allows for efficient handling and execution of WebAssembly code, making WasmEdge a robust and high-performance WebAssembly runtime.
Goals
Non-goals
Self-assessment use
This self-assessment is created by the WasmEdge team to perform an internal analysis of the project's security. It is not intended to provide a security audit of WasmEdge, or function as an independent assessment or attestation of WasmEdge's security health.
This document serves to provide WasmEdge users with an initial understanding of WasmEdge's security, where to find existing security documentation, WasmEdge plans for security, and general overview of WasmEdge security practices, both for development of WasmEdge as well as security of WasmEdge.
This document provides the CNCF TAG-Security with an initial understanding of WasmEdge to assist in a joint-assessment, necessary for projects under incubation. Taken together, this document and the joint-assessment serve as a cornerstone for if and when WasmEdge seeks graduation and is preparing for a security audit.
Security functions and features
--dir guest_path:host_path:readonly
option in the WasmEdge CLI to assign the read-only configuration.Project compliance
Secure development practices
Security issue resolution
As stated in the WasmEdge security document, the process for handling security reports is as follows:
Users can use the below process to report a vulnerability to WasmEdge:
Email:
Web:
WasmEdge follows a
90 days
disclosure timeline. For known public security vulnerabilities, we will disclose the disclosure as soon as possible after receiving the report. Vulnerabilities discovered for the first time will be disclosed in accordance with the following process: