发明内容
本发明提供一种数据预处理方法、装置及系统,用于提高数据泄密检测精度。
第一方面,本发明实施例提供一种数据预处理方法,包括:
根据预设锚字符集合中的锚字符将文本数据分割成至少一个数据单元,每个数据单元均不包括所述锚字符,且每个数据单元的字符个数不超过预设的单元字符上限值;
将所述至少一个数据单元组合成至少一个数据块,每个数据块包括至少一个数据单元且每个数据块的字符个数不超过预设的块字符阈值,以对所述至少一个数据块进行指纹提取处理。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据预设锚字符集合中的锚字符将文本数据分割成至少一个数据单元,包括:
确定当前单元滑动窗口,所述当前单元滑动窗口的起始点和终止点均指向所述文本数据中的同一个字符;
将所述终止点向所述文本数据中的后续字符滑动,直至所述当前单元滑动窗口内的字符个数等于所述单元字符上限值时,或,所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且所述终止点指向的字符为所述锚字符时,或,所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且所述终止点指向的字符为所述文本数据的最后一个字符时,停止滑动;
根据所述当前单元滑动窗口内除锚字符之外的所有字符,得到一个数据单元。
结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据当前单元滑动窗口内除锚字符之外的所有字符得到一个数据单元之后,还包括:
若所述当前单元滑动窗口内最后一个字符不是所述文本数据的最后一个字符,则将所述当前单元滑动窗口的起始点和终止点均指向所述当前单元滑动窗口内最后一个字符在所述文本数据中的下一个字符。
结合第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,所述根据所述当前单元滑动窗口内除锚字符之外的所有字符,得到一个数据单元,包括:
若所述当前单元滑动窗口内除锚字符之外的字符个数不小于预设的单元字符下限值,则根据所述当前单元滑动窗口内除锚字符之外的所有字符,得到一个数据单元;
若所述当前单元滑动窗口内除锚字符之外的字符个数小于预设的单元字符下限值,则丢弃所述当前单元滑动窗口内的所有字符。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述将所述至少一个数据单元组合成至少一个数据块,包括:
将所述至少一个数据单元按在所述文本数据中的顺序依次排列;
将当前块滑动窗口的左沿和右沿均指向所述至少一个数据单元中的第一个数据单元;
若当前块滑动窗口内的字符个数小于所述块字符阈值,则将所述右沿向后续数据单元滑动,直至所述当前块滑动窗口内的字符个数大于所述块字符阈值时将所述右沿前向滑动一个数据单元后停止滑动,或者,直至所述当前块滑动窗口内的字符个数等于所述块字符阈值时停止滑动;
根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块。
结合第一方面的第四种可能的实现方式,在第一方面的第五种可能实现的方式中,所述根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块之后,还包括:
将所述当前数据单元窗口的左沿和右沿均向后移一个数据单元;
若所述当前块滑动窗口内的字符个数小于所述块字符阈值,则将所述右沿向后续数据单元滑动,直至所述当前块滑动窗口内的字符个数大于所述块字符阈值时将所述右沿前向滑动一个数据单元后停止滑动,或,直至所述当前块滑动窗口内的字符个数等于所述块字符阈值时停止滑动,或,所述当前块滑动窗口内的字符个数小于所述块字符阈值且所述右沿指向最后一个数据单元时停止滑动;
根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块。
结合第一方面的第五种可能实现的方式,在第一方面的第六种可能实现的方式中,所述将所述当前数据单元窗口的左沿和右沿均向后移一个数据单元之后,还包括:
若所述当前块滑动窗口内的字符个数等于所述块字符阈值,则根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块;
若所述当前块滑动窗口内的字符个数大于所述块字符阈值,则将所述右沿前向滑动一个数据单元,根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块。
第二方面,本发明实施例提供一种数据预处理装置,包括:
分割模块,用于根据预设锚字符集合中的锚字符将文本数据分割成至少一个数据单元,每个数据单元均不包括所述锚字符,且每个数据单元的字符个数不超过预设的单元字符上限值;
组合模块,用于将所述至少一个数据单元组合成至少一个数据块,每个数据块包括至少一个数据单元且每个数据块的字符个数不超过预设的块字符阈值,以对所述至少一个数据块进行指纹提取处理。
结合第二方面,在第二方面的第一种可能的实现方式中,所述分割模块包括:
确定子模块,用于确定当前单元滑动窗口,所述当前单元滑动窗口的起始点和终止点均指向所述文本数据中的同一个字符;
第一滑动子模块,用于将所述终止点向所述文本数据中的后续字符滑动,直至所述当前单元滑动窗口内的字符个数等于所述单元字符上限值时,或,所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且所述终止点指向的字符为所述锚字符时,或,所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且所述终止点指向的字符为所述文本数据的最后一个字符时,停止滑动;
第一获得子模块,用于根据所述当前单元滑动窗口内除锚字符之外的所有字符,得到一个数据单元。
结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一滑动子模块还用于,在所述第一获得子单元根据当前单元滑动窗口内除锚字符之外的所有字符得到一个数据单元之后,若所述当前单元滑动窗口内最后一个字符不是所述文本数据的最后一个字符,则将所述当前单元滑动窗口的起始点和终止点均指向所述当前单元滑动窗口内最后一个字符在所述文本数据中的下一个字符。
结合第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一获得子模块具体用于,若所述当前单元滑动窗口内除锚字符之外的字符个数不小于预设的单元字符下限值,则根据所述当前单元滑动窗口内除锚字符之外的所有字符,得到一个数据单元;
若所述当前单元滑动窗口内除锚字符之外的字符个数小于预设的单元字符下限值,则丢弃所述当前单元滑动窗口内的所有字符。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述组合模块包括:
排列子模块,用于将所述至少一个数据单元按在所述文本数据中的顺序依次排列;
指向子模块,用于将当前块滑动窗口的左沿和右沿均指向所述至少一个数据单元中的第一个数据单元;
第二滑动子模块,用于若当前块滑动窗口内的字符个数小于所述块字符阈值,则将所述右沿向后续数据单元滑动,直至所述当前块滑动窗口内的字符个数大于所述块字符阈值时将所述右沿前向滑动一个数据单元后停止滑动,或者,直至所述当前块滑动窗口内的字符个数等于所述块字符阈值时停止滑动;
第二获得子模块,根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能实现的方式中,所述第二滑动子模块,用于所述第二获得子模块根据所述当前块滑动窗口内的至少一个数据单元得到一个数据块之后,将所述当前数据单元窗口的左沿和右沿均向后移一个数据单元;若所述当前块滑动窗口内的字符个数小于所述块字符阈值,则将所述右沿向后续数据单元滑动,直至所述当前块滑动窗口内的字符个数大于所述块字符阈值时将所述右沿前向滑动一个数据单元后停止滑动,或,直至所述当前块滑动窗口内的字符个数等于所述块字符阈值时停止滑动,或,所述当前块滑动窗口内的字符个数小于所述块字符阈值且所述右沿指向最后一个数据单元时停止滑动;
所述第二获得子模块,用于根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块。
结合第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述第二获得子模块,还用于在所述第二滑动子模块将所述当前数据单元窗口的左沿和右沿均向后移一个数据单元之后,若所述当前块滑动窗口内的字符个数等于所述块字符阈值,则根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块;
所述第二滑动子模块,还用于将所述当前数据单元窗口的左沿和右沿均向后移一个数据单元之后,若所述当前块滑动窗口内的字符个数大于所述块字符阈值,则将所述右沿前向滑动一个数据单元;
所述第二获得子模块,还用于若所述当前块滑动窗口内的字符个数大于所述块字符阈值,在所述第二滑动子模块将所述右沿前向滑动一个数据单元之后,根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块。
第三方面,本发明实施例提供一种数据内容感知系统,包括:指纹提取装置,如上所述的数据预处理装置;
所述指纹提取装置,用于根据预设的指纹选择算法,对所述数据预处理装置得到的至少一个数据块进行指纹提取,得到至少一个指纹。
本发明实施例提供的数据预处理方法、装置及系统,通过根据预设锚字符集合中的锚字符将文本数据分割成至少一个数据单元,每个数据单元均不包括所述锚字符,且每个数据单元的字符个数不超过预设的单元字符上限值;将所述至少一个数据单元组合成至少一个数据块,每个数据块包括至少一个数据单元且每个数据块的字符个数不超过预设的块字符阈值,以对所述至少一个数据块进行指纹提取处理。由于采用锚字符即根据自然语言的语法和语义信息对文本数据进行分割,去除语义区分度不高的字符,得到数据单元,并将数据单元组合成数据块,从而使得提取出的指纹用于DLP技术时,提高了数据泄密检测精度,同时,数据块为数据单元—块的两级结构数据,每个数据块的字符的个数基本保持一致,可以提高提取指纹的效益。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明数据预处理方法实施例一的流程示意图,如图1所示,本实施例能够采用数据预处理装置来实现,该数据预处理装置可以采用软件来实现,并且这个装置可以集成在网关设备或服务器或工作站上来实现本实施例的方法,本实施例的方法可以包括:
步骤101、根据预设锚字符集合中的锚字符将文本数据分割成至少一个数据单元,每个数据单元均不包括锚字符,且每个数据单元的字符个数不超过预设的单元字符上限值。
在本实施例中,需要保护的机密文本数据和待检测的文本数据均可以采用本发实施例提供的数据预处理方法进行预处理,首先预设一个锚字符集合,该锚字符集合包括至少一个锚字符,锚字符是指没有实质语义信息的字符,比如空格符、回车换行符、标点符号、介词和副词等,本领域普通技术人员可以理解,上述的锚字符与现有技术中一致,本发明在此不做限制。
本实施例中的文本数据是由至少一个字符根据自然语法规则形成的文本数据,步骤101可以包括:从头开始遍历文本数据的字符,当遍历到文本数据中预设锚字符集合中的锚字符时,以锚字符为界,将文本数据分割成数据单元,具体地,锚字符之前的部分为一个数据单元,锚字符之后的部分为另一个数据单元。若文本数据中不包括锚字符集合中的锚字符或者文本数据中的第一个字符为锚字符或者文本数据中的最后一个字符为锚字符,则将文本数据分割成一个数据单元;否则可以将文本数据分割成两个以上的数据单元。需要说明的是,每个数据单元均不包括锚字符,而且为了提高数据泄密的检测精度,每个数据单元的字符个数不超过预设的单元字符上限值,具体地,若以锚字符分割形成的数据单元的字符个数超过预设的单元字符上限值,则可以根据预设的单元字符上限值将数据单元再分割成更小的数据单元,以使最终得到的各数据单元的字符个数超过预设的单元字符上限值。其中,该预设的单元字符上限值由实际的应用场景来确定的,例如:预设的单元字符上限值可以为512,本发明在此不做限制。本实施例中得到的数据单元是泄密数据的最小对齐单元。
步骤102、将所述至少一个数据单元组合成至少一个数据块,每个数据块包括至少一个数据单元且每个数据块的字符个数不超过预设的块字符阈值,以对至少一个数据块进行指纹提取处理。
在本实施例中,根据预设的块字符阈值将步骤101所得的至少一个数据单元组合成至少一个数据块,若所述至少一个数据单元所包括的字符个数小于或等于预设的块字符阈值,则将所述至少一个数据单元组合成一个数据块;否则将所述至少一个数据单元组合成至少两个数据块。需要说明的是,每个数据块包括至少一个数据单元且每个数据块的字符个数不超过预设的块字符阈值,其中,预设的块字符阈值主要根据数据泄密检测粒度来确定,该数据泄露检测粒度为用户可以文本数据泄露所能容忍的程度,本发明在此不做限制。需要说明的是,步骤101中的预设的单元字符上限值不大于预设的块字符阈值。本实施例中得到的数据块是泄露数据的最小检测单元,便于以数据块为单位检测泄露数据。
在数据预处理装置获得至少一个数据块后,将所获得的至少一个数据块发送给指纹提取装置,由指纹提取装置对该至少一个数据块进行指纹提取处理,其中,指纹提取装置可以采用随机选择法、求模选择法、滑动窗口选择法等进行指纹提取,其中,随机选择就是随机选择数据块中的若干数据块,对选定的数据块进行归一化处理,将这些块的哈希值作为指纹。求模选择法是对各数据块的哈希值求余,余数在一定范围内的块哈希值选择指纹。滑动窗口选择法同样对数据块进行哈希计算,得到归一化的哈希值序列,然后利用块窗口在块序列上滑动,每个窗口内选择一个块哈希值作为指纹。本领域普通技术人员可以理解,指纹提取方法可以与现有技术中一致,本发明在此不做详细介绍。
本发明实施例一提供的数据预处理方法,通过根据预设锚字符集合中的锚字符将文本数据分割成至少一个数据单元,每个数据单元均不包括所述锚字符,且每个数据单元的字符个数不超过预设的单元字符上限值;将所述至少一个数据单元组合成至少一个数据块,每个数据块包括至少一个数据单元且每个数据块的字符个数不超过预设的块字符阈值,以对所述至少一个数据块进行指纹提取处理。由于采用锚字符即根据自然语言的语法和语义信息对文本数据进行分割,去除语义区分度不高的字符,得到数据单元,并将数据单元组合成数据块,从而使得提取出的指纹用于DLP技术时,提高了数据泄密检测精度,同时,数据块为数据单元—块的两级结构数据,每个数据块的字符的个数基本保持一致,可以提高提取指纹的效益。
图2为本发明数据预处理方法实施例二的流程示意图,如图2所示,本实施例能够采用数据预处理装置来实现,该数据预处理装置可以采用软件来实现,并且这个装置可以集成在网关设备或服务器或工作站上来实现本实施例的方法,在图1所示实施例一的基础上,实施例二中的步骤101可以包括:
步骤201、确定当前单元滑动窗口,当前单元滑动窗口的起始点和终止点均指向文本数据中的同一个字符。
在本实施例中,利用单元滑动窗口从文本数据中分割数据单元。具体地,在刚开始对文本数据进行预处理时,将当前单元滑动窗口的起始点和终止点均指向文本数据中的第一个字符。
步骤202、将终止点向文本数据中的后续字符滑动,直至当前单元滑动窗口内的字符个数等于单元字符上限值时,或,所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且所述终止点指向的字符为所述锚字符时,或,所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且终止点指向的字符为文本数据的最后一个字符时停止滑动。
在本实施例中,当当前单元滑动窗口的起始点与终止点均指向文本数据中的同一个字符时,起始点不动,将终止点从该同一个字符开始向文本数据中的后续字符滑动,若所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且终止点指向的字符为预设锚字符集合的锚字符时,则终止点停止滑动;若当单元滑动窗口内的字符个数等于预设的单元字符上限值时,则终止点停止滑动,同时意味着当前滑动窗口内的字符可能不包括预设锚字符集合的锚字符;若所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且终止点指向的字符为文本数据的最后一个字符时,则终止点停止滑动,同时意味着当前滑动窗口内的字符可能不包括预设锚字符集合的锚字符。其中,该预设的单元字符上限值由实际的应用场景来确定的,例如:预设的单元字符上限值可以为512,本发明在此不做限制。
需要说明的是,在终止点向后滑动的过程中,只要满足步骤202中停止滑动的三个条件中的任何一个,终止点就停止滑动。
步骤203、根据当前单元滑动窗口内除锚字符之外的字符,得到一个数据单元。
在本实施例中,若终止点指向的字符为锚字符时停止滑动,则从当前单元滑动窗口内的字符中丢弃该锚字符,并且将当前单元滑动窗口内的除锚字符之外的字符作为一个数据单元,从而得到一个数据单元。若当前单元滑动窗口内的字符个数等于预设的单元字符上限值,则确定当前单元滑动窗口内的字符,进一步需要判断终止点指向的字符是否为预设锚字符集合中的锚字符,若判断出终止点指向的字符为预设锚字符集合中的锚字符,则丢弃终止点指向的该字符并将当前滑动窗口内的除终止点指向的该字符外的所有字符作为一个数据单元,从而得到一个数据单元;若终止点指向的该字符不是预设锚字符集合中的锚字符,则将当前单元滑动窗口内的所有字符作为一个数据单元,从而得到一个数据单元。若终止点指向的字符为文本数据的最后一个字符时停止滑动,则确定当前滑动窗口内的字符,进一步需要判断该最后一个字符是否为预设锚字符集合中的锚字符,若判断出该最后一个字符为预设锚字符集合中的锚字符,则丢弃该最后一个字符并将当前滑动窗口内的除最后一个字符外的字符作为一个数据单元,从而得到一个数据单元;若该最后一个字符不是预设锚字符集合中的锚字符,则将当前滑动窗口内的所有字符作为一个数据单元,从而得到一个数据单元。本实施例中得到的数据单元是泄密数据的最小对齐单元。
优选地,若终止点指向的字符为锚字符或者为文本数据的最后一个字符时停止滑动,还需要进一步判断当前单元滑动窗口内除锚字符之外的字符个数是否小于预设的单元字符下限值,若当前单元滑动窗口内除锚字符之外的字符个数不小于预设的单元字符下限值,则将当前单元滑动窗口内除锚字符之外的所有字符作为一个数据单元;若当前单元滑动窗口内除锚字符之外的字符个数小于预设的单元字符下限值,则丢弃当前单元滑动窗口内的所有字符。这是为了使本发明实施例获得的数据块生成的指纹用于DLP技术时,能提高数据泄露检测精度,预设数据单元的字符个数的下限值,即单元字符下限值,当数据单元的字符个数小于单元字符下限值,认为该数据单元内的字符为干扰字符,并丢弃,其中,本领域普通技术人员可以理解,干扰字符是指对语义信息贡献程度低的字符,本发明在此不做限制。需要说明的是,该预设的单元字符上限值由实际的应用场景来确定的,例如:预设的单元字符上限值可以为3,本发明在此不做限制。
步骤204、判断当前单元滑动窗口内最后一个字符是否是文本数据的最后一个字符,若否则执行步骤205,否则执行步骤102。
步骤205、将当前单元滑动窗口的起始点和终止点均指向当前单元滑动窗口内最后一个字符在文本数据中的下一个字符,返回执行步骤201。
在本实施例中,若当前单元滑动窗口内最后一个字符不是文本数据的最后一个字符,则需要继续将当前单元滑动窗口遍历文本数据,因此可以将当前单元滑动窗口的起始点和终止点均指向当前单元滑动窗口内最后一个字符在文本数据中的下一个字符。
本发明实施例二提供的数据预处理方法,通过锚字符即根据自然语言的语法和语义信息对文本数据进行分割,去除语义区分度不高的字符,同时还根据单元字符上限值对文本数据进行分割,得到数据单元,然后通过不定长的当前块滑动窗口将数据单元组合成数据块,从而使得提取出的指纹用于DLP技术时,提高了数据泄密检测精度,同时,数据块为数据单元—块的两级结构数据,每个数据块的字符的个数基本保持一致,可以提高提取指纹的效益。
图3为本发明数据预处理方法实施例三的流程示意图,如图3所示,本实施例能够采用数据预处理装置来实现,该数据预处理装置可以采用软件来实现,并且这个装置可以集成在网关设备或服务器或工作站上来实现本实施例的方法,在图1所示实施例一或图2所示实施例二的基础上,本实施例三中的步骤102可以包括:
步骤206、将所述至少一个数据单元按在文本数据中的顺序依次排列。
在本实施例中,将步骤101或步骤201~步骤205中所得到的至少一个数据单元按照文本数据中的顺序,也就是得到各数据单元的先后顺序,进行依次排列。
步骤207、将当前块滑动窗口的左沿和右沿均指向至少一个数据单元中的第一个数据单元。
在本实施例中,利用块滑动窗口将数据单元组合成数据块。具体地,确定当前块滑动窗口,并且将当前块滑动窗口的左沿和右沿均指向已进行顺序依次排列的至少一个数据单元中的第一个数据单元。
步骤208、若当前块滑动窗口内的字符个数小于块字符阈值,则将右沿向后续数据单元滑动,直至当前块滑动窗口内的字符个数大于块字符阈值时将右沿前向滑动一个数据单元后停止滑动,或者,直至所述当前块滑动窗口内的字符个数等于所述块字符阈值时停止滑动。
在本实施例中,当当前块滑动窗口的左沿和右沿均指向第一个数据单元时,左沿不动,将右沿从该第一个数据单元开始向后续数据单元滑动,当右沿每向后滑动一个数据单元,就判断当前块滑动窗口内的字符个数与块字符阈值之间的关系,若判断出当前块滑动窗口内的字符个数小于块字符阈值,则将右沿继续向后续数据单元滑动,若判断出当前块滑动窗口内的字符个数大于块字符阈值,为了保证得到的数据块的字符不超过块字符阈值,则将右沿前向滑动一个数据单元,以使当前块滑动窗口内的字符个数小于块字符阈值。可选地,若判断出当前块滑动窗口内的字符个数等于块字符阈值,则停止滑动。
需要说明的是,在右沿向后滑动的过程中,只要满足步骤208中停止滑动的两个条件中的任何一个,右沿就停止滑动。
另外,若预设的单元字符阈值等于预设的块字符阈值,则可能出现步骤207中的当前块滑动窗口内的字符个数等于所述块字符阈值的情况,对应地,在这种场景下,作为替代的,步骤208包括:若当前块滑动窗口内的字符个数等于所述块字符阈值,则直接执行步骤209。
步骤209、根据当前块滑动窗口内的至少一个数据单元,得到一个数据块。
在本实施例中,若步骤208中,当右沿前向滑动一个数据单元,使当前块滑动窗口内的字符个数小于块字符阈值,右沿停止滑动,对应地步骤209中将当前块滑动窗口内的至少一个数据单元作为一个数据块,从而得到一个数据块;可选地,若步骤208中当前块滑动窗口内的字符个数等于块字符阈值时停止滑动,对应地步骤209中将当前块滑动窗口内的至少一个数据单元作为一个数据块,从而得到一个数据块。
步骤210、将当前块滑动窗口的左沿和右沿均向后移一个数据单元。
在本实施例中,在得到一个数据块之后,将该数据块的数据单元所对应的当前块滑动窗口的左沿和右沿均向后移一个数据单元。
在当前块滑动窗口中包括至少两个数据单元的场景下,左沿和右沿均后移后的当前块滑动窗口与未移动前的当前块滑动窗口内有部分数据单元相同。
步骤211、若所述当前块滑动窗口内的字符个数小于所述块字符阈值,则将右沿向后续数据单元滑动,直至当前块滑动窗口内的字符个数大于块字符阈值时将右沿前向滑动一个数据单元后停止滑动,或,直至所述当前块滑动窗口内的字符个数等于所述块字符阈值时停止滑动,或,所述当前块滑动窗口内的字符个数小于所述块字符阈值且所述右沿指向最后一个数据单元时停止滑动。
在本实施例中,若判断出当前块滑动窗口内的字符个数小于块字符阈值,则将右沿向后续数据单元滑动,当右沿每向后滑动一个数据单元,就判断当前块滑动窗口内的字符个数与块字符阈值之间的关系,若判断出当前块滑动窗口内的字符个数小于块字符阈值,则将右沿继续向后续数据单元滑动,若判断出当前块滑动窗口内的字符个数大于块字符阈值,为了保证得到的数据块的字符不超过块字符阈值,则将右沿前向滑动一个数据单元,以使当前块滑动窗口内的字符个数小于块字符阈值。若判断出当前块滑动窗口内的字符个数等于块字符阈值,或,所述当前块滑动窗口内的字符个数小于所述块字符阈值且所述右沿指向最后一个数据单元,则停止滑动。
需要说明的是,在右沿向后滑动的过程中,只要满足步骤211中停止滑动的三个条件中的任何一个,右沿就停止滑动。
步骤212、根据当前块滑动窗口内的至少一个数据单元,得到一个数据块。
在本实施例中,若步骤211中,当当前块滑动窗口内的字符个数大于所述块字符阈值时将右沿前向滑动一个数据单元,使当前块滑动窗口内的字符个数小于块字符阈值,右沿停止滑动,对应地步骤212中将当前块滑动窗口内的至少一个数据单元作为一个数据块,从而得到一个数据块。若步骤211中,所述当前块滑动窗口内的字符个数等于所述块字符阈值或所述右沿指向最后一个数据单元时停止滑动,对应地步骤212中将当前块滑动窗口内的至少一个数据单元作为一个数据块,从而得到一个数据块。
需要说明的是,步骤212执行完之后,判断当前块滑动窗口的右沿是否指向最后一个数据单元,若否则可以再返回执行步骤210,直至当前块滑动窗口的右沿指向最后一个数据单元时,得到最后一个数据块,即结束。
在数据预处理装置获得数据块后,将所获得的数据块发送给指纹提取装置,由指纹提取装置对该数据块进行指纹提取处理,其中,指纹提取装置可以采用随机选择法、求模选择法、滑动窗口选择法等进行指纹提取,其中,随机选择就是随机选择数据块中的若干数据块,对选定的数据块进行归一化处理,将这些块的哈希值作为指纹。求模选择法是对各数据块的哈希值求余,余数在一定范围内的块哈希值选择指纹。滑动窗口选择法同样对数据块进行哈希计算,得到归一化的哈希值序列,然后利用块窗口在块序列上滑动,每个窗口内选择一个块哈希值作为指纹。本领域普通技术人员可以理解,指纹提取方法可以与现有技术中一致,本发明在此不做详细介绍。
本发明实施例三提供的数据预处理方法,通过锚字符即根据自然语言的语法和语义信息对文本数据进行分割,去除语义区分度不高的字符,同时还根据单元字符上限值对文本数据进行分割,得到数据单元,然后通过不定长的当前块滑动窗口将数据单元组合成数据块,从而使得提取出的指纹用于DLP技术时,提高了数据泄密检测精度,同时,数据块为数据单元—块的两级结构数据,每个数据块的字符的个数基本保持一致,可以提高提取指纹的效益,并且相邻数据块之间的首尾部分数据单元相同,保留了文本数据的主要信息,保证了机密数据中局部文本数据泄密的检测能力,进一步,还可以通过设置块字符阈值来减少指纹尺寸,提高数据泄露的检测效率。
图4为本发明数据预处理方法的原理示意图,如图4所示,首先通过预设的锚字符集合中的锚字符分割文本数据,筛选掉太短的数据单元,然后将所得到的数据单元按照文本数据中的顺序依次排列从而得到候选数据单元序列,该数据单元序列中包括数据单元A、数据单元B、数据单元C、数据单元D、数据单元E、数据单元F等,在候选数据单元序列上采用变长的块滑动窗口划分出数据块,将所得到的数据块计入块序列,该块序列包括:由数据单元A、B、C组成的数据块,由数据单元B、C、D组成的数据块,由数据单元C、D、E组成的数据块,由数据单元D、E组成的数据块,由数据单元E、F组成的数据块等。另外,块滑动窗口滑动步距为一个数据单元,因此相邻块滑动窗口的首尾单元是重叠的。数据单元是机密文本泄漏检测的最小对齐单位,即能够检测到的泄露必然以数据单元开始,并以数据单元结束,这种划分方法能够有效地减少指纹尺寸,并确保足够的检测能力。
图5为本发明数据预处理方法实施例四的流程示意图,如图4和图5所示,本实施例能够采用数据预处理装置来实现,该数据预处理装置可以采用软件来实现,并且这个装置可以集成在网关设备或服务器或工作站上来实现本实施例的方法,本实施例的方法可以包括:
步骤301、当前单元滑动窗口的起始点和终止点均指向文本数据的第一个字符。
在本实施例中,在获得文本数据之后,初始化当前单元滑动窗口,将当前单元滑动窗口的起始点和终止点均指向文本数据的第一个字符。
步骤302、将终止点向文本数据中的后一个字符滑动。
在本实施例中,将终止点以一个字符的步长向文本数据中的后续字符滑动,终止点每向后续字符滑动一个字符,就确定终止点指向的当前字符,执行步骤303。
步骤303、判断当前字符是否为文本数据中的最后一个字符,若否,则执行步骤304,若是,则执行步骤310。
具体地,本实施例中的当前字符是指终止点当前指向的字符。
步骤304、判断当前单元滑动窗口内的字符个数是否等于单元字符上限值,若是,则执行步骤305,否则执行步骤307。
步骤305、终止点停止滑动,根据当前单元滑动窗口内的字符,得到一个数据单元。
在本实施例中,若判断出当前单元滑动窗口内的字符等于单元字符上限值时,终止点停止滑动,确定当前单元滑动窗口,将当前单元滑动窗口内的所有字符作为一个数据单元,从而得到一个数据单元,这是因为每个数据单元的字符个数不超过单元字符上限值。
具体地,若当前单元滑动窗口内包含锚字符,则将当前单元滑动窗口内除锚字符之外的所有字符作为一个数据单元。
步骤306、将当前单元滑动窗口的起始点和终止点均指向当前滑动窗口内最后一个字符在文本数据中的下一个字符,执行步骤302。
步骤307、判断当前字符是否为锚字符,若是,则执行步骤308,否则执行步骤302。
步骤308、判断当前单元滑动窗口内除锚字符之外的字符个数是否小于单元字符下限值,若否,则执行步骤305,否则执行步骤309。
步骤309、丢弃当前单元滑动窗口内的所有字符,执行步骤306。
步骤310、终止点停止滑动,判断当前单元滑动窗口内的字符个数是否小于单元字符下限值,若是则丢弃当前单元滑动窗口内的所有字符,若否则根据当前单元滑动窗口内的字符,得到一个数据单元。
在本实施例中,当判断出终止点所指向的当前字符为文本数据中的最后一个字符时,终止点停止滑动,根据当前单元滑动窗口内的字符,得到一个数据单元,具体地,还可以判断该最后一个字符是否为锚字符,若是,则将当前单元滑动窗口内的除最后一个字符之外的所有字符作为一个数据单元,否则将当前单元滑动窗口内的所有字符作为一个数据单元。
步骤311、将数据单元计入数据单元序列。
本实施例中,将步骤305和步骤310所得的数据单元,例如:数据单元A、B、C、D、E、F按照在文本数据中的顺序依次排列,形成数据单元序列。
步骤312、将当前块滑动窗口的左沿和右沿均指向数据单元序列中的第一个数据单元。
在本实施例中,在将文本数据分割成数据单元,并且将数据单元按照在文本数据中的顺序依次排列形成数据单元序列后,将当前块滑动窗口的左沿和右沿均指向数据单元序列的第一个数据单元。
步骤313、判断当前块滑动窗口内的字符个数是否大于预设的块字符阈值,若否则执行步骤314,否则执行步骤317。
在本实施例中,块字符阈值主要由数据泄露检测粒度来确定,因此为了满足数据泄露检测粒度,即每个数据块的字符个数可以不超过块字符阈值,需要判断当前块滑动窗口内的字符个数是否大于块字符阈值。
在步骤312后执行步骤313时,当前块滑动窗口内的字符个数通常小于或等于预设的块字符阈值。在步骤316或步骤320后执行步骤313时,当前块滑动窗口内的字符个数通常小于或等于或大于预设的块字符阈值。
步骤314、判断当前块滑动窗口内的字符个数是否等于所述块字符阈值,若是则执行步骤318,否则执行步骤315。
步骤315、判断当前块滑动窗口的右沿是否指向数据单元序列中的最后一个数据单元,若是执行步骤318,若否执行步骤316。
在步骤314之后执行步骤315时,当前块滑动窗口内的字符个数小于所述块字符阈值。
步骤316、将右沿向后一个数据单元滑动,执行步骤313。
具体地,将右沿从右沿当前所指向的数据单元向后滑动一个数据单元。
步骤317、将右沿向前一个数据单元滑动,执行步骤318。
在本实施例中,当判断出当前块滑动窗口内的字符个数大于块字符阈值,则应该减少当前块滑动窗口内的字符个数,所以可以将右沿向前移动一个数据单元。具体地,将右沿从右沿当前所指向的数据单元向前滑动一个数据单元。
步骤318、根据当前块滑动窗口内的数据单元,得到一个数据块,执行步骤319。
由于当前块滑动窗口是以一个数据单元为步长进行滑动,因此,当前块滑动窗口通常包括至少一个数据单元。
另外,在步骤314之后执行步骤318时,当前块滑动窗口内的字符个数小于所述块字符阈值,但当前块滑动窗口的右沿指向数据单元序列中的最后一个数据单元,此时,将当前块滑动窗口内的所有数据单元作为一个数据块,从而得到最后一个数据块。
步骤319、判断当前块滑动窗口的右沿是否指向数据单元序列中的最后一个数据单元,若是,则结束,若否则执行步骤320。
步骤320、将当前块滑动窗口的左沿和右沿均向后移一个数据单元,执行步骤313。
具体地,将右沿从右沿当前所指向的数据单元向后移动一个数据单元,将左沿从左沿当前所指向的数据单元向后移动一个数据单元。
在本实施例中,在得到一个数据块之后,还需要继续遍历数据单元序列中的后续数据单元,因此,将当前块滑动窗口的左沿和右沿均向后移一个数据单元,然后再执行步骤313,例如:得到一个数据块之后,并且该数据块中包括三个数据单元,则说明当前块滑动窗口覆盖三个数据单元,然后,将当前块滑动窗口的左沿向后移一个数据单元,将当前块滑动窗口的右沿向后移一个数据单元,移动后的当前块滑动窗口也覆盖三个数据单元。
在本实施例中,还可以将步骤318所得到的数据块按得到的前后顺序依次排列成块序列,即结束。在数据预处理装置获得数据块后,将所获得的数据块发送给指纹提取装置,由指纹提取装置对该数据块进行指纹提取处理,其中,指纹提取装置可以采用随机选择法、求模选择法、滑动窗口选择法等进行指纹提取,其中,随机选择就是随机选择数据块中的若干数据块,对选定的数据块进行归一化处理,将这些块的哈希值作为指纹。求模选择法是对各数据块的哈希值求余,余数在一定范围内的块哈希值选择指纹。滑动窗口选择法同样对数据块进行哈希计算,得到归一化的哈希值序列,然后利用块窗口在块序列上滑动,每个窗口内选择一个块哈希值作为指纹。本领域普通技术人员可以理解,指纹提取方法可以与现有技术中一致,本发明在此不做详细介绍。
本发明实施例四提供的数据预处理方法,通过锚字符即根据自然语言的语法和语义信息对文本数据进行分割,去除语义区分度不高的字符,同时还根据单元字符上限值对文本数据进行分割,得到数据单元,然后通过不定长的当前块滑动窗口将数据单元组合成数据块,从而使得提取出的指纹用于DLP技术时,提高了数据泄密检测精度,同时,数据块为数据单元—块的两级结构数据,每个数据块的字符的个数基本保持一致,可以提高提取指纹的效益,并且相邻数据块之间的首尾部分数据单元相同,保留了文本数据的主要信息,保证了机密数据中局部文本数据泄密的检测能力,进一步,还可以通过设置块字符阈值来减少指纹尺寸,提高数据泄露的检测效率。
文本数据内容的深度识别技术(即文本数据内容感知技术)是DLP的关键技术,现有技术中的主要困难在于需要能够辨别不同格式的文档,能够准确识别出标点、段落次序及少量字词不同的两段文本数据间的相似性。采用本发明上述实施例提供的文本数据预处理方法,首先提取出不同文档中的文本信息,然后采用锚字符集合,对文本数据划分成数据单元,随后采用变长的块滑动窗口在数据单元序列上划分数据块,形成块-单元的两级数据结构。其中划分数据单元的目的是定义泄漏文本的最小对齐单位,便于检测以单元为起点和终点的泄露文本数据;划分数据块的目的是定义泄漏文本的最小检测单位,便于检测以块为单位的泄露文本数据。块-单元两级数据结构划分方法高效地提取出文本数据中主要信息,解决了不同格式文本、高度相似文本的识别问题,为文本指纹选取和匹配提供了充足的信息。
现有技术中DLP指纹技术的另一个问题是需要量化控制泄露文本数据的检测能力,采用本发明上述实施例提供的数据预处理方法将文本数据划分为块-单元的两级数据结构,严格控制了数据单元与数据块涵盖的文本长度,使得以数据块序列为基础提取的指纹能够准确跟踪泄漏文本数据的长度。
本发明上述实施例提供的数据预处理方法应用于DLP系统中,提高了DLP系统的机密数据鉴别能力。并且包括本发明上述实施例提供的数据预处理方法的数据内容感知技术也可以用于文本查重、模糊搜索等领域。例如,在论文防剽窃应用中,可以先对已有的论文集合建立文本指纹库,对待测的新论文提取指纹,通过检索论文库查重,能够非常精确地查找出可能的剽窃信息。对于模糊搜索,可以先对一段感兴趣的文本建立指纹,然后对大量文本进行指纹匹配,能够精确搜索出相关度非常高的信息。
图6为本发明数据预处理装置实施例一的结构示意图,如图6所示,本实施例的装置可以包括:分割模块11和组合模块12,其中,分割模块11用于根据预设锚字符集合中的锚字符将文本数据分割成至少一个数据单元,每个数据单元均不包括锚字符,且每个数据单元的字符个数不超过预设的单元字符上限值。组合模块12用于将至少一个数据单元组合成至少一个数据块,每个数据块包括至少一个数据单元且每个数据块的字符个数不超过预设的块字符阈值,以对至少一个数据块进行指纹提取处理。
上述各模块之间的交互流程具体可以参考方法实施例中的描述,此处不再赘述。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理类似,详细可以参见上述实施例中的记载,此处不再赘述。
本发明实施例一提供的数据预处理装置,通过分割模块根据预设锚字符集合中的锚字符将文本数据分割成至少一个数据单元,每个数据单元均不包括锚字符,且每个数据单元的字符个数不超过预设的单元字符上限值;组合模块将至少一个数据单元组合成至少一个数据块,每个数据块包括至少一个数据单元且每个数据块的字符个数不超过预设的块字符阈值,以对至少一个数据块进行指纹提取处理。
图7为本发明数据预处理装置实施例二的结构示意图,如图7所示,本实施例的装置在图6所示装置结构的基础上,进一步地,分割模块11还可以包括:确定子模块111、第一滑动子模块112和第一获得子模块113,其中,确定子模块111用于确定当前单元滑动窗口,当前单元滑动窗口的起始点和终止点均指向文本数据中的同一个字符;第一滑动子模块112用于将终止点向文本数据中的后续字符滑动,直至当前单元滑动窗口内的字符个数等于单元字符上限值时,或,所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且所述终止点指向的字符为所述锚字符时,或,所述当前单元滑动窗口内的字符个数小于所述单元字符上限值且终止点指向的字符为文本数据的最后一个字符时,停止滑动;第一获得子模块113用于根据当前单元滑动窗口内除锚字符之外的所有字符,得到一个数据单元。第一滑动子模块112还用于在第一获得子模块113根据当前单元滑动窗口内除锚字符之外的所有字符得到一个数据单元之后,若当前单元滑动窗口内最后一个字符不是文本数据的最后一个字符,则将当前单元滑动窗口的起始点和终止点均指向当前单元滑动窗口内最后一个字符在文本数据中的下一个字符。
优先地,第一获得子模块113具体用于若当前单元滑动窗口内除锚字符之外的字符个数不小于预设的单元字符下限值,则根据当前单元滑动窗口内除锚字符之外的所有字符,得到一个数据单元;若当前单元滑动窗口内除锚字符之外的字符个数小于预设的单元字符下限值,则丢弃当前单元滑动窗口内的所有字符。
更进一步地,本实施例的装置在图6所示装置结构的基础上,上述的组合模块12可以包括排列子模块121、指向子模块122、第二滑动子模块123和第二获得子模块124,其中,排列子模块121用于将至少一个数据单元按在文本数据中的顺序依次排列;指向子模块122用于将当前块滑动窗口的左沿和右沿均指向至少一个数据单元中的第一个数据单元;第二滑动子模块123用于若当前块滑动窗口内的字符个数小于所述块字符阈值,则将右沿向后续数据单元滑动,直至当前块滑动窗口内的字符个数大于块字符阈值时将右沿前向滑动一个数据单元后停止滑动,或者,直至所述当前块滑动窗口内的字符个数等于所述块字符阈值时停止滑动;第二获得子模块124根据当前块滑动窗口内的至少一个数据单元,得到一个数据块。
第二滑动子模块123还用于第二获得子模块124根据当前块滑动窗口内的至少一个数据单元得到一个数据块之后,将当前数据单元窗口的左沿和右沿均向后移一个数据单元;若所述当前块滑动窗口内的字符个数小于所述块字符阈值,则将右沿向后续数据单元滑动,直至当前块滑动窗口内的字符个数大于块字符阈值时将右沿前向滑动一个数据单元后停止滑动,或,直至所述当前块滑动窗口内的字符个数等于所述块字符阈值时停止滑动,或,所述当前块滑动窗口内的字符个数小于所述块字符阈值且所述右沿指向最后一个数据单元时停止滑动。第二获得子模块124还用于根据当前块滑动窗口内的至少一个数据单元,得到一个数据块。
优选地,第二获得子模块124,还用于在第二滑动子模块123将所述当前数据单元窗口的左沿和右沿均向后移一个数据单元之后,若所述当前块滑动窗口内的字符个数等于所述块字符阈值,则根据所述当前块滑动窗口内的至少一个数据单元,得到一个数据块。
第二滑动子模块123,还用于将所述当前数据单元窗口的左沿和右沿均向后移一个数据单元之后,若所述当前块滑动窗口内的字符个数大于所述块字符阈值,则将所述右沿前向滑动一个数据单元。
第二获得子模块124,还用于若当前块滑动窗口内的字符个数大于块字符阈值,在第二滑动子模块123将右沿前向滑动一个数据单元之后,根据当前块滑动窗口内的至少一个数据单元,得到一个数据块。
上述各模块之间的交互流程具体可以参考方法实施例中的描述,此处不再赘述。
本实施例的装置,可以用于执行图2或图3或图5所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
本发明实施例二提供的数据预处理装置,通过锚字符即根据自然语言的语法和语义信息对文本数据进行分割,去除语义区分度不高的字符,同时还根据单元字符上限值对文本数据进行分割,得到数据单元,然后通过不定长的当前块滑动窗口将数据单元组合成数据块,从而使得提取出的指纹用于DLP技术时,提高了数据泄密检测精度,同时,数据块为数据单元—块的两级结构数据,每个数据块的字符的个数基本保持一致,可以提高提取指纹的效益,并且相邻数据块之间的首尾部分数据单元相同,保留了文本数据的主要信息,保证了机密数据中局部文本数据泄密的检测能力,进一步,还可以通过设置块字符阈值来减少指纹尺寸,提高数据泄露的检测效率。
图8为包括本发明数据预处理装置的数据内容感知系统实施例一的结构示意图,如图8所示,本实施例的数据内容感知装置可以包括数据预处理装置22和指纹提取装置24。本发明实施例中的数据预处理装置可以采用图6或图7任一装置实施例的结构,其对应地,可以执行图1~图3或图5中任一方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。本发明实施例中的指纹提取装置24,用于根据预设的指纹选择算法,对数据预处理装置22得到的至少一个数据块进行指纹提取,得到至少一个指纹。需要说明的是,指纹选择算法可以为随机选择法、求模选择法、滑动窗口选择法等,本领域普通技术人员可以理解,指纹选算法与现有技术中一致,此处不再赘述。即本发明实施例中的数据预处理装置22采用独特的块-单元两级文本数据分割方法输出数据块序列。
进一步地,数据内容感知系统还可以包括:解析装置21和数据检查装置23,解析装置21用于对训练文档集合进行解析,数据检查装置23用于对待测文档进行检查。其中,训练文档集合包含所有需要保护的机密文档数据,待测文档是需要进行涉密信息过滤的文本数据。具体地,训练文档集合中的文档首先进入解析装置21,由解析装置21进行文档类型识别,如果是压缩类型的文档,则解析装置21会进行解压,然后解析出机密文本数据,随后输入数据预处理装置22。待测文档可能是一个文档,也可能是从网络上截获的数据包,因此待测文档需要首先经过数据检查装置23进行数据还原,还原出文档,然后输入解析装置21,进行文档类型识别、解压及解析等处理,得到文本数据。数据预处理装置22会对文本数据进行预处理,然后交由指纹提取装置24生成指纹。
图9为基于本发明数据预处理方法的DLP系统实施例一的结构示意图,如图9所示,本实施例的DLP系统包括:内网用户31、电子邮件服务器32、Web代理服务器33、电子邮件DLP网关34、Web DLP网关35、网络DLP监视服务器36、交换机37、DLP管理服务器38和互联网39。电子邮件DLP网关34、Web DLP网关35和网络DLP监视服务器36中均可以集成有本发明图8所示的数据预处理装置22和指纹提取装置24。
其中,内网用户31通过电子邮件服务器32发送电子邮件,或通过Web代理服务器33上网时,会产生发送到外网的数据流。电子邮件DLP网关34作为邮件链路上的节点,通过解析简单邮件传输(Simple Mail TransferProtocol,简称为SMTP)/扩展SMTP(Extended SMTP,简称为ESMTP)协议还原邮件正文及附件等信息,进行包括本发明上述实施例提供的数据预处理方法的涉密信息过滤;互联网(Web)DLP网关35通过互联网内容改编协议(Internet Content Adaptation Protocol,简称为ICAP)等协议与Web代理服务器33通信,Web代理服务器33将超文本传送协议(hypertext transportprotocol,简称为HTTP)数据报文引流到Web DLP网关35,Web DLP网关35从报文中还原出上传文件及表单数据,进行包括本发明上述实施例提供的数据预处理方法的涉密信息过滤;网络DLP监视服务器36通过端口镜像等方式从交换机37获取到流出内网的数据报文,进行协议分析,还原出承载于各类应用层协议的数据,进行包括本发明上述实施例提供的数据预处理方法的涉密信息过滤。DLP管理服务器38负责创建涉密信息过滤策略,并分发到电子邮件DLP网关34、Web DLP网关35及网络DLP监视服务器36等DLP设备。另外,提取指纹等功能也可以在DLP管理服务器38上实现。
图10为包括本发明数据预处理装置的服务器实施例一的结构示意图,如图10所示,本实施例的服务器可以为图9所示的网络DLP监视服务器36也可以为专用的指纹采集服务器,本实施例的服务器可以包括:训练数据接收装置41,解析装置42、数据预处理装置43、指纹提取装置44,指纹索引装置45、DLP策略产生装置46,DLP策略分发装置47等。本发明实施例中的数据预处理装置43可以采用图8所示的数据预处理装置22。本发明实施例中的指纹提取装置44可以采用图8所示的指纹提取装置24。其中,指纹索引装置45用来为指纹库建立索引,以加速指纹匹配。其中,训练数据接收装置41接收用于指纹训练的文档数据,例如机密文档数据集合(包括所有需要保护的机密文档数据)等。训练数据接收装置41将收到的用于指纹训练的文档数据输入解析装置42,由解析装置42负责文档的识别、解压、文本提取等操作,最终形成文本数据输入到数据预处理装置43。指纹提取装置44及指纹索引装置45分别将产生的指纹库以及指纹索引输入DLP策略产生装置46,DLP策略产生装置46用于创建DLP指纹相关的策略,最终DLP策略由DLP策略分发装置47发送给如图9所示的电子邮件DLP网关34等DLP过滤设备。
图11为基于本发明数据预处理方法的DLP系统实施例二的结构示意图,图12为图11中DLP扫描代理装置56的一种结构示意图,如图11和12所示,本实施例的DLP系统可以包括:DLP管理服务器51、DLP扫描服务器52、工作站53、文件服务器54和数据库服务器55等设备,工作站53、文件服务器54和数据库服务器55中均安装有DLP扫描代理装置56。本实施例的DLP扫描代理装置56包括:扫描策略接收装置561、本地扫描装置562、解析装置563、数据预处理装置564、指纹提取装置565和指纹发送装置566。本发明实施例中的数据预处理装置564可以采用图8所示的数据预处理装置22,本发明实施例中的指纹提取装置565可以采用图8所示的指纹提取装置24。
DLP管理服务器51将DLP数据扫描的策略组下发至DLP扫描服务器52,其中,数据扫描的策略组包括工作站53的数据扫描策略、文件服务器54的数据扫描策略和数据库服务器55的数据扫描策略等。DLP扫描服务器52对数据扫描的策略组进行分解,将分解得到的工作站53的数据扫描策略发送给需要扫描的工作站53,将分解得到的文件服务器54的数据扫描策略发送给需要扫描的文件服务器54以及将分解得到的数据库服务器55的数据扫描策略发送给需要扫描的数据库服务器55等设备,这些设备都安装了DLP扫描代理装置56,然后由DLP扫描代理装置56根据扫描策略进行本地数据扫描。本地扫描的基本原理是遍历本地文件系统等存放数据的逻辑实体,对得到的文档进行解析、文本数据预处理、提取指纹等操作,然后将文本指纹直接发送至DLP扫描服务器52,由DLP扫描服务器52来检查文本指纹中是否包含机密信息。
DLP扫描代理装置56的具体处理过程为:扫描策略接收装置561接收来自DLP扫描服务器52的扫描策略,然后通知本地扫描装置562进行本地数据扫描,解析装置563对扫描到的数据进行识别、解压及解析得到文本数据,输入数据预处理装置564,进行预处理后输入指纹提取装置565生成文本指纹,最后由指纹发送装置566将指纹发送给DLP扫描服务器52,由DLP扫描服务器52判断是否包含机密数据。
图13为本发明提供的计算节点实施例一的结构示意图,如图13所示,本实施例提供的计算节点700可以是包含计算能力的主机服务器,或者是个人计算机(Personal Computer;以下简称:PC),或者是可携带的便携式计算机或终端等,本发明在此不做限制,本发明具体实施例并不对计算节点700的具体实现做限定。计算节点700可以包括:处理器(Processor)710、通信接口(Communications Interface)720、存储器(memory)730、通信总线740,其中,处理器710、通信接口720和存储器730通过通信总线740完成各设备之间的通信。
存储器730用于存储执行本发明方案的程序代码。存储器730可以包含高速随机存储器(Random Access Memory,简称为RAM),也可以还包括非易失性存储器(Non-volatile Memory),例如为至少一个磁盘存储器。
处理器710用于执行存储在存储器730中的程序代码,具体地,程序代码包括计算机操作指令。其中,处理器710可以是一个中央处理器(CentralProcessing Unit,简称为CPU),或者是特定集成电路ASIC(Application SpecificIntegrated Circuit;简称为ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
在一些实施方式中,存储器730存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:
操作系统731,包含各种系统程序,用于实现各种基础业务以及处理基于硬件的任务;
应用模块732,包含各种应用程序,用于实现各种应用业务。
应用模块732中包括但不限于:分割模块733和组合模块734。应用模块732中各模块的具体实现参见本发明数据预处理装置实施例一或二中的相应模块,在此不赘述。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。