掌桥专利:专业的专利平台
掌桥专利
首页

受控主机的进程流量审计方法与系统

文献发布时间:2023-06-19 11:49:09



技术领域

本发明属于主机安全监控与审计技术领域,尤其是涉及一种对受控主机的进程流量进行审计的方法与系统。

背景技术

随着通信和网络技术的进一步发展,网络安全愈发重要。从网络运行和管理者角度说,希望对本地网络信息的访问、读写等操作受到保护和控制,避免出现“ 陷门”、病毒、非法存取、拒绝服务和网络资源非法占用和非法控制等威胁,制止和防御网络黑客的攻击。

为了发现网络中存在的问题,通常需要对网络数据进行分析,常见的网络分析多是针对数据包、地址、会话、协议等,这种分析方式虽然能确定数据包的类型、大小等信息,但是无法确定这些数据包的来源,即是由什么软件产生的,从而无法进行进一步的更针对性的安全检测。

而目前的主机监控系统的进程流量审计,能够有效确定数据产生来源。但是也存在许多不足,例如实现进程全生命周期的流量审计难度较大,数据查找处理过程繁琐,流量信息中存在大量冗余数据,不利于系统资源利用。

发明内容

基于上述背景,本发明旨在提出一种受控主机的进程流量审计方法与系统,以对受控主机进程流量进行完善的审计,减少冗余数据,并提高系统的资源利用效率。具体的技术方案如下所述:

第一方面,提供一种受控主机的进程流量审计方法,包括:

抓取主机报文,获取发送或接收该报文的主机进程,解析确定报文的数据部分大小;

判断所述进程是否已存在于进程流量信息表:若进程已存在,则将所述报文数据部分大小的值加到表中该进程的累计流量值上;若所述进程不存在,则创建进程、报文方向与数据部分大小的对应关系;

根据预设的策略,对进程流量信息表中各进程的流量信息进行审计。

作为优选的,所述对进程流量信息表中各进程的流量信息进行审计,包括:定时的判断进程对应的流量信息在所述进程流量信息表中的累计记录时间是否大于策略配置的阈值,若大于所述阈值则将该进程的流量信息清零。

进一步的,所述对进程流量信息表中各进程的流量信息进行审计,还包括:判断进程在规定时长内的总流量值是否超过策略配置的阈值,若超过则生成审计日志并告警。

以及,所述对进程流量信息表中各进程的流量信息进行审计,还包括:规定周期内,若进程在每5秒内的平均发送流量或接收量超过策略配置的阈值,则生成审计日志并告警。

作为优选的,若所述进程在所述进程流量信息表中不存在,则创建所述对应关系的同时,保存创建时间。

进一步,所述新创建进程、报文方向与应用层数据部分大小的对应关系之前,若所述进程流量信息表的数据量已达到最大容量,则按照所述对应关系创建时间先后顺序,将新数据覆盖旧数据。

作为优选的,所述报文的进程ID、报文方向与报文数据部分大小组装成结构体发送至用户态,用户态使用map保存所述进程流量信息表;所述进程流量信息表中包括:进程ID、进程名、数据方向与对应方向的累计流量,所述数据方向包括报文发送与报文接收。

进一步,所述进程的流量信息,包括统计进程的TCP、UDP与ICMP报文的发送与接收流量。

第二方面,提供一种进程流量审计系统,包括:

抓包模块,用于通过netfilter抓取受控主机的LOCAL_INPUT链和LOCAL_OUTPUT链的IP报文;

解析模块,用于解析所述抓取到的报文,统计出报文的数据部分大小,并将报文的进程ID、报文方向与报文数据部分大小发送至查找模块;

查找模块,根据收到的进程ID,查找存储模块中的进程流量信息表是否存在对应的进程名;若已存在则将报文数据部分大小加到表中对应的流量值;否则创建进程、报文方向与数据部分大小的对应关系;

存储模块,用于存储所述进程流量信息表;

审计模块,根据预设的策略,对进程流量信息表中各进程的流量信息进行审计。

所述审计模块,包括:

定时的判断进程对应的流量信息在所述进程流量信息表中的累计记录时间是否大于策略配置的阈值,若大于所述阈值则将该进程的流量信息清零;

判断进程在规定时长内的总流量值是否超过策略配置的阈值,若超过则生成审计日志并告警;

规定周期内,若进程在每5秒内的平均发送流量或接收量超过策略配置的阈值,则生成审计日志并告警。

采用以上技术方案,本发明的有益效果在于:记录进程全生命周期上传和下载的所有IP报文流量以根据策略配置对进程流量实现更全面的审计,并且将存储与查找放在用户态进行,避免了在内核态频繁遍历数组引起的性能问题;同时清除不存活进程的流量信息,避免记录冗余数据,有利于提高系统资源利用效率。

附图说明

图1为本发明的受控主机的进程流量审计方法实施例,工作流程示意图;

图2为本发明的受控主机的进程流量审计系统实施例,组成框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。

如图1所示,一种受控主机的进程流量审计方法,包括:

步骤1:抓取主机报文,获取发送或接收该报文的主机进程,解析确定报文的数据部分大小;

步骤2:判断所述进程是否已存在于进程流量信息表:

若所述进程已存在,则将所述报文数据部分大小的值加到表中该进程的累计流量值上。

若所述进程不存在,则创建进程、报文方向与数据部分大小的对应关系,同时保存创建时间。新创建进程、报文方向与应用层数据部分大小的对应关系之前,若所述进程流量信息表的数据量已达到最大容量,则按照所述对应关系创建时间先后顺序,将新数据覆盖旧数据。

所述报文的进程ID、报文方向与报文数据部分大小组装成结构体发送至用户态,用户态使用map保存所述进程流量信息表;所述进程流量信息表中包括:进程ID、进程名、数据方向与对应方向的累计流量,所述数据方向包括报文发送与报文接收。

进一步,所述进程的流量信息,包括统计进程的TCP、UDP与ICMP报文的发送与接收流量。

步骤3:根据预设的策略,对进程流量信息表中各进程的流量信息进行审计,包括:

定时的判断进程对应的流量信息在所述进程流量信息表中的累计记录时间是否大于策略配置的阈值,若大于所述阈值则将该进程的流量信息清零;

判断进程在规定时长内的总流量值是否超过策略配置的阈值,若超过则生成审计日志并告警;

规定周期内,若进程在每5秒内的平均发送流量或接收量超过策略配置的阈值,则生成审计日志并告警。

如图2所示,一种进程流量审计系统,包括:

抓包模块,用于通过netfilter抓取受控主机的LOCAL_INPUT链和LOCAL_OUTPUT链的IP报文;

解析模块,用于解析所述抓取到的报文,统计出报文的数据部分大小,并将报文的进程ID、报文方向与报文数据部分大小发送至查找模块;

查找模块,根据收到的进程ID,查找存储模块中的进程流量信息表是否存在对应的进程名;若已存在则将报文数据部分大小加到表中对应的流量值;否则创建进程、报文方向与数据部分大小的对应关系;

存储模块,用于存储所述进程流量信息表;

审计模块,根据预设的策略,对进程流量信息表中各进程的流量信息进行审计。

所述审计模块,包括:

定时的判断进程对应的流量信息在所述进程流量信息表中的累计记录时间是否大于策略配置的阈值,若大于所述阈值则将该进程的流量信息清零;

判断进程在规定时长内的总流量值是否超过策略配置的阈值,若超过则生成审计日志并告警;

规定周期内,若进程在每5秒内的平均发送流量或接收量超过策略配置的阈值,则生成审计日志并告警。

该审计系统实现进程流量审计的具体过程,包括:

利用netfilter,抓取LOCAL_INPUT链和LOCAL_OUTPUT链的IP报文。INPUT类型,是指网络上其它主机送给本机处理(Local Process)的数据包,例如当网络上的其它使用都来访问本机的HTTP服务时就会产生这种类型的数据包。OUTPUT类型,是本机Process所产生的数据包,即为OUTPUT类型的数据包;例如,当使用者在本机上启用Firefox去访问网络上的其它主机时就会产生这种类型的封包。

解析、筛选出规定协议的报文,统计报文的数据部分大小,将:报文方向、所述数据部分大小、对应的进程ID组成结构体发送至用户态;

用户态使用一个map 保存进程流量信息表,当接收到来自内核态的数据时,查找数据中进程ID对应的进程名,再使用map.find(进程名)查找此进程对应的流量信息。

根据所述结构体中的进程ID从用户态的进程流量信息表中查找对应的流量信息:若查找到,则根据此次数据方向将其记录的上传(发送)或下载(接收)流量加上此次数据部分大小;若未查找到,则根据进程名将从内核态接收到的数据插入map中。

如上所述的受控主机的进程流量审计方法与系统实施例,可以记录进程全生命周期上传和下载的所有IP报文流量,并且将查找放在用户态,避免了在内核态频繁遍历数组引起的性能问题,同时清除不存活进程的流量信息,避免记录冗余数据;有利于提高系统资源利用效率。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,所述的存储介质,如:ROM/RAM、磁碟、光盘等。

对上述公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和相一致的最宽的范围。

相关技术
  • 受控主机的进程流量审计方法与系统
  • 主机网络配置的审计方法、系统与装置
技术分类

06120113063269