运行时安全
保护运行中的容器
运行时安全 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Cyber Security Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Cyber Security Academy 课程共包含 4 节课。
什么是运行时安全
运行时安全会在容器实际运行期间保护容器,而不仅仅是在容器启动前进行保护。
扫描会发现镜像中的问题;运行时安全则会监视实时运行期间的攻击。
为什么运行时安全很重要
即使镜像经过完美扫描,仍然可能在运行时遭到攻击。
攻击者会利用漏洞、滥用凭据,或在容器启动之后触发意外行为,而这些仅靠扫描无法发现。
以非根用户运行
最简单的运行时加固措施就是避免使用根用户。
定义一个非根用户,这样即使进程遭到入侵,其权限也会受到限制:
USER 1001将此设置添加到镜像后,容器就会以非特权身份运行。
只读文件系统
大多数应用不需要写入自己的文件系统。
将文件系统设为只读可以阻止攻击者写入恶意文件:
docker run --read-only myapp移除权限能力
Linux 的权限能力可以授予细粒度的权限。容器很少需要全部权限能力。
先全部移除,然后仅添加您需要的权限:
docker run --cap-drop ALL --cap-add NET_BIND_SERVICE myapp设置资源限制
限制可以防止某个容器耗尽其他容器所需的资源。
docker run --memory 256m --cpus 0.5 myapp这可以保护主机,避免发生意外或恶意的资源耗尽。
Seccomp 配置文件
Seccomp会限制容器可以使用的系统调用。
即使应用遭到入侵,阻止危险的系统调用也能缩小攻击面。大多数运行时都会提供合理的默认配置文件。
行为监控
运行时工具会监视容器实际执行的操作。
像Falco这样的工具可以在发生意外情况时发出警报,例如网站容器中生成了命令行解释器。
检测漂移
运行中的容器应当与其镜像保持一致。当出现新的二进制文件或启动意外进程时,这就是漂移。
漂移通常意味着攻击者已经取得了立足点。
响应威胁
当运行时监控检测到攻击时,您可以快速响应:
- 终止可疑进程
- 将容器与网络隔离
- 用全新且干净的实例替换它
不可变容器
一种可靠的做法是将容器视为不可变对象:永远不要修补正在运行的容器,而是直接替换它。
这样可以让每个容器保持干净,也会大幅增加攻击者维持持久控制的难度。
快速检查
如果容器进程遭到入侵,哪项运行时设置最能减少造成的损害?
回顾
运行时安全通过非根用户、只读文件系统、移除权限能力、资源限制、Seccomp 和行为监控来保护正在运行的容器。
将容器视为不可变对象,并快速响应检测到的威胁。
常见问题解答
「运行时安全」课时是免费的吗?
是的 — 「运行时安全」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「运行时安全」这节课中我会学到什么?
保护运行中的容器 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「运行时安全」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。