针对现有解决方案在限制容器系统调用方面存在系统调用列表不完整和自动化程度差等问题,提出了基于系统调用限制的容器安全防护方案,旨在为任意给定Docker镜像自动化地定制所需系统调用白名单,减小攻击平面。针对镜像层级文件系统组织...针对现有解决方案在限制容器系统调用方面存在系统调用列表不完整和自动化程度差等问题,提出了基于系统调用限制的容器安全防护方案,旨在为任意给定Docker镜像自动化地定制所需系统调用白名单,减小攻击平面。针对镜像层级文件系统组织结构复杂和层间关系难以获取等问题,通过分析配置文件,建立了dockerfile命令和镜像层的一一对应关系,并提取镜像中目标二进制程序;针对标准库中因系统调用号传值模式复杂造成系统调用识别困难问题,通过定义匹配模式,提出利用回溯法确定指定寄存器的值;针对映射表构建时因调用关系复杂引起的路径爆炸和调用节点回环问题,提出基于邻接矩阵的函数映射关系提取算法表示调用关系。为评估该方案的有效性,选取了50个广泛使用的Docker镜像,然后分别为其定制所需系统调用白名单。实验结果表明,所有镜像均可正常运行,且平均所需系统调用数为127。通过选取近6年系统调用相关的软件漏洞,设置白名单后,约70%的通用漏洞披露(common vulnerabilities and exposures,CVEs)可以直接被拦截。展开更多
文摘针对现有解决方案在限制容器系统调用方面存在系统调用列表不完整和自动化程度差等问题,提出了基于系统调用限制的容器安全防护方案,旨在为任意给定Docker镜像自动化地定制所需系统调用白名单,减小攻击平面。针对镜像层级文件系统组织结构复杂和层间关系难以获取等问题,通过分析配置文件,建立了dockerfile命令和镜像层的一一对应关系,并提取镜像中目标二进制程序;针对标准库中因系统调用号传值模式复杂造成系统调用识别困难问题,通过定义匹配模式,提出利用回溯法确定指定寄存器的值;针对映射表构建时因调用关系复杂引起的路径爆炸和调用节点回环问题,提出基于邻接矩阵的函数映射关系提取算法表示调用关系。为评估该方案的有效性,选取了50个广泛使用的Docker镜像,然后分别为其定制所需系统调用白名单。实验结果表明,所有镜像均可正常运行,且平均所需系统调用数为127。通过选取近6年系统调用相关的软件漏洞,设置白名单后,约70%的通用漏洞披露(common vulnerabilities and exposures,CVEs)可以直接被拦截。