style: apply global formatting fixes (struct, spacing, zhlint)

This commit is contained in:
Baohua Yang
2026-02-21 11:08:52 -08:00
parent ad68b2d973
commit 79ac9c639a
159 changed files with 1708 additions and 882 deletions

View File

@@ -28,7 +28,9 @@ flowchart LR
## 核心安全机制
### 1. 命名空间Namespace
本节涵盖了相关内容与详细描述主要探讨以下几个方面
### 1命名空间
提供进程网络文件系统等资源的隔离
@@ -41,9 +43,9 @@ flowchart LR
| IPC | 进程通信 | 隔离共享内存 |
| UTS | 主机名 | 独立主机名 |
详见 [命名空间](../../14_implementation/14.2_namespace.md) 章节
详见[命名空间](../../14_implementation/14.2_namespace.md)章节
### 2. 控制组Cgroups
### 2控制组
限制容器的资源使用防止资源耗尽攻击
@@ -61,7 +63,7 @@ $ docker run --cpus=1.5 myapp
$ docker run --device-write-bps /dev/sda:10mb myapp
```
### 3. 能力机制Capabilities
### 3能力机制
Linux root 权限拆分为多个细粒度的能力Docker 默认禁用危险能力
@@ -87,6 +89,8 @@ $ docker exec myapp cat /proc/1/status | grep Cap
## 镜像安全
本节涵盖了相关内容与详细描述主要探讨以下几个方面
### 使用可信镜像
运行以下命令
@@ -149,7 +153,9 @@ $ cosign verify --key cosign.pub $IMAGE
## 运行时安全
### 1. root 用户运行
本节涵盖了相关内容与详细描述主要探讨以下几个方面
### 1 root 用户运行
> 笔者强调这是最重要的安全实践之一
@@ -179,7 +185,7 @@ CMD ["node", "server.js"]
$ docker run -u 1001:1001 myapp
```
### 2. 只读文件系统
### 2只读文件系统
运行以下命令
@@ -193,7 +199,7 @@ $ docker run --read-only myapp
$ docker run --read-only --tmpfs /tmp --tmpfs /var/run myapp
```
### 3. 禁用特权模式
### 3禁用特权模式
运行以下命令
@@ -207,7 +213,7 @@ $ docker run --privileged myapp
$ docker run --cap-add=SYS_TIME myapp
```
### 4. 限制资源
### 4限制资源
运行以下命令
@@ -220,7 +226,7 @@ $ docker run \
myapp
```
### 5. 网络隔离
### 5网络隔离
运行以下命令
@@ -239,7 +245,9 @@ $ docker run --network=isolated_net myapp
## Dockerfile 安全实践
### 1. 使用精简基础镜像
本节涵盖了相关内容与详细描述主要探讨以下几个方面
### 1使用精简基础镜像
Dockerfile 内容如下
@@ -255,7 +263,7 @@ FROM node:22 # ~1GB
FROM ubuntu:24.04 # ~78MB
```
### 2. 多阶段构建
### 2多阶段构建
Dockerfile 内容如下
@@ -275,7 +283,7 @@ USER node
CMD ["node", "/app/server.js"]
```
### 3. 不存储敏感信息
### 3不存储敏感信息
Dockerfile 内容如下
@@ -292,7 +300,7 @@ COPY .env /app/
...
```
### 4. 固定依赖版本
### 4固定依赖版本
Dockerfile 内容如下
@@ -329,6 +337,8 @@ RUN apk add curl
## 高级安全方案
本节涵盖了相关内容与详细描述主要探讨以下几个方面
### Seccomp 系统调用过滤
限制容器可以使用的系统调用
@@ -345,7 +355,7 @@ $ docker run --security-opt seccomp=/path/to/profile.json myapp
$ docker run --security-opt apparmor=docker-default myapp
```
### 安全容器gVisor / Kata
### 安全容器 (gVisor / Kata)
需要更强隔离时
@@ -361,18 +371,18 @@ $ docker run --runtime=runsc myapp
随着软件供应链攻击日益频繁仅保障运行时安全已不足够
### 1. SBOM软件物料清单
### 1SBOM (软件物料清单)
SBOM 类似于食品的配料表列出了容器镜像中包含的所有软件包及其版本
- **生成 SBOM**: 使用 `docker buildx build --sbom` `docker scout sbom`
- **管理 SBOM**: 确保持续监控 SBOM 中的组件是否存在新披露的漏洞
- **生成 SBOM**使用 `docker buildx build --sbom` `docker scout sbom`
- **管理 SBOM**确保持续监控 SBOM 中的组件是否存在新披露的漏洞
### 2. 镜像签名Sigstore / Notary v2
### 2镜像签名 (Sigstore / Notary v2)
确保镜像在构建后未被篡改且确实来自可信的发布者
- **Cosign**: Sigstore 项目的一部分用于签署和验证容器镜像
- **Cosign**Sigstore 项目的一部分用于签署和验证容器镜像
```bash
## 使用有写权限的仓库地址
$ export IMAGE=<你的仓库地址>/myimage:tag