云网牛站
所在位置:首页 > Linux新闻 > 百度安全开源的通用Linux发行版—MesaLock Linux

百度安全开源的通用Linux发行版—MesaLock Linux

2017-12-04 10:14:12作者:Linux编辑稿源:百度

关于 MesaLock Linux 的详细介绍

MesaLock Linux 是一款由百度安全实验室开发并开源的一个通用 Linux 发行版本,其目标是用 Rust、Go 等内存安全语言重写用户空间应用(user space applications),以在用户空间中逐步消除高危的内存安全漏洞。这将极大的降低整个系统的攻击面,并且使得剩余的攻击面可审计、可收敛。

百度安全开源的通用Linux发行版—MesaLock Linux

MesaLock Linux 在保留 Linux 硬件兼容性的前提下,实质性地提升了 Linux 生态的安全性。MesaLock Linux 的主要目标应用场景是容器(例如:docker 镜像),以及高安全性嵌入式环境,以后随着逐渐成熟,也可以向服务器或其他场景延伸。

为提供完善的功能,并保证强健的安全性,MesaLock Linux 将遵循 Rust SGX SDK  项目中提出的混合代码内存安全架构三原则:

1.隔离并模块化由非内存安全代码编写的组件,并最小化其代码量。

2.由非内存安全代码编写的组件不应减弱安全模块的安全性,尤其是公共 API 和公共数据结构。

3.由非内存安全代码编写的组件需清晰可辨识并且易于更新。

 

目前 MesaLock Linux 项目主要包括三个方面:

1.mesalock-distro:提供了 MesaLock Linux 发行版的编译程序,提供了 Live ISO 和 rootfs 两种发行方式。Live ISO 可以在虚拟机中启动或者直接在设备上运行,rootfs 主要为 docker 容器使用。

2.packages:这里面包括了 MesaLock Linux 提供的软件包的编译脚本,我们提供了使用内存安全的编程语言 Go 和 Rust 编写的一些常用软件,包括 shell、coreutils、findutils、文本编辑器等等。

3.minit, mgetty, giproute2:我们同时提供了用 Rust/Go 编写了启动 MesaLock Linux 过程中的核心组件。

除此之外,还提供了相关的文档,包括编译和使用 MesaLock Linux,编写新的软件包。

因为 MesaLock Linux 提供了 Docker 容器的运行环境,如果想要简单快速的尝试 MesaLock Linux,你只需运行:

$ docker run -p 8000:8000 --rm -it mesalocklinux/mesalock-linux

以上命令将进入 MesaLock Linux 的 shell,可以开始使用 MesaLock 中的其他工具。当然,也可以试用我们提供的 demo 程序,由 Rocket(Rust 编写的 web framework)写的网络微服务。demo 存放在 /root/mesalock-demo 目录下 。因为 docker 将 container 中的 8000 端口转发到 host 机器的 8000 端口,运行 /root/mesalock-demo/rocket-hello-world/hello_world,即可以在 host 机器上访问 demo。

 

MesaLock Linux 项目及其子项目选择使用 BSD 开源协议下开源。BSD 开源协议是一个给于使用者很大自由的协议,希望有更多的人来使用 MesaLock Linux,保护整个 Linux 系统的安全生态。同时,安全生态的可持续发展也离不开开源社区、工业界、学术界的共同参与,非常欢迎大家的贡献和支持。支持 MesaLock Linux 的途径有很多,例如:

1.尝试使用 MesaLock Linux,反馈使用感受和改进的建议等。

2.参与贡献 MesaLock Linux 的开发流程、完善文档、帮助解答常见问题等。

3.参与贡献 MesaLock Linux 维护的核心工具代码,比如说 minit、mgetty 等。

4.尝试使用 Go、Rust 这类内存安全的编程语言编写用户空间应用,非常欢迎新的应用加入 MesaLock Linux 大家庭。

5.参与审计 MesaLock Linux 及其子项目和相关软件包的代码安全。

 

详细了解:MesaLock Linux: A Memory-Safe Linux Distribution

 

MesaLock Linux页面英文内容:

1.Quick Start

You can quickly experience MesaLock Linux in the container environment using Docker.

$ docker run -it mesalocklinux/mesalock-linux

2.Building

Currently, MesaLock Linux is provided in two versions: live ISO and rootfs. The live ISO image can be used to create a bootable live USB, or boot in a virtual machine. The rootfs (i.e., root file system) can be used as a minimal root image for a container.

3.Requirements

Clone MesaLock repository

Clone mesalock-distro repositry recursively with its submodules (packages).

$ git clone --recursive https://github.com/mesalock-linux/mesalock-distro.git

$ cd mesalock-distro

Build in Docker

We provide a Dockerfile for building MesaLock Linux with all dependencies installed. You can build the docker image first and then in the building container environment, you can build packages, live ISO, and rootfs.

$ docker build -t mesalocklinux/build-mesalock-linux --rm build-dockerfile

$ docker run -v $(pwd):/mesalock-distro -w /mesalock-distro \

-it mesalocklinux/build-mesalock-linux /bin/bash

The image of building environment are also provided from Docker Hub. You can pull and run the container with the repo name mesalocklinux/build-mesalock-linux.

4.Build on Ubuntu

You can also build a Ubuntu machine, please install these building dependencies first:

$ # install packages

$ apt-get update && \

apt-get install -q -y --no-install-recommends \

curl \

git \

build-essential \

wget \

bc \

gawk \

parallel \

pigz \

cpio \

xorriso \

fakeroot \

syslinux-utils \

uuid-dev \

libmpc-dev \

libisl-dev \

libz-dev \

software-properties-common

$ # install Go

$ add-apt-repository -y ppa:gophers/archive && \

apt-get update && \

apt-get install -q -y --no-install-recommends \

golang-1.9-go

$ # install Rust

$ curl https://sh.rustup.rs -sSf | sh -s -- -y && \

rustup default nightly

$ # setup PATH

$ export PATH="$HOME/.cargo/bin:/usr/lib/go-1.9/bin:$PATH"

5.Build packages, live ISO, and rootfs

After installing building dependencies, you can run following commands to build packages, live ISO, and rootfs.

First build all packages: ./mkpkg

Build the live ISO: ./mesalockiso

Build the container rootfs: ./mesalockrootfs

Build a specific package only: ./mkpkg <package_name>

The live ISO (mesalock-linux.iso) and rootfs (rootfs.tar.gz) can be found in the build directory.

6.Trying

MesaLock Linux can be run in real devices (e.g., boot from a Live USB), virtual machines, and docker containers.

7.Virtual machine

You can try MesaLock Linux with Live ISO or in a docker container. Here are steps to try MesaLock Linux in VirtualBox.

Open VirtualBox and "New" a VM.

In the VM settings, choose mesalock-linux.iso as "Optical Drive".

Start the VM and explore MesaLock Linux.

精选文章
热门文章