一种主机异常行为识别方法及系统
技术领域
本发明涉及计算机安全技术领域,更具体地,涉及一种主机异常行为识别方法及系统。
背景技术
传统的针对主机是否产生异常行为的识别方法,大多基于采集和整合当前主机的主机侧数据,统一提交管理端,由管理端基于自身的相关规则和行为判定来确认当前各主机状态是否正常,是否存在风险性或已知攻击行为。由于传统识别方法依赖于自有的相关匹配规则或策略,导致在安全问题上往往出现大量误报、漏报,并在情报更新和威胁嗅探上往往处于劣势;同时,由于传统识别方法对异常行为的判定是基于规则的,而该规则通常是已知威胁的整理集合,导致目前传统识别方法不能够主动识别异常行为,即只有相关问题已大规模爆发,异常行为已知后才能进行相关检出和处置。因此,当前的主机异常行为识别方法无法有效识别多变的主机恶意行为。
发明内容
本发明的目的在于提供一种主机异常行为识别方法及系统,解决目前的针对主机安全的异常识别方法不能主动识别异常行为,只能基于已知威胁来判定而导致在安全问题上往往出现大量误报、漏报的问题。
为实现上述目的,本发明提供了一种主机异常行为识别方法,包括以下步骤:
获取主机数据,以及所述主机所属群组内其余主机的数据;
依据所述主机数据、所述主机所属群组内其余主机的数据以及预设模型,判断所述主机是否存在异常行为;若所述主机存在异常行为,则根据预设恶意行为库,判断所述主机是否存在恶意行为;若所述主机存在恶意行为,则向用户发送第一提示信息,并根据所述主机存在的异常行为的数量获取所述主机的危险等级;若所述主机不存在恶意行为,则向用户发送第二提示信息。
优选地,所述依据所述主机数据、所述主机所属群组内其余主机的数据以及预设模型,判断所述主机是否存在异常行为,具体为,依据预设模型将主机数据解构为多个独立条目数据,将所述独立条目数据与对应的主机以键值对的形式进行映射关联;然后对映射关联后的所述键值对进行聚合存储,得到各个键值对对应的数据计数器值;若所述数据计数器值小于或者等于所述预设模型对应的预设阈值,则判断主机存在异常行为,否则判断主机不存在异常行为。
优选地,所述主机数据包括主机账户数据、主机运行进程历史数据、主机对外连接IP历史数据、主机WEB应用文件目录数据、主机命令操作日志数据、主机开放端口历史数据以及主机连接远程端口历史数据。
优选地,所述根据所述主机存在的异常行为的数量获取所述主机的危险等级,具体为,对所述主机存在的异常行为的数量进行相加,得到所述主机的危险等级。
优选地,所述预设模型包含用于判断主机是否存在异常系统账户的第一预设模型、用于判断主机是否存在异常进程运行历史的第二预设模型、用于判断主机是否存在异常对外连接IP历史的第三预设模型、用于判断主机是否存在异常WEB应用文件目录的第四预设模型、用于判断主机是否存在异常命令操作的第五预设模型、用于判断主机是否存在异常开放端口的第六预设模型,以及用于判断主机是否存在异常远程端口连接的第七预设模型。
本发明还提供了一种主机异常行为识别系统,包括:
主机数据获取模块,用于获取主机数据,以及所述主机所属群组内其余主机的数据;
异常行为识别模块,用于依据所述主机数据、所述主机所属群组内其余主机的数据以及预设模型,判断所述主机是否存在异常行为;若所述主机存在异常行为,则根据预设恶意行为库,判断所述主机是否存在恶意行为;若所述主机存在恶意行为,则向用户发送第一提示信息,并根据所述主机存在的异常行为的数量获取所述主机的危险等级;若所述主机不存在恶意行为,则向用户发送第二提示信息。
优选地,所述主机数据获取模块依据预设模型将主机数据解构为多个独立条目数据,将所述独立条目数据与对应的主机以键值对的形式进行映射关联;然后对映射关联后的所述键值对进行聚合存储,得到各个键值对对应的数据计数器值;若所述数据计数器值小于或者等于所述预设模型对应的预设阈值,则判断主机存在异常行为,否则判断主机不存在异常行为。
优选地,所述主机数据包括主机账户数据、主机运行进程历史数据、主机对外连接IP历史数据、主机WEB应用文件目录数据、主机命令操作日志数据、主机开放端口历史数据以及主机连接远程端口历史数据。
优选地,所述异常行为识别模块对所述主机存在的异常行为的数量进行相加,得到所述主机的危险等级。
优选地,所述预设模型包含用于判断主机是否存在异常系统账户的第一预设模型、用于判断主机是否存在异常进程运行历史的第二预设模型、用于判断主机是否存在异常对外连接IP历史的第三预设模型、用于判断主机是否存在异常WEB应用文件目录的第四预设模型、用于判断主机是否存在异常命令操作的第五预设模型、用于判断主机是否存在异常开放端口的第六预设模型,以及用于判断主机是否存在异常远程端口连接的第七预设模型。
本发明与现有技术相比,具有以下优点及突出性效果:
本发明提供的一种主机异常行为识别方法及系统通过先获取主机数据,然后将该主机数据和主机群组内的其他主机数据利用预设模型进行比对,判断该主机是否存在异常行为,当存在异常行为时,判断该异常是否属于恶意行为,实现了对主机异常行为的及时主动检测,并在判定异常行为属于恶意行为之后,给予用户相应的提示信息,避免了由于无法及时检测到主机的异常行为而对用户造成损失。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一公开的一种主机异常行为识别方法的流程示意图;
图2为本发明实施例二公开的一种主机异常行为识别系统的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
实施例一
如图1所示,本发明实施例一公开了一种主机异常行为识别方法,包括以下步骤:
S101,获取主机数据,以及该主机所属群组内其余主机的数据;具体来说,该主机异常行为识别方法按照预设时间间隔获取主机数据和群组内其余主机的数据,该主机所述群组内的主机数量必须大于或者等于预设最小值,本实施例中,预设最小值为50个,在其他实施例中,也可以根据实际需要设置该预设最小值。需要说明的是,本实施例中的主机所属群组G内具有80台主机,即{G1,G2,G3,……G80},通过在所有主机上安装代理软件,进行采集数据上报。需要采集的主机数据和群组内其余主机的数据均包括有主机账户数据、主机运行进程历史数据、主机对外连接IP历史数据、主机WEB应用文件目录数据、主机命令操作日志数据、主机开放端口历史数据以及主机连接远程端口历史数据。
本实施例定义当前主机为Gx,则对应的主机数据分别定义为主机账户数据Gix、主机运行进程历史数据Gsx、主机对外连接IP历史数据Ghx、主机WEB应用文件目录数据Gmx、主机命令操作日志数据Grx、主机开放端口历史数据Gdx以及主机连接远程端口历史数据Gkx。
在本实施例中,预设时间间隔采用的是默认间隔24小时,即主机个体数据采集每24小时进行一次;在其他实施例中,用户可根据需要自定义设置。
S102,依据上述主机数据、上述主机所属群组内其余主机的数据以及预设模型,判断上述主机是否存在异常行为;若上述主机存在异常行为,则根据预设恶意行为库,判断上述主机是否存在恶意行为;若上述主机存在恶意行为,则向用户发送第一提示信息,并根据上述主机存在的异常行为的数量获取上述主机的危险等级;若上述主机不存在恶意行为,则向用户发送第二提示信息。
上述预设模型包含用于判断主机是否存在异常系统账户的第一预设模型T1、用于判断主机是否存在异常进程运行历史的第二预设模型T2、用于判断主机是否存在异常对外连接IP历史的第三预设模型T3、用于判断主机是否存在异常WEB应用文件目录的第四预设模型T4、用于判断主机是否存在异常命令操作的第五预设模型T5、用于判断主机是否存在异常开放端口的第六预设模型T6,以及用于判断主机是否存在异常远程端口连接的第七预设模型T7。
具体来说,判断当前主机Gx是否存在异常系统账户时,则需要利用第一预设模型T1将当前主机账户数据Gix与除Gx外其他所有属于主机群组G内主机账户数据Gexcept(ix)进行比对,即计算T1(Gix,Gexcept(ix))。若T1(Gix,Gexcept(ix))=0,则表示当前主机账户数据Gix与群组G内其他所有主机账户数据Gexcept(ix)存在至少一个相同样本,此时判定当前主机账户数据Gix正常;若T1(Gix,Gexcept(ix))=1,则表示当前主机账户数据Gix与群组G内其他所有主机账户数据Gexcept(ix)不存在相同样本,此时判定当前主机Gx存在独有账户,并判定为异常系统账户。
判断当前主机Gx是否存在异常进程运行历史时,则需要利用第二预设模型T2将当前主机运行进程历史数据Gsx与除Gx外其他所有属于主机群组G内主机运行进程历史数据Gexcept(sx)进行比对,即计算T2(Gsx,Gexcept(sx))。若T2(Gsx,Gexcept(sx))=0,则表示当前主机运行进程历史数据Gsx与群组G内其他所有主机运行进程历史数据Gexcept(sx)存在至少一个相同样本,此时判定当前主机运行进程历史数据Gsx正常;若T2(Gsx,Gexcept(sx))=1,则表示当前主机运行进程历史数据Gsx与群组G内其他所有主机运行进程历史数据Gexcept(sx)不存在相同样本,即主机Gx存在独有进程运行历史,此时判定当前主机存在异常进程运行历史。
判断当前主机Gx是否存在对外连接IP历史时,则需要利用第三预设模型T3将当前主机对外连接IP历史数据Ghx与除Gx外其他所有属于主机群组G内主机对外连接IP历史数据Gexcept(hx)进行比对,即计算T3(Ghx,Gexcept(hx))。若T3(Ghx,Gexcept(hx))=0,则表示当前主机对外连接IP历史数据Ghx与群组G内其他所有主机对外连接IP历史数据Gexcept(hx)存在至少两个相同样本,此时判定当前主机对外连接IP历史数据Ghx正常;若T3(Ghx,Gexcept(hx))=1,则表示当前主机对外连接IP历史数据Ghx与群组G内其他所有主机对外连接IP历史数据Gexcept(hx)不存在相同样本或者存在一个相同样本,即当前主机Gx存在少有对外连接IP历史,此时判定当前主机Gx存在对外连接IP历史。
判断当前主机Gx是否存在异常WEB应用文件目录时,则需要利用第四预设模型T4将当前主机WEB应用文件目录数据Gmx与除Gx外其他所有属于主机群组G内主机WEB应用文件目录数据Gexcept(mx)进行比对,即计算T4(Gmx,Gexcept(mx))。若T4(Gmx,Gexcept(mx))=0,则表示当前主机WEB应用文件目录数据Gmx与群组G内其他所有主机WEB应用文件目录数据Gexcept(mx)存在至少一个相同样本,此时判定当前主机WEB应用文件目录数据Gmx正常;若T4(Gmx,Gexcept(mx))=1,则表示当前主机WEB应用文件目录数据Gmx与群组G内其他所有主机WEB应用文件目录数据Gexcept(mx)不存在相同样本,即当前主机Gx存在独有WEB应用文件目录,此时判定当前主机Gx存在异常WEB应用文件目录。
判断当前主机Gx是否存在异常命令操作时,则需要利用第五预设模型T5将当前主机命令操作日志数据Grx与除Gx外其他所有属于主机群组G内主机命令操作日志数据Gexcept(rx)进行比对,即计算T5(Grx,Gexcept(rx))。若T5(Grx,Gexcept(rx))=0,则表示当前主机命令操作日志数据Grx与群组G内其他所有主机命令操作日志数据Gexcept(rx)存在至少两个相同样本,此时判定当前主机命令操作日志数据Grx正常;若T5(Grx,Gexcept(rx))=1,则表示当前主机命令操作日志数据Grx与群组G内其他所有主机命令操作日志数据Gexcept(rx)不存在相同样本或者存在一个相同样本,即当前主机Gx存在独有命令操作日志数据,此时判定当前主机Gx存在异常命令操作。
判断当前主机Gx是否存在异常开放端口时,则需要利用第六预设模型T6将当前主机开放端口历史数据Gdx与除Gx外其他所有属于主机群组G内主机开放端口历史数据Gexcept(dx)进行比对,即计算T6(Gdx,Gexcept(dx))。若T6(Gdx,Gexcept(dx))=0,则表示当前主机开放端口历史数据Gdx与群组G内其他所有主机开放端口历史数据Gexcept(dx)存在至少一个相同样本,此时判定当前主机开放端口历史数据Gdx正常;若T6(Gdx,Gexcept(dx))=1,则表示当前主机开放端口历史数据Gdx与群组G内其他所有主机开放端口历史数据Gexcept(dx)不存在相同样本,即当前主机Gx存在独有开放端口历史,此时判定当前主机Gx存在异常开放端口。
判断当前主机Gx是否存在异常远程端口连接时,则需要利用第七预设模型T7将当前主机连接远程端口历史数据Gkx与除Gx外其他所有属于主机群组G内主机连接远程端口历史数据Gexcept(kx)进行比对,即计算T7(Gkx,Gexcept(kx))。若T7(Gkx,Gexcept(kx))=0,则表示当前主机连接远程端口历史数据Gkx与群组G内其他所有主机连接远程端口历史数据Gexcept(kx)存在至少一个相同样本,此时判定当前主机连接远程端口历史数据Gkx正常;若T7(Gkx,Gexcept(kx))=1,则表示当前主机连接远程端口历史数据Gkx与群组G内其他所有主机连接远程端口历史数据Gexcept(kx)不存在相同样本,即当前主机Gx存在独有连接远程端口历史,此时判定当前主机Gx存在异常远程端口连接。
上述所有异常行为判断完成后,若第一预设模型T1至第七预设模型T7共七个模型的计算结果存在结果为1的情况,则说明当前主机存在异常行为;根据预设恶意行为库,判断当前主机存在的异常行为是否属于恶意行为。若被判定为存在恶意行为,则向用户发送第一提示信息,并根据对应的异常行为的数量计算上述主机的危险等级,即对异常行为的数量进行相加得到主机的危险等级。该异常行为指的是能够与恶意行为相对应的异常行为;否则向用户发送第二提示消息。上述第一提示信息包括警示信息和处理建议,第二提示消息仅包括警示信息。若第一预设模型T1至第七预设模型T7共七个模型的计算结果均为0,则说明当前主机不存在异常行为,属于完全无风险主机。
比如,对于主机群组G内的主机G5,计算后得到T4(G5,Gexcept(5))=1,T5(G5,Gexcept(5))=1,以及T7(G5,Gexcept(5))=1,那么可判定该主机存在异常WEB应用文件目录、异常命令操作以及异常远程端口连接历史,然后利用预设恶意行为库,判定该主机的WEB应用文件目录被插入WebShell,且该主机被利用命令操作设置为自动连接特定的远程端口,从而执行恶意监听指令,所以该主机被判定为存在恶意行为,那么就向用户发送恶意行为对应的警示信息和解决建议。并利用异常行为的数量进行相加得到该主机的危险等级,所以可得到该主机危险等级D=T1(G5,Gexcept(5))+T2(G5,Gexcept(5))+T3(G5,Gexcept(5))+T4(G5,Gexcept(5))+T5(G5,Gexcept(5))+T6(G5,Gexcept(5))+T7(G5,Gexcept(5))=3。需要说明的是,D数值越大,表明对应的主机危险等级越高。
对于主机群组G内的主机G6,计算后得到T1(G6,Gexcept(6))=1,T5(G6,Gexcept(6))=1,那么可判定该主机存在异常系统账户以及异常命令操作,然后利用预设恶意行为库,判定该主机的异常系统账户权限较低,并且异常命令操作均为常规系统维护操作,不属于恶意倾向行为,所以该主机被判定为不存在恶意行为,判定为运维人员的单机维护,并设置T1(G6,Gexcept(6))=0以及T5(G6,Gexcept(6))=0,那么该主机的危险等级就为7个预设模型的结果之和,即为0,并且该主机向用户发送异常行为对应的警示信息,即该主机不同于其他主机的操作细节。
其中,本实施例中的七个模型进行判断计算的过程均包括三步:数据解构、数据聚合和判断结果返回;数据解构即根据当前预设模型对应的受众数据提供不同的解构函数或算法,将受众数据由数据集合的形式解构为多个独立条目数据,并将各独立条目数据以键值对的形式与原数据集合进行映射关联,以方便后续进行数据聚合和统计,其中键值对中的键对应的是当前主机,键值对中的值对应的是主机数据。数据聚合即根据各预设模型的受众数据的数据格式,选择合适的数据结构对受众数据进行聚合存储,即对当前数据结构中不存在的受众数据进行存储,若受众数据已存在于数据结构中,则将对应元素的数据计数器进行自增1操作,并在对应数据键值对对应的数据集合上进行记录,然后利用排序算法对数据计数器的值按照由小到大的顺序排序。判断结果返回即根据各预设模型的特定阈值对上述已排序数据结构进行截断,将所有在阈值之下的数据链条进行截取,并在数据键值对对应的数据集合上进行记录,对此类数据集合对应的主机返回1值,代表在该预设模型判定上存在风险;其余主机返回0值,表示该预设模型未发现风险。
具体来说,判断当前主机Gx是否存在异常系统账户时,受众数据为各主机账户信息,对于不同的操作系统,第一预设模型T1提供不同的账户信息解构算法对受众数据组成的集合Gix进行解构,解构后得到的每台主机对应的账户信息表示为Gix1至Gixn,然后将上述账户信息以键值对的形式与Gix进行映射关联。需要说明的是,键值对中的键对应的是当前主机,键值对中的值对应的是主机账户信息。本实施例采用字符串分割算法作为解构算法,在其他实施例中,也可以利用其他算法进行解构。然后第一预设模型T1进行数据聚合时,利用单向链表存储数据条目,若账户信息Gixn不存在当前单向链表中,则将账户信息Gixn存储到当前单向链表中,并将该链表节点指针域与其对应键值对Gix关联;否则将对应元素的数据计数器进行自增1操作;最终在所有数据存储完成后,使用排序算法根据单向链表各节点的数据计数器大小对该单向链表进行从小到大排序,本实施例中采用的排序算法是快速排序算法,在其他实施例中,也可以利用其他排序算法。最后第一预设模型T1对数据聚合后的结果进行判断结果返回操作,此处设置的阈值为1,即对单向链表节点中数据计数器数值为1的节点进行截取,并根据对应节点指针域关联的Gix确认该数据对应的主机,该主机的判断结果返回值为1,表明该主机存在独有账户,并判定为异常系统账户;若单向链表节点中数据计数器数值大于1,则判断结果返回值为0,表示该主机不存在风险。
判断当前主机Gx是否存在异常进程运行历史时,受众数据为各主机运行进程历史数据,对于不同的操作系统,第二预设模型T2提供不同的进程信息解构算法对受众数据组成的集合Gsx进行解构,解构后得到的每台主机对应的进程信息表示为Gsx1至Gsxn,然后将上述进程信息以键值对的形式与Gsx进行映射关联。需要说明的是,键值对中的键对应的是当前主机,键值对中的值对应的是主机进程信息。然后第二预设模型T2进行数据聚合时,利用向量存储数据条目,若进程信息Gsxn不存在当前向量中,则将进程信息Gsxn存储到当前向量中,并将该向量节点指针域与其对应键值对Gsx关联;否则将对应元素的数据计数器进行自增1操作;最终在所有数据存储完成后,使用排序算法根据向量各节点的数据计数器大小对该向量进行从小到大排序,本实施例中采用的排序算法是选择排序算法。最后第二预设模型T2对数据聚合后的结果进行判断结果返回操作,此处设置的阈值为1,即对向量节点中数据计数器数值为1的节点进行截取,并根据对应节点指针域关联的Gsx确认该数据对应的主机,该主机的判断结果返回值为1,表明该主机存在独有的进程信息,并判定为异常进程,即该主机存在潜在风险;若向量节点中数据计数器数值大于1,则判断结果返回值为0,表示该主机不存在风险。
判断当前主机Gx是否存在异常对外连接IP历史时,受众数据为各主机对外连接IP历史数据,对于不同的操作系统,第三预设模型T3提供不同的对外连接IP历史信息解构算法对受众数据组成的集合Ghx进行解构,解构后得到的每台主机对应的对外连接IP历史数据表示为Ghx1至Ghxn,然后将上述对外连接IP历史信息以键值对的形式与Ghx进行映射关联。需要说明的是,键值对中的键对应的是当前主机,键值对中的值对应的是主机对外连接IP历史数据。然后第三预设模型T3进行数据聚合时,利用字符串数组存储数据条目,若对外连接IP历史数据Ghxn不存在当前字符串数组中,则将对外连接IP历史数据Ghxn存储到当前字符串数组中,并将该字符串数组节点指针域与其对应键值对Ghx关联;否则将对应元素的数据计数器进行自增1操作;最终在所有数据存储完成后,使用排序算法根据字符串数组各节点的数据计数器大小对该字符串数组进行从小到大排序,本实施例中采用的排序算法是插入排序算法。最后第三预设模型T3对数据聚合后的结果进行判断结果返回操作,此处设置的阈值为2,即对字符串数组节点中数据计数器数值小于或者等于2的节点进行截取,并根据对应节点指针域关联的Ghx确认该数据对应的主机,该主机的判断结果返回值为1,表明该主机与其他主机不存在相同的对外连接IP历史样本或仅存在一个相同样本,即该主机存在潜在风险;若字符串数组节点中数据计数器数值大于2,则判断结果返回值为0,表示该主机不存在风险。
判断当前主机Gx是否存在异常WEB应用文件目录时,受众数据为各主机WEB应用文件目录数据,对于不同的操作系统,第四预设模型T4提供不同的WEB应用文件目录解构算法对受众数据组成的集合Gmx进行解构,解构后得到的每台主机对应的WEB应用文件目录数据表示为Gmx1至Gmxn,然后将上述WEB应用文件目录以键值对的形式与Gmx进行映射关联。需要说明的是,键值对中的键对应的是当前主机,键值对中的值对应的是主机WEB应用文件目录数据。然后第四预设模型T4进行数据聚合时,利用树形结构存储数据条目,若WEB应用文件目录数据Gmxn不存在当前树形结构中,则将WEB应用文件目录数据Gmxn存储到当前树形结构中,并将该树形结构节点指针域与其对应键值对Gmx关联;否则将对应元素的数据计数器进行自增1操作;最终在所有数据存储完成后,使用排序算法根据树形结构各节点的数据计数器大小对该树形结构进行从小到大排序,本实施例中采用的排序算法是堆排序算法。最后第四预设模型T4对数据聚合后的结果进行判断结果返回操作,此处设置的阈值为1,即对树形结构节点中数据计数器数值为1的节点进行截取,并根据对应节点指针域关联的Gmx确认该数据对应的主机,该主机的判断结果返回值为1,表明该主机存在独有的WEB应用文件目录,即该主机存在潜在风险;若树形结构节点中数据计数器数值大于1,则判断结果返回值为0,表示该主机不存在风险。
判断当前主机Gx是否存在异常命令操作时,受众数据为各主机命令操作日志数据,对于不同的操作系统,第五预设模型T5提供不同的命令操作日志数据解构算法对受众数据组成的集合Grx进行解构,解构后得到的每台主机对应的命令操作日志数据表示为Grx1至Grxn,然后将上述命令操作日志数据以键值对的形式与Grx进行映射关联。需要说明的是,键值对中的键对应的是当前主机,键值对中的值对应的是主机命令操作日志数据。然后第五预设模型T5进行数据聚合时,利用哈希表存储数据条目,若命令操作日志数据Grxn不存在当前哈希表中,则将命令操作日志数据Grxn存储到当前哈希表中,并将该哈希表节点指针域与其对应键值对Grx关联;否则将对应元素的数据计数器进行自增1操作;最终在所有数据存储完成后,使用排序算法根据哈希表各节点的数据计数器大小对该哈希表进行从小到大排序,本实施例中采用的排序算法是哈希排序算法。最后第五预设模型T5对数据聚合后的结果进行判断结果返回操作,此处设置的阈值为2,即对哈希表节点中数据计数器数值小于或者等于2的节点进行截取,并根据对应节点指针域关联的Grx确认该数据对应的主机,该主机的判断结果返回值为1,表示该主机与其他主机不存在相同命令操作历史样本或仅存在一个相同样本,即该主机存在潜在风险;若哈希表节点中数据计数器数值大于2,则判断结果返回值为0,表示该主机不存在风险。
判断当前主机Gx是否存在异常开放端口时,受众数据为各主机开放端口历史数据,对于不同的操作系统,第六预设模型T6提供不同的主机开放端口数据解构算法对受众数据组成的集合Gdx进行解构,解构后得到的每台主机对应的主机开放端口数据表示为Gdx1至Gdxn,然后将上述主机开放端口数据以键值对的形式与Gdx进行映射关联。需要说明的是,键值对中的键对应的是当前主机,键值对中的值对应的是主机开放端口历史数据。然后第六预设模型T6进行数据聚合时,利用一维结构体数组存储数据条目,若主机开放端口数据Gdxn不存在当前一维结构体数组中,则将主机开放端口数据Gdxn存储到当前一维结构体数组中,并将该一维结构体数组节点指针域与其对应键值对Gdx关联;否则将对应元素的数据计数器进行自增1操作;最终在所有数据存储完成后,使用排序算法根据一维结构体数组各节点的数据计数器大小对该一维结构体数组进行从小到大排序,本实施例中采用的排序算法是希尔排序算法。最后第六预设模型T6对数据聚合后的结果进行判断结果返回操作,此处设置的阈值为1,即对一维结构体数组节点中数据计数器数值为1的节点进行截取,并根据对应节点指针域关联的Gdx确认该数据对应的主机,该主机的判断结果返回值为1,表明该主机存在独有的主机开放端口,即该主机存在潜在风险;若一维结构体数组节点中数据计数器数值大于1,则判断结果返回值为0,表示该主机不存在风险。
判断当前主机Gx是否存在异常远程端口连接时,受众数据为各主机连接远程端口历史数据,对于不同的操作系统,第七预设模型T7提供不同的远程连接端口数据解构算法对受众数据组成的集合Gkx进行解构,解构后得到的每台主机对应的远程连接端口数据表示为Gkx1至Gkxn,然后将上述远程连接端口数据以键值对的形式与Gkx进行映射关联。需要说明的是,键值对中的键对应的是当前主机,键值对中的值对应的是主机连接远程端口历史数据。然后第七预设模型T7进行数据聚合时,利用列表存储数据条目,若远程连接端口数据Gkxn不存在当前列表中,则将远程连接端口数据Gkxn存储到当前列表中,并将该列表节点指针域与其对应键值对Gkx关联;否则将对应元素的数据计数器进行自增1操作;最终在所有数据存储完成后,使用排序算法根据列表各节点的数据计数器大小对该列表进行从小到大排序,本实施例中采用的排序算法是归并排序算法。最后第七预设模型T7对数据聚合后的结果进行判断结果返回操作,此处设置的阈值为1,即对列表节点中数据计数器数值为1的节点进行截取,并根据对应节点指针域关联的Gkx确认该数据对应的主机,该主机的判断结果返回值为1,表明该主机存在独有的远程连接端口,即该主机存在潜在风险;若列表节点中数据计数器数值大于1,则判断结果返回值为0,表示该主机不存在风险。
实施例二
基于同一发明构思,本发明实施例二公开了一种主机异常行为识别系统,该系统的实施可参照上述方法的过程实现,重复之处不再冗述。
如图2所示,本发明实施例二公开了一种主机异常行为识别系统,包括:
主机数据获取模块201,用于按照预设时间间隔获取主机数据,以及上述主机所属群组内其余主机的数据,并依据预设模型将主机数据解构为多个独立条目数据,将独立条目数据与对应的主机以键值对的形式进行映射关联;然后对键值对进行聚合存储,得到各个键值对对应的数据计数器值;若数据计数器值小于或者等于预设模型对应的预设阈值,则判断主机存在异常行为,否则判断主机不存在异常行为。
异常行为识别模块202,用于依据上述主机数据、上述主机所属群组内其余主机的数据以及预设模型,判断上述主机是否存在异常行为;若上述主机存在异常行为,则根据预设恶意行为库,判断上述主机是否存在恶意行为;若上述主机存在恶意行为,则向用户发送第一提示信息,并根据上述主机存在的异常行为的数量获取上述主机的危险等级,即对异常行为的数量进行相加,得到上述主机的危险等级;若上述主机不存在恶意行为,则向用户发送第二提示信息。
上述主机数据包括主机账户数据、主机运行进程历史数据、主机对外连接IP历史数据、主机WEB应用文件目录数据、主机命令操作日志数据、主机开放端口历史数据以及主机连接远程端口历史数据。
上述预设模型包含用于判断主机是否存在异常系统账户的第一预设模型T1、用于判断主机是否存在异常进程运行历史的第二预设模型T2、用于判断主机是否存在异常对外连接IP历史的第三预设模型T3、用于判断主机是否存在异常WEB应用文件目录的第四预设模型T4、用于判断主机是否存在异常命令操作的第五预设模型T5、用于判断主机是否存在异常开放端口的第六预设模型T6,以及用于判断主机是否存在异常远程端口连接的第七预设模型T7。
本发明实施例公开的一种主机异常行为识别方法及系统通过先获取主机数据,然后将该主机数据和主机群组内的其他主机数据利用预设模型进行比对,判断该主机是否存在异常行为,当存在异常行为时,判断该异常是否属于恶意行为,实现了对主机异常行为的及时主动检测,并在判定异常行为属于恶意行为之后,给予用户相应的提示信息,避免了由于无法及时检测到主机的异常行为而对用户造成损失。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。