CN114969731B - 基于操作系统的恶意软件检测方法和装置 - Google Patents

基于操作系统的恶意软件检测方法和装置 Download PDF

Info

Publication number
CN114969731B
CN114969731B CN202210312231.0A CN202210312231A CN114969731B CN 114969731 B CN114969731 B CN 114969731B CN 202210312231 A CN202210312231 A CN 202210312231A CN 114969731 B CN114969731 B CN 114969731B
Authority
CN
China
Prior art keywords
software
malicious
preset
piece
value
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
CN202210312231.0A
Other languages
English (en)
Other versions
CN114969731A (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.)
China Standard Intelligent Security Technology Co Ltd
Original Assignee
China Standard Intelligent Security Technology Co Ltd
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 China Standard Intelligent Security Technology Co Ltd filed Critical China Standard Intelligent Security Technology Co Ltd
Priority to CN202210312231.0A priority Critical patent/CN114969731B/zh
Publication of CN114969731A publication Critical patent/CN114969731A/zh
Application granted granted Critical
Publication of CN114969731B publication Critical patent/CN114969731B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请提供了一种基于操作系统的恶意软件检测方法和装置,涉及软件安全技术领域。该方法获取操作系统中的一个或多个软件各自的至少一个入口函数;针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;获取预先构建的恶意软件特征库,并将各个软件的待检测系统调用序列与预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;根据各个软件的匹配结果确定各个软件是否为恶意软件。可以看到,本申请实施例减少了操作系统面对恶意入侵的风险,保护了其中数据不被破坏和泄露,很大程度上保证了软件的安全性。

Description

基于操作系统的恶意软件检测方法和装置
技术领域
本申请涉及软件安全技术领域,尤其涉及一种基于操作系统的恶意软件检测方法和装置。
背景技术
国产操作系统是开源的操作系统,它有高安全、高可靠、高可用、跨平台、中文化等特点。国产操作系统起步相比较于其他操作系统发展较晚,虽然碰到恶意软件入侵情况少,但是对于很多的恶意软件、病毒的入侵还是没有有效的检测和制止方法。恶意软件和病毒会破坏整个计算机的运行,泄露其中的数据,会带来严重的后果。因此,亟需解决这一技术问题。
发明内容
鉴于上述问题,提出了本申请以便提供一种克服上述问题或者至少部分地解决上述问题的基于操作系统的恶意软件检测方法和装置,可以根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,减少了操作系统面对恶意入侵的风险,保护了其中数据不被破坏和泄露,很大程度上保证了软件的安全性。所述技术方案如下:
第一方面,提供了一种基于操作系统的恶意软件检测方法,包括:
获取操作系统中的一个或多个软件各自的至少一个入口函数;
针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;
获取预先构建的恶意软件特征库,并将所述各个软件的待检测系统调用序列与所述预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;
根据所述各个软件的匹配结果确定各个软件是否为恶意软件。
在一种可能的实现方式中,根据所述各个软件的匹配结果确定各个软件是否为恶意软件,包括:
若所述各个软件的匹配结果为所述各个软件的待检测系统调用序列匹配到所述预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件为恶意软件;
若所述各个软件的匹配结果为所述各个软件的待检测系统调用序列未匹配到所述预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件不为恶意软件。
在一种可能的实现方式中,若确定各个软件为恶意软件,所述基于操作系统的恶意软件检测方法还包括:
生成表示各个软件为恶意软件的告警信息;
将所述告警信息发送给预设的终端设备,从而将所述告警信息通知给所述预设的终端设备的工作人员。
在一种可能的实现方式中,所述基于操作系统的恶意软件检测方法还包括:
采集各个软件在操作系统运行的过程中的软件行为事件集,其中所述软件行为事件集中包括一个或多个软件行为;
获取预先构建的恶意行为特征库,其中所述预先构建的恶意行为特征库中包括多个恶意行为特征;
将所述软件行为事件集在所述预先构建的恶意行为特征库进行匹配,若所述软件行为事件集中的软件行为与所述预先构建的恶意行为特征库中的恶意行为特征匹配,则确定所述各个软件为恶意软件。
在一种可能的实现方式中,通过以下步骤构建恶意行为特征库:
获取包括恶意行为特征的恶意行为信息;
对所述恶意行为信息进行预处理,对预处理后的恶意行为信息按照预设格式进行存储,得到包含恶意行为特征的恶意行为特征库。
在一种可能的实现方式中,对所述恶意行为信息进行预处理,对预处理后的恶意行为信息按照预设格式进行存储,得到包含恶意行为特征的恶意行为特征库,包括:
将所述恶意行为信息中的恶意行为特征转化为判断查询逻辑;
将包括所述判断查询逻辑的恶意行为信息按照预设格式进行存储,得到包含所述判断查询逻辑的恶意行为特征的恶意行为特征库。
在一种可能的实现方式中,所述方法还包括:
首先检测告警模块与预设的终端设备的连接是否正常,并且若不存在连接正常的终端,则需要设置数据心跳包进行周期性重复发送所述告警信息,并且还会根据所述告警信息中恶意软件的数量控制心跳包的发送周期,直至预设的终端设备存在返回信息为止,其具体步骤包括,
步骤A1:利用公式(1)将所述告警模块与预设的所有终端设备进行三次握手测试,以判断告警模块与预设的终端设备的连接情况
Figure BDA0003567511770000031
其中W(i)表示告警模块与预设的第i个终端设备三次握手测试的测试结果值;0x6f6b表示十六进制数6f6b;F(i_a)表示告警模块与预设的第i个终端设备进行一次握手测试终端设备的返回值(并设置预设返回时间,若超出预设返回时间未返回数值则默认返回值为0);[]16表示将括号内数值转换为十六进制形式;{}10表示将括号内数值转换为十进制形式;||表示求取绝对值;G{}表示零校验函数,若括号内的数值为0则函数值为1,若括号内的数值不为0则函数值为0;
若W(i)=1,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为成功;
若W(i)=0,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为不成功;
步骤A2:利用公式(2)根据所述告警模块与预设的所有终端设备进行三次握手测试的测试结果控制数据心跳包的使能
Figure BDA0003567511770000041
其中P表示数据心跳包的使能控制值;n表示预设的终端设备总数;
若P=1,表示数据心跳包的使能控制打开,进入步骤A3计算出发送周期,进行周期性发送数据;
若P=0,表示数据心跳包的使能控制关闭;
步骤A3:利用公式(3)根据所述告警信息中恶意软件的数量控制心跳包的发送周期
Figure BDA0003567511770000042
其中f表示控制的所述心跳包的发送周期;fmax表示所述心跳包的最大发送周期;D2表示所述告警信息的二进制形式(所述告警信息为24位的二进制数据其中中间八位数据代表恶意软件的数量);&&表示按位与;
Figure BDA0003567511770000043
表示前八位和后八位的数值均为0中间八位数值为1的二进制数据;M表示已经获取到操作系统中的入口函数的软件个数。
第二方面,提供了一种基于操作系统的恶意软件检测装置,包括:
获取模块,用于获取操作系统中的一个或多个软件各自的至少一个入口函数;
生成模块,用于针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;
匹配模块,用于获取预先构建的恶意软件特征库,并将所述各个软件的待检测系统调用序列与所述预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;
确定模块,用于根据所述各个软件的匹配结果确定各个软件是否为恶意软件。
在一种可能的实现方式中,所述确定模块还用于:
若所述各个软件的匹配结果为所述各个软件的待检测系统调用序列匹配到所述预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件为恶意软件;
若所述各个软件的匹配结果为所述各个软件的待检测系统调用序列未匹配到所述预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件不为恶意软件。
在一种可能的实现方式中,所述基于操作系统的恶意软件检测装置还包括告警模块,所述告警模块用于:
若确定各个软件为恶意软件,生成表示各个软件为恶意软件的告警信息;
将所述告警信息发送给预设的终端设备,从而将所述告警信息通知给所述预设的终端设备的工作人员。
在一种可能的实现方式中,所述获取模块还用于:采集各个软件在操作系统运行的过程中的软件行为事件集,其中所述软件行为事件集中包括一个或多个软件行为;获取预先构建的恶意行为特征库,其中所述预先构建的恶意行为特征库中包括多个恶意行为特征;
所述确定模块还用于:将所述软件行为事件集在所述预先构建的恶意行为特征库进行匹配,若所述软件行为事件集中的软件行为与所述预先构建的恶意行为特征库中的恶意行为特征匹配,则确定所述各个软件为恶意软件。
在一种可能的实现方式中,所述基于操作系统的恶意软件检测装置还包括构建模块,所述构建模块用于:
获取包括恶意行为特征的恶意行为信息;
对所述恶意行为信息进行预处理,对预处理后的恶意行为信息按照预设格式进行存储,得到包含恶意行为特征的恶意行为特征库。
在一种可能的实现方式中,所述构建模块还用于:
将所述恶意行为信息中的恶意行为特征转化为判断查询逻辑;
将包括所述判断查询逻辑的恶意行为信息按照预设格式进行存储,得到包含所述判断查询逻辑的恶意行为特征的恶意行为特征库。
在一种可能的实现方式中,所述告警模块还用于:
首先检测告警模块与预设的终端设备的连接是否正常,并且若不存在连接正常的终端,则需要设置数据心跳包进行周期性重复发送所述告警信息,并且还会根据所述告警信息中恶意软件的数量控制心跳包的发送周期,直至预设的终端设备存在返回信息为止,其具体步骤包括,
步骤A1:利用公式(1)将所述告警模块与预设的所有终端设备进行三次握手测试,以判断告警模块与预设的终端设备的连接情况
Figure BDA0003567511770000061
其中W(i)表示告警模块与预设的第i个终端设备三次握手测试的测试结果值;0x6f6b表示十六进制数6f6b;F(i_a)表示告警模块与预设的第i个终端设备进行一次握手测试终端设备的返回值(并设置预设返回时间,若超出预设返回时间未返回数值则默认返回值为0);[]16表示将括号内数值转换为十六进制形式;{}10表示将括号内数值转换为十进制形式;||表示求取绝对值;G{}表示零校验函数,若括号内的数值为0则函数值为1,若括号内的数值不为0则函数值为0;
若W(i)=1,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为成功;
若W(i)=0,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为不成功;
步骤A2:利用公式(2)根据所述告警模块与预设的所有终端设备进行三次握手测试的测试结果控制数据心跳包的使能
Figure BDA0003567511770000062
其中P表示数据心跳包的使能控制值;n表示预设的终端设备总数;
若P=1,表示数据心跳包的使能控制打开,进入步骤A3计算出发送周期,进行周期性发送数据;
若P=0,表示数据心跳包的使能控制关闭;
步骤A3:利用公式(3)根据所述告警信息中恶意软件的数量控制心跳包的发送周期
Figure BDA0003567511770000071
其中f表示控制的所述心跳包的发送周期;fmax表示所述心跳包的最大发送周期;D2表示所述告警信息的二进制形式(所述告警信息为24位的二进制数据其中中间八位数据代表恶意软件的数量);&&表示按位与;
Figure BDA0003567511770000072
表示前八位和后八位的数值均为0中间八位数值为1的二进制数据;M表示已经获取到操作系统中的入口函数的软件个数。
借由上述技术方案,本申请实施例提供的基于操作系统的恶意软件检测方法和装置,可以获取操作系统中的一个或多个软件各自的至少一个入口函数;针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;获取预先构建的恶意软件特征库,并将各个软件的待检测系统调用序列与预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;根据各个软件的匹配结果确定各个软件是否为恶意软件。可以看到,本申请实施例可以根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,减少了操作系统面对恶意入侵的风险,保护了其中数据不被破坏和泄露,很大程度上保证了软件的安全性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍。
图1示出了根据本申请实施例的基于操作系统的恶意软件检测方法的流程图;
图2示出了根据本申请另一实施例的基于操作系统的恶意软件检测方法的流程图;
图3示出了根据本申请实施例的基于操作系统的恶意软件检测装置的结构图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”及其变体要被解读为意味着“包括但不限于”的开放式术语。
本申请实施例提供了一种基于操作系统的恶意软件检测方法。如图1所示,该基于操作系统的恶意软件检测方法可以包括以下步骤S101至S104:
步骤S101,获取操作系统中的一个或多个软件各自的至少一个入口函数;
步骤S102,针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;
步骤S103,获取预先构建的恶意软件特征库,并将各个软件的待检测系统调用序列与预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;
步骤S104,根据各个软件的匹配结果确定各个软件是否为恶意软件。
本申请实施例可以获取操作系统中的一个或多个软件各自的至少一个入口函数;针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;获取预先构建的恶意软件特征库,并将各个软件的待检测系统调用序列与预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;根据各个软件的匹配结果确定各个软件是否为恶意软件。可以看到,本申请实施例可以根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,减少了操作系统面对恶意入侵的风险,保护了其中数据不被破坏和泄露,很大程度上保证了软件的安全性。
本申请实施例中提供了一种可能的实现方式,上文步骤S104根据各个软件的匹配结果确定各个软件是否为恶意软件,具体可以是若各个软件的匹配结果为各个软件的待检测系统调用序列匹配到预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件为恶意软件;若各个软件的匹配结果为各个软件的待检测系统调用序列未匹配到预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件不为恶意软件。可以看到,本申请实施例可以准确、及时检测到恶意软件,从而可以对恶意软件进行及时处理,保证了软件的安全性。
本申请实施例中提供了一种可能的实现方式,若确定各个软件为恶意软件,还可以生成表示各个软件为恶意软件的告警信息,并将告警信息发送给预设的终端设备,从而将告警信息通知给预设的终端设备的工作人员。这样,工作人员可以及时获知软件的情况,对恶意软件进行及时处理,保证了软件的安全性。
本申请实施例中提供了一种可能的实现方式,为了提高检测的准确性,还可以包括以下步骤a1至a3:
步骤a1,采集各个软件在操作系统运行的过程中的软件行为事件集,其中软件行为事件集中包括一个或多个软件行为;
步骤a2,获取预先构建的恶意行为特征库,其中预先构建的恶意行为特征库中包括多个恶意行为特征;
步骤a3,将软件行为事件集在预先构建的恶意行为特征库进行匹配,若软件行为事件集中的软件行为与预先构建的恶意行为特征库中的恶意行为特征匹配,则确定各个软件为恶意软件。
本申请实施例可以采集各个软件在操作系统运行的过程中的软件行为事件集,获取预先构建的恶意行为特征库,将软件行为事件集在预先构建的恶意行为特征库进行匹配,若软件行为事件集中的软件行为与预先构建的恶意行为特征库中的恶意行为特征匹配,则确定各个软件为恶意软件,可以准确、及时检测到恶意软件,从而可以对恶意软件进行及时处理,保证了软件的安全性。
本申请实施例中提供了一种可能的实现方式,可以通过以下步骤B1和B2构建恶意行为特征库:
步骤B1,获取包括恶意行为特征的恶意行为信息;
步骤B2,对恶意行为信息进行预处理,对预处理后的恶意行为信息按照预设格式进行存储,得到包含恶意行为特征的恶意行为特征库。
本申请实施例获取包括恶意行为特征的恶意行为信息,对恶意行为信息进行预处理,对预处理后的恶意行为信息按照预设格式进行存储,得到包含恶意行为特征的恶意行为特征库,这样可以让恶意行为特征库的恶意行为特征更丰富,满足后续的匹配需求。
本申请实施例中提供了一种可能的实现方式,上文步骤B2对恶意行为信息进行预处理,对预处理后的恶意行为信息按照预设格式进行存储,得到包含恶意行为特征的恶意行为特征库,具体可以包括步骤B2-1和B2-2:
步骤B2-1,将恶意行为信息中的恶意行为特征转化为判断查询逻辑;
步骤B2-2,将包括判断查询逻辑的恶意行为信息按照预设格式进行存储,得到包含判断查询逻辑的恶意行为特征的恶意行为特征库。
本申请实施例将恶意行为信息中的恶意行为特征转化为判断查询逻辑;将包括判断查询逻辑的恶意行为信息按照预设格式进行存储,得到包含判断查询逻辑的恶意行为特征的恶意行为特征库,可以满足后续的匹配需求。
本申请实施例中提供了一种可能的实现方式,首先检测告警模块与预设的终端设备的连接是否正常,并且若不存在连接正常的终端,则需要设置数据心跳包进行周期性重复发送所述告警信息,并且还会根据所述告警信息中恶意软件的数量控制心跳包的发送周期,直至预设的终端设备存在返回信息为止,其具体步骤包括,
步骤A1:利用公式(1)将所述告警模块与预设的所有终端设备进行三次握手测试,以判断告警模块与预设的终端设备的连接情况
Figure BDA0003567511770000111
其中W(i)表示告警模块与预设的第i个终端设备三次握手测试的测试结果值;0x6f6b表示十六进制数6f6b;F(i_a)表示告警模块与预设的第i个终端设备进行一次握手测试终端设备的返回值(并设置预设返回时间,若超出预设返回时间未返回数值则默认返回值为0);[]16表示将括号内数值转换为十六进制形式;{}10表示将括号内数值转换为十进制形式;||表示求取绝对值;G{}表示零校验函数,若括号内的数值为0则函数值为1,若括号内的数值不为0则函数值为0;
若W(i)=1,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为成功;
若W(i)=0,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为不成功;
步骤A2:利用公式(2)根据所述告警模块与预设的所有终端设备进行三次握手测试的测试结果控制数据心跳包的使能
Figure BDA0003567511770000112
其中P表示数据心跳包的使能控制值;n表示预设的终端设备总数;
若P=1,表示数据心跳包的使能控制打开,进入步骤A3计算出发送周期,进行周期性发送数据;
若P=0,表示数据心跳包的使能控制关闭;
步骤A3:利用公式(3)根据所述告警信息中恶意软件的数量控制心跳包的发送周期
Figure BDA0003567511770000113
其中f表示控制的所述心跳包的发送周期;fmax表示所述心跳包的最大发送周期;D2表示所述告警信息的二进制形式(所述告警信息为24位的二进制数据其中中间八位数据代表恶意软件的数量);&&表示按位与;
Figure BDA0003567511770000121
表示前八位和后八位的数值均为0中间八位数值为1的二进制数据;M表示已经获取到操作系统中的入口函数的软件个数。
上述技术方案的有益效果为:首先利用步骤A1中的公式(1)将所述告警模块与预设的所有终端设备进行三次握手测试,以判断告警模块与预设的终端设备的连接情况,进而控制告警模块的发送模式,减少不必要的功耗损失,节省电能;然后利用步骤A2中的公式(2)根据所述告警模块与预设的所有终端设备进行三次握手测试的测试结果控制数据心跳包的使能,进而在无法连接所有终端设备时,进行心跳包的周期性发送,从而最大化的将所述告警信息不断的发出,进而保证告警模块的可靠性;最后利用步骤A3中的公式(3)根据所述告警信息中恶意软件的数量控制心跳包的发送周期,从而在恶意软件较多时,提高心跳包的发送周期,以确保在恢复连接时可以及时的收到所述告警信息。
以上介绍了图1所示实施例的各个环节的多种实现方式,下面将通过具体实施例来详细介绍基于操作系统的恶意软件检测方法的实现过程。
本申请另一实施例提供了一种基于操作系统的恶意软件检测方法,如图2所示,该基于操作系统的恶意软件检测方法可以包括以下步骤S201至S206。
步骤S201,获取操作系统中的一个或多个软件各自的至少一个入口函数。
步骤S202,针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列。
步骤S203,获取预先构建的恶意软件特征库。
该步骤中,可以采用前文介绍的步骤B1和B2构建恶意行为特征库,此处不再赘述。
步骤S204,将各个软件的待检测系统调用序列与预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果。
步骤S205,若各个软件的匹配结果为各个软件的待检测系统调用序列匹配到预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件为恶意软件;若各个软件的匹配结果为各个软件的待检测系统调用序列未匹配到预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件不为恶意软件。
步骤S206,若确定各个软件为恶意软件,生成表示各个软件为恶意软件的告警信息,并将告警信息发送给预设的终端设备,从而将告警信息通知给预设的终端设备的工作人员。
本申请实施例可以根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,减少了操作系统面对恶意入侵的风险,保护了其中数据不被破坏和泄露,很大程度上保证了软件的安全性。
需要说明的是,实际应用中,上述所有可能的实施方式可以采用结合的方式任意组合,形成本申请的可能的实施例,在此不再一一赘述。
基于上文各个实施例提供的基于操作系统的恶意软件检测方法,基于同一发明构思,本申请实施例还提供了一种基于操作系统的恶意软件检测装置。
图3示出了根据本申请实施例的基于操作系统的恶意软件检测装置的结构图。如图3所示,该基于操作系统的恶意软件检测装置可以包括获取模块310、生成模块320、匹配模块330以及确定模块340。
获取模块310,用于获取操作系统中的一个或多个软件各自的至少一个入口函数;
生成模块320,用于针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;
匹配模块330,用于获取预先构建的恶意软件特征库,并将各个软件的待检测系统调用序列与预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;
确定模块340,用于根据各个软件的匹配结果确定各个软件是否为恶意软件。
本申请实施例中提供了一种可能的实现方式,上文图3展示的确定模块340还用于:
若各个软件的匹配结果为各个软件的待检测系统调用序列匹配到预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件为恶意软件;
若各个软件的匹配结果为各个软件的待检测系统调用序列未匹配到预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件不为恶意软件。
本申请实施例中提供了一种可能的实现方式,上文图3展示的基于操作系统的恶意软件检测装置还可以包括告警模块(附图中为示出),告警模块用于:
若确定各个软件为恶意软件,生成表示各个软件为恶意软件的告警信息;
将告警信息发送给预设的终端设备,从而将告警信息通知给预设的终端设备的工作人员。
本申请实施例中提供了一种可能的实现方式,上文图3展示的获取模块310还用于:采集各个软件在操作系统运行的过程中的软件行为事件集,其中软件行为事件集中包括一个或多个软件行为;获取预先构建的恶意行为特征库,其中预先构建的恶意行为特征库中包括多个恶意行为特征;
确定模块340还用于:将软件行为事件集在预先构建的恶意行为特征库进行匹配,若软件行为事件集中的软件行为与预先构建的恶意行为特征库中的恶意行为特征匹配,则确定各个软件为恶意软件。
本申请实施例中提供了一种可能的实现方式,上文图3展示的基于操作系统的恶意软件检测装置还可以包括构建模块(附图中未示出),构建模块用于:
获取包括恶意行为特征的恶意行为信息;
对恶意行为信息进行预处理,对预处理后的恶意行为信息按照预设格式进行存储,得到包含恶意行为特征的恶意行为特征库。
本申请实施例中提供了一种可能的实现方式,构建模块还用于:
将恶意行为信息中的恶意行为特征转化为判断查询逻辑;
将包括判断查询逻辑的恶意行为信息按照预设格式进行存储,得到包含判断查询逻辑的恶意行为特征的恶意行为特征库。
本申请实施例中提供了一种可能的实现方式,上文的告警模块还用于:
首先检测告警模块与预设的终端设备的连接是否正常,并且若不存在连接正常的终端,则需要设置数据心跳包进行周期性重复发送所述告警信息,并且还会根据所述告警信息中恶意软件的数量控制心跳包的发送周期,直至预设的终端设备存在返回信息为止,其具体步骤包括,
步骤A1:利用公式(1)将所述告警模块与预设的所有终端设备进行三次握手测试,以判断告警模块与预设的终端设备的连接情况
Figure BDA0003567511770000151
其中W(i)表示告警模块与预设的第i个终端设备三次握手测试的测试结果值;0x6f6b表示十六进制数6f6b;F(i_a)表示告警模块与预设的第i个终端设备进行一次握手测试终端设备的返回值(并设置预设返回时间,若超出预设返回时间未返回数值则默认返回值为0);[]16表示将括号内数值转换为十六进制形式;{}10表示将括号内数值转换为十进制形式;||表示求取绝对值;G{}表示零校验函数,若括号内的数值为0则函数值为1,若括号内的数值不为0则函数值为0;
若W(i)=1,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为成功;
若W(i)=0,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为不成功;
步骤A2:利用公式(2)根据所述告警模块与预设的所有终端设备进行三次握手测试的测试结果控制数据心跳包的使能
Figure BDA0003567511770000152
其中P表示数据心跳包的使能控制值;n表示预设的终端设备总数;
若P=1,表示数据心跳包的使能控制打开,进入步骤A3计算出发送周期,进行周期性发送数据;
若P=0,表示数据心跳包的使能控制关闭;
步骤A3:利用公式(3)根据所述告警信息中恶意软件的数量控制心跳包的发送周期
Figure BDA0003567511770000161
其中f表示控制的所述心跳包的发送周期;fmax表示所述心跳包的最大发送周期;D2表示所述告警信息的二进制形式(所述告警信息为24位的二进制数据其中中间八位数据代表恶意软件的数量);&&表示按位与;
Figure BDA0003567511770000162
表示前八位和后八位的数值均为0中间八位数值为1的二进制数据;M表示已经获取到操作系统中的入口函数的软件个数。
本申请实施例提供的基于操作系统的恶意软件检测装置,可以获取操作系统中的一个或多个软件各自的至少一个入口函数;针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;获取预先构建的恶意软件特征库,并将各个软件的待检测系统调用序列与预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;根据各个软件的匹配结果确定各个软件是否为恶意软件。可以看到,本申请实施例可以根据目前恶意软件主要依靠系统调用实现这一特点,对恶意软件所使用的系统调用进行有效的检测,减少了操作系统面对恶意入侵的风险,保护了其中数据不被破坏和泄露,很大程度上保证了软件的安全性。
所属领域的技术人员可以清楚地了解到,上述描述的系统、装置、模块的具体工作过程,可以参考前述方法实施例中的对应过程,为简洁起见,在此不另赘述。
本领域普通技术人员可以理解:本申请的技术方案本质上或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,其包括若干程序指令,用以使得一电子设备(例如个人计算机,服务器,或者网络设备等)在运行所述程序指令时执行本申请各实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,实现前述方法实施例的全部或部分步骤可以通过程序指令相关的硬件(诸如个人计算机,服务器,或者网络设备等的电子设备)来完成,所述程序指令可以存储于一计算机可读取存储介质中,当所述程序指令被电子设备的处理器执行时,所述电子设备执行本申请各实施例所述方法的全部或部分步骤。
以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:在本申请的精神和原则之内,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案脱离本申请的保护范围。

Claims (5)

1.一种基于操作系统的恶意软件检测方法,其特征在于,包括:
获取操作系统中的一个或多个软件各自的至少一个入口函数;
针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;
获取预先构建的恶意软件特征库,并将所述各个软件的待检测系统调用序列与所述预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;
根据所述各个软件的匹配结果确定各个软件是否为恶意软件;
其中,根据所述各个软件的匹配结果确定各个软件是否为恶意软件,包括:
若所述各个软件的匹配结果为所述各个软件的待检测系统调用序列匹配到所述预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件为恶意软件;
若所述各个软件的匹配结果为所述各个软件的待检测系统调用序列未匹配到所述预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件不为恶意软件;
其中,若确定各个软件为恶意软件,所述方法还包括:
生成表示各个软件为恶意软件的告警信息;
将所述告警信息发送给预设的终端设备,从而将所述告警信息通知给所述预设的终端设备的工作人员;
其中,所述将所述告警信息发送给预设的终端设备包括:
首先检测与预设的终端设备的连接是否正常,并且若不存在连接正常的终端,则需要设置数据心跳包进行周期性重复发送所述告警信息,并且还会根据所述告警信息中恶意软件的数量控制心跳包的发送周期,直至预设的终端设备存在返回信息为止,其具体步骤包括,
步骤A1:利用公式(1)将与预设的所有终端设备进行三次握手测试,以判断与预设的终端设备的连接情况
Figure FDA0003887943160000021
其中W(i)表示与预设的第i个终端设备三次握手测试的测试结果值;0x6f6b表示十六进制数6f6b;F(i_a)表示与预设的第u个终端设备进行一次握手测试终端设备的返回值,并设置预设返回时间,若超出预设返回时间未返回数值则默认返回值为0;[]16表示将括号内数值转换为十六进制形式;{}10表示将括号内数值转换为十进制形式;||表示求取绝对值;G{}表示零校验函数,若括号内的数值为0则函数值为1,若括号内的数值不为0则函数值为0;
若W(i)=1,表示与预设的第i个终端设备三次握手测试的测试结果为成功;
若W(i)=0,表示与预设的第i个终端设备三次握手测试的测试结果为不成功;
步骤A2:利用公式(2)根据与预设的所有终端设备进行三次握手测试的测试结果控制数据心跳包的使能
Figure FDA0003887943160000022
其中P表示数据心跳包的使能控制值;n表示预设的终端设备总数;
若P=1,表示数据心跳包的使能控制打开,进入步骤A3计算出发送周期,进行周期性发送数据;
若P=0,表示数据心跳包的使能控制关闭;
步骤A3:利用公式(3)根据所述告警信息中恶意软件的数量控制心跳包的发送周期
Figure FDA0003887943160000023
其中f表示控制的所述心跳包的发送周期;fmax表示所述心跳包的最大发送周期;D2表示所述告警信息的二进制形式,所述告警信息为24位的二进制数据其中中间八位数据代表恶意软件的数量;&&表示按位与;
Figure FDA0003887943160000031
表示前八位和后八位的数值均为0中间八位数值为1的二进制数据;M表示已经获取到操作系统中的入口函数的软件个数。
2.根据权利要求1所述的基于操作系统的恶意软件检测方法,其特征在于,还包括:
采集各个软件在操作系统运行的过程中的软件行为事件集,其中所述软件行为事件集中包括一个或多个软件行为;
获取预先构建的恶意行为特征库,其中所述预先构建的恶意行为特征库中包括多个恶意行为特征;
将所述软件行为事件集在所述预先构建的恶意行为特征库进行匹配,若所述软件行为事件集中的软件行为与所述预先构建的恶意行为特征库中的恶意行为特征匹配,则确定所述各个软件为恶意软件。
3.根据权利要求2所述的基于操作系统的恶意软件检测方法,其特征在于,通过以下步骤构建恶意行为特征库:
获取包括恶意行为特征的恶意行为信息;
对所述恶意行为信息进行预处理,对预处理后的恶意行为信息按照预设格式进行存储,得到包含恶意行为特征的恶意行为特征库。
4.根据权利要求3所述的基于操作系统的恶意软件检测方法,其特征在于,对所述恶意行为信息进行预处理,对预处理后的恶意行为信息按照预设格式进行存储,得到包含恶意行为特征的恶意行为特征库,包括:
将所述恶意行为信息中的恶意行为特征转化为判断查询逻辑;
将包括所述判断查询逻辑的恶意行为信息按照预设格式进行存储,得到包含所述判断查询逻辑的恶意行为特征的恶意行为特征库。
5.一种基于操作系统的恶意软件检测装置,其特征在于,包括:
获取模块,用于获取操作系统中的一个或多个软件各自的至少一个入口函数;
生成模块,用于针对各个软件中的至少一个入口函数对各个软件进行代码分析,生成各个软件的待检测系统调用序列;
匹配模块,用于获取预先构建的恶意软件特征库,并将所述各个软件的待检测系统调用序列与所述预先构建的恶意软件特征库中的恶意软件特征进行匹配,得到各个软件的匹配结果;
确定模块,用于根据所述各个软件的匹配结果确定各个软件是否为恶意软件;
其中,所述确定模块还用于:
若所述各个软件的匹配结果为所述各个软件的待检测系统调用序列匹配到所述预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件为恶意软件;
若所述各个软件的匹配结果为所述各个软件的待检测系统调用序列未匹配到所述预先构建的恶意软件特征库中的恶意软件特征,则确定各个软件不为恶意软件;
其中,所述恶意软件监测装置还包括告警模块,所述告警模块用于:
若确定各个软件为恶意软件,生成表示各个软件为恶意软件的告警信息;
将所述告警信息发送给预设的终端设备,从而将所述告警信息通知给所述预设的终端设备的工作人员;
其中,所述告警模块还用于:
首先检测告警模块与预设的终端设备的连接是否正常,并且若不存在连接正常的终端,则需要设置数据心跳包进行周期性重复发送所述告警信息,并且还会根据所述告警信息中恶意软件的数量控制心跳包的发送周期,直至预设的终端设备存在返回信息为止,其具体步骤包括,
步骤A1:利用公式(1)将所述告警模块与预设的所有终端设备进行三次握手测试,以判断告警模块与预设的终端设备的连接情况
Figure FDA0003887943160000041
其中W(i)表示告警模块与预设的第i个终端设备三次握手测试的测试结果值;0x6f6b表示十六进制数6f6b;F(i_a)表示告警模块与预设的第i个终端设备进行一次握手测试终端设备的返回值,并设置预设返回时间,若超出预设返回时间未返回数值则默认返回值为0;[]16表示将括号内数值转换为十六进制形式;{}10表示将括号内数值转换为十进制形式;||表示求取绝对值;G{}表示零校验函数,若括号内的数值为0则函数值为1,若括号内的数值不为0则函数值为0;
若W(i)=1,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为成功;
若W(i)=0,表示告警模块与预设的第i个终端设备三次握手测试的测试结果为不成功;
步骤A2:利用公式(2)根据所述告警模块与预设的所有终端设备进行三次握手测试的测试结果控制数据心跳包的使能
Figure FDA0003887943160000051
其中P表示数据心跳包的使能控制值;n表示预设的终端设备总数;
若P=1,表示数据心跳包的使能控制打开,进入步骤A3计算出发送周期,进行周期性发送数据;
若P=0,表示数据心跳包的使能控制关闭;
步骤A3:利用公式(3)根据所述告警信息中恶意软件的数量控制心跳包的发送周期
Figure FDA0003887943160000052
其中f表示控制的所述心跳包的发送周期;fmax表示所述心跳包的最大发送周期;D2表示所述告警信息的二进制形式,所述告警信息为24位的二进制数据其中中间八位数据代表恶意软件的数量;&&表示按位与;
Figure FDA0003887943160000053
表示前八位和后八位的数值均为0中间八位数值为1的二进制数据;M表示已经获取到操作系统中的入口函数的软件个数。
CN202210312231.0A 2022-03-28 2022-03-28 基于操作系统的恶意软件检测方法和装置 Active CN114969731B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210312231.0A CN114969731B (zh) 2022-03-28 2022-03-28 基于操作系统的恶意软件检测方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210312231.0A CN114969731B (zh) 2022-03-28 2022-03-28 基于操作系统的恶意软件检测方法和装置

Publications (2)

Publication Number Publication Date
CN114969731A CN114969731A (zh) 2022-08-30
CN114969731B true CN114969731B (zh) 2022-12-02

Family

ID=82975441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210312231.0A Active CN114969731B (zh) 2022-03-28 2022-03-28 基于操作系统的恶意软件检测方法和装置

Country Status (1)

Country Link
CN (1) CN114969731B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239575A (zh) * 2014-10-08 2014-12-24 清华大学 一种虚拟机镜像文件存储、分发方法及装置

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103839005B (zh) * 2013-11-22 2016-09-28 北京智谷睿拓技术服务有限公司 移动操作系统的恶意软件检测方法和恶意软件检测系统
CN105487965A (zh) * 2015-12-28 2016-04-13 北京畅游天下网络技术有限公司 一种通用的服务器压力测试方法及装置
CN108171057B (zh) * 2017-12-22 2021-03-23 西安电子科技大学 基于特征匹配的Android平台恶意软件检测方法
US10977368B1 (en) * 2017-12-27 2021-04-13 Ca Technologies, Inc. Detecting malware based on memory allocation patterns
CN111414617A (zh) * 2020-03-13 2020-07-14 苏州浪潮智能科技有限公司 一种恶意软件检测方法、装置、设备、介质
CN111444504A (zh) * 2020-03-30 2020-07-24 安芯网盾(北京)科技有限公司 一种用于软件运行时自动识别恶意代码的方法及装置
CN113676372B (zh) * 2021-08-06 2024-06-07 中国农业银行股份有限公司 通信性能的测试方法、装置和存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104239575A (zh) * 2014-10-08 2014-12-24 清华大学 一种虚拟机镜像文件存储、分发方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于传输层会话行为统计特征的恶意流量识别;张伟等;《小型微型计算机系统》;20150515(第05期);全文 *

Also Published As

Publication number Publication date
CN114969731A (zh) 2022-08-30

Similar Documents

Publication Publication Date Title
CN108989150B (zh) 一种登录异常检测方法及装置
US8850582B2 (en) Security monitoring system and security monitoring method
CN110365678B (zh) 一种基于反样本的工控网络协议漏洞挖掘方法
CN109391624A (zh) 一种基于机器学习的终端接入数据异常检测方法及装置
CN110768946A (zh) 一种基于布隆过滤器的工控网络入侵检测系统及方法
CN101902349A (zh) 一种检测端口扫描行为的方法和系统
CN113746810A (zh) 一种网络攻击诱导方法、装置、设备及存储介质
CN114969731B (zh) 基于操作系统的恶意软件检测方法和装置
CN116881913B (zh) 一种阶段式恶意文件检测方法、装置、设备及介质
CN112600828B (zh) 基于数据报文的电力控制系统攻击检测防护方法及装置
CN111736579B (zh) 基于日志问询留存的工业控制设备安全检测方法
CN111654405B (zh) 通信链路的故障节点方法、装置、设备及存储介质
CN116938505A (zh) 一种失陷主机检测方法及相关装置
CN104796421A (zh) 一种多媒体网络入侵检测方法
CN113849813A (zh) 数据检测方法、装置、电子设备及存储介质
CN114726600B (zh) 基于物联网的网关防护方法
CN111209149A (zh) 一种服务器稳定性测试方法及系统
CN115514630B (zh) 一种自适应的故障解析方法、装置、设备、存储介质
CN113051560B (zh) 终端行为的安全识别方法和装置
US20240305649A1 (en) Traffic sensor, analysis method, and analysis program
CN115877269B (zh) 基于智慧母线的配电预警方法、装置、设备及存储介质
CN115242502B (zh) 电力系统网络安全风险评价方法、装置、设备及介质
CN118153038A (zh) 风险行为检测方法和装置
JP7176630B2 (ja) 検知装置、検知方法および検知プログラム
Smith et al. Behavioural Intrusion Detection for Wireless Sensor Networks

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