一种基于系统调用的容器逃逸攻击检测和防御方法技术方案

技术编号:38540577 阅读:14 留言:0更新日期:2023-08-19 17:08
本发明专利技术公开了一种基于系统调用的智能物联终端容器的逃逸攻击检测和防御方法,所述方法,包括:步骤1:对容器应用进行静态和动态分析,确定容器正常运行时系统调用序列,建立判断异常的基准值,同时限制容器可以使用的系统调用白名单;步骤2:模拟攻击者利用容器安全漏洞对容器进行攻击,造成容器逃逸;步骤3:在容器运行时监控和限制容器系统调用行为,根据该过程的追踪得到的系统调用判断是否属于高危异常行为,及时产生告警并限制被攻击的容器相关进程和行为,保护容器和宿主机安全,为容器针对逃逸攻击的检测和防御提供了一种可行的方法。方法。方法。

【技术实现步骤摘要】
一种基于系统调用的容器逃逸攻击检测和防御方法


[0001]本专利技术属于容器安全领域,具体涉及针对容器的逃逸渗透攻击检测和防御方法。

技术介绍

[0002]随着云技术逐渐成为世界上最流行的技术之一,对云计算来说虚拟化技术变得越来越重要,而容器技术作为新兴的虚拟化技术有着传统虚拟机虚拟化技术没有的优点,由于容器提供的是操作系统级的隔离,可以提供包括完整运行时的一个独立的虚拟环境,能够更好的解决软件部署中所遇到的环境差异问题,使得开发者能够更方便的迁移和部署他们的服务。相较于传统的硬件级虚拟化技术
‑‑
虚拟机,容器消除了额外的抽象层,这就让容器具有更高的资源利用率和管理效率,因此容器甚至可以实现接近本机的性能,而且具有比传统虚拟机更快的部署速度,这些优点让容器自诞生以来就一直蓬勃发展,并且正在逐步取代传统的虚拟化技术。
[0003]容器通过对计算机各种资源进行隔离来实现不同容器应用之间的隔离,容器使用namespace和cgroup技术对ipc、uts、pid、network、mount、user等资源进行隔离,使容器内的应用只能感知到自己分配的资源,而各个容器之间实际上共用同一个操作系统内核,这种轻量级的虚拟化设计使得容器具有部署速度快,资源利用率高等优点,但是与传统的虚拟机虚拟化技术提供的用户空间和内核空间的隔离相比,容器技术只是在主机共享内核的基础上提供用户空间的隔离,因此其安全性一直受到质疑。容器面临的威胁大致可以分为五个方面:内核漏洞、拒绝服务攻击、容器逃逸、有害镜像和违规操作,其中容器逃逸会使得攻击者通过各种手段获得容器所在宿主机上的权限,直接对宿主机或同一宿主机上其余容器造成危害,对容器的广泛应用有着巨大的威胁,因此需要有行之有效的方法来对针对容器的逃逸攻击进行检测,进而实现对容器逃逸渗透的有效防御,提高容器的安全性。
[0004]综上所述,随着容器技术被越来越广泛地用来快速部署应用程序,其安全性问题也应当受到更多的重视,需要及时避免容器应用被恶意进行逃逸渗透,危害到计算机安全,因此需要对容器进行必要的逃逸攻击检测,及时发现容器存在的安全问题,并且针对逃逸攻击的特征,加固容器的安全性,保证容器和宿主机的安全。

技术实现思路

[0005]本专利技术提供一种基于系统调用的容器逃逸攻击检测和防御方法。容器逃逸攻击检测方法是通过对容器应用运行中的系统调用序列进行分析,对比是否符合正常运行的序列,从而检测容器是否出现容器逃逸;容器逃逸攻击防御方法是通过对容器应用进行静态和动态分析,利用seccomp对容器允许的系统调用进行限制来减少容器暴露的攻击面从而对容器逃逸攻击进行防御。
[0006]为了实现上述目的,本专利技术提供的技术方案如下:
[0007]步骤1:对容器应用进行静态和动态分析,确定容器正常运行时系统调用序列,建立判断异常的基准值,同时限制容器可以使用的系统调用白名单;
[0008]步骤11:搭建并配置容器应用环境,下载容器应用镜像,启动容器应用的同时,运行sysdig,使用sysdig

pc container.name=<containername>

w filename开始对容器应用进行跟踪,记录容器应用从创建到运行时使用的系统调用及系统调用数据并将结果输出到文件中;
[0009]步骤12:对容器应用的二进制文件使用objdump工具进行静态分析,通过对反汇编得到的汇编代码分析获得从代码调用的库函数找到所使用的系统调用;
[0010]步骤13:综合静态分析和动态分析得到容器应用系统调用白名单,对动态分析的系统调用序列建模生成判断异常系统调用行为基准值;
[0011]步骤14:根据得到的系统调用白名单设置容器应用启动时seccomp配置文件;
[0012]步骤2:模拟攻击者利用容器安全漏洞对容器进行攻击,造成容器逃逸;
[0013]步骤21:检测容器docker的版本和runC的版本,确保docker版本<18.09.2,runC版本<1.0

rc6;
[0014]步骤22:下载CVE

2019

5736的脚本,修改main.go文件中payload,编译执行main.go文件,生成payload;
[0015]步骤23:运行一个docker容器,将生成的main文件拷贝到docker容器中,并进入容器,修改main文件权限,执行payload;
[0016]步骤24:在另一主机上通过nc

vv

lp命令监听本地端口,当管理员通过exec进入容器时会触发payload,此时另一主机上可以获取发生逃逸现象的容器的信息;
[0017]步骤3:在容器运行时监控和限制容器系统调用行为,根据该过程的追踪得到的系统调用判断是否属于高危异常行为,及时产生告警并限制被攻击的容器相关进程和行为,保护容器和宿主机安全。
[0018]本专利技术提供了一种基于系统调用的容器逃逸攻击检测和防御方法,一方面从分析容器运行时系统调用行为是否异常来实现对容器逃逸攻击的检测,另一方面是根据动静态分析配置容器运行时系统调用限制来实现对容器逃逸攻击的防御,破坏攻击实施的必要条件来保证容器的安全运行。
[0019]本专利技术提供的基于系统调用的容器逃逸攻击检测方法和防御方法,可以及时检测出对容器进行的逃逸渗透攻击,进而及时做出应对,减少容器受到的威胁,避免对其余容器和宿主机进一步的破坏,同时减少容器暴漏的受攻击面,加固容器的安全性,保障容器和宿主机的安全运行。
附图说明
[0020]下面对本专利技术中所需要使用的附图进行介绍。
[0021]图1为本专利技术容器逃逸攻击检测和防御方法示意图;
[0022]图2为本专利技术容器逃逸攻击检测方法流程图;
[0023]图3为本专利技术容器逃逸攻击防御方法流程图;
[0024]图4为实施例中查看容器docker和runc版本截图;
[0025]图5为实施例中sysdig追踪容器应用运行输出截图;
[0026]图6为实施例中objdump反汇编二进制文件结果截图;
[0027]图7为实施例中seccomp文件内容截图;
[0028]图8为实施例中下载攻击脚本编译成脚本文件截图;
[0029]图9为实施例中在容器中执行攻击脚本截图;
[0030]图10为实施例中攻击成功反弹shell截图;
[0031]图11为实施例中启动测试容器A和B的截图;
[0032]图12为实施例中追踪测试容器B系统调用行为截图;
[0033]图13为实施例中在容器A中执行攻击脚本失败截图;
[0034]图14为实施例中监控容器B发现系统调用行为异常截图。
具体实施方式
[0035]为了对本专利技术的技术方案更加本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于系统调用的容器逃逸攻击检测和防御方法,其特征在于,包括下述步骤:步骤1:对容器应用进行静态和动态分析,确定容器正常运行时系统调用序列,建立判断异常的基准值,同时限制容器可以使用的系统调用白名单;步骤2:模拟攻击者利用容器安全漏洞对容器进行攻击,造成容器逃逸;步骤3:在容器运行时监控和限制容器系统调用行为,根据该过程的追踪得到的系统调用判断是否属于高危异常行为,及时产生告警并限制被攻击的容器相关进程和行为,保护容器和宿主机安全。2.根据权利要求1所述的一种基于系统调用的容器逃逸攻击检测和防御方法,其特征在于,所述步骤1具体包括:步骤11:搭建并配置容器应用环境,下载容器应用镜像,启动容器应用的同时,运行sysdig,使用sysdig

pc container.name=<containername>

w filename开始对容器应用进行跟踪,记录容器应用从创建到运行时使用的系统调用及系统调用数据并将结果输出到文件中;步骤12:对容器应用的二进制文件使用objdump工具进行静态分析,通过对反汇编得到的汇编代码分析获得从代码调用的库函数找到所使用的系统调用;步骤13:综合静态分析和动态分析得到容器应用启动和运行时系统调用集合,根据得到的系统调用集合设置生成系统调用白名单,同时对动态分析的系统调用序列建模生成判断异常系统调用行为基准值;步骤14:根据得到的系统调用白名单和seccomp文件语法生成容器应用启动时参数—security

opt需要的seccomp配置文件。3.根据权利要求1所述的一种基于系统调用的容器逃逸攻击检测和防御方法,其特征在于,所述步骤2具体包括:步骤21:查看步骤11中搭建的容器应用环境的容器docker的版本和runC的版...

【专利技术属性】
技术研发人员:李为袁泽坤高雪谷肖帆杨丹
申请(专利权)人:华北电力大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1