1.本技术涉及计算机技术领域,特别是涉及一种违规软件识别方法、装置、计算机设备和存储介质。
背景技术:
2.随着计算机技术与通信技术的发展,出现了智能组网技术,将多个计算机组成一个组网网络,实现多个计算机之间数据的交互,提高了数据传输的效率。
3.在计算机组网中,由于参与的计算机有多台,不同计算机实现不同的功能,在这些计算机上会安装有不同的软件,这些软件在运行过程中需要与其他计算机以进行数据交互。在数据交互过程中,若存在违规软件攻击其他计算机,这必然会影响整个组网网络正常运行,甚至可能导致整个组网感染上异常的数据(病毒、木马等)。
4.可见,如何准确识别出计算机中违规软件是非常有必要的。传统的违规软件识别方案多数是采用黑白名单的方式,这种方式是基于初始阶段设置的软件黑白名单,其只能固定识别出初始阶段设置的存在违规风险的黑名单软件,无法在后续运行中准确识别出原始白名单软件中存在违规风险的软件,可见其违规软件识别准确度较低。
技术实现要素:
5.基于此,有必要针对上述技术问题,提供一种准确的违规软件识别方法、装置、计算机设备和存储介质。
6.一种违规软件识别方法,方法包括:
7.获取软件黑白名单以及软件进程基准基线模型;
8.遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程;
9.确定可疑进程对应的软件;
10.根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件;
11.其中,软件进程基准基线模型由软件黑白名单中白名单软件的软件进程训练机器学习模型得到。
12.在其中一个实施例中,上述违规软件识别方法还包括:
13.获取软件进程偏离基线模型;
14.识别主机运行的软件进程中与软件进程偏离基线模型匹配的软件进程,得到危险进程;
15.生成并推送与危险进程对应的告警消息;
16.其中,软件进程偏离基线模型由软件黑白名单中黑名单软件的软件进程训练机器学习模型得到。
17.在其中一个实施例中,上述违规软件识别方法还包括:
18.获取软件黑白名单中各软件对应的软件进程,得到软件进程集合;
19.对软件进程集合中与白名单软件对应的软件进程添加可信标签,第一训练数据;对软件进程集合中与黑名单软件对应的软件进程添加危险标签,得到第二训练数据;
20.获取初始机器学习模型;
21.采用第一训练数据以及第二训练数据对初始机器学习模型进行训练,分别得到软件进程基准基线模型和软件进程偏离基线模型。
22.在其中一个实施例中,初始机器学习模型包括线性分类机器学习模型。
23.在其中一个实施例中,获取软件黑白名单包括:
24.获取组网各组网主机的预设软件黑白名单;
25.归集预设软件黑白名单并筛选去重,得到软件黑白名单。
26.在其中一个实施例中,识别主机中违规软件之后,还包括:
27.定位运行违规软件的主机,得到目标主机;
28.获取目标主机的ip;
29.封堵目标主机的ip。
30.一种违规软件识别装置,装置包括:
31.数据获取模块,用于获取软件黑白名单以及软件进程基准基线模型;
32.可疑别模块,用于遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程;
33.软件确定模块,用于确定可疑进程对应的软件;
34.违规识别模块,用于根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件;
35.其中,软件进程基准基线模型由软件黑白名单中白名单软件的软件进程训练机器学习模型得到。
36.在其中一个实施例中,上述违规软件识别装置还包括危险提示模块,用于获取软件进程偏离基线模型;识别主机运行的软件进程中与软件进程偏离基线模型匹配的软件进程,得到危险进程;生成并推送与危险进程对应的告警消息;其中,软件进程偏离基线模型由软件黑白名单中黑名单软件的软件进程训练机器学习模型得到。
37.一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现以下步骤:
38.获取软件黑白名单以及软件进程基准基线模型;
39.遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程;
40.确定可疑进程对应的软件;
41.根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件;
42.其中,软件进程基准基线模型由软件黑白名单中白名单软件的软件进程训练机器学习模型得到。
43.一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
44.获取软件黑白名单以及软件进程基准基线模型;
45.遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型
不匹配的软件进程,得到可疑进程;
46.确定可疑进程对应的软件;
47.根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件;
48.其中,软件进程基准基线模型由软件黑白名单中白名单软件的软件进程训练机器学习模型得到。
49.上述违规软件识别方法、装置、计算机设备和存储介质,获取软件黑白名单以及软件进程基准基线模型,遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程,确定可疑进程对应的软件,根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件。整个过程中,软件进程基准基线模型是由白名单软件的软件进程基于机器学习得到的,其能够识别出于白名单对应的软件进程,若存在与软件进程基准基线模型不匹配的软件进程,则说明该进程不属于白名单对应的进程,再结合软件黑白名单,可以准确识别出主机中违规软件。
附图说明
50.图1为一个实施例中违规软件识别方法的应用环境图;
51.图2为一个实施例中违规软件识别方法的流程示意图;
52.图3为另一个实施例中违规软件识别方法的流程示意图;
53.图4为一个实施例中违规软件识别装置的结构框图;
54.图5为一个实施例中计算机设备的内部结构图。
具体实施方式
55.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
56.本技术提供的违规软件识别方法,可以应用于如图1所示的应用环境中。其中,主机102通过网络与服务器104进行通信。服务器获取组网中主机对应的软件黑白名单,服务器预先加载有软件进程基准基线模型,服务器获取软件黑白名单以及软件进程基准基线模型,遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程,确定可疑进程对应的软件,根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件。服务器可以推送与违规软件对应的告警消息至管理人员。其中,主机102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
57.在一个实施例中,如图2所示,提供了一种违规软件识别方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
58.s200:获取软件黑白名单以及软件进程基准基线模型。
59.软件黑白名单是由预先确定的白名单软件和黑名单软件构成的,其具体可以包括软件黑名单和软件白名单两个部分。具体来说,在整个组网中每个主机都有自身对应的软件黑白名单,服务器可以将每个主机的软件黑白名单都归集起来,得到组网中所有主机的
黑白名单。软件进程基准基线模块是由软件黑白名单中白名单软件的软件进程通过机器学习的方式训练得到的。一般来说,主机内部运行的软件属于白名单软件,可以基于主机内部运行软件的进程来对初始机器学习模型进行训练,得到软件进程基准基线模型。
60.s400:遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程。
61.对主机运行的软件进程扫描、遍历,将主机运行的软件进程与软件进程基准基线模块进行匹配,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,该软件进程即属于可疑进程。主机运行的软件进程中与软件进程基准基线模型匹配的软件进程即属于白名单对应的可信进程,允许其正常运行。
62.s600:确定可疑进程对应的软件。
63.确定每个可疑进程对应的软件,其对应的软件存在一定的安全风险,极有可能属于违规软件,需要禁止该类软件在整个组网中安装与运行。软件进程和软件对应关系可以预先构建、存储到服务器中,针对每个新加入的软件,对其分配唯一的身份识别标识,针对其所属的进程再在软件身份标识的基础上继续分配标识,这样既可准确识别出每个进程的对应的软件。
64.s800:根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件。
65.遍历主机中所有软件,基于软件黑白名单以及可疑进程对应的软件两个方面来识别主机中违规软件,能够更加准确发现违规软件。具体来说,当软件属于软件黑白名单个黑名单软件或软件为可疑进程对应的软件识,即判定该软件属于违规软件。下面以a、b、c三个软件为例进行说明,根据软件黑白名单识别出a软件属于黑名单中软件,则判定a软件属于违规软件;根据软件黑白名单识别出b软件属于白名单软件,但是b软件为可疑进程对应的软件,则判定b软件同样属于违规软件;根据软件黑白名单识别出c软件属于白名软件,且c软件在上述s400~s600处理之后,识别其不属于可疑进程对应的软件,则判定c软件不属于违规软件。
66.上述违规软件识别方法,获取软件黑白名单以及软件进程基准基线模型,遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程,确定可疑进程对应的软件,根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件。整个过程中,软件进程基准基线模型是由白名单软件的软件进程基于机器学习得到的,其能够识别出于白名单对应的软件进程,若存在与软件进程基准基线模型不匹配的软件进程,则说明该进程不属于白名单对应的进程,再结合软件黑白名单,可以准确识别出主机中违规软件。
67.在其中一个实施例中,上述违规软件识别方法还包括:获取软件进程偏离基线模型;识别主机运行的软件进程中与软件进程偏离基线模型匹配的软件进程,得到危险进程;生成并推送与危险进程对应的告警消息;
68.其中,软件进程偏离基线模型由软件黑白名单中黑名单软件的软件进程训练机器学习模型得到。
69.在本实施例中,服务器还获取软件进程偏离基线模型,该软件进程偏离基线模型是预先基于软件黑白案中黑名单软件的软件进行通过机器学习的方式训练得到的。基于软件进程偏离基线模型即可从主机运行的软件进程中识别出与黑名单软件匹配的软件进程,
该类进程威胁整个组网的安全,此时服务器生成并推送此类危险进程对应的告警消息。具体来说,告警消息中可以携带有危险进程的身份标识、其对应软件的身份标识以及运行该进程对应的主机,以便服务器或者管理人员进行进一步的管制措施,确保整个组网运行的安全。
70.在其中一个实施例中,上述违规软件识别方法还包括:
71.获取软件黑白名单中各软件对应的软件进程,得到软件进程集合;对软件进程集合中与白名单软件对应的软件进程添加可信标签,第一训练数据;对软件进程集合中与黑名单软件对应的软件进程添加危险标签,得到第二训练数据;获取初始机器学习模型;采用第一训练数据以及第二训练数据对初始机器学习模型进行训练,分别得到软件进程基准基线模型和软件进程偏离基线模型。
72.针对软件进程偏离基线模型和软件进程基准基线模型可以采用软件黑白名单中黑名单软件对应的进程以及白名单软件对应的进程训练得到。在实际应用中,服务器可以预先归集一段时间内各个主机上软件黑白名单,获取软件黑白名单中各软件对应的软件进程,得到软件进程集合,对其中的白名单软件对应的软件进程添加可信标签,这些进程一般主机内部运行的进程,整理得到第一训练数据;对其中的黑名单软件对应的软件进程添加危险标签,这些进程一般由于对整个组网而言是存在安全隐患的,属于危险的进程,整理得到第二训练数据,采用第一训练数据对初始机器学习模型进行训练,得到软件进程基准基线模型;采用第二训练数据对初始机器学习模型进行训练得到软件进程偏离基线模型。在本实施例中,采用2组不同的训练数据(第一训练数据以及第二训练数据)分别对初始机器学习模型进行,从而得到软件进程基准基线模型和软件进程偏离基线模型。上述初始机器学习模型具体可以为线性分类机器学习模型,训练线性分类机器学习模型可以准确实现对样本分类,既可以准确识别出软件可信进程和危险进程。
73.在其中一个实施例中,获取软件黑白名单包括:
74.获取组网各组网主机的预设软件黑白名单;归集预设软件黑白名单并筛选去重,得到软件黑白名单。
75.服务器会收集整个组网中每个主机对应的黑白名单,将这些黑白名单进行筛选、去重,剔除掉无意义、杂乱的数据,即得到软件黑白名单。
76.如图3所示,在其中一个实施例中,s800之后,还包括:
77.s920:定位运行违规软件的主机,得到目标主机;
78.s940:获取目标主机的ip;
79.s960:封堵目标主机的ip。
80.针对运行违规软件的主机,为避免其影响到整个组网数据的安全,需要将该主机的ip封堵,禁止该主机与组网中其他主机以及服务器之间的数据交互。具体来说,在确定有主机运行有违规软件识,定位该主机,以该主机作为本次ip封堵的目标主机,获取该目标主机的ip,直接封堵目标主机的ip,禁止其与其他主机以及服务器通信。
81.在实际应用,以本技术违规软件识别方法应用于智能电网为例,其具体包括以下阶段:
82.1、服务器提前收集各主机设备内部运行的白名单进程,登记哪些进程属于合规进程,并纳入白名单进程库。
83.2、服务器内置的主机安全防护系统在运行期间,先开启一段时间学习模式,比如运行2周,将主机内部运行的进程都学习到系统中,将主机内部运行的进程纳入到白名单库。
84.3、学习模式结束后,服务器内置的主机安全防护系统开启防御模式,在防御模式下对当前运行进程与白名单库的进程进行匹配,将不纳入白名单库的进程记录为违规进程并预警,运维人员根据预警情况判断是否需要进行主机封堵。
85.应该理解的是,虽然上述各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,上述各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
86.如图4所示,本技术还提供一种违规软件识别装置,装置包括:
87.数据获取模块200,用于获取软件黑白名单以及软件进程基准基线模型;
88.可疑别模块400,用于遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程;
89.软件确定模块600,用于确定可疑进程对应的软件;
90.违规识别模块800,用于根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件;
91.其中,软件进程基准基线模型由软件黑白名单中白名单软件的软件进程训练机器学习模型得到。
92.上述违规软件识别装置,获取软件黑白名单以及软件进程基准基线模型,遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程,确定可疑进程对应的软件,根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件。整个过程中,软件进程基准基线模型是由白名单软件的软件进程基于机器学习得到的,其能够识别出于白名单对应的软件进程,若存在与软件进程基准基线模型不匹配的软件进程,则说明该进程不属于白名单对应的进程,再结合软件黑白名单,可以准确识别出主机中违规软件。
93.在其中一个实施例中,上述违规软件识别装置还包括危险提示模块,用于获取软件进程偏离基线模型;识别主机运行的软件进程中与软件进程偏离基线模型匹配的软件进程,得到危险进程;生成并推送与危险进程对应的告警消息;其中,软件进程偏离基线模型由软件黑白名单中黑名单软件的软件进程训练机器学习模型得到。
94.在其中一个实施例中,上述违规软件识别装置还包括模型训练模块,用于获取软件黑白名单中各软件对应的软件进程,得到软件进程集合;对软件进程集合中与白名单软件对应的软件进程添加可信标签,第一训练数据;对软件进程集合中与黑名单软件对应的软件进程添加危险标签,得到第二训练数据;获取初始机器学习模型;采用第一训练数据以及第二训练数据对初始机器学习模型进行训练,分别得到软件进程基准基线模型和软件进程偏离基线模型。
95.在其中一个实施例中,初始机器学习模型包括线性分类机器学习模型。
96.在其中一个实施例中,数据获取模块200还用于获取组网各组网主机的预设软件黑白名单;归集预设软件黑白名单并筛选去重,得到软件黑白名单。
97.在其中一个实施例中,上述违规软件识别装置还包括ip封堵模块,用于定位运行违规软件的主机,得到目标主机;获取目标主机的ip;封堵目标主机的ip。
98.关于违规软件识别装置的具体限定可以参见上文中对于违规软件识别方法的限定,在此不再赘述。上述违规软件识别装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
99.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储预设软件黑白名单数据以及预设软件进程基准基线模型等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种违规软件识别方法。
100.本领域技术人员可以理解,图5中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
101.在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
102.获取软件黑白名单以及软件进程基准基线模型;
103.遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程;
104.确定可疑进程对应的软件;
105.根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件;
106.其中,软件进程基准基线模型由软件黑白名单中白名单软件的软件进程训练机器学习模型得到。
107.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
108.获取软件进程偏离基线模型;识别主机运行的软件进程中与软件进程偏离基线模型匹配的软件进程,得到危险进程;生成并推送与危险进程对应的告警消息;其中,软件进程偏离基线模型由软件黑白名单中黑名单软件的软件进程训练机器学习模型得到。
109.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
110.获取软件黑白名单中各软件对应的软件进程,得到软件进程集合;对软件进程集合中与白名单软件对应的软件进程添加可信标签,第一训练数据;对软件进程集合中与黑名单软件对应的软件进程添加危险标签,得到第二训练数据;获取初始机器学习模型;采用第一训练数据以及第二训练数据对初始机器学习模型进行训练,分别得到软件进程基准基
线模型和软件进程偏离基线模型。
111.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
112.获取组网各组网主机的预设软件黑白名单;归集预设软件黑白名单并筛选去重,得到软件黑白名单。
113.在一个实施例中,处理器执行计算机程序时还实现以下步骤:
114.定位运行违规软件的主机,得到目标主机;获取目标主机的ip;封堵目标主机的ip。
115.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
116.获取软件黑白名单以及软件进程基准基线模型;
117.遍历主机运行的软件进程,识别主机运行的软件进程中与软件进程基准基线模型不匹配的软件进程,得到可疑进程;
118.确定可疑进程对应的软件;
119.根据软件黑白名单以及可疑进程对应的软件,识别主机中违规软件;
120.其中,软件进程基准基线模型由软件黑白名单中白名单软件的软件进程训练机器学习模型得到。
121.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
122.获取软件进程偏离基线模型;识别主机运行的软件进程中与软件进程偏离基线模型匹配的软件进程,得到危险进程;生成并推送与危险进程对应的告警消息;其中,软件进程偏离基线模型由软件黑白名单中黑名单软件的软件进程训练机器学习模型得到。
123.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
124.获取软件黑白名单中各软件对应的软件进程,得到软件进程集合;对软件进程集合中与白名单软件对应的软件进程添加可信标签,第一训练数据;对软件进程集合中与黑名单软件对应的软件进程添加危险标签,得到第二训练数据;获取初始机器学习模型;采用第一训练数据以及第二训练数据对初始机器学习模型进行训练,分别得到软件进程基准基线模型和软件进程偏离基线模型。
125.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
126.获取组网各组网主机的预设软件黑白名单;归集预设软件黑白名单并筛选去重,得到软件黑白名单。
127.在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
128.定位运行违规软件的主机,得到目标主机;获取目标主机的ip;封堵目标主机的ip。
129.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read
‑
only memory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种
形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。
130.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
131.以上实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
转载请注明原文地址:https://doc.8miu.com/read-1550406.html