一种基于eBPF的进程日志采集及自动降噪方法和系统
技术领域
本发明涉及网络安全技术领域,尤其涉及一种基于eBPF的进程日志采集及自动降噪方法和系统。
背景技术
随着互联网应用和技术发展,针对计算机的攻击方式越发隐蔽、多样和智能。目前对网络攻击的主要防护手段是防火墙和入侵检测技术,防火墙作为内网和外网的一道警戒线,可以有效地阻拦大部分的恶意攻击。但是在实际应用中,防火墙的功能是有局限性的,它的防御策略是静态的,且只能阻挡来自外网的攻击。入侵检测技术可以有效弥补防火墙的缺陷,它可以实时监控主机状态以判断用户行为是否正常。
进程采集和监控是网络安全技术的重要实现环节,因为进程是系统动态执行操作的基本单位,服务器上任意程序的执行都会启动相应的进程,包括恶意程序,如反弹、提权、木马病毒、蠕虫、挖矿等恶意攻击行为都会产生对应的进程。入侵检测技术可以通过进程日志对服务器上的行为进行分析,用于研判服务器是否被恶意攻击,并进行攻击溯源。
目前,主要采用netlink connector或Linux Audit技术对进程日志进行采集,从Linux内核获取进程日志的少量信息,在用户态对进程日志的其它关键信息进行补全。现有的进程日志采集方法存在以下不足:时效性较差,无法准确获取瞬时进程信息,因为瞬时进程退出后用户态无法补全其进程日志,对于瞬时进程的日志采集,漏报率较高;对于频繁产生大量进程的业务场景,采集的进程日志量大、漏报率高、无效数据多,入侵检测技术对恶意行为检出率低,消耗的系统资源高。
因此,如何提供一种更加高效、准确、安全的进程日志采集方法,成为亟待解决的技术问题。
发明内容
有鉴于此,为了克服现有技术的不足,本发明提供一种基于eBPF的进程日志采集及自动降噪方法和系统。
一方面,本发明提供一种基于eBPF的进程日志采集及自动降噪方法,包括:
配置进程降噪模板,将配置的进程降噪模板存储至本地;
当应用服务器上有进程创建时,采集应用服务器上相应的进程日志,根据进程降噪模板对采集的进程日志进行降噪过滤;
对日志采集以及降噪过滤的状态进行监控和展示;
根据历史进程日志对进程降噪模板进行动态更新。
进一步地,本发明基于eBPF的进程日志采集及自动降噪方法中,配置进程降噪模板,将配置的进程降噪模板存储至本地,包括:
通过降噪模块配置进程降噪模板,将配置的进程降噪模板下发至进程日志采集用户态Agent;
通过进程日志采集用户态Agent接收进程降噪模块配置的进程降噪模板,将接收的进程降噪模板写入本地的sqlite数据库和eBPF map。
进一步地,本发明基于eBPF的进程日志采集及自动降噪方法中,采集应用服务器上相应的进程日志,根据进程降噪模板对采集的进程日志进行降噪过滤,包括:
通过进程日志采集内核态Agent从应用服务器上采集进程日志,从eBPF map中读取进程降噪模板,将从应用服务器上采集的进程日志与进程降噪模板进行匹配;
如果采集的进程日志与进程降噪模板匹配成功,丢弃所述进程日志;如果采集的进程日志与进程降噪模板匹配失败,通过eBPF map将进程日志发送给进程日志采集用户态Agent,并通过进程日志采集用户态Agent将进程日志发送至ES数据库进行存储。
进一步地,本发明基于eBPF的进程日志采集及自动降噪方法中,对日志采集以及降噪过滤的状态进行监控和展示,包括:
通过进程日志采集用户态Agent将内核态Agent采集的进程日志条数、降噪过滤的进程日志条数、存储至ES数据库的日志条数,进程日志采集用户态Agent的运行状态、资源占用,以及应用服务器的系统负载和资源使用数据发送至监控数据处理模块进行监控,并通过监控数据展示模块进行展示。
进一步地,本发明基于eBPF的进程日志采集及自动降噪方法中,根据历史进程日志对进程降噪模板进行动态更新,包括:通过日志分析模块从ES数据库中读取历史进程日志,对历史进程日志数据分析,生成进程降噪模板,将准确率达到阈值的进程降噪模板发送至进程降噪配置模块。
进一步地,本发明基于eBPF的进程日志采集及自动降噪方法中,对历史进程日志数据分析,生成进程降噪模板,通过进程降噪模板确认模块将准确率达到阈值的进程降噪模板发送至进程降噪配置模块,包括:
根据进程产生频率、进程相似度以及产生所述进程的应用服务器的数量从历史进程日志中筛选用于进程降噪模板更新的进程日志,提取所述进程日志的特征形成进程降噪模板,通过进程降噪模板确认模块根据业务场景和安全场景确认所述进程降噪模板的准确率,将准确率达到阈值的进程降噪模板发送至进程降噪配置模块。
另一方面,本发明提供一种基于eBPF的进程日志采集及自动降噪系统,包括:
日志采集层,用于从应用服务器上采集进程日志,对采集的进程日志进行降噪过滤;
控制层,用于控制应用服务器上的进程日志采集以及进程降噪模板的、更新和下发;
监控层,用于对日志采集以及降噪过滤的状态进行监控和展示;
日志分析层,用于根据历史进程日志对进程降噪模板进行动态更新;
存储层,用于存储进程日志采集用户态Agent和进程日志采集内核态Agent的交互数据,进程日志采集用户态Agent发送的监控指标数据,存储日志分析层配置的进程降噪模板和更新的进程降噪模板,进程日志采集用户态Agent接收的进程降噪模板和采集开关状态以及进程日志。
进一步地,本发明基于eBPF的进程日志采集及自动降噪系统中,日志采集层包括日志采集用户态Agent、进程日志采集内核态Agent和应用服务器,其中,进程日志采集内核态Agent用于采集应用服务器上相应的进程日志,根据进程降噪模板对采集的进程日志进行降噪过滤;进程日志采集用户态Agent用于将进程日志采集内核态Agent加载至内核或从内核卸载,接收进程降噪模块配置的进程降噪模板,将接收的进程降噪模板写入本地的sqlite数据库和eBPF map;将内核态Agent采集的进程日志条数、降噪过滤的进程日志条数、存储至ES数据库的日志条数,进程日志采集用户态Agent的运行状态、资源占用,以及应用服务器的系统负载和资源使用数据发送至监控数据处理模块和监控数据展示模块;应用服务器用于部署进程日志采集用户态Agent和进程日志采集内核态Agent。
进一步地,本发明基于eBPF的进程日志采集及自动降噪系统中,控制层包括Agent管理模块和进程降噪模板配置模块,其中,Agent管理模块用于控制应用服务器上的进程日志采集用户态Agent;进程降噪模板配置模块用于配置进程降噪模板,还用于查询、展示和修改日志分析层生成的进程降噪模板,将更新的进程降噪模板下发至进程日志采集用户态Agent。
进一步地,本发明基于eBPF的进程日志采集及自动降噪系统中,监控层包括监控数据处理模块和监控数据展示模块,其中,监控处理模块用于对内核态Agent采集的进程日志条数、降噪过滤的进程日志条数、存储至ES数据库的日志条数,进程日志采集用户态Agent的运行状态、资源占用,以及应用服务器的系统负载和资源使用数据进行监控,监控数据展示模块用于对内核态Agent采集的进程日志条数、降噪过滤的进程日志条数、存储至ES数据库的日志条数,进程日志采集用户态Agent的运行状态、资源占用,以及应用服务器的系统负载和资源使用数据进行展示。
进一步地,本发明基于eBPF的进程日志采集及自动降噪系统中,日志分析层包括日志分析模块和进程降噪模板确认模块,其中,日志分析模块用于从ES数据库中读取历史进程日志,对历史进程日志数据分析,生成进程降噪模板;进程降噪模板确认模块用于根据业务场景和安全场景确认所述进程降噪模板的准确率,将准确率达到阈值的进程降噪模板发送至进程降噪配置模块。
进一步地,本发明基于eBPF的进程日志采集及自动降噪系统中,存储层包括eBPFmap,mysql数据库、sqlite数据库和ES数据库,其中,eBPF map用于存储进程日志采集用户态Agent和进程日志采集内核态Agent的交互数据;mysql数据库用于存储进程日志采集用户态Agent发送的监控指标数据,存储日志分析层配置的进程降噪模板和更新的进程降噪模板;sqlite数据库用于存储进程日志采集用户态Agent接收的进程降噪模板和采集开关状态;ES数据库用于存储进程日志。
本发明基于eBPF的进程日志采集及自动降噪方法和系统,具有以下有益效果:
1.可以提高进程日志采集的时效性,大幅降低瞬时进程的日志采集漏报率;
2.可以显著减少频繁产生大量进程的业务场景中无效进程日志数量,提高恶意行为检出率,降低用户态Agent以及进程日志采集对系统资源的消耗;
3.进程日志采集对应用透明、无感知,显著降低进程日志采集对系统的侵入性,不会对系统及应用造成影响。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明示例性第六实施例基于eBPF的进程日志采集及自动降噪系统的架构图。
图2为本发明示例性第七实施例基于eBPF的进程日志采集及自动降噪系统的架构图。
图3为本发明示例性第八实施例基于eBPF的进程日志采集及自动降噪方法的流程图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合;并且,基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
需要说明的是,下文描述在所附权利要求书的范围内的实施例的各种方面。应显而易见,本文中所描述的方面可体现于广泛多种形式中,且本文中所描述的任何特定结构及/或功能仅为说明性的。基于本公开,所属领域的技术人员应了解,本文中所描述的一个方面可与任何其它方面独立地实施,且可以各种方式组合这些方面中的两者或两者以上。举例来说,可使用本文中所阐述的任何数目个方面来实施设备及/或实践方法。另外,可使用除了本文中所阐述的方面中的一或多者之外的其它结构及/或功能性实施此设备及/或实践此方法。
本发明的技术原理如下:
基于Linux eBPF技术将进程日志采集内核态Agent附加到应用服务器内核的rawtracepoint,实时监控进程创建相关的系统调用,进程创建时根据创建方式执行execve、fork、vfork、clone四种系统调用中的一种,在这些系统调用进入、退出时执行自实现的进程日志采集逻辑,采集进程的关键日志信息:进程名、进程PID、进程NSPID、进程命令行、进程文件路径、进程工作路径、进程UID、进程EUID、进程GID、进程EGID、进程所属容器ID、父进程名、父进程PID、父进程NSPID、父进程命令行、父进程文件路径、父进程工作路径、父进程UID、父进程EUID、父进程GID、父进程EGID等,实现应用服务器的进程日志采集。这种进程日志采集方法时效性高,在内核态可以采集到瞬时进程的完整进程日志,进程日志的漏报率极低;在内核态根据系统调用进行采集,对应用透明、无感知,减少用户态程序工作量,不用根据/proc文件系统去补全进程日志,降低了用户态程序的资源消耗。进程日志采集内核态Agent采集到的进程日志根据日志分析层生成的进程降噪模板对进程日志进行过滤,符合进程降噪模板的进程日志会被过滤掉,未过滤的进程日志则通过eBPF map发送给进程日志采集用户态Agent。在频繁产生大量进程的业务场景下,可以过滤大量重复无效的数据,提升恶意行为的检出率,降低系统资源消耗。进程日志采集用户态Agent用于加载进程日志采集内核态Agent到内核或从内核卸载,开启或关闭进程日志采集功能,将进程降噪模板通过eBPF map发送给进程日志采集内核态Agent,通过eBPF map接收进程日志采集内核Agent采集到的进程日志,并将进程日志存储到ES中,将每分钟内核态Agent采集到的进程日志条数、降噪过滤的进程日志条数、存储到ES的日志条数以及用户态Agent的运行状态、资源占用(CPU/内存),应用服务器的系统负载,资源使用情况发送给监控层。
以下各实施例涉及的名词解释如下:
eBPF:全称是extended Berkeley Packet Filter,是Linux内核中一个非常灵活与高效的类虚拟机(virtual machine-like)组件,用于在许多内核hook点安全地执行字节码。
eBPF map:一个通用的数据结构,存储不同类型的数据,提供用户态和内核态数据交互、数据存储、多程序共享数据等功能。
图1为根据本发明示例性第一实施例的一种基于eBPF的进程日志采集及自动降噪方法的流程图,如图1所示,本实施例的方法,包括:
配置进程降噪模板,将配置的进程降噪模板存储至本地;
当应用服务器上有进程创建时,采集应用服务器上相应的进程日志,根据进程降噪模板对采集的进程日志进行降噪过滤;
对日志采集以及降噪过滤的状态进行监控和展示;
根据历史进程日志对进程降噪模板进行动态更新。
本发明示例性第二实施例提供一种基于eBPF的进程日志采集及自动降噪方法,本实施例是第一实施例所述方法的优选实施例,本实施例方法中,配置进程降噪模板,将配置的进程降噪模板存储至本地,包括:
通过降噪模块配置进程降噪模板,将配置的进程降噪模板下发至进程日志采集用户态Agent;
通过进程日志采集用户态Agent接收进程降噪模块配置的进程降噪模板,将接收的进程降噪模板写入本地的sqlite数据库和eBPF map。
本发明示例性第三实施例提供一种基于eBPF的进程日志采集及自动降噪方法,本实施例是第一实施例所述方法的优选实施例,本实施例方法中,采集应用服务器上相应的进程日志,根据进程降噪模板对采集的进程日志进行降噪过滤,包括:
通过进程日志采集内核态Agent从应用服务器上采集进程日志,从eBPF map中读取进程降噪模板,将从应用服务器上采集的进程日志与进程降噪模板进行匹配;
如果采集的进程日志与进程降噪模板匹配成功,丢弃所述进程日志;如果采集的进程日志与进程降噪模板匹配失败,通过eBPF map将进程日志发送给进程日志采集用户态Agent,并通过进程日志采集用户态Agent将进程日志发送至ES数据库进行存储。
本发明示例性第四实施例提供一种基于eBPF的进程日志采集及自动降噪方法,本实施例是第一实施例所述方法的优选实施例,本实施例方法中,对日志采集以及降噪过滤的状态进行监控和展示,包括:
通过进程日志采集用户态Agent将内核态Agent采集的进程日志条数、降噪过滤的进程日志条数、存储至ES数据库的日志条数,进程日志采集用户态Agent的运行状态、资源占用,以及应用服务器的系统负载和资源使用数据发送至监控数据处理模块进行监控,并通过监控数据展示模块进行展示。
本发明示例性第五实施例提供一种基于eBPF的进程日志采集及自动降噪方法,本实施例是第一实施例所述方法的优选实施例,本实施例方法中,根据历史进程日志对进程降噪模板进行动态更新,包括:通过日志分析模块从ES数据库中读取历史进程日志,对历史进程日志数据分析,生成进程降噪模板,将准确率达到阈值的进程降噪模板发送至进程降噪配置模块。
本实施例方法在实际应用中,对历史进程日志数据分析,生成进程降噪模板,通过进程降噪模板确认模块将准确率达到阈值的进程降噪模板发送至进程降噪配置模块,包括:
根据进程产生频率、进程相似度以及产生所述进程的应用服务器的数量从历史进程日志中筛选用于进程降噪模板更新的进程日志,提取所述进程日志的特征形成进程降噪模板,通过进程降噪模板确认模块根据业务场景和安全场景确认所述进程降噪模板的准确率,将准确率达到阈值的进程降噪模板发送至进程降噪配置模块。
具体的,在实际应用中,进程相似度通过父子进程关系匹配+进程命令行匹配+进程路径匹配进行确定。进程降噪模板确认模块用于使用专家知识根据安全场景和业务场景来确认该降噪模板的准确率并进行打分,分数超过阈值比如80分的进程降噪模板数据将会发送给应用服务器上的进程日志采集用户态Agent。
图1为根据本发明示例性第六实施例的一种基于eBPF的进程日志采集及自动降噪系统,如图1所示,本实施例的系统,包括:
日志采集层,用于从应用服务器上采集进程日志,对采集的进程日志进行降噪过滤;
控制层,用于控制应用服务器上的进程日志采集以及进程降噪模板的、更新和下发;
监控层,用于对日志采集以及降噪过滤的状态进行监控和展示;
日志分析层,用于根据历史进程日志对进程降噪模板进行动态更新;
存储层,用于存储进程日志采集用户态Agent和进程日志采集内核态Agent的交互数据,进程日志采集用户态Agent发送的监控指标数据,存储日志分析层配置的进程降噪模板和更新的进程降噪模板,进程日志采集用户态Agent接收的进程降噪模板和采集开关状态以及进程日志。
图2为根据本发明示例性第七实施例的一种基于eBPF的进程日志采集及自动降噪系统,本实施例是图1所示系统的优选实施例,如图2所示,本实施例的系统,包括:日志采集层,控制层,监控层,日志分析层,存储层。
日志采集层包括进程日志采集用户态Agent、进程日志采集内核态Agent和应用服务器,其中,进程日志采集内核态Agent用于采集应用服务器上相应的进程日志,根据进程降噪模板对采集的进程日志进行降噪过滤;进程日志采集用户态Agent用于将进程日志采集内核态Agent加载至内核或从内核卸载,接收进程降噪模块配置的进程降噪模板,将接收的进程降噪模板写入本地的sqlite数据库和eBPF map;将内核态Agent采集的进程日志条数、降噪过滤的进程日志条数、存储至ES数据库的日志条数,进程日志采集用户态Agent的运行状态、资源占用,以及应用服务器的系统负载和资源使用数据发送至监控数据处理模块和监控数据展示模块;应用服务器用于部署进程日志采集用户态Agent和进程日志采集内核态Agent。
控制层包括Agent管理模块和进程降噪模板配置模块,其中,Agent管理模块用于控制应用服务器上的进程日志采集用户态Agent;进程降噪模板配置模块用于配置进程降噪模板,还用于查询、展示和修改日志分析层生成的进程降噪模板,将更新的进程降噪模板下发至进程日志采集用户态Agent。
监控层包括监控数据处理模块和监控数据展示模块,其中,监控处理模块用于对内核态Agent采集的进程日志条数、降噪过滤的进程日志条数、存储至ES数据库的日志条数,进程日志采集用户态Agent的运行状态、资源占用,以及应用服务器的系统负载和资源使用数据进行监控,监控数据展示模块用于对内核态Agent采集的进程日志条数、降噪过滤的进程日志条数、存储至ES数据库的日志条数,进程日志采集用户态Agent的运行状态、资源占用,以及应用服务器的系统负载和资源使用数据进行展示。
日志分析层包括日志分析模块和进程降噪模板确认模块,其中,日志分析模块用于从ES数据库中读取历史进程日志,对历史进程日志数据分析,生成进程降噪模板;进程降噪模板确认模块用于根据业务场景和安全场景确认所述进程降噪模板的准确率,将准确率达到阈值的进程降噪模板发送至进程降噪配置模块。
存储层包括eBPF map,mysql数据库、sqlite数据库和ES数据库,其中,eBPF map用于存储进程日志采集用户态Agent和进程日志采集内核态Agent的交互数据,包括:进程降噪模板、采集开关状态和进程日志;mysql数据库用于存储进程日志采集用户态Agent发送的监控指标数据,存储日志分析层配置的进程降噪模板和更新的进程降噪模板;sqlite数据库用于存储进程日志采集用户态Agent接收的进程降噪模板和采集开关状态;ES数据库用于存储进程日志。
图3为根据本发明示例性第八实施例的一种基于eBPF的进程日志采集及自动降噪方法,本实施例是第一实施例所述方法的优选实施例,本实施例方法按以下方式实施:
通过降噪模块配置进程降噪模板,将配置的进程降噪模板下发至进程日志采集用户态Agent;通过进程日志采集用户态Agent接收进程降噪模块配置的进程降噪模板,将接收的进程降噪模板写入本地的sqlite数据库和eBPF map。
当应用服务器上有进程创建时,通过进程日志采集内核态Agent从应用服务器上采集进程日志,从eBPF map中读取进程降噪模板,将从应用服务器上采集的进程日志与进程降噪模板进行匹配;如果采集的进程日志与进程降噪模板匹配成功,丢弃所述进程日志;如果采集的进程日志与进程降噪模板匹配失败,通过eBPF map将进程日志发送给进程日志采集用户态Agent,并通过进程日志采集用户态Agent将进程日志发送至ES数据库进行存储。
通过进程日志采集用户态Agent将内核态Agent采集的进程日志条数、降噪过滤的进程日志条数、存储至ES数据库的日志条数,进程日志采集用户态Agent的运行状态、资源占用,以及应用服务器的系统负载和资源使用数据发送至监控数据处理模块进行监控,并通过监控数据展示模块进行展示。
通过日志分析模块从ES数据库中读取历史进程日志,根据进程产生频率、进程相似度以及产生所述进程的应用服务器的数量从历史进程日志中筛选用于进程降噪模板更新的进程日志,提取所述进程日志的特征形成进程降噪模板,通过进程降噪模板确认模块根据业务场景和安全场景确认所述进程降噪模板的准确率,将准确率达到阈值的进程降噪模板发送至进程降噪配置模块。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。