mirror of
https://github.com/linuxkit/linuxkit.git
synced 2025-07-20 01:29:07 +00:00
Address review comments
Signed-off-by: Riyaz Faizullabhoy <riyaz.faizullabhoy@docker.com>
This commit is contained in:
parent
52fa33d6d1
commit
c1f84921fe
@ -17,8 +17,8 @@ and elsewhere.
|
|||||||
|
|
||||||
The Moby project maintainers are actively collaborating with KSPP and it is an established [priority for the project](../projects/kspp/roadmap.md).
|
The Moby project maintainers are actively collaborating with KSPP and it is an established [priority for the project](../projects/kspp/roadmap.md).
|
||||||
|
|
||||||
The Moby kernel is intended to be identical to the upstream kernel - at the time of this writing the only patches in the
|
The Moby kernel is intended to be identical to the upstream kernel - We only intend to carry patches that are on track
|
||||||
`4.9.x` series are for Hyper-V socket fixes that are intended to be upstreamed.
|
to be upstreamed, or fix regressions or bugs and that we will upstream.
|
||||||
|
|
||||||
|
|
||||||
## Minimal Base
|
## Minimal Base
|
||||||
@ -31,7 +31,7 @@ individual operators to include any additional bits they may require.
|
|||||||
|
|
||||||
## Type Safe System Daemons
|
## Type Safe System Daemons
|
||||||
|
|
||||||
The the core system components that we must include in Moby userspace are key to security, and we believe
|
The core system components that we must include in Moby userspace are key to security, and we believe
|
||||||
they should be written in type safe languages, such as [Rust](https://www.rust-lang.org/en-US/), [Go](https://golang.org/)
|
they should be written in type safe languages, such as [Rust](https://www.rust-lang.org/en-US/), [Go](https://golang.org/)
|
||||||
and [OCaml](http://www.ocaml.org/), and run with maximum privilege separation and isolation.
|
and [OCaml](http://www.ocaml.org/), and run with maximum privilege separation and isolation.
|
||||||
|
|
||||||
@ -46,25 +46,31 @@ and namespaced separately from the host as appropriate.
|
|||||||
## Built With Hardened Toolchains and Containers
|
## Built With Hardened Toolchains and Containers
|
||||||
|
|
||||||
Moby's build process heavily leverages Docker images for packaging. Of note, all intermediate build images
|
Moby's build process heavily leverages Docker images for packaging. Of note, all intermediate build images
|
||||||
are referenced by digest - which ensures reproducibility across Moby builds.
|
are referenced by digest to ensures reproducibility across Moby builds. Tags are mutable, and thus subject to override
|
||||||
Certain images, such as the kernel image, are signed by Moby maintainers using [Docker Content Trust](https://docs.docker.com/engine/security/trust/content_trust/),
|
(intentionally or maliciously) - referencing by digest mitigates classes of registry poisoning attacks in Moby's buildchain.
|
||||||
|
Certain images, such as the kernel image, will be signed by Moby maintainers using [Docker Content Trust](https://docs.docker.com/engine/security/trust/content_trust/),
|
||||||
which guarantees authenticity, integrity, and freshness of the image.
|
which guarantees authenticity, integrity, and freshness of the image.
|
||||||
|
|
||||||
Moreover, Moby's build process leverages [Alpine Linux's](https://alpinelinux.org/) hardened userspace tools such as its
|
Moreover, Moby's build process leverages [Alpine Linux's](https://alpinelinux.org/) hardened userspace tools such as
|
||||||
musl libc C-compiler with default `-fstack-protector` and position-independent executable output. Go binaries are also PIE.
|
Musl libc, and compiler options that include `-fstack-protector` and position-independent executable output. Go binaries
|
||||||
|
are also PIE.
|
||||||
|
|
||||||
|
|
||||||
## Immutable Infrastructure
|
## Immutable Infrastructure
|
||||||
|
|
||||||
Moby runs as an initramfs and its system containers are baked in at build-time, essentially making Moby immutable.
|
Moby runs as an initramfs and its system containers are baked in at build-time, essentially making Moby immutable.
|
||||||
|
|
||||||
Moreover, Moby has a read-only root filesystem: the only userspace that is allowed to modified pertains to namespaced
|
Moreover, Moby has a read-only root filesystem: system configuration and sensitive files cannot be modified after boot.
|
||||||
container data and stateful partitions.
|
The only files on Moby that are allowed to be modified pertain to namespaced container data and stateful partitions.
|
||||||
|
|
||||||
As such, Moby access to the Moby base system is limited in scope: in the event of any container escape, the attack surface
|
As such, Moby access to the Moby base system is limited in scope: in the event of any container escape, the attack surface
|
||||||
is also limited because the system binaries and configuration is unmodifiable. To that end, the Moby base system does not
|
is also limited because the system binaries and configuration is unmodifiable. To that end, the Moby base system does not
|
||||||
supply a package manger: containers must be built beforehand with the dependencies they require.
|
supply a package manger: containers must be built beforehand with the dependencies they require.
|
||||||
|
|
||||||
|
Once a secure Moby base system has been built, it cannot be tampered with, even by malicious user containers. Even if user
|
||||||
|
containers unintentionally expose themselves to attack vectors, immutability of the Moby base system limits the scope of
|
||||||
|
host attack.
|
||||||
|
|
||||||
|
|
||||||
## External Updates - Trusted Provisioning
|
## External Updates - Trusted Provisioning
|
||||||
|
|
||||||
@ -80,7 +86,7 @@ can be used to provide trusted boot information and integrate with existing trus
|
|||||||
"trusted boot-ready" and the team is already collaborating with cloud and hardware providers to make this a reality.
|
"trusted boot-ready" and the team is already collaborating with cloud and hardware providers to make this a reality.
|
||||||
|
|
||||||
|
|
||||||
## Incubating Next-generation Kernel Security
|
## Incubating Next-generation Security Projects
|
||||||
|
|
||||||
Since Moby is meant to only run containers and be secure, it is the perfect platform to incubate new (and potentially radical!)
|
Since Moby is meant to only run containers and be secure, it is the perfect platform to incubate new (and potentially radical!)
|
||||||
paradigms and strategies for securing the Linux kernel - allowing them to be used in production environments and attract
|
paradigms and strategies for securing the Linux kernel - allowing them to be used in production environments and attract
|
||||||
|
Loading…
Reference in New Issue
Block a user