发明内容
针对现有技术中的上述不足,本发明提供了一种能面向Hive平台的用户行为审计系统及方法,该审计系统和审计方法能够实时记录用户访问Hive平台的行为日志,并根据行为日志获取对Hive平台构成威胁的用户和对Hive平台中每个文件的配置进行优化。
为了达到上述发明目的,本发明采用的技术方案为:
一方面提供一种面向Hive平台的用户行为审计系统,其包括:
数据采集单元,用于获取用户访问Hive平台的行为日志,并将所述行为日志传输给数据存储单元;
数据存储单元,用于接收并存储所述数据采集单元上传的行为日志和离线审计单元上传的审计结果;
在线审计单元,用于从数据存储单元中读取审计人员请求的行为日志,并按审计人员请求的执行动作处理行为日志;
离线审计单元,定时读取所述数据存储单元中行为日志以获取行为日志中展示的Hive平台中所有文件被访问的频率和对Hive平台构成威胁的用户;
并将所有文件被访问的频率和对Hive平台构成威胁的用户作为审计结果传输给所述数据存储单元进行存储。
另一方面提供一种能面向Hive平台的用户行为的审计系统的审计方法,其包括以下步骤:
获取用户访问Hive平台的行为日志;
根据审计人员请求,对用户的行为日志进行审计:
读取行为日志中审计人员请求的数据,并对审计人员请求的数据进行处理;
分析行为日志中展示的Hive平台中所有文件被访问的频率和每个用户对无访问权限的文件的访问次数。
本发明的有益效果为:该审计系统和审计方法能够有效全面地监控用户对Hive平台的访问行为,通过灵活的审计分析,帮助管理员和审计员评估Hive平台整体的安全状态,并及时地优化Hive平台中每个文件的配置及定位用户的越权和不合法行为;为Hive平台建立了新的安全保障,具有良好的实用性和推广应用价值。
具体实施方式
下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
参考图1,图1示出了面向Hive平台的用户行为审计系统一个实施例的原理框图;如图1所示,该面向Hive平台的用户行为审计系统包括数据采集单元、数据存储单元、在线审计单元和离线审计单元。
数据采集单元用于获取用户访问Hive平台的行为日志,并将行为日志传输给数据存储单元;具体地为,数据采集单元主要负责用户对Hive平台的所有操作行为进行记录。数据采集单元是独立的功能模块,运行在用户使用Hive平台的不同阶段,当用户接入Hive 平台的过程中,需要提供用户名和密码等身份信息进行身份验证,此时数据采集单元会记录用户登录时间,用户名称,身份验证结果。
当用户接入Hive平台后,执行数据访问以及操作时,数据采集单元采集的信息主要包括用户操作时间,用户名称,操作对象,操作类型,操作权限是否合法,操作失败原因等信息。数据采集单元采集到的用户一次登录或者操作行为最终都将对应一条行为日志,为了将收集到的行为信息转换成一条条行为日志,数据采集单元将收集到的信息,按照规定的顺序(可以是时间的先后顺序),拼接成一条条SQL语句,提交给数据存储单元。
数据存储单元,用于接收并存储数据采集单元上传的行为日志和离线审计单元上传的审计结果。
在本发明的一个实施例中,数据存储单元还用于将行为日志分隔成若干离线审计单元可以访问的数据块并分别对若干数据块进行单独存储;
时刻接收存储有数据块的结构上传的数据块的编号(若干数据块在分隔时会自动生成一个编号)和行为日志,以确定存储有数据块的结构是否正常运行:若运行不正常,则移除存储有数据块的结构内的数据块;以及
根据离线审计单元访问数据块的请求,将请求映射到存储有相应数据块的结构上。
其中,图2示出来的面向Hive平台的用户行为审计系统另一个实施例的原理框图;其中,数据存储单元可以由一个接收数据采集单元上传的行为日志和离线审计单元上传的审计结果的MYSQL数据库和一个接收数据采集单元上传的行为日志的分布式文件系统(HDFS)的组成。
分布式文件系统(HDFS)包括一个命名节点(NameNode)和若干数据节点(DataNode);命名节点用于完成将数据存储单元存储的行为日志分隔成若干数据块;将每个数据块分别存储于一个数据节点内;接收并分析每个数据节点上传的数据块的编号(若干数据块在分隔时会自动生成一个编号),通过对上传的编号与原始命名编号是否一致进行判断,以确定命名节点存储数据块和数据节点之间的映射信息和监控数据节点是否正常运行,若运行不正常,则移除存储有数据块的结构内的数据块。
数据节点主要用于时刻(此处的时间可以根据需要自行设置,比如3s、5s或1min)将其内部存储的数据块的编号和自身运行状态发送给命名节点。
命名节点在完成上述功能的同时还能够将分隔成的若干数据块进行备份。当用户需要访问某个数据节点中的数据块时,命名节点负责完成该数据块到存储有该数据块所在数据节点的映射,帮助离线审计单元快速、准确地访问数据节点中的数据。
数据节点根据命名节点的调度存储和检索数据,并且定期向命名节点发送他们所存储的数据块的具体情况(数据块中的编码)。命名节点根据离线审计单元的请求,向数据节点下发数据的删除与复制,由数据节点执行命令,完成数据删除和复制的功能。
在线审计单元,用于从数据存储单元中读取审计人员请求的行为日志,并按审计人员请求的执行动作处理行为日志。由于线审计单元需要实时快速响应审计人员的请求,其一般处理一些耗时短的请求。在线审计单元在审计时主要访问MYSQL数据库中存储的数据。
其中,在线审计单元主要面向审计人员和系统管理人员,基于采集到的用户行为日志进行实时的统计分析,响应审计人员的审计请求;比如审计人员和系统管理人员请求获取某个用户在某一段时间的访问情况,在线审计单元就根据相应的请求从MYSQL数据库存储的行为日志中导出某个用户访问的所有行为日志。
在线审计单元也可以根据审计人员和系统管理人员请求将相应数据以图表的方式导出;比如管理员可以查询某一天某个数据在不同的时间段被访问次数的统计,在线审计单元根据请求对当前数据进行统计,并将统计结果以图形(柱状、饼状等形状)的方式输入。
若审计员希望审计某个用户的行为日志,可以直接向在线审计单元输入相应请求,在线审计单元根据不同的请求类型生成不同的SQL查询语句,查询MYSQL数据库中的记录,并将查询到的结果按照集合Set,列表List等方式反馈给审计人员。
在线审计单元还可以根据审计人员的审计请求批量删除MYSQL数据库存储的行为日志。
离线审计单元,定时(此处的时间用户可以自行设置)读取数据存储单元中行为日志以获取行为日志中展示的Hive平台中所有文件被访问的频率(每个文件的访问频率的获取过程为:首先计算出每个文件被访问的次数;统计出所有文件被访问次数的总和;通过每个文件被访问的次数与所有文件被访问次数的总和比值获得每个文件被访问的频率。)和对Hive平台构成威胁的用户(对Hive平台构成威胁的用户的获取过程为:获取每个用户对无访问权限的文件的访问情况进行统计,若大于设定值,将用户设置成对Hive平台构成威胁的用户,并静止其访问Hive平台)。离线审计单元在审计时主要访问分布式文件系统中存储的行为日志。
离线审计单元根据Hive平台每个文件被访问的频率优化每个文件在Hive平台中的资源配置(资源配置可以为网络的相应速度、在Hive平台中存储占比或多分配几台服务器等情形);以及将资源配置情况和对Hive平台构成威胁的用户作为审计结果传输给数据存储单元进行存储。
参考图2,离线审计单元可以包括一个作业跟踪服务器(JobTracker)和若干个任务跟踪服务器(TaskTraker)。作业跟踪服务器和一个任务跟踪服务器互相协调配合完成离线审计单元需要完成的任务。作业跟踪服务器主要用于接收审计人员的请求,并根据请求控制任务跟踪服务器执行相应工作。
具体地,任务跟踪服务执行的相应工作为:读取数据存储单元中时刻更新的数据块以获取数据块中展示的Hive平台中所有文件被访问的频率和对Hive平台构成威胁的用户;根据Hive平台中每个文件被访问的频率优化每个文件的资源配置;将资源配置情况和对Hive平台构成威胁的用户传输给数据存储单元进行存储。
在本发明的一个实施例中,面向Hive平台的用户行为审计系统还包括界面展示单元,其用于时刻显示在线审计单元和离线审计单元的工作动态及审计人员请求情况。
此时,在线审计单元和离线审计单元可以结合界面展示单元一起对审计人员的请求和在线审计单元和离线审计单元工作动态进行实时显示。
下面以Hive平台中数据历史访问趋势(按月统计)为例说明离线审计单元获取Hive平台中所有文件被访问的频率的处理流程。
首先以数据存储单元写入分布式文件系统的数据块位输入,按行读入数据,在map阶段对数据进行预处理,去除时间信息当中的天数,保留年和月信息,以Hive表项名作为键key,时间信息作为输出value,形成中间键值对;接着自动合并具有相同键的键值对,与之对应的值被封装在迭代器中,合并后的结果作为reduce阶段的输入键值对,比如<table,list<time1, time2, …>>。
在reduce阶段遍历迭代器即可统计某张表在历史某个月内被访问的次数。对于统计到的结果,离线审计单元将一个数据表对应一条分析记录的方式,生成SQL语句,由数据存储单元进行存储,写入MYSQL数据库,提供给界面展示单元展示。
同理风险用户的定位分析这是通过统计用户因权限不合法而操作失败的次数来进行的,当越权次数超过一定阀值,说明该用户可能恶意的窥探隐私信息。
离线审计的处理程序将以作业的形式提交到JobTracker上,然后由JobTracker拆分作业,根据TaskTracker的状态和资源情况,调度分配各Map reduce task在不同的TaskTracker上执行,当task需要读取输入文件时,则通过分布式文件系统HDFS进行访问。
至此,已完成对面向Hive平台的用户行为审计系统的描述。
参考图3,图3示出了面向Hive平台的用户行为审计系统的审计方法的流程图。该面向Hive平台的用户行为审计系统的审计方法具体包括以下步骤:
获取用户访问Hive平台的行为日志;
根据审计人员请求,对用户的行为日志进行审计:
读取行为日志中审计人员请求的数据,并对审计人员请求的数据进行处理;
分析行为日志中展示的Hive平台中所有文件被访问的频率和每个用户对无访问权限的文件的访问次数;
根据被访问的频率对优化Hive平台中每个文件的资源配置;
根据用户对无访问权限的文件的访问次数设置对Hive平台构成威胁的用户。
其中,行为日志至少包括用户名、访问Hive平台的文件数据、访问Hive平台中每个数据的时间和用户对无访问权限的文件的访问情况。
在本发明的一个实施例中,为了快速响应离线审计单元的审计请求,将行为日志分隔成若干离线审计单元可以访问的数据块;时刻接收存储有数据块的结构上传的数据块的编号和行为日志,以确定存储有数据块的结构是否正常运行;以及根据离线审计单元访问数据块的请求,将请求映射到存储有相应数据块的结构上。
综上所述,该审计系统和审计方法解决了Hive大数据平台下的用户行为审计问题,能够有效全面地监控用户对Hive大数据平台的访问行为,通过灵活的审计分析,帮助管理员和审计员评估Hive平台整体的安全状态,并及时地发现和定位用户的越权和不合法行为。