技术新讯 > 计算推算,计数设备的制造及其应用技术 > 服务器行为异常检测方法、装置、电子设备及存储介质  >  正文

服务器行为异常检测方法、装置、电子设备及存储介质

  • 国知局
  • 2024-08-30 14:30:01

本技术涉及网络安全,尤其涉及一种服务器行为异常检测方法、装置、电子设备及存储介质。

背景技术:

1、apt(advanced persistent threat,高级可持续威胁)攻击,是指攻击者针对指定对象展开的持久有效的计算机攻击活动。apt攻击的检测非常重要。

2、相关技术中,可以利用系统上的数据源(例如系统日志或应用日志)进行分析,判断主机是否存在恶意活动。例如,可以使用lstm(long short-term memory,长短期记忆网络)将系统日志建模为自然语言序列,并从中学习到正常行为对应的日志模式,可以以流的方式实时检测日志中是否存在异常的条目。虽然该研究能够将日志建模为自然语言,但是并没有从中提取出进程的语义,无法让安全专家理解进程的高层行为。

技术实现思路

1、为了解决上述技术问题,本技术提供了一种服务器行为异常检测方法、装置、电子设备及存储介质。

2、根据本技术的第一方面,提供了一种服务器行为异常检测方法,包括:

3、实时采集服务器进程运行时的系统调用序列;

4、按照预先设置的自动标注算法,将所述系统调用序列中的各个系统调用划分至n个进程运行阶段,得到n个运行阶段子序列,并按照请求执行过程,将所述n个进程运行阶段中的目标进程运行阶段对应的运行阶段子序列划分为一个或多个进程活动子序列;n为大于1的整数;

5、根据滑动窗口长度和滑动窗口步长,将所述系统调用序列分割为多个待识别子序列;其中,所述滑动窗口长度大于等于所有进程活动子序列的长度的最大值;

6、针对每个待识别子序列,将所述待识别子序列输入预先训练的进程语义抽象模型,得到所述待识别子序列中每个系统调用对应的、表征进程行为的命名实体识别结果;

7、对多个待识别子序列中的系统调用对应的命名实体识别结果进行聚合与覆盖处理,得到所述系统调用序列中各个系统调用对应的命名实体识别结果;

8、在所述系统调用序列中各个系统调用对应的命名实体识别结果包含未识别命名实体的情况下,确定所述系统调用序列出现异常,并发送告警信息。

9、可选地,所述进程语义抽象模型的训练方法包括:

10、采集服务器进程在正常运行时的多个系统调用序列,将单个系统调用序列作为单个样本系统调用序列;

11、根据所述自动标注算法,将每个样本系统调用序列划分为n个样本运行阶段子序列;并按照请求执行过程,将所述目标进程运行阶段对应的样本运行阶段子序列划分为一个或多个样本进程活动子序列;

12、从所有样本进程活动子序列的长度中选取最大值,并根据所选取的最大值确定滑动窗口长度和滑动窗口步长;其中,所述滑动窗口长度大于等于所选取的最大值;

13、根据所述滑动窗口长度和所述滑动窗口步长,将每个样本系统调用序列分割为多个样本训练子序列;

14、根据每个样本系统调用序列中的n个样本运行阶段子序列和一个或多个样本进程活动子序列,对所述样本系统调用序列中的每个系统调用进行命名实体标注,得到每个系统调用对应的实体标注结果;

15、根据每个样本训练子序列中包含的系统调用的实体标注结果,确定样本训练子序列的实体标注结果;

16、将样本训练子序列作为输入数据、样本训练子序列对应的实体标注结果作为标签数据,训练生成进程语义抽象模型。

17、可选地,n个进程运行阶段包括:初始化阶段、事件循环阶段和退出阶段;

18、所述按照预先设置的自动标注算法,将所述系统调用序列中的各个系统调用划分至n个进程运行阶段,得到n个运行阶段子序列,包括:

19、从所述系统调用序列中查找第一次出现输入输出io复用的系统调用,将第一次出现io复用的系统调用之前的系统调用划分至初始化阶段,得到初始化阶段子序列;

20、从所述系统调用序列中查找最后一次出现io复用的系统调用,将第一次出现io复用的系统调用和最后一次出现io复用的系统调用之间的系统调用划分至事件循环阶段,得到事件循环阶段子序列;

21、将最后一次出现io复用的系统调用之后的系统调用划分至退出阶段,得到退出阶段子序列。

22、可选地,所述目标进程运行阶段为事件循环阶段;

23、所述按照请求执行过程,将所述n个进程运行阶段中的目标进程运行阶段对应的运行阶段子序列划分为一个或多个进程活动子序列,包括:

24、将所述事件循环阶段子序列中出现io复用的系统调用与再次出现io复用的系统调用之间的系统调用作为一个进程活动子序列。

25、可选地,所述根据每个样本系统调用序列中的n个样本运行阶段子序列和一个或多个样本进程活动子序列,对所述样本系统调用序列中的每个系统调用进行命名实体标注,得到每个系统调用对应的实体标注结果,包括:

26、针对每个样本系统调用序列中除目标进程运行阶段的其他进程运行阶段对应的样本运行阶段子序列,将每个样本运行阶段子序列标记为所述样本运行阶段子序列对应的阶段实体三元组;其中,所述阶段实体三元组中的第一个元素表示其他进程运行阶段的起始,所述阶段实体三元组中的第二个元素表示其他进程运行阶段的中间过程,所述阶段实体三元组中的第三个元素表示其他进程运行阶段的结束;

27、将所述样本运行阶段子序列中的第一个系统调用标记为所述阶段实体三元组中的第一个元素,将所述样本运行阶段子序列中的最后一个系统调用标记为所述阶段实体三元组中的第三个元素,将所述样本运行阶段子序列中的其他系统调用标记为所述阶段实体三元组中的第二个元素;

28、针对每个样本系统调用序列中的目标进程运行阶段对应的样本运行阶段子序列,将所述样本运行阶段子序列中的每个样本进程活动子序列标记为所述样本进程活动子序列对应的活动实体三元组;其中,所述活动实体三元组中的第一个元素表示进程活动的起始,所述活动实体三元组中的第二个元素表示进程活动的中间过程,所述活动实体三元组中的第三个元素表示进程活动的结束;

29、将所述样本进程活动子序列中的第一个系统调用标记为所述活动实体三元组中的第一个元素,将所述样本进程活动子序列中的最后一个系统调用标记为所述活动实体三元组中的第三个元素,将所述样本进程活动子序列中的其他系统调用标记为所述活动实体三元组中的第二个元素。

30、可选地,所述方法还包括:

31、按照用户连接的建立和断开,将所述n个进程运行阶段中的目标进程运行阶段对应的运行阶段子序列划分为一个或多个用户连接子序列,并确定每个用户连接子序列中包含的进程活动子序列;

32、所述发送告警信息包括:

33、发送所述未识别命名实体对应的系统调用、所述未识别命名实体对应的系统调用所属的进程运行阶段和所述未识别命名实体对应的系统调用附近的、对应已识别命名实体的系统调用;以及,

34、在所述未识别命名实体对应的系统调用所属的进程运行阶段属于目标进程运行阶段的情况下,发送所述未识别命名实体对应的系统调用所属的用户连接子序列对应的请求发送者的网络信息和请求内容。

35、可选地,所述进程语义抽象模型包括:嵌入层、特征提取层及标注预测层;

36、所述嵌入层为roberta模型,所述特征提取层为双向长短期记忆网络bilstm模型,所述标注预测层为条件随机场crf模型。

37、根据本技术的第二方面,提供了一种服务器行为异常检测装置,包括:

38、系统调用采集模块,用于实时采集服务器进程运行时的系统调用序列;

39、自动标注模块,用于按照预先设置的自动标注算法,将所述系统调用序列中的各个系统调用划分至n个进程运行阶段,得到n个运行阶段子序列,并按照请求执行过程,将所述n个进程运行阶段中的目标进程运行阶段对应的运行阶段子序列划分为一个或多个进程活动子序列;n为大于1的整数;

40、序列分割模块,用于根据滑动窗口长度和滑动窗口步长,将所述系统调用序列分割为多个待识别子序列;其中,所述滑动窗口长度大于等于所有进程活动子序列的长度的最大值;

41、命名实体识模块,用于针对每个待识别子序列,将所述待识别子序列输入预先训练的进程语义抽象模型,得到所述待识别子序列中每个系统调用对应的、表征进程行为的命名实体识别结果;

42、命名实体识别结果处理模块,用于对多个待识别子序列中的系统调用对应的命名实体识别结果进行聚合与覆盖处理,得到所述系统调用序列中各个系统调用对应的命名实体识别结果;

43、异常确定模块,用于在所述系统调用序列中各个系统调用对应的命名实体识别结果包含未识别命名实体的情况下,确定所述系统调用序列出现异常;

44、告警信息发送模块,用于在所述系统调用序列出现异常的情况下,发送告警信息。

45、可选地,所述服务器行为异常检测装置还包括:

46、进程语义抽象模型训练模块,用于采集服务器进程在正常运行时的多个系统调用序列,将单个系统调用序列作为单个样本系统调用序列;根据所述自动标注算法,将每个样本系统调用序列划分为n个样本运行阶段子序列;并按照请求执行过程,将所述目标进程运行阶段对应的样本运行阶段子序列划分为一个或多个样本进程活动子序列;以及,

47、从所有样本进程活动子序列的长度中选取最大值,并根据所选取的最大值确定滑动窗口长度和滑动窗口步长;其中,所述滑动窗口长度大于等于所选取的最大值;根据所述滑动窗口长度和所述滑动窗口步长,将每个样本系统调用序列分割为多个样本训练子序列;以及,

48、根据每个样本系统调用序列中的n个样本运行阶段子序列和一个或多个样本进程活动子序列,对所述样本系统调用序列中的每个系统调用进行命名实体标注,得到每个系统调用对应的实体标注结果;根据每个样本训练子序列中包含的系统调用的实体标注结果,确定样本训练子序列的实体标注结果;将样本训练子序列作为输入数据、样本训练子序列对应的实体标注结果作为标签数据,训练生成进程语义抽象模型。

49、可选地,n个进程运行阶段包括:初始化阶段、事件循环阶段和退出阶段;

50、所述自动标注模块,具体用于根据下述步骤实现按照预先设置的自动标注算法,将所述系统调用序列中的各个系统调用划分至n个进程运行阶段,得到n个运行阶段子序列:

51、从所述系统调用序列中查找第一次出现输入输出io复用的系统调用,将第一次出现io复用的系统调用之前的系统调用划分至初始化阶段,得到初始化阶段子序列;

52、从所述系统调用序列中查找最后一次出现io复用的系统调用,将第一次出现io复用的系统调用和最后一次出现io复用的系统调用之间的系统调用划分至事件循环阶段,得到事件循环阶段子序列;

53、将最后一次出现io复用的系统调用之后的系统调用划分至退出阶段,得到退出阶段子序列。

54、可选地,所述目标进程运行阶段为事件循环阶段;

55、所述自动标注模块,具体用于根据下述步骤实现按照请求执行过程,将所述n个进程运行阶段中的目标进程运行阶段对应的运行阶段子序列划分为一个或多个进程活动子序列:

56、将所述事件循环阶段子序列中出现io复用的系统调用与再次出现io复用的系统调用之间的系统调用作为一个进程活动子序列。

57、可选地,所述进程语义抽象模型训练模块通过下述步骤实现根据每个样本系统调用序列中的n个样本运行阶段子序列和一个或多个样本进程活动子序列,对所述样本系统调用序列中的每个系统调用进行命名实体标注,得到每个系统调用对应的实体标注结果:

58、针对每个样本系统调用序列中除目标进程运行阶段的其他进程运行阶段对应的样本运行阶段子序列,将每个样本运行阶段子序列标记为所述样本运行阶段子序列对应的阶段实体三元组;其中,所述阶段实体三元组中的第一个元素表示其他进程运行阶段的起始,所述阶段实体三元组中的第二个元素表示其他进程运行阶段的中间过程,所述阶段实体三元组中的第三个元素表示其他进程运行阶段的结束;

59、将所述样本运行阶段子序列中的第一个系统调用标记为所述阶段实体三元组中的第一个元素,将所述样本运行阶段子序列中的最后一个系统调用标记为所述阶段实体三元组中的第三个元素,将所述样本运行阶段子序列中的其他系统调用标记为所述阶段实体三元组中的第二个元素;

60、针对每个样本系统调用序列中的目标进程运行阶段对应的样本运行阶段子序列,将所述样本运行阶段子序列中的每个样本进程活动子序列标记为所述样本进程活动子序列对应的活动实体三元组;其中,所述活动实体三元组中的第一个元素表示进程活动的起始,所述活动实体三元组中的第二个元素表示进程活动的中间过程,所述活动实体三元组中的第三个元素表示进程活动的结束;

61、将所述样本进程活动子序列中的第一个系统调用标记为所述活动实体三元组中的第一个元素,将所述样本进程活动子序列中的最后一个系统调用标记为所述活动实体三元组中的第三个元素,将所述样本进程活动子序列中的其他系统调用标记为所述活动实体三元组中的第二个元素。

62、可选地,所述自动标注模块,还用于按照用户连接的建立和断开,将所述n个进程运行阶段中的目标进程运行阶段对应的运行阶段子序列划分为一个或多个用户连接子序列,并确定每个用户连接子序列中包含的进程活动子序列;

63、所述告警信息发送模块,具体用于发送所述未识别命名实体对应的系统调用、所述未识别命名实体对应的系统调用所属的进程运行阶段和所述未识别命名实体对应的系统调用附近的、对应已识别命名实体的系统调用;以及,

64、在所述未识别命名实体对应的系统调用所属的进程运行阶段属于目标进程运行阶段的情况下,发送所述未识别命名实体对应的系统调用所属的用户连接子序列对应的请求发送者的网络信息和请求内容。

65、可选地,所述进程语义抽象模型包括:嵌入层、特征提取层及标注预测层;

66、所述嵌入层为roberta模型,所述特征提取层为双向长短期记忆网络bilstm模型,所述标注预测层为条件随机场crf模型。

67、根据本技术的第三方面,提供了一种电子设备,包括:处理器,所述处理器用于执行存储于存储器的计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。

68、根据本技术的第四方面,提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。

69、根据本技术的第五方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行第一方面所述的方法。

70、本技术实施例提供的技术方案与现有技术相比具有如下优点:

71、利用自动标注算法对系统调用序列进行标注,生成进程的高层次行为与底层系统调用序列之间的映射关系。考虑到系统调用序列的长度较长,现有的深度学习模型无法在一次输入中容纳整个系统调用序列,因此可以采用滑动窗口的方式,对系统调用序列进行序列切分,并使用预先训练的进程语义抽象模型提取进程的行为。当进程语义抽象模型无法识别系统调用序列对应的进程活动时,表示系统调用序列中可能出现了异常,即进程有异常的活动,可以对异常现场进行分析后提供告警信息给安全专家,方便安全专家找到进程的异常行为。进程语义抽象模型提出了一个异常检测算法,可以通过服务器进程的系统调用序列判断进程的异常阶段与活动,并在发现异常时报告相关的信息,帮助安全专家发现异常与溯源攻击。可见,本技术通过将自动标注算法和进程语义抽象模型相结合,从系统调用序列中提取出进程的高层语义,从而可以让安全专家理解进程的高层行为,便于安全专家分析异常事件。

本文地址:https://www.jishuxx.com/zhuanli/20240830/282374.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。