Adv3:安全机制
本模块要求:所有评测任务必须在 Docker 容器中运行,利用 Docker 实现沙箱隔离和安全机制。不得使用其他沙箱技术(如 seccomp、resource、cgroups 等)替代 Docker。所有安全隔离、资源限制、命令校验等均需依托 Docker 实现。
模块目标¶
- 所有评测任务在 Docker 容器中运行,实现系统调用、资源、网络等的隔离和限制,防止恶意代码危害系统。
前置知识要求¶
技术点 | 推荐学习内容 |
---|---|
Docker 容器 | Docker 基础、命令 |
资源限制 | Docker --memory, --cpus |
命令过滤 | 黑名单/白名单策略 |
任务分解¶
任务 1:沙箱隔离(Docker 强制)¶
- 目标:所有评测任务在 Docker 容器中运行。
- 要点:通过 Docker 限制系统调用、文件访问、网络等。
任务 2:内存/时间限制¶
- 目标:对评测进程设置严格的内存和时间限制。
- 要点:通过 Docker 参数(如 --memory、--cpus)实现,超限时自动终止进程,返回相应状态。
任务 3:命令过滤与校验¶
- 目标:对用户提交的命令进行安全校验,防止注入攻击。
- 要点:实现黑名单/白名单机制。
评分细则¶
功能/接口 | 分值 | 评分说明 |
---|---|---|
Docker 沙箱与资源限制 | 2 | 评测任务全部在 Docker 容器中运行,内存/时间限制依托 Docker 实现 |
命令过滤与安全校验 | 2 | 命令校验、黑白名单 |
超限/异常安全响应 | 1 | TLE/MLE 等安全响应 |
小计 | 5 |
作者: