CN109858244B - 一种容器内进程异常行为检测方法与系统 - Google Patents

一种容器内进程异常行为检测方法与系统 Download PDF

Info

Publication number
CN109858244B
CN109858244B CN201910039085.7A CN201910039085A CN109858244B CN 109858244 B CN109858244 B CN 109858244B CN 201910039085 A CN201910039085 A CN 201910039085A CN 109858244 B CN109858244 B CN 109858244B
Authority
CN
China
Prior art keywords
container
abnormal
system call
data
model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910039085.7A
Other languages
English (en)
Other versions
CN109858244A (zh
Inventor
陈兴蜀
金逸灵
王玉龙
蒋超
金鑫
王启旭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sichuan University
Original Assignee
Sichuan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sichuan University filed Critical Sichuan University
Priority to CN201910039085.7A priority Critical patent/CN109858244B/zh
Publication of CN109858244A publication Critical patent/CN109858244A/zh
Application granted granted Critical
Publication of CN109858244B publication Critical patent/CN109858244B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开一种容器内进程异常行为检测方法与系统,提出在宿主机用户层,以无代理监控方式实时感知容器内所有进程的创建、运行和消亡等行为,从而透明采集进程全生命周期的系统调用行为数据,然后利用LSTM循环神经网络捕获序列数据的语义特征,以此刻画正常进程行为轮廓,最后采用局部窗口内累积偏差的方式,提出了两种异常判决方法,能更稳定地表示进程系统调用行为的规律性,使得在提升检测率的同时有效地降低了误报率。此外,在建模阶段,本发明根据映射同一系统调用的短序列频率,同比缩减训练样本数,加快了模型的训练速度,并通过测试训练数据的方式,自定义检测阶段的短序列概率阈值,减少了人工参与的工作量。

Description

一种容器内进程异常行为检测方法与系统
技术领域
本发明涉及虚拟化安全技术领域,具体为一种容器内进程异常行为检测方法与系统。
背景技术
随着云计算技术的快速发展,云平台的安全性也受到了业界的广泛关注。区别于虚拟硬件资源的传统虚拟化技术,容器技术作为一种新兴的虚拟化方式,提供了一个更加轻量和高效的操作系统级别的虚拟主机环境。然而,在虚拟化平台广泛应用的同时,容器中的恶意进程却能通过容器或宿主机内核的漏洞实施攻击,攻击程序可以篡改容器自身的服务,突破容器隔离的限制直接攻击共驻容器,甚至能够逃逸至宿主机获得超级用户权限进而威胁整个云平台的安全。
传统主机环境下基于系统调用的入侵检测方案,大多针对单一特权进程的运行行为进行监控,该方法需要针对每个进程建立特定于该进程的行为模型,并将检测范围限制在单个进程中以提高准确率,然而云计算环境下的容器与传统主机环境不同,其不仅存在着传统主机中的安全风险,还存在诸如逃逸攻击等复杂的安全威胁,所以仅将传统主机入侵检测策略应用于虚拟化平台,往往无法保证检测的全面性。
针对容器内进程的异常行为检测,现存的技术难点主要有:(1)需要在宿主机用户层采用无代理的方式监控容器内进程行为,避免修改宿主机内核以及安装代理程序扩大容器攻击面和可移植性差的问题。(2)全周期捕捉容器内所有进程和线程(下文统称为进程)的系统调用行为数据需结合容器引擎架构,避免漏检某个进程及其子进程的行为数据导致检测不全面。(3)针对系统调用时序性的研究中,多数方法受模型复杂度约束,使得他们对于序列数据的预测只能考虑较少且并不完全准确的历史信息,而利用深度学习等技术可实现长时间序列数据的特征自动提取的能力和优势,但是如何将不定长度的系统调用序列进行编码作为输入能够保留数据的行为特征,以及如何构建深度学习网络模型满足进程异常行为检测的需求也至关重要。(4)在衡量进程当前行为的异常程度时,多采用比较概率阈值和短序列出现概率的方式,而实际应用过程中难以统一确定此阈值,导致出现误报或漏报的情况。
发明内容
针对上述问题,本发明的目的在于提供一种容器内进程异常行为检测方法与系统,由进程正常运行时产生的系统调用行为数据具有相对稳定的局部规律性的特征,利用LSTM(Long Short-Term Memory,长短期记忆)循环神经网络提取序列的语义信息,对正常进程系统调用行为轮廓进行刻画,构建正常进程行为基线,根据当前进程系统调用行为偏离正常进程行为基线的程度对容器内进程存在的异常行为进行检测。技术方案如下:
一种容器内进程异常行为检测系统,包括数据采集模块、数据建模模块和异常检测模块;
数据采集模块在容器外部的宿主机用户层,根据指定容器的ID,采用无代理的方式获取该容器内正在运行的所有进程信息,并基于ptrace系统调用监控用于管理该容器生命周期的运行时载体进程,实时感知该容器内新进程的创建和消亡等行为,动态追踪并透明采集该容器内所有进程运行过程中产生的系统调用行为数据,将其保存到容器数据日志文件中;
数据建模模块根据正常情况下得到的容器数据日志文件中的系统调用序列训练一个基于LSTM的预测模型,以此刻画正常行为轮廓,并通过测试训练数据的方式,得到由M个连续系统调用组成的短序列出现概率PM的最小值,将其作为检测时的短序列概率阈值ε,并将模型预测错误的理论输出系统调用和对应短序列的映射关系存入模型修正库;
异常检测模块使用训练阶段已构建好的检测模型,衡量采集到的待测数据样本的异常程度,并将检测出的容器内异常进程信息和具体的异常短序列模式输出到容器检测日志中。
进一步的,所述数据建模和异常检测模块构成的检测模型包括数据预处理单元、输入层、隐藏层、输出层、网络训练单元和异常检测单元;
数据预处理单元对采集到的系统调用序列进行分割,生成训练短序列,并对训练样本进行同比去重处理,然后独热编码数据以满足网络输入要求;
输入层、隐藏层、输出层和网络训练单元构成网络的主体结构,采用读取整个序列后产生单个特征输出的循环网络设计模式,从更抽象的层次提取训练短序列的语义信息,并基于此预测每种可能的下一个系统调用的出现概率,然后通过计算理论输出和模型输出的交叉熵,应用Adam优化算法不断更新网络权重,训练得到最终的正常行为模型;
异常检测单元读取待测容器内系统调用行为数据,生成短序列,独热编码后输入训练阶段已构建好的正常行为模型中,并将建模时自定义的短序列概率阈值和模型修正库应用于检测阶段,通过累积局部窗口内的异常短序列和异常值,进行异常判定。
一种容器内进程异常行为检测方法,其特征在于,包括以下步骤:
步骤1:采用无代理的方式,在容器外部的宿主机用户层获取自监控某个容器开始需要追踪的进程列表,然后基于ptrace系统调用实时透明地感知容器内新进程的创建和消亡行为,从而全周期动态捕捉所有容器内进程在执行过程中产生的系统调用行为数据;
步骤2:将捕获的容器内进程的具体信息与相应的系统调用行为数据按序存入容器数据日志文件;
步骤3:在未受到任何攻击的系统环境下,对采集到的容器数据日志文件进行预处理,生成系统调用短序列,并对训练样本短序列进行同比去重,然后独热编码短序列,以此结构输入所构建的LSTM预测模型,训练并生成正常行为模型,最后通过测试训练数据的方式自定义短序列概率阈值并生成模型修正库;
步骤4:跟踪待测容器内运行进程,实时采集进程产生的系统调用行为数据,对序列数据进行预处理后输入所述正常行为模型中进行检测,并将检测结果输出到容器检测日志文件中。
更进一步的,所述步骤1具体包括:
步骤1.1:在容器外部的宿主机用户层,通过mount信息查找cgroupfs的挂载点,并根据指定容器的ID,在Cgroup的子系统中搜索该容器的资源管理数据,得到目标容器中正在运行的所有进程在内核本身,以及初始命名空间中的全局PID信息;
步骤1.2:在容器外部的宿主机用户层,根据指定容器的ID,查找特定于管理该容器生命周期的运行时载体进程的全局PID信息;
步骤1.3:利用ptrace系统调用动态追踪步骤1.1和步骤1.2中确定的监控进程,及其通过fork、vfork或clone系统调用新建的子进程;针对步骤1.1中的进程及其子进程,采集并存储它们在运行过程中产生的系统调用行为数据,仅监控步骤1.2中的进程,无须采集其行为数据;但当步骤1.2中进程的子进程将要执行execve系统调用装载新的程序变为容器内进程时,开始采集并存储新的容器内进程及其子进程的系统调用行为数据。
更进一步的,所述步骤3具体包括:
步骤3.1:读取容器数据日志文件,采用滑动窗口方式,将待建模容器内每个进程的系统调用序列划分为互异的系统调用短序列,并记录所有短序列和其映射的不同理论输出系统调用,以及不同系统调用出现的频数;
步骤3.2:根据所统计的同一短序列映射的不同系统调用的出现频数,同比去除重复样本,确定最终输入模型的训练样本短序列;
步骤3.3:将所有训练样本短序列中的每一个系统调用进行独热编码;
步骤3.4:采用读取整个序列后产生单个特征输出的循环网络设计模式,构建一个LSTM预测模型,根据网络提取的序列语义特征,使用softmax层计算出每种可能的下一个系统调用的出现概率;
步骤3.5:将步骤3.3中生成的经独热编码的系统调用输入至所述LSTM预测模型中训练,通过计算理论输出和模型预测输出的交叉熵,应用Adam优化算法不断更新网络权重,收敛成最终的正常行为模型;
步骤3.6:将未经同比去重处理的训练样本输入至所述最终的正常行为模型中测试,得到每个理论输出系统调用的出现概率,以滑动窗口方式,计算由M个连续系统调用组成的短序列出现概率PM,将最小的短序列出现概率作为检测时的短序列概率阈值ε,并将模型预测错误的理论输出系统调用和对应短序列的映射关系存入模型修正库中。
更进一步的,所述步骤4具体包括:
步骤4.1:读取实时采集的系统调用行为数据,将待测容器内进程的系统调用序列划分为系统调用短序列,独热编码测试样本短序列后输入所述正常行为模型中,得到模型预测输出和每个理论输出系统调用的出现概率;
步骤4.2:针对每个理论输出系统调用的出现概率,以滑动窗口方式,记录大小为W的局部窗口内短序列出现概率PM小于建模阶段自定义的短序列概率阈值ε的异常短序列个数;当计数值大于0.1W时,判定当前局部窗口异常;若异常窗口总数大于规定的警报阈值
Figure BDA0001946920370000041
判定当前进程异常;将容器进程信息和所有异常序列输出到检测日志中;若异常窗口总数小于规定的警报阈值
Figure BDA0001946920370000042
则跳转至步骤4.3进行二次异常值检测;
步骤4.3:将模型的所有预测输出与测试样本的理论输出进行对比,若不相同,则进一步确定预测输出和对应的短序列是否存在于模型修正库中;若存在,则判定此系统调用正常;若不存在,则记录此异常值,并按照相同的方式处理其余数据;最后记录大小为W的局部窗口内异常值的个数,当计数值大于0.25W时,判定当前局部窗口异常;若异常窗口总数大于规定的警报阈值
Figure BDA0001946920370000043
判定当前进程异常,将容器进程信息和所有异常序列输出到检测日志中;若异常窗口总数小于规定的警报阈值判定当前进程正常。
本发明的有益效果是:
1)本发明结合容器应用场景,提出了一种在容器外部的宿主机用户层,以无代理监控的方式实时透明地感知容器内新进程的创建和消亡等行为,从而全周期动态捕捉容器内所有进程的系统调用行为数据的方法,该方法无须任何关于容器内系统结构和相应服务的先验知识,也不用修改容器和宿主机操作系统;
2)本发明提出了一种基于LSTM的深度学习检测模型,该方法利用循环神经网络的自连接特性,跨时刻共享模型参数,根据一个时间步长内系统调用序列的语义信息评估下一个系统调用出现的概率,能更准确的描述局部系统调用之间存在的规律性,并且所提方法不仅可以针对单一进程进行评估,还可以同时对多个进程进行建模,适合于容器环境下整个系统的监控;
3)本发明在建模阶段,根据频率信息同比缩减训练样本数,加快了模型的训练速度,并通过测试训练数据的方式,自定义检测阶段的短序列概率阈值,减少了实际应用过程中人工参与的工作量;
4)本发明在检测阶段,根据短序列的出现概率衡量进程当前行为的异常程度,并基于局部窗口内的累积偏差提出了两种异常判决方法,在提高检测率的同时有效地降低了误报率。
附图说明
图1是基于系统调用序列和LSTM的容器内进程异常行为检测系统总体架构图。
图2是基于ptrace的系统调用数据采集过程图。
图3是检测模型整体框架图。
图4是异常检测流程图。
具体实施方式
下面结合附图和具体实施例对本发明做进一步详细说明。
附图1给出了本发明中基于系统调用序列和LSTM(Long Short-Term Memory,长短期记忆)的容器内进程异常行为检测系统总体架构图。如图1所示,本检测系统可用于检测容器内部存在的异常进程系统调用行为,包括数据采集模块、数据建模模块和异常检测模块。
数据采集模块在容器外部的宿主机用户层,根据指定容器的ID,采用无代理的方式获取该容器内正在运行的所有进程信息,并基于ptrace系统调用监控用于管理该容器生命周期的运行时载体进程,做到实时感知该容器内新进程的创建和消亡等行为,动态追踪并透明采集该容器内所有进程运行过程中产生的系统调用行为数据,将其保存到容器数据日志文件中。
附图2给出了基于ptrace的系统调用数据采集过程图。Ptrace是Linux内核提供的可用于读取进程地址空间内容的系统调用,它不能直接用于采集进程的系统调用,需要从正确的位置提取出所需信息,才能做到跟踪进程并获取相应的数据。数据采集模块作为跟踪者需要通过ptrace系统调用主动连接到被跟踪者,并等待被跟踪者的陷入,当被跟踪者被内核暂停时,跟踪者需要为每个容器内进程创建数据日志,但只需监控载体进程的系统调用执行,无需采集其数据,然后需要设置自动连接到被跟踪者产生的子进程,同时激活系统调用的追踪,最后恢复被跟踪者的执行。这之后的被跟踪者在执行系统调用时就会陷入到跟踪者的处理中,跟踪者可提取相应的陷入事件,如果是将要执行execve系统调用,则需判断该进程是否为载体的子进程runc,若是,则表明该进程即将加载新程序,转变为容器内进程,此时才需要为其创建数据日志并开始采集其系统调用数据,否则直接进行数据采集工作。
数据建模模块根据正常情况下(即未受到任何攻击的系统环境或者说干净的系统环境)得到的容器数据日志文件中的系统调用序列训练一个基于LSTM的预测模型,以此刻画正常行为轮廓,并通过测试训练数据的方式,得到由M个连续系统调用组成的短序列出现概率PM的最小值,将其作为检测时的短序列概率阈值ε,并将模型预测错误的理论输出系统调用和对应短序列的映射关系存入模型修正库。
异常检测模块使用训练阶段已构建好的检测模型,衡量采集到的待测数据样本的异常程度,并将检测出的容器内异常进程信息和具体的异常短序列模式输出到容器检测日志中。
附图3给出了检测模型的整体框架,主要包括数据预处理、输入层、隐藏层、输出层、网络训练和异常检测6个功能模块,以及具体的网络结构和LSTM单元。数据预处理对采集到的系统调用序列进行分割,生成训练短序列,并对训练样本进行同比去重处理,然后独热编码数据以满足网络输入要求。输入层、隐藏层、输出层和网络训练构成网络的主体结构,采用读取整个序列后产生单个特征输出的循环网络设计模式,从更抽象的层次提取训练短序列的语义信息,并基于此预测每种可能的下一个系统调用的出现概率,然后通过计算理论输出和模型输出的交叉熵,应用Adam优化算法不断更新网络权重,训练得到最终模型。异常检测读取待测容器内系统调用行为数据,生成短序列,独热编码后输入训练阶段已构建好的正常行为模型中,并将建模时自定义的短序列概率阈值和模型修正库应用于检测阶段,通过累积局部窗口内的异常短序列和异常值,进行异常判定。
附图4给出了异常检测的具体流程。检测模块读取待测容器内每个进程的系统调用行为数据,将其划分为短序列,独热编码测试样本短序列后输入已构建好的正常行为模型中,得到模型预测输出和每个理论输出系统调用的出现概率;针对每个理论输出系统调用的出现概率,以滑动窗口方式,记录大小为W的局部窗口内短序列出现概率PM小于建模阶段自定义的短序列概率阈值ε的异常短序列个数,当计数值大于0.1W时,判定当前局部窗口异常,若异常窗口总数大于规定的警报阈值
Figure BDA0001946920370000064
判定当前进程异常,将容器进程信息和所有异常序列输出到检测日志中,若异常窗口总数小于规定的警报阈值
Figure BDA0001946920370000061
则继续进行二次异常值检测;将模型的所有预测输出与测试样本的理论输出进行对比,若不相同,则进一步确定预测输出和对应的短序列是否存在于模型修正库中,若存在,则判定此系统调用正常,若不存在,则记录此异常值,并按照相同的方式处理其余数据,最后记录大小为W的局部窗口内异常值的个数,当计数值大于0.25W时,判定当前局部窗口异常,若异常窗口总数大于规定的警报阈值
Figure BDA0001946920370000062
判定当前进程异常,将容器进程信息和所有异常序列输出到检测日志中;若异常窗口总数小于规定的警报阈值判定当前进程正常。
检测方法,包括以下步骤:
步骤1:采用无代理的方式,在容器外部的宿主机用户层获取自监控某个容器开始需要追踪的进程列表,然后基于ptrace系统调用实时透明地感知容器内新进程的创建和消亡等行为,从而全周期动态捕捉所有进程在执行过程中产生的系统调用行为数据。
步骤1.1:在容器外部的宿主机用户层,通过mount信息查找cgroupfs的挂载点,并根据指定容器的ID,在Cgroup的子系统中搜索该容器的资源管理数据,得到目标容器中正在运行的所有进程在内核本身以及初始命名空间中的全局PID信息;
步骤1.2:在容器外部的宿主机用户层,根据指定容器的ID,查找特定于管理该容器生命周期的运行时载体进程的全局PID信息;
步骤1.3:利用ptrace系统调用动态追踪步骤1.1和步骤1.2中确定的监控进程及其通过fork、vfork或clone系统调用新建的子进程。针对1.1中的进程及其子进程,需要采集并存储它们在运行过程中产生的系统调用行为数据,而只需要监控1.2中的进程,无须采集其行为数据,但当1.2中进程的子进程将要执行execve系统调用装载新的程序变为容器内进程时,需要开始采集并存储新的容器内进程及其子进程的系统调用行为数据。
步骤2:将捕获的容器内进程的具体信息与相应的系统调用行为数据按序存入容器数据日志文件;
步骤3:在未受到任何攻击的系统环境下,对采集到的容器数据日志文件进行预处理,生成系统调用短序列并对训练样本短序列进行同比去重,然后独热编码短序列,以此结构输入所构建的LSTM预测模型,训练并生成正常行为模型,最后通过测试训练数据的方式自定义短序列概率阈值并生成模型修正库。
步骤3.1:读取容器数据日志文件,采用滑动窗口方式,将待建模容器内每个进程的系统调用序列划分为互异的系统调用短序列,并记录所有短序列和其映射的不同理论输出系统调用,以及不同系统调用出现的频数;
步骤3.2:根据所统计的同一短序列映射的不同系统调用的出现频数,同比去除重复样本,确定最终输入模型的训练样本短序列;
步骤3.3:将所有训练样本短序列中的每一个系统调用进行独热编码;
步骤3.4:采用读取整个序列后产生单个特征输出的循环网络设计模式,构建一个LSTM预测模型,最后根据网络提取的序列语义特征,使用softmax层计算出每种可能的下一个系统调用的出现概率;
步骤3.5:将步骤3.3中生成的经独热编码的系统调用输入至步骤3.4中构建的LSTM预测模型中训练,通过计算理论输出和模型预测输出的交叉熵,应用Adam优化算法不断更新网络权重,收敛成最终的正常行为模型;
步骤3.6:将未经同比去重处理的训练样本输入至步骤3.5中已训练完成的最终模型中测试,得到每个理论输出系统调用的出现概率,以滑动窗口方式,计算由M个连续系统调用组成的短序列出现概率PM,将最小的短序列出现概率作为检测时的短序列概率阈值ε,并将模型预测错误的理论输出系统调用和对应短序列的映射关系存入模型修正库中
步骤4:跟踪待测容器内运行进程,实时采集进程产生的系统调用行为数据,对序列数据进行预处理后输入步骤3中生成的模型中进行检测,并将检测结果输出到容器检测日志文件中。
步骤4.1:读取实时采集的系统调用行为数据,将待测容器内进程的系统调用序列划分为系统调用短序列,独热编码测试样本短序列后输入步骤3中生成的正常行为模型中,得到模型预测输出和每个理论输出系统调用的出现概率;
步骤4.2:针对每个理论输出系统调用的出现概率,以滑动窗口方式,记录大小为W的局部窗口内短序列出现概率PM小于建模阶段自定义的短序列概率阈值ε的异常短序列个数,当计数值大于0.1W时,判定当前局部窗口异常,若异常窗口总数大于规定的警报阈值
Figure BDA0001946920370000081
判定当前进程异常,将容器进程信息和所有异常序列输出到检测日志中;若异常窗口总数小于规定的警报阈值则跳转至步骤4.3进行二次异常值检测;
步骤4.3:将模型的所有预测输出与测试样本的理论输出进行对比,若不相同,则进一步确定预测输出和对应的短序列是否存在于模型修正库中,若存在,则判定此系统调用正常,若不存在,则记录此异常值,并按照相同的方式处理其余数据,最后记录大小为W的局部窗口内异常值的个数,当计数值大于0.25W时,判定当前局部窗口异常,若异常窗口总数大于规定的警报阈值
Figure BDA0001946920370000083
判定当前进程异常,将容器进程信息和所有异常序列输出到检测日志中;若异常窗口总数小于规定的警报阈值
Figure BDA0001946920370000084
判定当前进程正常。

Claims (4)

1.一种容器内进程异常行为检测系统,其特征在于,包括数据采集模块、数据建模模块和异常检测模块;
数据采集模块在容器外部的宿主机用户层,根据指定容器的ID,采用无代理的方式获取该容器内正在运行的所有进程信息,并基于ptrace系统调用监控用于管理该容器生命周期的运行时载体进程,实时感知该容器内新进程的创建和消亡行为,动态追踪并透明采集该容器内所有进程运行过程中产生的系统调用行为数据,将其保存到容器数据日志文件中;
数据建模模块根据正常情况下得到的容器数据日志文件中的系统调用序列训练一个基于LSTM循环神经网络的预测模型,以此刻画正常行为轮廓,并通过测试训练数据的方式,得到由M个连续系统调用组成的短序列出现概率PM的最小值,将其作为检测时的短序列概率阈值ε,并将模型预测错误的理论输出系统调用和对应短序列的映射关系存入模型修正库;
异常检测模块使用训练阶段已构建好的检测模型,衡量采集到的待测数据样本的异常程度,并将检测出的容器内异常进程信息和具体的异常短序列模式输出到容器检测日志中;
所述数据建模模块和异常检测模块构成的检测模型包括数据预处理单元、输入层、隐藏层、输出层、网络训练单元和异常检测单元;
数据预处理单元对采集到的系统调用序列进行分割,生成训练短序列,并对训练样本进行同比去重处理,然后独热编码数据以满足网络输入要求;
输入层、隐藏层、输出层和网络训练单元构成网络的主体结构,采用读取整个序列后产生单个特征输出的循环网络设计模式,从更抽象的层次提取训练短序列的语义信息,并基于此预测每种可能的下一个系统调用的出现概率,然后通过计算理论输出和模型输出的交叉熵,应用Adam优化算法不断更新网络权重,训练得到最终的正常行为模型;
异常检测单元读取待测容器内系统调用行为数据,生成短序列,独热编码后输入训练阶段已构建好的正常行为模型中,并将建模时自定义的短序列概率阈值和模型修正库应用于检测阶段,通过累积局部窗口内的异常短序列和异常值,进行异常判定。
2.一种容器内进程异常行为检测方法,其特征在于,包括以下步骤:
步骤1:采用无代理的方式,在容器外部的宿主机用户层获取自监控某个容器开始需要追踪的进程列表,然后基于ptrace系统调用实时透明地感知容器内新进程的创建和消亡行为,从而全周期动态捕捉所有容器内进程在执行过程中产生的系统调用行为数据;
步骤2:将捕获的容器内进程的具体信息与相应的系统调用行为数据按序存入容器数据日志文件;
步骤3:在未受到任何攻击的系统环境下,对采集到的容器数据日志文件进行预处理,生成系统调用短序列,并对训练样本短序列进行同比去重,然后独热编码短序列,以此结构输入所构建的LSTM预测模型,训练并生成正常行为模型,最后通过测试训练数据的方式自定义短序列概率阈值并生成模型修正库;
步骤4:跟踪待测容器内运行进程,实时采集进程产生的系统调用行为数据,对序列数据进行预处理后输入所述正常行为模型中进行检测,并将检测结果输出到容器检测日志文件中;
所述步骤4具体包括:
步骤4.1:读取实时采集的系统调用行为数据,将待测容器内进程的系统调用序列划分为系统调用短序列,独热编码测试样本短序列后输入所述正常行为模型中,得到模型预测输出和每个理论输出系统调用的出现概率;
步骤4.2:针对每个理论输出系统调用的出现概率,以滑动窗口方式,记录大小为W的局部窗口内短序列出现概率PM小于建模阶段自定义的短序列概率阈值ε的异常短序列个数;当计数值大于0.1W时,判定当前局部窗口异常;若异常窗口总数大于规定的警报阈值
Figure FDA0002262494130000021
判定当前进程异常;将容器进程信息和所有异常序列输出到检测日志中;若异常窗口总数小于规定的警报阈值
Figure FDA0002262494130000022
则跳转至步骤4.3进行二次异常值检测;
步骤4.3:将模型的所有预测输出与测试样本的理论输出进行对比,若不相同,则进一步确定预测输出和对应的短序列是否存在于模型修正库中;若存在,则判定此系统调用正常;若不存在,则记录此异常值,并按照相同的方式处理其余数据;最后记录大小为W的局部窗口内异常值的个数,当计数值大于0.25W时,判定当前局部窗口异常;若异常窗口总数大于规定的警报阈值
Figure FDA0002262494130000023
判定当前进程异常,将容器进程信息和所有异常序列输出到检测日志中;若异常窗口总数小于规定的警报阈值
Figure FDA0002262494130000024
判定当前进程正常。
3.根据权利要求2所述的容器内进程异常行为检测方法,其特征在于,所述步骤1具体包括:
步骤1.1:在容器外部的宿主机用户层,通过mount信息查找cgroupfs的挂载点,并根据指定容器的ID,在Cgroup的子系统中搜索该容器的资源管理数据,得到目标容器中正在运行的所有进程在内核本身,以及初始命名空间中的全局PID信息;
步骤1.2:在容器外部的宿主机用户层,根据指定容器的ID,查找特定于管理该容器生命周期的运行时载体进程的全局PID信息;
步骤1.3:利用ptrace系统调用动态追踪步骤1.1和步骤1.2中确定的监控进程,及其通过fork、vfork或clone系统调用新建的子进程;针对步骤1.1中的进程及其子进程,采集并存储它们在运行过程中产生的系统调用行为数据,仅监控步骤1.2中的进程,无须采集其行为数据;但当步骤1.2中进程的子进程将要执行execve系统调用装载新的程序变为容器内进程时,开始采集并存储新的容器内进程及其子进程的系统调用行为数据。
4.根据权利要求2所述的容器内进程异常行为检测方法,其特征在于,所述步骤3具体包括:
步骤3.1:读取容器数据日志文件,采用滑动窗口方式,将待建模容器内每个进程的系统调用序列划分为互异的系统调用短序列,并记录所有短序列和其映射的不同理论输出系统调用,以及不同系统调用出现的频数;
步骤3.2:根据所统计的同一短序列映射的不同系统调用的出现频数,同比去除重复样本,确定最终输入模型的训练样本短序列;
步骤3.3:将所有训练样本短序列中的每一个系统调用进行独热编码;
步骤3.4:采用读取整个序列后产生单个特征输出的循环网络设计模式,构建一个LSTM预测模型,根据网络提取的序列语义特征,使用softmax层计算出每种可能的下一个系统调用的出现概率;
步骤3.5:将步骤3.3中生成的经独热编码的系统调用输入至所述LSTM预测模型中训练,通过计算理论输出和模型预测输出的交叉熵,应用Adam优化算法不断更新网络权重,收敛成最终的正常行为模型;
步骤3.6:将未经同比去重处理的训练样本输入至所述最终的正常行为模型中测试,得到每个理论输出系统调用的出现概率,以滑动窗口方式,计算由M个连续系统调用组成的短序列出现概率PM,将最小的短序列出现概率作为检测时的短序列概率阈值ε,并将模型预测错误的理论输出系统调用和对应短序列的映射关系存入模型修正库中。
CN201910039085.7A 2019-01-16 2019-01-16 一种容器内进程异常行为检测方法与系统 Active CN109858244B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910039085.7A CN109858244B (zh) 2019-01-16 2019-01-16 一种容器内进程异常行为检测方法与系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910039085.7A CN109858244B (zh) 2019-01-16 2019-01-16 一种容器内进程异常行为检测方法与系统

Publications (2)

Publication Number Publication Date
CN109858244A CN109858244A (zh) 2019-06-07
CN109858244B true CN109858244B (zh) 2020-01-17

Family

ID=66894804

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910039085.7A Active CN109858244B (zh) 2019-01-16 2019-01-16 一种容器内进程异常行为检测方法与系统

Country Status (1)

Country Link
CN (1) CN109858244B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395617A (zh) * 2019-08-15 2021-02-23 奇安信安全技术(珠海)有限公司 防护docker逃逸漏洞的方法、装置、存储介质及计算机设备
CN110895598B (zh) * 2019-10-23 2021-09-14 山东九州信泰信息科技股份有限公司 基于多源预测的实时异常检测并行化方法
CN110825593B (zh) * 2019-11-11 2022-08-23 腾讯科技(深圳)有限公司 一种进程的异常状态检测方法、装置、设备及存储介质
CN113050414B (zh) * 2019-12-27 2023-02-10 北京安控科技股份有限公司 一种基于工控系统时序数据的预警方法和系统
CN111782432B (zh) * 2020-06-29 2024-03-22 中国工商银行股份有限公司 用于容器异常分析的数据的采集方法及装置
CN111881453A (zh) * 2020-07-20 2020-11-03 北京百度网讯科技有限公司 一种容器逃逸检测方法、装置以及电子设备
CN112765599A (zh) * 2020-12-28 2021-05-07 中科曙光(南京)计算技术有限公司 应用程序的入侵检测方法
CN112860484A (zh) * 2021-01-29 2021-05-28 深信服科技股份有限公司 容器运行时异常行为检测、模型训练方法及相关装置
CN114491516B (zh) * 2022-01-26 2023-04-14 北京小佑网络科技有限公司 一种基于容器环境的威胁检测诱捕方法
CN115001866B (zh) * 2022-08-01 2022-11-08 成都市以太节点科技有限公司 一种基于免疫机制的安全防护方法、电子设备及存储介质
CN116910682B (zh) * 2023-09-14 2023-12-05 中移(苏州)软件技术有限公司 事件的检测方法及装置、电子设备和存储介质
CN117348951B (zh) * 2023-12-04 2024-02-09 北京长扬软件有限公司 应用于linux内核的容器感知装置和容器感知方法
CN117692261B (zh) * 2024-02-04 2024-04-05 长沙市智为信息技术有限公司 一种基于行为子图表征的恶意Bot识别方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650434A (zh) * 2016-12-27 2017-05-10 四川大学 一种基于io序列的虚拟机异常行为检测方法与系统

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9304885B2 (en) * 2013-06-18 2016-04-05 International Business Machines Corporation Passive monitoring of virtual systems using agent-less, near-real-time indexing
CN106897121B (zh) * 2017-03-01 2019-06-25 四川大学 一种基于虚拟化技术的无代理客户机进程防护方法
CN108121593B (zh) * 2017-12-22 2019-06-25 四川大学 一种虚拟机进程异常行为检测方法与系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650434A (zh) * 2016-12-27 2017-05-10 四川大学 一种基于io序列的虚拟机异常行为检测方法与系统

Also Published As

Publication number Publication date
CN109858244A (zh) 2019-06-07

Similar Documents

Publication Publication Date Title
CN109858244B (zh) 一种容器内进程异常行为检测方法与系统
CN106104496A (zh) 用于任意时序的不受监督的异常检测
CN108319926A (zh) 一种工地现场的安全帽佩戴检测系统及检测方法
CN110443109A (zh) 异常行为监控处理方法、装置、计算机设备和存储介质
CN113283344B (zh) 一种基于语义分割网络的矿用输送带跑偏检测方法
CN107292240A (zh) 一种基于人脸与人体识别的找人方法及系统
CN105205396A (zh) 一种基于深度学习的安卓恶意代码检测系统及其方法
WO2017139046A1 (en) System and method for unsupervised root cause analysis of machine failures
CN111045894A (zh) 数据库异常检测方法、装置、计算机设备和存储介质
CN111126153B (zh) 基于深度学习的安全监测方法、系统、服务器及存储介质
CN105959316A (zh) 网络安全性验证系统
CN111190804A (zh) 一种云原生系统的多层次的深度学习日志故障检测方法
CN111597970B (zh) 异常行为的识别方法及装置
CN109858239A (zh) 一种动静态结合的容器内cpu漏洞攻击程序检测方法
CN113449703B (zh) 环境在线监测数据的质控方法、装置、存储介质及设备
EP3652596A1 (en) Method and system for deviation detection in sensor datasets
CN106973039A (zh) 一种基于信息融合技术的网络安全态势感知模型训练方法和装置
CN109374631A (zh) 一种隧道状态评测方法
CN111914667A (zh) 一种吸烟检测方法及装置
CN110808995B (zh) 安全防护方法和装置
CN109308225B (zh) 一种虚拟机异常检测方法、装置、设备及存储介质
CN117421692A (zh) 垃圾投放站的垃圾违规投放识别方法、装置、设备
CN113949652A (zh) 基于人工智能的用户异常行为检测方法、装置及相关设备
CN116074092B (zh) 一种基于异构图注意力网络的攻击场景重构系统
CN116862109A (zh) 一种区域碳排放态势感知预警方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant