用于Hadoop平台数据泄露攻击的自动检测取证方法
【技术领域】
[0001]本发明属于计算机安全技术领域,涉及云计算取证与Hadoop平台取证技术,尤其是涉及一种用于Hadoop平台中数据泄露攻击的自动检测取证方法。
【背景技术】
[0002]随着云计算在近年来的不断发展,云用户只需少量的开销,就能在云端存储大量数据、获得强大的计算能力。但其资源共享的特性也导致了很多安全问题,比如云计算为传播恶意程序提供了便利,在云环境下用户隐私数据更易泄露等等。所以为了保证云环境的健康发展,针对云环境下的犯罪展开取证调查显得尤为重要。Hadoop作为云计算PaaS服务模型的典型代表,以其强大的计算处理能力、相对低廉的价格和大数据存储能力得到了业界广泛的认可。但是随着人们在Hadoop中存储的数据越来越多,也使其成为了犯罪者们窃取数据的重要目标,数据泄露将导致大量用户隐私数据外泄。因此,如何自动检测及调查Hadoop平台下的数据泄露攻击非常重要。但是目前尚缺少在包含大量节点的Hadoop集群中快速、有效地识别数据泄露攻击并提取相关证据的方法。
【发明内容】
[0003]针对目前Hadoop平台缺少有效的监控审计机制、在大量集群中无法迅速定位可疑机器并进行取证以及无法实时识别Hadoop平台数据泄露攻击行为的问题,本发明公开了一种用于Hadoop平台中数据泄露攻击的自动检测取证方法。
[0004]为了达到以上目的,本发明提供如下技术方案:
用于Hadoop平台中数据泄露攻击的自动检测取证方法,包括如下步骤:
数据获取:
监控用户行为并记录日志,周期性扫描监控日志取得原始监控数据,获取NameNode节点的Hadoop日志;
数据格式化:
对数据获取步骤中获取的数据进行格式化,将监控日志和Hadoop日志中的关键数据提取出来存储入数据库中;
检测目录维度:
获得文件对应的所有HDFS文件块,根据HDFS文件块获得文件数据集,检测文件数据集中目录,标记具有异常目录的文件块为可疑文件块;
检测用户维度:
获得文件对应的所有HDFS文件块,根据HDFS文件块获得文件数据集,检测文件数据集中用户,标记具有异常用户的文件块为可疑文件块;
检测操作维度:
获得文件对应的所有HDFS文件块,获得各个HDFS文件块的文件块数据集,计算各个文件块数据集中出现的拷贝操作数量和移动操作数量;标记拷贝操作数量或移动操作数量超过Hadoop系统文件块备份数量的文件块为可疑文件块。
[0005]进一步的,还包括计算可疑文件块比例步骤:统计目录维度异常、用户维度异常、操作维度异常的可疑文件块数量,并计算其占到所有HDFS文件块的百分比。
[0006]进一步的,所述数据获取步骤中,仅针对访问、拷贝、移动操作进行监控,仅监控Hadoop系统相关的目录。
[0007]进一步的,所述Hadoop系统相关的目录包括Hadoop系统目录、用于存储HDFS文件的目录和执行MapReduce任务的目录。
[0008]进一步的,所述数据格式化步骤中,所述关键数据包括监控数据和NameNode节点的Hadoop日志:
其中,
监控数据包括机器IP地址、操作类型、操作时间、用户名称、原目录、新目录、原文件名称和新文件名称;
NameNode节点的Hadoop日志包括节点类型、操作时间、原始文件名称、源IP地址、目标IP地址、操作类型和HDFS文件块blockID。
[0009]进一步的,所述检测目录维度步骤通过以下方式进行检测:计算文件数据集中出现的目录数量,并判断目录数量是否超过目录正常值。
[0010]进一步的,所述检测用户维度步骤通过以下方式进行检测:计算文件数据集中出现的用户数量,并判断用户数量是否超过用户正常值。
[0011]进一步的,在各步骤中标记可疑文件块时,给出报警提示。
[0012]与现有技术相比,本发明具有如下优点和有益效果:
本发明通过使用监控工具获取用户行为的监控日志,分别从目录维度、用户维度、操作维度和可疑文件块比例这四个维度出发,实时监控Hadoop系统状态,检测系统中的数据泄露攻击行为并迅速做出响应,定位到相应节点,给用户警示,从根本上提高了 Hadoop平台的监控、审计能力和数据泄露攻击的识别效率和实时性。
【附图说明】
[0013]图1为本发明提供的用于Hadoop平台中数据泄露攻击的自动检测取证方法的步骤流程图;
图2为数据获取步骤的流程图;
图3为监控工具的工作原理图;
图4为数据格式化步骤的流程图;
图5为检测目录维度步骤的流程图;
图6为检测用户维度步骤的流程图;
图7为检测操作维度步骤的流程图;
图8为计算可疑文件块比例步骤的流程图。
【具体实施方式】
[0014]下面结合附图和【具体实施方式】,进一步阐明本发明,应理解下述【具体实施方式】仅用于说明本发明而不用于限制本发明的范围。
[0015]要在Hadoop平台上检测数据泄漏攻击,就需要从Hadoop平台上获得可用的、有效的证据来源,并针对这些数据进行监控和辨别。具体的说,本发明提供的用于Hadoop平台中数据泄露攻击的自动检测取证方法的步骤流程如图1所示,主要包括以下几个步骤:
SlOl数据获取:
为了从Hadoop平台上获取有效证据来源,则首先要对可能成为证据的数据进行针对性的监控和记录。由于Hadoop平台目前只有Hadoop审计日志对取证调查有帮助,而这些审计日志记录的内容比较有限,例如Hadoop审计日志不会记录执行Hadoop命令的用户名,而且如果攻击者直接进入底层操作系统,寻找存储HDFS文件块的目录并窃取这些文件块,Hadoop系统将无法监控。因此,要进行泄漏攻击的检测取证,还需要寻找更多更有效的证据来源。
[0016]我们发现,在数据泄露的攻击过程中,犯罪者不可避免的会涉及到文件或者目录的相关操作,从这方面入手,我们应对用户所有涉及到文件、目录操作的行为进行记录和监控,这样用户所有涉及到文件、目录操作的行为,都可以通过产生的日志找到这些行为的重要信息。
[0017]为此,本发明引入可以监控用户行为的监控工具,通过将其加载到操作系统内核模块,该工具会修改系统调用表中与系统文件、目录操作相关的系统调用的地址,从而在这些系统调用发生的时候创建日志进行记录,在目前针对Hadoop的取证调查缺少有效的数据来源的前提下,该监控工具可以帮助取证调查者获取更多有效的、可信的证据。
[0018]在获得上述监控日志的基础上,还应周期性扫描监控日志,将更新的部分传输给取证服务器,即可获得原始监控数据。
[0019]为了将监控工具正常应用在Hadoop系统中,必须降低其对性能的巨大影响和最大程度地减少其生成日志的数量。监控工具的工作原理图如图3所示,对调用类型进行过滤,仅针对访问、拷贝、移动这三类操作进行监控;精简日志格式,仅记录以下信息:机器IP地址、操作类型、操作时间、操作者、操作目录和文件名称(由于目录和文件名称可能随着操作更改,因此,记录下的信息应包括原目录、新目录、原文件名和新文件名);并且,监控工具只监控Hadoop系统相关的目录,包括Hadoop系统目录、用于存储HDFS文件的目录和执行MapReduce任务的目录。通过系统调用表的修改,监控工具针对符合调用类型和监控目录的操作生成监控记录,形成监控日志,从而本发明生成的监控日志数量较少,且不会占据系统过多资源。当然,根据需要,本领域内技术人员也可以监控和记录更多信息,以上列出的监控和记录项目不应作为本发明的限制。
[0020]另一方面,为了获得原始文件与HDFS文件块的映射关系,还需要获得Hadoop系统管理节点NameNode的日志。
[0021]图2为数据获取步骤的流程图,具体如下:
步骤1:起始状态;
步骤2:获取NameNode节点的Hadoop日志;
步骤3:在机器中加载监控内核模块;
步骤4:启用监控工具;
步骤5:监控用户行为并记录日志;
步骤6:周期性扫描监控日志,将更新部分传输到取证服务器,即为原始监控数据; 步骤7:若关闭监控工具,则继续步骤8,否则跳到6,即表示在关闭监控工具之前不断进行监控日志的周期性扫描和传输取证;
步骤8:数据获取完毕。
[0022]S103数据格式化:
首先对获取的初始数据按照规范进行格式化操作,使得处理后的数据在包含特定的重要信息的同时,删除其他所有非必需信息,将SlOl步骤中获取的数据中的关键信息提取出来,并按照规定的顺序存储到数据库相应表中。经过数据格式化筛选后获得的监控数据包括机器IP地址、操作类型、操作时间、用户名称、原目录、新目录、原文件名称和新文件名称,NameNode节点的Hadoop日志包括节点类型、操作时间、原始文件名称、源IP地址、目标IP地址、操作类型和HDFS文件块blockID。
[0023]图4为数据格式化步骤的流程图,具体如下:
步骤1:起始状态;
步骤2:将原始数据文本进行存储;
步骤3:设定数据库的数据结构,数据库用于容纳经过格式化的数据,其具体结构可以根据需要设计,一般来说,监控数据和NameNode的Hadoop日志应分开在不同数据表中存储;
步骤4:读取原始数据中的每一行数据;
步骤5:解析出每一行数据中的目标字段,判断是原始监控数据还是NameNode的Hadoop日志,存储到不同数据库表中;
步骤6:对提取的数据执行数据库插入操作,如果所有数据全部读取完则继续步骤7,否则跳到步骤4 ;
步骤7:文件数据集格式化完毕。
[0024]S105检测目录维度:
由于一个正常的文件在Hadoop系统中由一个或者多个HDFS文件块组成,而每一个文件块有一个独一无二的blockID号,所以一个正常文件包含一个或者多个blockID号。故而在格式化后的记录中,我们将依据一个正常文件包含的所有HDFS文件块涉及的记录称为一个文件数据集。
[0025]正常情况下,Hadoop系统文件操作会涉及到的文件目录是固定的,因为这些目录是由Hadoop的系统配置文件指定的,这些目录包括:Hadoop系统目录、用于存储HDFS文件的目录和执行MapReduce任务的目录。所以在一个文件数据集中,只要发现任何一个不在这个目录范围内的目录(本发明将这些不包括在Hadoop系统目录、用于存储HDFS文件的目录和执行MapReduce任务的目录之中的目录称为异常目录),就表明可
能有攻击行为发生。因此,需先获得文件对应的所有HDFS文件块;其次根据这些HDFS文件块,即可获得文件数据集;计算文件数据集中出现的目录数量;如果最后计算出来的值超过正常值3个,则表明目录维度出现异常,有可能出现数据泄露攻击。
[0026]图5为检测目录维度步骤的流程图,具体如下:
步骤1:起始状态;
步骤2:根据NameNode的Hadoop日志,由文件名找到对应的HDFS文件块的blockID ; 步骤3:根据步骤2找到的HDFS文件块的blockID,从数据库提取出HDFS文件块的blockID对应的所有记录;
步骤4:从步骤3提取的所有记录中读取一条记录;
步骤5:判断该条记录中的关键字段原目录和新目录的值是否是第一次出现,如果是,则将新值添加到目录库中,目录维度值加1,否则不做任何操作。判断记录是否读取完毕,如果是,继续步骤6,否则跳到步骤4 ;
通过步骤4和步骤5,读取一个文件数据集中各个文件块,并计算该文件数据集中目录维度总值。
[0027]步骤6:判断目录维度的值是否大于3个,若大于3个,标记具有异常目录的HDFS文件块为可疑文件块,给出报警;
步骤7:完毕。
[0028]通过上述步骤,遍历所有文件数据集,标记其中的可疑文件块。
[0029]S107检测用户维度:
所有的Hadoop系统的文件操作(除去从HDFS拷贝文件到主机的操作)只会涉及到一个操作用户,即Hadoop超级用户,所有的操作都是以Hadoop超级用户的名字记录到日志里。所以,如果任何非Hadoop超级用户的用户出现在文件数据集中(本发明将这些不属于超级用户的用户称为异常用户),表明可能发生了攻击行为,紧接着通过分析异常用户所属的日志记录,就能找到可疑文件块的blockID。因此,需先获得文件对应的所有HDFS文件块;其次根据这些HDFS文件块,即可获得文件数据集;计算文件数据集中出现的用户数量;如果最后计算出来的值超过正常值I个,则表明用户维度出现异常,有可能出现数据泄露攻击。
[0030]图6为检测用户维度步骤的流程图,具体如下:
步骤1:起始状态;
步骤2:根据NameNode的Hadoop日志,由文件名找到对应的HDFS文件块的blockID ;步骤3:根据步骤2找到的HDFS文件块的blockID,从数据库提取出HDFS文件块的blockID对应的所有记录;
步骤4:从步骤3提取的所有记录中读取一条记录;
步骤5:判断该条记录中的关键字段用户名称的值是否是Hadoop系统的超级用户,如果不是,则将新的用户名称添加到用户名称库中,用户维度值加I (用户维度值初始为1),否则不做任何操作。判断记录是否读取完毕,如果是,继续步骤6,否则跳到步骤4 ;
通过步骤4和步骤5,读取一个文件数据集中各个文件块,并计算该文件数据集中用户维度总值。
[0031]步骤6:判断用户维度的值是否大于I个,若大于I个,标记具有异常用户的HDFS文件块为可疑文件块,给出报警;
步骤7:完毕。
[0032]通过上述步骤,遍历所有文件数据集,标记其中的可疑文件块。
[0033]S109检测操作维度。
[0034]在格式化后的记录中,我们将依据一个HDFS文件块的blockID涉及的所有记录称为一个文件块数据集,则一个文件数据集包含一个或者多个文件块数据集。
[0035]如果犯罪者想要从物理机器直接窃取HDFS文件块,就必定会涉及到移动或者拷贝的动作,将目标文件块移动或者拷贝到另一个目录下。但不论是拷贝还是移动操作,在文件块数据集中都能通过操作类型关键字段发现。正常情况下,因为一个文件块只涉及一次拷贝和一次移动,所以拷贝的总数量和移动的总数量都等于Hadoop系统文件块的备份数量,所以如果出现拷贝数量或操作数量中只要有一个大于Hadoop系统文件块的备份数量,则表示可能出现数据泄露攻击。因此,需先获得文件对应的所有HDFS文件块;其次获得各个HDFS文件块的文件块数据集;然后计算各个文件块数据集中出现的拷贝操作数量;并计算各个文件块数据集中出现的移动操作数量;如果最后计算出来的拷贝操作数量或移动操作数量超过Hadoop系统文件块的备份数量,则表明操作维度出现异常,有可能出现数据泄露攻击。
[0036]图7为检测操作维度步骤的流程图,具体如下:
步骤1:起始状态;
步骤2:根据NameNode的Hadoop日志,由文件名找到对应的HDFS文件块的blockID ;步骤3:根据步骤2获得blockID的记录,从数据库中提取出一个blockID的文件块数据集的记录;
步骤4:从步骤3提取的记录中读取一条记录;
步骤5:判断该条记录中的关键字段操作类型的值是否是拷贝或者移动操作,如果是,则将拷贝或者移动总值加1,否则不做任何操作。判断记录是否读取完毕,如果是,继续步骤6,否则跳到步骤4;
通过步骤4和步骤5,读取一个文件块数据集中的记录,可以获得该文件块数据集中出现的拷贝次数和移动次数。
[0037]步骤6:判断拷贝或者移动的值是否大于Hadoop系统文件备份数,若大于,标记相应的HDFS文件块为可疑文件块;
步骤7:如果所有的文件块数据集解析完毕,继续步骤8,否则跳到步骤3 ;
通过上述步骤,遍历所有文件下的文件块数据集,标记其中的可疑文件块。
[0038]步骤8:完毕。
[0039]Slll计算可疑文件块比例:
在格式化后的记录中,在一个文件块数据集中发现上述三个维度中任意一个出现异常,则我们将这个HDFS文件块称为可疑文件块。
[0040]根据三个维度的检测值,找到文件数据集中的可疑文件块总数,计算其占到所有HDFS文件块的百分比,该百分比值正常情况应为0,值越高表明被窃取的HDFS文件块越多。
[0041]图8为计算可疑文件块比例步骤的流程图,具体如下:
步骤1:起始状态;
步骤2:统计目录维度异常的可疑文件块;
步骤3:统计用户维度异常的可疑文件块;
步骤4:统计操作维度异常的可疑文件块;
步骤5:统计三个维度总的可疑文件块数量,针对重复计算的可疑文件块仅计算一次,并计算可疑文件块所占比例;
步骤6:完毕。
[0042]通过上述SlOl?Slll共6个步骤,能够对文件、目录操作的行为进行监控并记录日志,检测系统中的数据泄露攻击行为并迅速做出响应,快速有效地识别出可能发生数据泄露和攻击的文件块并将其标记为可疑文件块,定位到相应节点,并能够给用户警示。
[0043]本发明方案所公开的技术手段不仅限于上述实施方式所公开的技术手段,还包括由以上技术特征任意组合所组成的技术方案。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。
【主权项】
1.用于Hadoop平台中数据泄露攻击的自动检测取证方法,其特征在于,包括如下步骤: 数据获取: 监控用户行为并记录日志,周期性扫描监控日志取得原始监控数据,获取NameNode节点的Hadoop日志; 数据格式化: 对数据获取步骤中获取的数据进行格式化,将监控日志和Hadoop日志中的关键数据提取出来存储入数据库中; 检测目录维度: 获得文件对应的所有HDFS文件块,根据HDFS文件块获得文件数据集,检测文件数据集中目录,标记具有异常目录的文件块为可疑文件块; 检测用户维度: 获得文件对应的所有HDFS文件块,根据HDFS文件块获得文件数据集,检测文件数据集中用户,标记具有异常用户的文件块为可疑文件块; 检测操作维度: 获得文件对应的所有HDFS文件块,获得各个HDFS文件块的文件块数据集,计算各个文件块数据集中出现的拷贝操作数量和移动操作数量;标记拷贝操作数量或移动操作数量超过Hadoop系统文件块备份数量的文件块为可疑文件块。2.根据权利要求1所述的用于Hadoop平台中数据泄露攻击的自动检测取证方法,其特征在于,还包括计算可疑文件块比例步骤:统计目录维度异常、用户维度异常、操作维度异常的可疑文件块数量,并计算其占到所有HDFS文件块的百分比。3.根据权利要求1或2所述的用于Hadoop平台中数据泄露攻击的自动检测取证方法,其特征在于:所述数据获取步骤中,仅针对访问、拷贝、移动操作进行监控,仅监控Hadoop系统相关的目录。4.根据权利要求3所述的用于Hadoop平台中数据泄露攻击的自动检测取证方法,其特征在于:所述Hadoop系统相关的目录包括Hadoop系统目录、用于存储HDFS文件的目录和执行MapReduce任务的目录。5.根据权利要求1或2所述的用于Hadoop平台中数据泄露攻击的自动检测取证方法,其特征在于:所述数据格式化步骤中,所述关键数据包括监控数据和NameNode节点的Hadoop 日志: 其中, 监控数据包括机器IP地址、操作类型、操作时间、用户名称、原目录、新目录、原文件名称和新文件名称; NameNode节点的Hadoop日志包括节点类型、操作时间、原始文件名称、源IP地址、目标IP地址、操作类型和HDFS文件块blockID。6.根据权利要求1或2所述的用于Hadoop平台中数据泄露攻击的自动检测取证方法,其特征在于:所述检测目录维度步骤通过以下方式进行检测:计算文件数据集中出现的目录数量,并判断目录数量是否超过目录正常值。7.根据权利要求1或2所述的用于Hadoop平台中数据泄露攻击的自动检测取证方法,其特征在于:所述检测用户维度步骤通过以下方式进行检测:计算文件数据集中出现的用户数量,并判断用户数量是否超过用户正常值。8.根据权利要求1或2所述的用于Hadoop平台中数据泄露攻击的自动检测取证方法,其特征在于:在各步骤中标记可疑文件块时,给出报警提示。
【专利摘要】本发明公开了一种用于Hadoop平台中数据泄露攻击的自动检测取证方法,包括:数据获取步骤;数据格式化步骤;检测目录维度步骤;检测用户维度步骤;检测操作维度步骤;计算可疑文件块比例步骤。本发明首先获取用户行为的监控日志,随后分别从目录维度、用户维度、操作维度和可疑文件块比例这四个维度出发,实时监控Hadoop系统状态,检测系统中的数据泄露攻击行为并迅速做出响应,定位到相应节点,给用户警示,从根本上提高了Hadoop平台的监控、审计能力和数据泄露攻击的识别效率和实时性。
【IPC分类】G06F17/30, G06F21/55
【公开号】CN104881483
【申请号】CN201510301896
【发明人】伏晓, 高运, 骆斌
【申请人】南京大学
【公开日】2015年9月2日
【申请日】2015年6月5日
转载请注明原文地址:https://www.famiwei.com/read-8138592.html