首页> 中国专利> 用于分析在各主机上执行的命令的分析设备、系统和方法

用于分析在各主机上执行的命令的分析设备、系统和方法

摘要

本发明公开了用于分析在各主机上执行的命令的分析设备、系统以及方法,其中,用于分析在各主机上执行的命令的分析设备包括:集中数据回收器,被配置为至少收集各主机终端通过网络传输的当前命令及所属主机标识;命令分析器,被配置为对所述集中数据回收器收集到的当前命令进行识别,至少识别出异常命令和正常命令;以及告警器,被配置为根据所述命令分析器的识别结果判断是否满足告警条件,如果满足,则发出相应主机存在异常的告警信息。通过本发明能够及时对网络系统中各主机上输入的,具有一定危险性的异常命令进行告警,提高了系统的安全性。

著录项

  • 公开/公告号CN103532760A

    专利类型发明专利

  • 公开/公告日2014-01-22

    原文格式PDF

  • 申请/专利号CN201310492700.2

  • 发明设计人 张卓;杨卿;刘小雄;李洪亮;

    申请日2013-10-18

  • 分类号H04L12/24(20060101);G06F11/32(20060101);

  • 代理机构11302 北京华沛德权律师事务所;

  • 代理人刘杰

  • 地址 100088 北京市西城区新街口外大街28号D座112室(德胜园区)

  • 入库时间 2024-02-19 23:10:49

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-08-02

    专利权人的姓名或者名称、地址的变更 IPC(主分类):H04L12/24 变更前: 变更后: 申请日:20131018

    专利权人的姓名或者名称、地址的变更

  • 2018-11-09

    授权

    授权

  • 2016-12-21

    专利申请权的转移 IPC(主分类):H04L12/24 登记生效日:20161128 变更前: 变更后: 申请日:20131018

    专利申请权、专利权的转移

  • 2014-03-19

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20131018

    实质审查的生效

  • 2014-01-22

    公开

    公开

说明书

技术领域

本发明涉及计算机技术领域,特别是涉及一种用于分析在各主机上执行的命令的分析设备、系统和方法。

背景技术

随着网络的快速发展,出现了需要为大量用户服务的网络系统。这些网络系统通常分布于大量的服务器之上,比如Linux、Unix等,然后系统管理者可以通过输入命令对这些服务器进行操作,但是这些管理员可能不十分了解这些服务器上提供的服务,所以这些操作命令可能会导致服务器不能正常工作、甚至造成严重后果。另外,随着服务器的增多,有些服务器可能会被黑客所侵入,这些黑客就可能执行一些恶意操作来破坏服务器的正常运行。

当然上述情况不仅仅存在于服务器,还可能存在于其他类似的主机设备上。因此,如何对服务器等主机设备上执行的命令进行监控,当出现异常时能够及时告警是目前急需解决的问题。

发明内容

鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的用于分析在各主机上执行的命令的分析设备、系统和相应的用于分析在各主机上执行的命令的分析方法。

本发明实施例公开了一种用于分析在各主机上执行的命令的分析设备,包括:集中数据回收器,被配置为至少收集各主机终端通过网络传输的当前命令及所属主机标识;命令分析器,被配置为对所述集中数据回收器收集到的当前命令进行识别,至少识别出异常命令和正常命令;告警器,被配置为根据所述命令分析器的识别结果判断是否满足告警条件,如果满足,则发出相应主机存在异常的告警信息。

可选的,所述命令分析器包括过滤模块,被配置为对所述集中数据回收器收集到的当前命令采用预置的可疑规则进行过滤,将被所述可疑规则命中的当前命令识别为异常命令,并输出被所述可疑规则命中的异常命令的告警权值,所述告警权值基于该条可疑规则对命令的总体命中率获得;所述告警器具体被配置为根据所述异常命令的告警权值判断是否满足告警条件。

可选的,所述过滤模块输出的异常命令的告警权值通过下述方式获得:通过以该条可疑规则对已有命令的总体命中率作为自变量的单调递减函数,获得被该条可疑规则命中的异常命令的告警权值。

可选的,所述告警器具体被配置为统计一个告警周期内、所述命令分析器识别出的某一主机上的所有异常命令,将这些异常命令各自对应的告警权值进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

可选的,所述命令分析器包括:分类模块,被配置为根据已有分类模型的训练样本集,对所述集中数据回收器接收到的当前命令进行分类,获得当前命令分别是正常命令的概率和异常命令的概率,进而识别出该当前命令是否属于异常命令。

可选的,所述告警器具体被配置为统计一个告警周期内、所述命令分析器识别出的某一主机上的所有异常命令,将这些异常命令各自对应的异常命令概率进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

可选的,所述命令分析器包括:过滤模块,被配置为对所述集中数据回收器接收到的当前命令采用预置的可疑规则进行过滤,将被所述可疑规则命中的当前命令输出至分类模块,并输出被所述可疑规则命中的当前命令的告警权值,所述告警权值基于该条可疑规则对命令的总体命中率获得;分类模块,被配置为根据已有分类模型的训练样本集,对从所述过滤模块输入的当前命令进一步分类,获得当前命令分别是正常命令的概率和异常命令的概率,进而识别出该当前命令是否为异常命令。

可选的,所述命令分析器还包括:学习模块,被配置为将新增的当前命令与已有训练样本集合并后进行机器学习,更新所述分类模块使用的已有训练样本集。

可选的,所述告警器具体被配置为统计一个告警周期内、所述命令分析器识别出的某一主机上的所有异常命令,将每一异常命令对应的异常命令概率和告警权值相乘获得对应的告警指数,将这些异常命令的告警指数进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

本发明实施例还公开了一种用于分析在各主机上执行的命令的系统,包括如前文所述的分析设备和若干主机终端;所述若干主机终端,被配置为至少将各主机上的当前命令及所属主机标识通过网络传输至集中数据回收器。

可选的,所述主机终端包括:命令发送模块,被配置为对各主机的命令解析器shell进行改造,增加将所述shell接收到的主机当前命令和主机IP传输至所述集中数据回收器的函数。

可选的,还包括:监控器,被配置为对各主机中所述命令发送模块的部署情况进行监控,当发现有新增主机未部署所述命令发送模块或发现有主机上的所述命令发送模块失效时,通过该未部署命令发送模块或命令发送模块失效的主机IP自动登录至该主机上,为其部署所述命令发送模块。

本发明实施例还公开了一种用于分析在各主机上执行的命令的方法,包括:收集所述各主机通过网络传输的当前命令及所属主机标识;对所述收集到的当前命令进行识别,至少识别出异常命令和正常命令;根据上述识别结果判断是否满足告警条件,如果满足,则发出相应主机存在异常的告警信息。

可选的,所述对收集到的当前命令进行识别的步骤包括:对收集到的当前命令采用预置的可疑规则进行过滤,将被所述可疑规则命中的当前命令识别为异常命令,并获得被所述可疑规则命中的异常命令的告警权值,所述告警权值基于该条可疑规则对命令的总体命中率获得;所述根据上述识别结果判断是否满足告警条件的步骤包括:根据所述异常命令的告警权值判断是否满足告警条件。

可选的,所述异常命令的告警权值通过下述方式获得:通过以该条可疑规则对已有命令的总体命中率作为自变量的单调递减函数,获得被该条可疑规则命中的异常命令的告警权值。

可选的,统计一个告警周期内、识别出的某一主机上的所有异常命令,将这些异常命令各自对应的告警权值进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

可选的,所述对收集到的当前命令进行识别包括:根据已有分类模型的训练样本集,对接收到的当前命令进行分类,获得当前命令是正常命令的概率和是异常命令的概率,进而识别出该当前命令是否属于异常命令。

可选的,所述根据识别结果判断是否满足告警条件的步骤包括:统计一个告警周期内、识别出的某一主机上的所有异常命令,将这些异常命令各自对应的异常命令概率进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

可选的,所述对收集到的当前命令进行识别包括:对接收到的当前命令采用预置的可疑规则进行过滤,筛选出被所述可疑规则命中的当前命令,并输出被所述可疑规则命中的当前命令的告警权值,所述告警权值基于该条可疑规则对命令的总体命中率获得;根据已有分类模型的训练样本集,对筛选出的上述当前命令进一步分类,获得当前命令是正常命令的概率和是异常命令的概率,进而识别出该当前命令是否为异常命令。

可选的,还包括:将新增的当前命令与已有训练样本集合并后进行机器学习,更新进行分类时使用的已有训练样本集。

可选的,所述根据识别结果判断是否满足告警条件的步骤包括:统计一个告警周期内、识别出的某一主机上的所有异常命令,将每一异常命令对应的异常命令概率和告警权值相乘获得对应的告警指数,将这些异常命令的告警指数进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

可选的,所述收集所述各主机通过网络传输的当前命令及所属主机标识的步骤包括:对各主机的命令解析器shell进行改造,增加将所述shell接收到的主机当前命令和主机IP通过网络传输至指定设备的函数,利用所述函数收集所述各主机的当前命令及所属主机标识。

可选的,还包括:对各主机传输当前命令及所属主机标识的事件进行监控,当发现有新增主机未进行上述shell改造或者改造失效时,通过该主机IP自动登录至该主机上为其部署上述shell的改造。

根据本发明的用于分析在各主机上执行的命令的分析设备,可以在包括若干主机的网络系统中,收集各主机通过网络传输的当前命令及当前命令所属主机的标识,对收集到的当前命令中具有一定的操作危险的命令进行有效识别,判断出在主机上输入的命令是异常命令还是正常命令,并在主机有异常命令输入且满足告警条件时,及时地发出相应主机存在异常的告警信息,由此解决了因管理员误操作、黑客攻击等原因造成而在系统中的主机上输入危险性命令时,对主机乃至整个系统的稳定运行造成不良影响,及时对网络系统中各主机上输入的危险命令进行告警,提高了系统的安全性。

上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。

附图说明

通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:

图1示出了根据本发明一个实施例的用于分析在各主机上执行的命令的分析系统示意图;

图2示出了根据本发明一个实施例的用于分析在各主机上执行的命令的分析方法流程图;以及,

图3示出了根据本发明一个实施例的具体应用示意图。

具体实施方式

下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。

请参见图1,图1示出了根据本发明一个实施例的用于分析在各主机上执行的命令的系统,该系统包括若干主机终端210和用于分析在各主机上执行的命令的分析设备100。其中,分析设备100具体包括集中数据回收器110、命令分析器120以及告警器130,每个主机终端210包括命令发送模块2102,各主机终端210耦接于集中数据回收器110。下面对该用于分析在各主机上执行的命令的分析设备,以及各组成部分进行的具体实现方式进行具体的介绍。

一个网络系统通常由多个主机终端210组成,主机终端210可以是计算机实体,也可以是运行于计算机设备上的虚拟机。多个主机终端可以完成不同的分工,在各个终端上可以运行多种命令,来进行对系统的诸如开关机,文件操作,系统配置,安装/卸载软件等等操作,所输入的命令中有可能存在对系统运行造成潜在危害的命令,因此需要通过分析设备100识别这些命令可能造成潜在危害的命令,首选就需要将各主机上执行的当前命令及所属主机标识通过网络传输到分析设备100,其中,主机标识可以是网络系统中各主机的主机名和/或IP地址等,分析设备100获取主机标识的目的,主要是为了判断当前输入的命令是哪部主机发出的,以便于一旦该命令存在风险,可以在一定条件下发出告警信息。为了实现将各主机上执行的命令准确、全面的传输给分析设备110,需要在各主机终端210中设置命令发送模块2102。

首先,命令发送模块2102将各主机上的当前命令及所属主机标识通过网络传输至集中数据回收器110。例如,命令发送模块2102对各主机的命令解析器shell进行改造,增加将命令解析器shell接收到的主机当前命令和主机IP传输至指定设备(如集中数据回收器110)的函数。如在类UNIX操作系统中,常见的shell有bash,csh,tcsh等等,以bash为例,可以对其中的add_history函数进行改造,具体可以在其中增加对talker(char*host,char*message)函数的调用,由talker函数实现将在当前主机host输入的当前命令message传输给集中数据回收器110。这种对输入的当前命令的传输可以是实时的,即当受监控的主机终端210上一旦发生命令输入,就将输入的命令传输给集中数据回收器110,另外还可以将受监控主机终端210上输入的命令存储为日志shell_log的形式,在达到一定条件下将shell_log日志传输给集中数据回收器110,例如在达到了一定的时间周期,或者在shell_log文件达到了一定的大小时将shell_log文件传输给集中数据回收器110。

当各主机终端210通过命令发送模块2102将各主机上执行的命令及所属主机标识,通过网络传输给几种数据回收器110之后,集中数据回收器110就可以收集到当前各主机终端210上所输入的命令,以及是在哪部主机上输入的命令,可选的,可以将所有接收到的命令保存至一数据库,进而为对当前命令进行分析做好数据准备,命令分析器120耦接于集中数据回收器110,后续具体分析的工作主要由命令分析器120完成。

命令分析器120对集中数据回收器110收集到的当前命令进行识别,至少识别出异常命令和正常命令。其中,异常命令是可能对系统正常运行具有潜在威胁的命令,正常命令是对系统运行没有威胁的命令。具体在实现命令分析器120对命令进行识别时,可以有多种实现方式,下面分别对命令分析器120的几种实现方式进行详细的介绍。

实现方式一:

命令分析器120可以包括过滤模块1202,通过过滤模块1202对集中数据回收器110接收到的当前命令采用预置的可疑规则进行过滤,将被可疑规则命中的当前命令识别为异常命令,并输出被可疑规则命中的异常命令的告警权值,这里,告警权值基于该条可疑规则对命令的总体命中率获得。预置的可疑规则,可以是预先根据常见危险操作的特征生成的,每条可疑规则包括至少一个危险操作的特征标识,危险操作的特征标识根据实际情况有很多种,比如下述情况的一种或多种:添加账户;打开、修改或删除敏感文件的关键属性;查看或修改敏感文件的密码;更改网络设置;提升用户权限;更改防火墙设置;查看系统日志;编译代码;有敏感词;更改文件权限和属性;关机/重启;显示特定文件内容;建立网络链接并下载指定地址的文件等等。可疑规则在具体实现时可以采用正则表达式的方式,即在正则表达式中体现危险操作的特征标识信息,从而通过预置的正则表达式规则过滤出具有这些危险操作特征标识的命令,即将正则表达式规则与收集到的当前命令进行匹配,将其中命中可疑规则的异常命令过滤出来,而未被可疑规则命中的命令可以视为正常命令。此外,每一条正则表达式,可能只能针对特定格式或特定内容的命令进行过滤,因此在实际应用时,更多的情况可以是使用多条正则表达式进行多轮过滤,将命中了可疑规则组中任意一条的可疑规则的命令确定为可疑命令并加以过滤,将未命中所有规则的命令确定为正常命令。

在过滤的过程中,还可以对每条可疑规则的总体命中率进行统计,所谓可疑规则的总体命中率,是指每条可疑规则在所有命令中命中异常命令的条数或次数,占所有命令的比例。如通常对查看密码的行为可以理解为可能是一种视图非法获取密码的越权行为,而对密码的获取,可以通过一些命令打开密码文件来实现,如在Linux操作系统中,密码文件一般会存储在特定的路径下,并以特定的文件名来命名,而Linux操作系统中又提供了对特定文件的内容进行查看的命令,这就给非法获取密码的提供了可能的途径。例如当有足够的权限时,执行命令:cat/etc/passwd就可以实现对密码文件passwd内保存的密码内容进行查看。为了对这种命令进行过滤,可以采用正则表达式:

.*[sW]+passwd.*|^passwd.*以及,

.*passwd.*

通过这两个正则表达式形式的可疑规则,可以过滤出所有包含敏感内容关键字“passwd”的命令。

假设其中一条可疑规则总共过滤了4651629条命令,并命中了其中的7915条命令,则被命中的这7915条命令就可以作为可疑命令,而这条可疑规则对应的总体命中率可以通过:该可疑规则命中的可疑命令/其检测的所有命令获得,如在本示例中,该条可疑规则的总体命中率则为:

7915/4651629≈0.001702

总体命中率统计出来后,过滤模块1202输出被可疑规则命中的异常命令的告警权值,告警权值可以基于该条可疑规则对命令的总体命中率获得。具体基于可疑规则对命令的总体命中率获得告警权值时,可以通过以该条可疑规则对已有命令的总体命中率作为自变量的单调递减函数,获得被该条可疑规则命中的异常命令的告警权值。例如,将总体命中率记做Pa,可以通过总体命中率作为自变量的单调递减函数(1-Pa)*D,来获取被该条可疑规则命中的异常命令的告警权值,其中D为一常数。例如在上述示例中某条可以规则的命中率Pa为0.001702,可以根据

(1-Pa)*D=(1-0.001702)*100≈99.8

其中D取100,那么被该条可疑规则命中的异常命令的告警权值约为99.8。

之所以使用总体命中率作为自变量的单调递减函数,是因为在实际应用中,一条可疑规则命中的异常命令实际为具有可疑危险性的命令,如果一条可疑规则命中命令的次数比较多或者频率比较高,说明该可疑规则命中的命令可能是比较常见的命令,而基于实际情况中毕竟真正的异常命令是少数,所以从逻辑上讲,如果某条可疑规则命中命令的次数较多或频率较高,那么被这条可疑规则命中的命令是真正异常命令的可能性相对较低,之所以被可疑规则命中,那么很可能是由于该条可疑规则是比较“严厉”的规则,进而可以认为该规则命中的命令危险性较小,因而,被其命中的异常命令可以取一较小的告警权值。

过滤模块1202输出的告警权值可以作为告警器130获取告警权值的依据,关于这部分内容会在后续告警器130的内容中进行详细介绍。

实现方式二:

命令分析器120可以包括学习模块1206和分类模块1204。

学习模块1206主要对训练样本集进行机器学习,然后为分类模块1204提供所需的各种先验参数。由于分类模块1204可以基于贝叶斯、逻辑回归、偏最小二乘法或决策树等多种分类原理来实现,因此相应的,学习模块也需要根据分类模块1204的不同而提供不同的先验参数。下面以分类模块1204基于贝叶斯原理实现,学习模块1206为分类模块1204提供所需的各种先验概率为例,对这两个模块进行详细说明。

学习模块1206对已知的训练样本集进行机器学习。训练样本集包括一定数量的已知命令,并且已知这些命令是否为异常命令。对训练样本集中的已知命令进行分词得到的字段可以看作是与命令有关的特征词,这些特征词可以是命令字符串本身,如cat,wget等,也可以包括从命令的参数提取出的内容。如将命令:

wget-o http://www.sina.com/dasd/hahah/tad.tgz/usr/loca/dasd/etc/passwd进行分词,可以得到如下特征词集合:

{'wget','-o','http','www.sina.com','dasd','hahah','tad.tgz','usr','loca','dasd','etc','passwd','www','sina','com'}

具体在对命令进行分词得到特征词时,可以使用正则表达式工具,例如可以使用

[_$]*[a-zA-Zd._-]+[^w(/;=-)[]{}:>&?.\s,d'"\%<]*

对命令进行切分,还可以使用正则表达式

((w+.){1,6}(?:net|cn|com|gov|edu|asia|me|co))

识别命令中的网址,从而可以对诸如上述命令示例进行切分,得到基于该命令的特征词集合。

由于在训练样本集中,命令是否异常是已知的,异常命令出现的概率可以通过(异常命令数量/训练样本集中命令总量)获得,正常命令出现的概率可以通过(正常命令数量/训练样本集中命令总量)获得。另外,通过对训练样本集中的命令进行分词,各个特征词出现的在异常命令中的概率和出现在正常命令中的概率也是可以统计得到的,因此学习模块1206可以获得以上这些先验概率。然后,将这些先验概率数据提供给分类模块1204使用,以便分类模块1204对当前待分析的命令进行分类。

可见,分类模块1204根据已有分类模型的训练样本集(具体是学习模块1206对已有分类模型的训练样本集进行机器学习后提供给分类模块1204一些先验概率),对集中数据回收器110接收到的当前命令进行分类,获得当前命令分别是正常命令的概率和异常命令的概率,进而识别出该当前命令是否属于异常命令。

下面以贝叶斯分类方法为例,对分类模块1204进行具体的介绍。

贝叶斯分类方法是一种统计分类方法,它是一类利用概率统计进行分类的算法。在许多应用中,朴素贝叶斯分类法都可以获取非常准确的分类结果,且贝叶斯分类方法本身还具有易于实现、分类准确率高、速度快的特点,贝叶斯分类方法的原理是通过对象的先验概率,利用贝叶斯公式计算出其后验概率,即该对象属于某一类的概率,选择具有最大后验概率的类作为该对象所属的类。本发明实施例中,分类模块1204可以利用贝叶斯分类方法来实现对当前命令是否异常命令进行识别,下面对该其实现的过程进行详细的介绍。

利用贝叶斯分类方法实现分类模块1204,其实质是要实现利用训练样本集中已知是否异常的命令、异常命令和正常命令分别出现的概率、以及根据已知命令进行分词得到的各字段在异常命令和正常命令出现的概率,来获取当给定一个命令时,给定命令出现的特定某个/某些字段时,该命令是正常命令的概率以及该命令是异常命令的概率,进而确定该命令的所属分类。这个过程是根据训练样本集来训练分类模块1204,通过训练使分类模块1204获取先验概率,进而可以根据贝叶斯分类方法识别当前命令属于哪个分类,即属于异常命令还是属于正常命令的能力。

在给定一个未知分类的当前命令时,判断它是属于异常命令或正常命令,要应用贝叶斯分类方法对其进行分类,首先需要对当前命令进行分词,在对当前命令进行分词时,同样可以使用正则表达式实现。设

x={w1,w2,w3,…,wn}为该未知分类的当前命令经过分词得到的特征词集合;

y={y1=good,y2=bad}为类别集合,其中y1=good代表正常命令的分类,y2=bad代表异常命令的分类;接下来需要获得P(y1|x)、P(y2|x),其中P(y1|x)表示在当前命令含有集合x中的各个特征词时,其属于正常命令的概率,P(y2|x)表示在当前命令含有集合x中的各个特征词时,其属于异常命令的概率。比较P(y1|x)与P(y2|x)的值,根据比较的结果确定当前命令的分类。例如取两者之中数值较大者作为当前命令的分类,或者在两者的差值达到一定的阈值时,将其中的较大者作为当前命令的分类。下面来介绍如何获取P(y1|x)与P(y2|x)。

根据贝叶斯分类方法,有如下获取方法:

P(y1|x)=P(x|y1)*P(y1)/P(x)

P(y2|x)=P(x|y2)*P(y2)/P(x)

其中P(x)对于y1=good和y2=bad两个分类来说是相等的常数,因此,只需求出P(x|y1)*P(y1),以及P(x|y2)*P(y2)即可。

而其中正常命令出现的概率P(y1),以及异常命令出现的概率P(y2),可以根据训练样本集中正常命令以及异常命令出现的频率来确定。例如在训练样本集中一共采集了4651629条命令,而其中出现的异常命令有68440条,则异常命令出现的概率P(y2)为:

68440/4651629≈0.014713

而相应的正常命令出现的概率则为P(y1)≈(1-P(y2))=0.985287。

由于P(x|y1)=P([w1,w2,w3,…,wn]|y1),且w1,w2,w3,…,wn可以认为是条件独立的,可以将P([w1,w2,w3,…,wn]|y1)分解为:

P(w1|y1)*P(w2|y1)*P(w3|y1)*…*P(wn|y1)

而其中P(w1|y1),P(w2|y1),P(w3|y1),…,P(wn|y1)各项,表示在集合x中各特征词在正常命令里出现的概率,这些项所代表的概率数值,可以通过训练样本集中正常命令中出现目标特征词的概率统计出来。P(x|y2)的获取原理与P(x|y1)的获取方法类似,在此不再赘述。需要说明的是在获取P(w1|y1),P(w2|y1),P(w3|y1),…,P(wn|y1)各项的乘积时,由于其中各项的数值都属于(0,1)区间,导致各项连乘后得到的结果经常趋近于0,甚至由于超出了计算机能够表达的浮点数范围精度,导致可能计算结果等于0,此时可选的,还可以将:

P(w1|y1)*P(w2|y1)*P(w3|y1)*…*P(wn|y1)转化为对数和的形式,例如转化为:>Σi=1nlogP(wi|y1).>

至此,P(x|y1)*P(y1)/P(x)中各项,以及P(x|y2)*P(y2)/P(x)中的各项都能够通过上述方法获取,也即获取到了P(y1|x)以及P(y2|x)的值,进而可以根据P(y1|x)以及P(y2|x)的值来确定在当前命令含有集合x中的各个特征词时,其属于正常命令或者异常命令。

以上介绍了以贝叶斯分类方法实现的分类模块1204,在实际应用中,这种方法实现的分类模块能够基于训练样本集进行学习,对输入的当前命令可以获取非常准确的分类结果,分类方法本身易于实现、分类准确率高、速度快。

需要说明的是,除了使用贝叶斯分类方法对输入的命令进行分类,还可以使用逻辑回归、偏最小二乘法,决策树等来实现分类模块1204。利用不同的方法实现的分类模块1204,其数据训练学习和识别的过程会因方法的不同而不同,但同样可以非常准确的对输入的当前命令进行分类,识别出当前命令是正常命令还是异常命令。例如在使用决策树实现的分类模块1204中,需要首先根据训练样本集中的数据进行训练,生成的是一个决策树模型,在需要判断输入的当前命令的分类时,可以先将当前命令进行分词,将获得的各特征词代入到该决策树模型中,计算出其属于哪一个分类,进而确定当前命令是正常命令,或者异常命令。分类模块1204的其他实现方法都可以分为根据训练样本集学习训练,生产判断模型,进而利用判断模型对输入的当前命令进行判断的过程,在此就不在举例赘述了。

此外,在实际应用中,采用贝叶斯分类方法、逻辑回归、偏最小二乘法或决策树等来实现分类模块1204,其输出的结果是一个逼近真实情况的近似值,这种近似值只有当训练样本集中的训练样本达到一定的数量规模后,才能达到理想的精确程度,换而言之,能够收集到的训练样本越多,则训练出的分类模块1204就越可靠,其输出的结果就越逼近实际的情况。所以,在实际的使用中,需要对训练样本集的数据进行不断扩充,由学习模块1206将新增的当前命令也作为一部分训练样本,与已有训练样本集合并后进行机器学习,从而更新为分类模块1204提供的各种先验参数,进而使分类模块1204能够利用更加丰富的训练样本进行学习和训练,进一步提高分类模块1204的识别精度,使其对当前输入命令的识别结果更加准确。

实现方式三:

命令分析器120中可以包括过滤模块1202、分类模块1204以及学习模块1206,通过过滤模块1202对集中数据回收器110接收到的命令采用预置的可疑规则进行过滤,将被可疑规则命中的命令输出至分类模块1204,并输出被可疑规则命中的命令的告警权值,告警权值基于该条可疑规则对命令的总体命中率获得;分类模块1204耦接于过滤模块1202,根据已有分类模型的训练样本集,对从过滤模块1202输入的当前命令进一步分类,获得当前命令分别是正常命令的概率和异常命令的概率,进而识别出该当前命令是否为异常命令。本实现方式中的学习模块1206与具体实现方式二种的学习模块1206类似,仍然是对已有样本训练样本集进行机器学习,以及当有新增命令时,将新增命令与已有训练样本集合并后再进行机器学习,从而为分类模块1204提供所需的各种先验参数。

这中实现方式结合了实现方式一和实现方式二的实现方法,首先通过过滤模块1202对集中数据回收器110接收的当前命令采用预置的可疑规则进行过滤,预置的可疑规则,可以是预置的正则表达式规则,通过预置的正则表达式规则,与将收集到的当前命令进行批量匹配,将其中命中可疑规则的异常命令过滤出来,而未被可疑规则命中的命令可以视为正常命令。并输出被可疑规则命中的当前命令的告警权值,告警权值基于该条可疑规则对命令的总体命中率获得,根据可疑规则对命令的总体命中率获得告警权值的方法可以参考实现方式一,在此就不再赘述了。

进一步的,过滤模块1202将被可疑规则命中的命令输出至分类模块1204,由分类模块1204对可疑规则命中的命令做进一步的判断,识别出当前命令是正常命令还是异常命令。其中,分类模块1204的具体实现方式与前面实现方式二种的分类模块1204类似,因而此处不再赘述。在这种实现方式下,由过滤模块1202的可疑规则命中的命令,又输入到了分类模块1204做进一步的判断,使得对当前输入的命令是否异常命令的判断更加的准确,能够在很大程度上进一步避免误判的发生。

在命令分析器120通过上述多种方式识别出异常命令后,提供给告警模块130。告警模块130根据命令分析器120的识别结果判断是否满足告警条件,如果满足,则发出相应主机存在异常的告警信息。发出告警信息的方式多种多样,例如,可以是向预留的电子邮件地址发送含有主机存在异常的告警信息的电子邮件,再例如也可以是向预留的电话号码发送含有主机存在异常的告警信息的消息的方式等等。如前,在各主机上执行的命令与其执行的主机是存在对应关系的,在满足告警条件时,可以发出执行异常命令的相应主机存在异常的告警信息,以及时地对对应的主机进行处理。

具体在实现告警器130时,告警器130可以统计各主机在一定的时间周期内异常命令出现的次数,判断该周期内次数是否达到预置的阈值,如果达到则发出执行异常命令的相应主机存在异常的告警信息。例如预置的设置是某主机在5分钟的时间内出现10条以上异常命令就发出告警信息,而某主机在5分钟的时间周期内被检测到输入了11次异常命令,则发出该主机存在异常的告警信息。除了这种告警方式外,为了实现更加灵活和精确的告警,告警器130还可以以其他的方式实现。下面对实现告警器130的其它方式进行介绍。

告警器130可以对应于命令分析器120不同的实现方式有不同的实现。如对应于前述的命令分析器120的实现方式一,告警器130可以在异常命令出现时,根据可疑规则命中的该命令对应的总体命中率确定的告警权值,判断是否满足告警条件,并在满足告警条件时发出相应主机存在异常的告警信息。具体实现时,告警器130还可以统计一个告警周期内、命令分析器120识别出的某一主机上的所有异常命令,将这些异常命令各自对应的告警权值进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。例如命令分析器120输出被各可疑规则命中的异常命令和对应的告警权值的对应如下:

cmd001——99.8

cmd003——30.0

cmd004——95.3

cmd005——99.8

在预置的时间周期内,预置的告警条件为出现的各异常命令的告警权值的总和达到预置的告警阈值,如预置的告警条件为在5分钟内的时间周期内,告警权值的总和达到1000即发出告警信息,而在5分钟内上述各异常命令出现的次数如下:

cmd001——2次

cmd003——1次

cmd004——3次

cmd005——5次

根据上述的各异常命令的告警权值和出现次数得到这5分钟内的告警权值总和为1014.5,可见这5分钟内的告警权值总和已经超过了预置的告警阈值,则发出相应主机存在异常的告警信息。

可见,对异常命令对应的告警权值的“综合化处理”可以是根据具体的告警方式的不同而不同,如上述示例中,可以是将各异常命令出现的次数与对应的告警权值的乘积的累加,或者是将各异常命令的告警权值直接累加(如果某条命令在一个告警周期内多次出现,则将累加多次该命令的告警权值)最后得到的结果如果达到预置阈值就发出告警信息。需要说明的是,之所以对一个告警周期内、某一主机桑的所有异常命令各自对应的告警权值进行综合化处理之后,再判断是否需要告警,主要是为了尽可能的减少误报,因为往往出现真正具有危险的命令时,可能在短时间内会出现多个异常命令,所以比较好的方式是对一定时间内(即一个告警周期内)的所有异常命令综合分析他们的告警权值,而不仅仅是单独看某一个异常命令的告警权值。因此可以理解,综合化处理的方式多种多样,可以采取前面提到的多个告警权值累加的方式,也可以采取多个告警权值相乘取对数等方式,这完全取决于实际需要,这些可行的方式都在本发明的保护范围内。而且,对于命令分析器120的不同实现方式,由于其告警权值的获取方式以及告警权值的最终数值表达都可以有所不同,因此,对异常命令对应的告警权值的“综合化处理”也可以对应有所不同。

在命令分析器120以实现方式二的方式实现时,命令分析器120包括的分类模块1204可以获得当前命令分别是正常命令和异常命令的概率,此时,告警器130可以统计一个告警周期内、命令分析器120识别出的某一主机上的所有异常命令,将这些异常命令各自对应的异常命令概率进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。例如在预置的5分钟的时间周期内,在某一主机输入的异常命令、各异常命令出现的次数,以及各异常命令是异常命令的概率如下:

cmd001——2次——0.95

cmd003——1次——0.89

cmd004——3次——0.98

cmd005——5次——0.90

在将这些异常命令各自对应的异常命令概率进行综合化处理时,可以将各异常命令的概率与出现次数的乘积的和(或者说将各异常命令的概率累乘,如出现多次则累乘多次),作为是否告警的参考数据。如本示例中,得到的参考数据为10.23,如果预置的告警条件是该参考数据高于10,则判断综合化处理的结果达到预置的告警条件,发出相应主机存在异常的告警信息。与前面提到的综合化处理的具体实现方式可以有多种情况类似,本示例中综合化处理也可以有多种具体实现方式,可以根据实际情况对综合化处理的具体方式加以调整,只要能够体现出是综合多个异常命令的概率判断是否告警即可。

在以实现方式三实现的命令分析器120,能够通过过滤模块1202对集中数据回收器110接收的当前命令采用预置的可疑规则进行过滤,并输出被可疑规则命中的当前命令的告警权值,以及分类模块1204对可疑规则命中的当前命令做进一步的判断,识别出当前命令是正常命令还是异常命令,同时获得当前命令分别是正常命令的概率和异常命令的概率。在这种实现方式下,告警器130在实现时,可以统计一个告警周期内、命令分析器120识别出的某一主机上的所有异常命令,将每一异常命令对应的异常命令概率和告警权值相乘获得对应的告警指数,将这些异常命令的告警指数进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。例如在预置的5分钟的时间周期内,某一主机输入的异常命令,各异常命令对应的异常命令概率和告警权值以及出现的次数如表1所示:

表1

异常命令异常命令概率告警权值告警指数出现次数cmd0010.9599.898.412cmd0030.8990.080.101cmd0040.9895.393.393cmd0050.9099.889.825

此时,在对异常命令的告警指数进行综合化处理时,可以将各异常命令对应的告警指数进行累加,如某个异常命令出现多次,则将该异常命令对应的告警指数多次累加即可,或者说取各异常命令对应的告警指数与出现次数的乘积的和,作为是否发出告警信息的参考数据。例如在上表中,在对异常命令的告警指数进行综合化处理获得的参考值为1006.19,若预置的告警条件为一预置的告警阈值1000,且参考值高于该告警阈值时即发出告警信息,那么在该示例中对异常命令的告警指数进行综合化处理获得的参考值为1006.19,高于预置的告警阈值,符合发出告警信息的预置条件,则发出相应主机存在异常的告警信息。

至此,前面介绍的用于分析在各主机上执行的命令的系统可以较好完成对各主机上执行的命令的分析及告警。为了实现对各主机终端的闭环监控,提高整个网络系统的安全性,该系统还可以包括监控器220,通过监控器220对各主机中的命令发送模块2102的部署情况进行监控。具体而言,一方面监控器220可以获知系统中部署的各主机终端的信息,比如各主机终端的主机IP,另一方面监控器220可以从集中数据回收器110获知其接收到了哪些主机上执行的命令,这样通过对比,监控器220就可以知道哪些主机上执行的命令没有被成功传输至集中数据回收器110。

如果是已经部署了命令发送模块2102的主机终端没有正确传输命令给集中数据回收器110,那么就说明该主机终端上的命令发送模块2102失效了;如果新加入系统的主机终端没有将其上执行的命令传输给集中数据回收器110,那么就说明该主机终端上还没有部署命令发送模块2102。监控器220发现上面这两种情况后,即可及时处理,例如,当发现有新增主机未部署命令发送模块2102或发现有主机上的命令发送模块2102失效时,可以通过未部署命令发送模块2102或命令发送模块2102失效的主机IP自动登录至该主机上,为其部署命令发送模块2102。可以看出,通过监控器220对各主机上的命令发送模块2102进行实时的监控,能够及时的发现不能正常运行的命令发送模块2102,或者新加入的未部署命令发送模块2102的主机的情况,进而可以在发现异常时及时的对不能正常运行命令发送模块2102的主机进行调整,或者在新加入的未部署命令发送模块2102的主机上部署命令发送模块2102。从而保证整个系统能够实现闭环监控,自行发现问题及解决问题,更好的保证了命令分析结果的准确性以及告警的准确性。

以上介绍了本发明实施例提供的用于分析在各主机上执行的命令的分析设备及系统。与本发明实施例提供的用于分析在各主机上执行的命令的分析设备及系统相对应,本发明实施例还提供了一种用于分析在各主机上执行的命令的分析方法。

请参见图2,该方法开始于步骤S210,首选收集各主机通过网络传输的当前命令及所属主机标识。在具体实现收集各主机通过网络传输的当前命令及所属主机标识时,可以对各主机的命令解析器shell进行改造,增加将shell接收到的主机当前命令和主机IP通过网络传输至指定设备的函数,利用函数收集各主机的当前命令及所属主机标识。步骤S210可以通过前文的集中数据回收器110执行,其相关的技术特征可以参考前文中关于集中数据回收器110在实施例中的描述,此处不再赘述。此外,还可以对各主机传输当前命令及所属主机标识的事件进行监控,当发现有新增主机未进行上述shell改造或者改造失效时,通过该主机IP自动登录至该主机上为其部署上述shell的改造,以便于及时发现不能正常传输命令或主机标识的主机,或者新加入的未添加传输功能的主机,对这些主机进行及时的调整,从而实现对各主机的闭环监控,提高了整个网络系统的安全性。

在步骤S210中收集了各主机当前命令以及所属的主机标识,接下来可以执行步骤S220,对收集到的当前命令进行识别,至少识别出异常命令和正常命令。具体在识别当前命令时,也可以有多种实现方式:

第一种方式,对收集到的当前命令采用预置的可疑规则进行过滤,将被可疑规则命中的当前命令识别为异常命令,并获得被可疑规则命中的异常命令的告警权值,告警权值基于该条可疑规则对命令的总体命中率获得,其中可疑规则可以是正则表达式规则。这种实现方式可以通过前文系统实施例中命令分析器120来实现,具体可以通过过滤模块1202予以实现,因此相关技术技术特征可以参考前文过滤模块1202的相关描述,此处不再赘述。同样,除了根据可疑规则过滤出异常命令外,还可以获得异常命令的告警权值,同样可以是通过以该条可疑规则对已有命令的总体命中率作为自变量的单调递减函数,获得被该条可疑规则命中的异常命令的告警权值,相关技术特征也可以参考前面系统实施例中过滤模块1202中关于告警权值的描述,此处不再赘述。

第二种实现方式,具体是根据已有分类模型的训练样本集,对接收到的当前命令进行分类,获得当前命令是正常命令的概率和是异常命令的概率,进而识别出该当前命令是否属于异常命令。在这种实现方式下,分类模型可以基于贝叶斯分类方法,逻辑回归,偏最小二乘法,或决策树等方法来实现,该实现过程可以是,首先基于训练样本集,运用一种分类方法进行训练和学习,进而在需要判断输入的当前命令的分类时,可以先将当前命令进行分词,将获得的各特征词代入到训练好的模型中,计算出其属于哪一个分类,进而确定当前命令是正常命令或者异常命令。当然,为了提高分类的准确度,需要不断丰富训练样本集中的数据,因此可以将新增的当前命令与已有训练样本集合并后进行机器学习,更新进行分类时使用的已有训练样本集。这种实现方式可以通过前文系统实施例中命令分析器120来执行,具体是通过分类模块1204以及学习模块1206来执行,即命令分析器120的第二种实现方式,因此相关技术特征可以参考分类模块1204在实施例中的描述,此处不再赘述。

第三种实现方式,可以理解为是将前面两种实现方式相结合,即首先对接收到的当前命令采用预置的可疑规则进行过滤,筛选出被可疑规则命中的当前命令,并输出被可疑规则命中的当前命令的告警权值,其中,告警权值基于该条可疑规则对命令的总体命中率获得;然后,再根据已有分类模型的训练样本集,对筛选出的上述当前命令进一步分类,获得当前命令是正常命令的概率和是异常命令的概率,进而识别出该当前命令是否为异常命令。从而得到更加精确的对当前命令是否异常命令的识别结果。这种实现方式可以通过前面系统实施例中、第三种方式的命令分析器120来执行,因此相关技术特征可以参考命令分析器120中过滤模块1202、分类模块1204以及学习模块1206的相关描述,此处不再赘述。

在通过步骤S220对各主机输入的当前命令进行分类,即识别出异常命令后执行步骤230,即根据识别结果判断是否满足告警条件,如果满足,则发出相应主机存在异常的告警信息。具体在发送相应主机存在异常的告警信息时,可以统计各主机所输入的命令在一定的时间周期内被识别为异常命令出现的次数,判断该周期内出现异常命令次数是否达到预置的阈值,如果达到则发出的相应主机存在异常的告警信息。例如预置的设置是在5分钟的时间内出现10条或10条以上命令就发出告警信息,如果某主机在5分钟的时间周期内输入的命令中,识别出了11条异常命令,则发出该主机存在异常的告警信息。除了这种告警方式外,为了实现更加灵活和精确的告警,步骤S230还可以以根据步骤220的不同实现方式,有对应的不同的实现方式。例如当步骤S220通过预置的可疑规则过滤出异常命令,并输出被可疑规则命中的异常命令的告警权值时,步骤S230可以根据异常命令的告警权值判断是否满足告警条件,如果满足则发出告警信息,具体的可以是统计一个告警周期内、识别出的某一主机上的所有异常命令,将这些异常命令各自对应的告警权值进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件,如对各次出现的异常命令的对应告警权值做累加,在该周期内判断累加的告警权值是否达到预置的阈值,如果达到则发出对应主机存在异常的告警信息。

又如当S220是根据已有分类模型的训练样本集,对接收到的当前命令进行分类,获得当前命令是正常命令的概率和是异常命令的概率,进而识别出该当前命令是否属于异常命令时,S230的实现可以是,统计一个告警周期内、识别出的某一主机上的所有异常命令,将这些异常命令各自对应的异常命令概率进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。在将这些异常命令各自对应的异常命令概率进行综合化处理时,可以将各异常命令的概率与出现次数的乘积的和,作为是否告警的参考数据,具体的可以是将获得的该参考数据与预置的告警阈值相比较,如果高于预置的告警阈值,则发出相应主机存在异常的告警信息。

再如当步骤S220是对接收到的当前命令采用预置的可疑规则进行过滤,筛选出被可疑规则命中的当前命令,并输出被可疑规则命中的当前命令的告警权值;然后根据已有分类模型的训练样本集,对筛选出的上述当前命令进一步分类,获得当前命令是正常命令的概率和是异常命令的概率,进而识别出该当前命令是否为异常命令。此时,告警权值可以基于该条可疑规则对命令的总体命中率获得。在实现步骤S230时,可以是统计一个告警周期内、识别出的某一主机上的所有异常命令,将每一异常命令对应的异常命令概率和告警权值相乘获得对应的告警指数,将这些异常命令的告警指数进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。其中的综合化处理,可以是取各异常命令对应的告警指数与出现次数的乘积后再相加取和,作为是否发出告警信息的参考数据,之后将该参考数据与预置的告警阈值进行对比,如果该参考数据超出了预置的告警阈值,则发出相应主机存在异常的告警信息。

以上具有多种具体实现方式的步骤S230可以通过前面系统实施例中的告警器130执行,因此相关技术特征可以参考前面告警器130的描述,此处不再赘述。

以上对根据本发明一个实施例的分析设备、系统及方法进行了详细说明,为了更好的便于理解,下面再给出本发明实施例的一个具体应用举例,请参阅图3,图3示出了根据本发明一个实施例的具体应用示意图,图中,Linux/Unix/BSD Server是网络系统中的主机,在一个网络系统中,可以有若干台搭载Linux/Unix/BSD的主机,通过对主机的命令解析器shell进行改造,使其具有发送输入命令(即发送shell_log)到Receive Server(接收服务器,相当于前文中的集中数据回收器110)的能力,Receive Server将接收到的shell_log以日志的形式记录到数据库(database)中。通过将该数据库database中各命令所属的主机IP信息与系统中已部署的各主机IP进行对比,进而就可以知道是否所有主机都已将其上执行的命令准确传输给了Receive Server,以确保所有Linux/Unix/BSD Server命令发送正常,当有失效或者新增主机加入网络系统时,可以自动对失效或新增主机部署命令发送模块。

在具体对命令进行分析的过程中,可以基于Database的数据通过在线学习功能,对数据库里已有的数据进行机器学习,产生识别模型。在需要对当前输入的命令进行识别时,可以利用产生的模型实时监测输入的命令并识别,在识别到异常命令并满足告警条件时进行告警。在告警时,可以通过E-mail向预置的邮件地址发送包含告警信息的邮件,或者通过SMS信息中心向预置的电话号码发送包含告警信息的消息。

以上详细介绍了本发明实施例提供的用于分析在各主机上执行的命令的分析设备、系统以及方法,通过该用于分析在各主机上执行的命令的分析设备、系统或者方法,可以在包括若干主机的网络系统中,收集各主机通过网络传输的当前命令及当前命令所属主机的标识,对收集到的当前命令中具有一定的操作危险的命令进行有效识别,判断出在主机上输入的命令是异常命令还是正常命令,在主机输入的异常命令满足告警条件时,发出相应主机存在异常的告警信息,从而能够及时对网络系统中各主机上输入的、具有一定危险性的异常命令进行告警,提高了系统的安全性。由此解决了因管理员误操作、黑客攻击等原因造成而在系统中的主机上输入危险性命令时,对主机乃至整个系统的稳定运行造成不良影响,及时对网络系统中各主机上输入的危险命令进行告警,提高了系统的安全性。

在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。

本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的用于分析在各主机上执行的命令的分析设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

本发明公开了A1、一种用于分析在各主机上执行的命令的分析设备,包括:

集中数据回收器,被配置为至少收集各主机终端通过网络传输的当前命令及所属主机标识;

命令分析器,被配置为对所述集中数据回收器收集到的当前命令进行识别,至少识别出异常命令和正常命令;

告警器,被配置为根据所述命令分析器的识别结果判断是否满足告警条件,如果满足,则发出相应主机存在异常的告警信息。

A2、如A1所述的分析设备,所述命令分析器包括过滤模块,被配置为对所述集中数据回收器收集到的当前命令采用预置的可疑规则进行过滤,将被所述可疑规则命中的当前命令识别为异常命令,并输出被所述可疑规则命中的异常命令的告警权值,所述告警权值基于该条可疑规则对命令的总体命中率获得;

所述告警器具体被配置为根据所述异常命令的告警权值判断是否满足告警条件。

A3、如A2所述的分析设备,所述过滤模块输出的异常命令的告警权值通过下述方式获得:通过以该条可疑规则对已有命令的总体命中率作为自变量的单调递减函数,获得被该条可疑规则命中的异常命令的告警权值。

A4、如A2或A3所述的分析设备,所述告警器具体被配置为统计一个告警周期内、所述命令分析器识别出的某一主机上的所有异常命令,将这些异常命令各自对应的告警权值进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

A5、如A1所述的分析设备,所述命令分析器包括:

分类模块,被配置为根据已有分类模型的训练样本集,对所述集中数据回收器接收到的当前命令进行分类,获得当前命令分别是正常命令的概率和异常命令的概率,进而识别出该当前命令是否属于异常命令。

A6、如A5所述的分析设备,所述告警器具体被配置为统计一个告警周期内、所述命令分析器识别出的某一主机上的所有异常命令,将这些异常命令各自对应的异常命令概率进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

A7、如A1所述的分析设备,所述命令分析器包括:

过滤模块,被配置为对所述集中数据回收器接收到的当前命令采用预置的可疑规则进行过滤,将被所述可疑规则命中的当前命令输出至分类模块,并输出被所述可疑规则命中的当前命令的告警权值,所述告警权值基于该条可疑规则对命令的总体命中率获得;

分类模块,被配置为根据已有分类模型的训练样本集,对从所述过滤模块输入的当前命令进一步分类,获得当前命令分别是正常命令的概率和异常命令的概率,进而识别出该当前命令是否为异常命令。

A8、如A5或A7所述的分析设备,所述命令分析器还包括:

学习模块,被配置为将新增的当前命令与已有训练样本集合并后进行机器学习,更新所述分类模块使用的已有训练样本集。

A9、如A7所述的分析设备,所述告警器具体被配置为统计一个告警周期内、所述命令分析器识别出的某一主机上的所有异常命令,将每一异常命令对应的异常命令概率和告警权值相乘获得对应的告警指数,将这些异常命令的告警指数进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

B10、一种用于分析在各主机上执行的命令的系统,包括B1至B9中任一项所述的分析设备和若干主机终端;

所述若干主机终端,被配置为至少将各主机上的当前命令及所属主机标识通过网络传输至集中数据回收器。

B11、如B10所述的系统,所述主机终端包括:

命令发送模块,被配置为对各主机的命令解析器shell进行改造,增加将所述shell接收到的主机当前命令和主机IP传输至所述集中数据回收器的函数。

B12、如B11所述的系统,还包括:

监控器,被配置为对各主机中所述命令发送模块的部署情况进行监控,当发现有新增主机未部署所述命令发送模块或发现有主机上的所述命令发送模块失效时,通过该未部署命令发送模块或命令发送模块失效的主机IP自动登录至该主机上,为其部署所述命令发送模块。

C13、一种用于分析在各主机上执行的命令的方法,包括:

收集所述各主机通过网络传输的当前命令及所属主机标识;

对所述收集到的当前命令进行识别,至少识别出异常命令和正常命令;

根据上述识别结果判断是否满足告警条件,如果满足,则发出相应主机存在异常的告警信息。

C14、如C13所述的方法,所述对收集到的当前命令进行识别的步骤包括:

对收集到的当前命令采用预置的可疑规则进行过滤,将被所述可疑规则命中的当前命令识别为异常命令,并获得被所述可疑规则命中的异常命令的告警权值,所述告警权值基于该条可疑规则对命令的总体命中率获得;

所述根据上述识别结果判断是否满足告警条件的步骤包括:根据所述异常命令的告警权值判断是否满足告警条件。

C15、如C14所述的方法,所述异常命令的告警权值通过下述方式获得:

通过以该条可疑规则对已有命令的总体命中率作为自变量的单调递减函数,获得被该条可疑规则命中的异常命令的告警权值。

C16、如C14所述的方法,所述根据识别结果判断是否满足告警条件的步骤包括:

统计一个告警周期内、识别出的某一主机上的所有异常命令,将这些异常命令各自对应的告警权值进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

C17、如C11所述的方法,所述对收集到的当前命令进行识别包括:

根据已有分类模型的训练样本集,对接收到的当前命令进行分类,获得当前命令是正常命令的概率和是异常命令的概率,进而识别出该当前命令是否属于异常命令。

C18、如C17所述的方法,所述根据识别结果判断是否满足告警条件的步骤包括:

统计一个告警周期内、识别出的某一主机上的所有异常命令,将这些异常命令各自对应的异常命令概率进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

C19、如C13所述的方法,所述对收集到的当前命令进行识别包括:

对接收到的当前命令采用预置的可疑规则进行过滤,筛选出被所述可疑规则命中的当前命令,并输出被所述可疑规则命中的当前命令的告警权值,所述告警权值基于该条可疑规则对命令的总体命中率获得;

根据已有分类模型的训练样本集,对筛选出的上述当前命令进一步分类,获得当前命令是正常命令的概率和是异常命令的概率,进而识别出该当前命令是否为异常命令。

C20、如C17或C19所述的方法,还包括:

将新增的当前命令与已有训练样本集合并后进行机器学习,更新进行分类时使用的已有训练样本集。

C21、如C19所述的方法,所述根据识别结果判断是否满足告警条件的步骤包括:

统计一个告警周期内、识别出的某一主机上的所有异常命令,将每一异常命令对应的异常命令概率和告警权值相乘获得对应的告警指数,将这些异常命令的告警指数进行综合化处理,根据综合化处理后的值判断是否满足预置的告警条件。

C22、如C13-21所述的方法,所述收集所述各主机通过网络传输的当前命令及所属主机标识的步骤包括:

对各主机的命令解析器shell进行改造,增加将所述shell接收到的主机当前命令和主机IP通过网络传输至指定设备的函数,利用所述函数收集所述各主机的当前命令及所属主机标识。

C23、如C22所述的方法,还包括:

对各主机传输当前命令及所属主机标识的事件进行监控,当发现有新增主机未进行上述shell改造或者改造失效时,通过该主机IP自动登录至该主机上为其部署上述shell的改造。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号