RunC从本质上来说,容器是提供一个与宿主机系统共享内核但与系统中的其他进程资源相隔离的执行环境。Docker通过调用libcontainer包对namespaces、cgroups、capabilities以及文件系统的管理和分配来“隔离”出一个上述执行环境。同样的,runC也是对libcontainer包进行调用,去除了Docker包含的诸如镜像、Volume等高级特性,以最朴素简洁的方式达到符合OCF标准的容器管理实现。
一般Runc漏洞大多是逃逸,通过容器拿到宿主机的权限,对
宿主机进行破坏,例如容器中挂在了docker.sock或使用 --privileged 启动容器,一般不要让容器挂载敏感文件和使用特权启动容器,并且给容器最小的权限。