一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

敏感数据库信息的检测的制作方法

2022-07-24 01:23:15 来源:中国专利 TAG:


1.本公开总地涉及计算机系统操作,并且更具体地涉及识别计算机系统内的敏感数据对象。


背景技术:

2.企业、政府机构、学校系统或任何其他形式的大型多用户实体可能依赖企业计算系统来为多个用户提供计算基础设施。企业计算系统通常包括提供计算能力的一台或多台服务器计算机和为这些用户提供网络可访问信息存储的一个或多个数据库。随着企业计算系统的增长,由服务和用户创建并存储在一个或多个数据库中的可访问信息的数量也在增长。基于允许存储在每个数据库中的信息的类型,企业计算系统内的各种数据库可能具有不同的安全规则。对于特定数据库,这些安全规则可以包括识别允许存储在特定数据库中的数据的类型,以及为每种类型指定特定存储格式,例如,如果使用特定加密算法来加密信息,则用户名和密码可被允许,而信用卡或其他财务信息可被禁止存储在该特定数据库中。实施安全规则的一个原因是在数据库泄露的情况下限制对个别信息的访问。
3.当未经授权的用户获得对受限数据库的访问权时,就会发生数据库泄露,例如黑客获得对公司的用户帐户数据库的访问权,这有可能使得黑客能够访问个人用户帐户。全球正在颁布数据保护法,以激励管理具有敏感信息的数据库的实体提高其安全标准,从而减少存储在其数据库中的敏感信息的暴露。实体未能遵守这些数据保护法可能会导致罚款和/或诉讼。
附图说明
4.图1图示了企业计算系统的实施例的框图。
5.图2示出了根据一些实施例的风险分析扫描系统的示例的框图。
6.图3包括两个表格,分别描绘一组安全规则和一组扫描模型。
7.图4是根据一些实施例的示出用于执行风险分析扫描的示例方法的流程图。
8.图5示出了用于在特定安全区域内执行风险分析扫描的方法的实施例的流程图。
9.图6描绘了用于由仓储区域接收风险分析扫描的结果的方法的实施例的流程图。
10.图7图示了用于由仓储区域更新位于多个安全区域内的安全规则的方法的实施例的流程图。
11.图8示出了用于对存储在特定数据库中的数据对象执行风险分析扫描的方法的实施例的流程图。
12.图9是根据一些实施例的示出计算机系统的框图。
13.图10描绘了包括计算机系统和数据库的计算机网络的实施例的框图。
14.图11图示了由神经网络分类器扫描数据对象的实施例的框图。
15.图12示出了元数据提取管线的实施例的框图。
16.图13描绘了数据配置文件转换管线的实施例的框图。
17.图14图示了规则引擎管线的实施例的框图。
18.图15是图示根据一些实施例的用于执行对数据库中的数据项的扫描的示例方法的流程图。
19.图16示出了用于操作元数据提取管线的方法的实施例的流程图。
20.图17是根据一些实施例的描绘用于操作数据配置文件转换管线的示例方法的流程图。
具体实施方式
21.近年来,大规模数据库泄露事件已成为全球新闻。在某些泄露中,敏感数据没有使用适当的安全级别进行保护,从而使黑客能够访问和利用诸如用户帐户凭据或信用卡信息之类的信息。随着企业处理的数据量的增加,这个问题也越来越严重。一些企业计算系统可以包括多个数据库,这些数据库组合起来能够包括由多个用户(在某些情况下为数千甚至数百万用户)存储的数太字节数据。因此,负责根据已建立的安全规则审查和维护信息的适当存储的系统管理员面临着如下挑战:充分扫描存储在每个数据库中的信息以确定每个数据项是否根据相应数据库的安全规则存储。本发明人已经认识到对如下技术的希求:该技术能够提高系统管理员扫描在诸如企业计算系统之类的计算系统中跨多个数据库存储的大量信息的能力。
22.本文公开了用于扫描存储在第一数据库和第二数据库中的多个数据对象的技术,该第一数据库在具有第一组安全规则的第一安全区域内,并且该第二数据库在具有第二组安全规则的第二安全区域内。“区域”指的是一个或多个数据仓储(例如数据库或其他存储器)的集合,这一个或多个数据仓储具有某一共同特性(例如,它们由特定网络设备控制,位于共同的位置、根据一组策略规则进行操作等)。“安全区域”指的是根据一组安全规则进行管理的区域。系统管理员或其他授权实体例如基于已存储或将存储在包括在特定安全区域中的数据仓储中的信息类型来为该特定区域建立一组规则。计算机网络中可能存在多个不同的安全区域,每个区域可能具有不同组的安全规则。对给定安全区域的一组安全规则的更改会更改给定安全区域中一个或多个数据库的安全规则。在一个示例中,计算机系统执行第一数据库的第一扫描以确定存储在第一数据库中的数据对象是否符合第一组安全规则。然后,计算机系统执行第二数据库的第二扫描以确定存储在第二数据库中的数据对象是否符合第二组安全规则。在完成扫描之后,计算机系统将第一和第二扫描的结果传送到仓储区域(即,用于存储结果的区域,可以是任何合适的数据仓储)以供系统管理员查看。由于被扫描的数据对象可能包括敏感信息,因此可以仅传送结果而无需将实际数据对象传送到仓储区域。
23.为了执行对一个或多个数据库的扫描,设想了利用神经网络分类器来识别与一组指定输出类中的一个或多个相对应的数据项的技术。如本文所使用的,“输出类”是指具有一个或多个共同特性并且可由神经网络识别的数据的类型或类别。一种这样的技术包括执行扫描以识别数据库中对应于多个指定输出类中的一个或多个的数据项。该扫描包括确定数据库的一部分的元数据,以及为存储在数据库的该部分中的一组数据项生成数据配置文件(profile)。从元数据和数据配置文件提取的特征被发送到多类神经网络分类器,该多类神经网络分类器被训练为识别该组数据项是否与多个指定输出类之一相对应。基于神经网
络分类器的输出,可以识别对应于该组数据项的特定输出类。
24.在随后的相关联的附图和相关描述中,在图1-图3中公开了用于扫描数据库以识别属于多个指定输出类之一的数据的系统的架构。图4-图8提供了用于操作这种系统架构的方法的示例。图9公开了可以用作系统架构的一部分的计算系统的示例。图10-图14图示了用于利用神经网络来执行对一个或多个数据库的扫描以识别所存储的数据的类别的可能技术。在一些情况下,参考图1到图9公开的架构实施例可以使用图10-图17的实施例来实现,但不受此限制。类似地,虽然参考图10-图17公开的神经网络实施例可以在图1到图9的实施例的上下文中使用,但其他应用也是可能的。
25.用于检测敏感数据库信息的架构
26.图1中图示了企业计算系统的实施例的框图。如图所示,企业计算系统100包括安全区域105a和105b,以及仓储区域107。安全区域105a和105b中的每一个包括数据库110a和110b中相应的一个,每个数据库存储数据对象115a-115f的相应的子集。安全区域105a和105b还包括计算设备101a和101b中相应的一个,每个计算设备包括安全规则130a和130b中相应的一个。仓储区域107包括仓储160。
27.企业计算系统100可以是由实体(企业、政府、教育系统等)用来向多个用户提供计算服务的任何合适的计算系统。在各种实施例中,企业计算系统可以在全部位于一个房间中的几个计算设备上实现,可以在世界各地的数百或数千个计算设备上实现,或者可以在这些示例之间的规模上实现。数据库110a和110b被维护在一个或多个相应的存储设备中,例如磁硬盘驱动器、固态驱动器、可移除存储设备(例如,cd-rom、dvd-rom等)等等。
28.如图所示,分别在安全区域105a和105b中维护数据库110a和110f。每个安全区域105a和105b具有各自的一组安全规则130a和130b。安全规则130a和130b分别定义了在安全区域105a和105b内存储数据对象的限制。安全规则130a和130b中的每一个包括关于可以存储在相应数据库110a-110b中的一种或多种类型的信息的指示,以及用于存储给定类型的信息的任何特定限制。
29.例如,数据库110a可以被企业计算系统100内具有高级访问权限的少数用户访问。因此,对数据库110a的访问可能受限于访问存储在数据库110a中的任何数据对象115a-115c所需的多级认证。因此,安全规则130a可以允许将多种类型的信息存储在数据库110a中,例如用户账户凭证、财务信息、分类报告等。然而,拥有企业计算系统100的实体的所有雇员和/或具有该实体的账户的外部所有者可能够访问数据库110b。因此,安全规则130b可能比安全规则130a更具限制性,因为数据库110b可被更多数量的用户访问。此外,数据库110b可能需要更少的认证步骤,从而使得数据库110b比数据库110a更容易受到未经授权的用户的非法侵入。安全规则130b可以限制将用户账户凭证存储到由批准的加密算法加密的数据对象,并且可以完全禁止财务或机密信息的存储。
30.数据对象115a-115f可以对应于任何合适形式的电子数据,例如文本文件、二进制文件、可执行文件等。例如,数据对象可以是文字处理器文件、电子表格文件、保存的电子邮件、可执行脚本、图像文件、音频文件、或可以存储在数据库中的任何其他类型的数据。由于可能存储在特定数据库中的各种类型数据的性质,安全规则130a和130b在数据对象被存储时可能无法实施。即使特定用户已经知道安全规则130b,特定用户也可能有意或无意地将包括分类信息的文档存储到数据库110b中。
31.为了帮助系统管理员识别潜在的安全规则违规,可以执行扫描以访问存储在各种数据库中的数据对象并确定给定数据对象中的数据的类型并基于相应的安全规则评估给定数据对象的存储。如图所示,计算机系统103在安全区域105a内执行对数据库110a的第一扫描以确定存储在数据库110a中的随机选择的第一群组的数据对象115a-115c是否符合安全规则130a。计算机系统103包括计算设备101a和101b,它们分别在安全区域105a和105b的相应一个中。为执行第一扫描,计算设备101a访问数据对象115a-115c中的每一个,确定可以存储在每个数据对象中的一种或多种类型的数据,然后将所确定的数据类型与用于存储所确定的数据的安全规则进行比较。记录任何潜在的违规。以类似的方式,计算机系统103还在安全区域105b内执行对数据库110b的第二扫描以确定存储在数据库110b中的随机选择的第二群组的数据对象115d-115f是否符合安全规则130b。为执行第二扫描,计算机系统103利用安全区域105b内的计算设备101b。
32.在一些实施例中,在给定风险分析扫描期间,并非所有存储在数据库中的数据对象都被扫描。例如,在一些实施例中,可以不扫描某些类型的数据对象,例如媒体文件、程序可执行文件和/或操作系统文件。在一些实施例中,数据库110a和/或110b可以包括非常大量的数据,例如太字节或拍字节级的数据。取决于可用于执行扫描的处理器带宽量以及用于从数据库110a和110b检索数据对象的访问时间,扫描如此大量的数据可能是不切实际的。在这样的实施例中,可以从数据库110a和110b中随机选择数据对象115a-115f。如本文所使用的,“随机选择”和“随机地选择”是指使用算法或其他合适的技术以不易重复的顺序选择数据对象。值得注意的是,一些通常称为“伪随机(pseudo-random)”的随机化技术可能不会产生真正的随机模式,因此在受控条件下可能是可重复的。此处使用的“随机地选择”和“随机选择的”包括真正随机和伪随机技术。
33.在所示实施例中,安全规则130a或安全规则130b中所包括的特定安全规则包括可用于将给定数据对象与特定类别匹配的一个或多个标准。为执行第一扫描和第二扫描,计算机系统103利用相应的计算设备101a和101b,使用这一个或多个标准来确定数据对象115a-115f中特定数据对象的置信得分。该置信得分表明该特定数据对象与特定分类匹配的置信水平。特定安全规则指定要对与特定分类匹配的给定数据对象实施的相应安全级别。计算机系统103将特定数据对象的指定安全级别与安全区域105a和105b中的相应一个的安全级别进行比较。在一些情况下,特定数据对象被加密,并且为确定加密数据对象的置信得分,计算机系统103在不执行解密操作的情况下确定置信得分。例如,计算机系统103可能无法访问加密数据对象的解密密钥。在这种情况下,计算机系统103可以通过在加密数据中寻找特定模式来评估加密数据对象,这些特定模式可以表明特定数据类型,例如信用卡号或电子邮件地址。加密数据的置信得分通常可能低于未加密数据的置信得分。
34.值得注意的是,如图1所示,计算机系统103包括多个计算设备101a-101b,每个计算设备101a-101b被包括在相应的安全区域105a-105b中。计算机系统103利用相应的计算设备101a-101b来执行对应的第一扫描和第二扫描。计算设备101a和101b中的每一个可以是例如台式或膝上型计算机、托管相应数据库的服务器计算机、用于执行扫描的专用硬件设备、分配给相应安全区域的虚拟机、或能够执行所公开的操作任何其他合适的设备。然而,在一些实施例中,可以使用能够访问每个安全区域的同一计算设备来执行第一扫描和第二扫描中的每一个。例如,企业计算系统100可以部分或完全在基于云的计算系统内实
现。设想了企业计算系统100的一些或所有元件可以在公共物理计算设备(例如包括在服务器计算机中的单个刀片服务器)上实现。
35.在完成第一扫描和第二扫描之后,计算机系统103将第一扫描和第二扫描的结果传送到仓储区域107以供系统管理员查看。这些传送的结果被存储在仓储区域107中所包括的仓储160中。为维护数据对象的安全级别,计算机系统103传送结果而不将存储在第一和第二数据库中的数据对象传送到仓储区域107。仓储160的访问安全级别可能没有一些安全区域那么高。因此,存储实际数据对象可能会违反用于存储一些类型的数据的安全规则。因此,在一些实施例中,计算机系统103可以仅传送关于扫描的数据对象的信息而不发送包括在扫描的数据对象中的任何数据。
36.计算机系统103基于包括在给定数据库中的特定数据对象中的数据类型来确定该特定数据对象的风险分析得分。该风险分析得分表明特定数据对象的存储与安全规则130a或130b中对应的一个的遵从程度。在一些实施例中,响应于风险分析得分满足阈值风险值,计算机系统103确定将风险分析得分传送到仓储区域107。例如,在一些实施例中,风险分析得分可以在从0到100的范围内,其中得分“0”表明给定数据对象的安全性的最低风险级别,而“100”表明最高风险级别。(但任何合适的得分范围,例如0到1,都是可行的。)阈值可以设置为50,并且计算机系统103传达高于50的那些风险分析得分。阈值可以由系统管理员、由政府或行业法规、由风险分析得分的统计分析、或由任何其他合适的过程来设置。在各种实施例中,可以针对每个安全区域单独设置阈值,或者可以针对企业计算系统100中的所有安全区域将阈值设置为单个值。
37.使用关于图1描述的这种技术。可以允许可扩展的安全扫描解决方案,该解决方案允许为各安全区域配置扫描,而将结果合并到中央仓储中。这种技术可以为负责一个或多个安全区域的系统管理员提供灵活性,以设置适合每个安全区域的安全需求的规则。此外,使用风险分析得分合并得出结果可以避免中央仓储中的安全问题,因为没有安全数据被发送到该仓储。该仓储允许系统管理员或其他授权实体访问来自整个企业计算系统的风险分析,而且减轻各个系统管理员共享来自每个安全区域的本地风险结果的负担。
38.值得注意的是,图1的实施例仅是用于展示所公开概念的示例。在其他实施例中,所示企业计算系统可以包括元素(包括附加元素在内)的不同组合。例如,在一些实施例中,计算设备101a和101b可以对应于相同的物理计算设备。其他实施例可以包括具有相应的一个或多个数据库和相应的安全规则集的附加安全区域。
39.图1的企业计算系统图示了计算系统如何可以跨多个安全区域执行安全扫描并将结果合并到中央仓储区域中。这种安全扫描系统可以使用多种技术来实现。在图2中,描述了一种这样的安全扫描系统。
40.移动到图2,示出了风险分析扫描系统的实施例的框图。风险分析扫描系统200包括计算设备101、数据库110和仓储160,在各种实施例中,它们可以对应于图1中类似编号的元件,因此对应于关于图1描述的功能。仓储160耦合到风险分析数据库270。计算设备101被配置为利用如下一系列过程执行对数据库110的安全扫描:识别过程210、转换过程220、扫描过程230和风险确定过程240。安全扫描的结果被传递到由仓储160执行的控制过程250。
41.在计算机设备101能够开始风险分析扫描之前,系统管理员或其他授权实体存储一组安全规则130,这些安全规则130定义了对维护在安全区域105内的数据对象115的限
制。安全规则130可以存储在任何合适的存储器系统中,例如用于计算设备101的存储驱动器、包括数据库110的存储设备、由系统管理员维护的通用串行总线(usb)闪存驱动器等。存储的安全规则130可以由系统管理员基于公司实践、行业标准、政府法规等来设置。在一些情况下,可以基于更新的实践/标准/法规和/或从已知的数据泄露事件中获得的知识来修改安全规则130。
42.在一些实施例中,计算设备101可以使用一个或多个扫描模型235来确定如何扫描数据对象115。在安全规则130规定可允许将哪些类型的数据对象115存储在数据库110中并建立关于如何存储每个允许的数据对象115的标准的同时,扫描模型235建立了扫描哪些类型的数据对象115和对每种类型执行那种类型的扫描的标准。例如,安全规则130可以规定允许将电子邮件地址存储在数据库110上的受密码保护的文件中。计算设备101用来设置用于扫描电子邮件地址的标准的扫描模型使得计算设备101搜索数据对象115以识别包括电子邮件地址的文件,然后执行测试以验证所识别的数据对象受密码保护。
43.在不同的安全区域中,不同的一组安全规则规定包括电子邮件地址的数据对象在被存储在相应的数据库中之前必须使用特定的加密算法进行加密。设置用于扫描此不同安全区域中的电子邮件地址的标准的扫描模型使得计算设备在相应的不同数据库中搜索数据对象以识别包括电子邮件地址的文件,然后执行测试以验证所识别的数据对象被正确加密。
44.如图所示,在建立和存储安全规则130和扫描模型235之后,计算设备101接收开始对数据库110进行风险分析扫描的指示。在各种实施例中,风险分析扫描可以由计算设备101按以下方式执行:以规则的时间间隔,响应于对数据库110的改变,响应于来自控制过程250的开始信号,响应于确定先前的风险分析扫描已完成,等等。在一些实施例中,计算设备101响应于确定计算设备101中的一个或多个处理器已经空闲一段时间或者确定足够量的处理带宽可用于执行扫描,而启动风险分析扫描。
45.响应于该指示,计算设备101在安全区域105内执行风险分析,该风险分析包括将一组安全规则130应用于存储在安全区域105内的数据库110中的随机选择的一组数据对象115,以确定所选择的数据对象115是否符合这组安全规则130。计算设备101通过执行识别过程210以从数据库110内识别将被扫描的数据对象115来开始风险分析。
46.执行风险分析还包括将存储的数据对象115从特定数据格式转换为不同于特定数据格式的通用数据格式。在一些实施例中,可以使用任意数量的各种数据格式将数据存储在数据库110中。为了简化扫描过程,计算设备101使用转换过程220将数据对象115从一种或多种特定数据格式转换成通用数据格式,从而生成转换后的数据对象215。可以选择通用数据格式以提高风险分析扫描的执行速度和/或提高扫描结果的准确性。
47.计算设备101使用扫描过程230扫描转换后的数据对象215。扫描过程230利用扫描模型235来确定敏感信息是否按照安全规则130存储在数据库110中。在一些实施例中,执行风险分析包括启动特定数量的扫描过程,每个扫描过程对所选数据对象的一部分执行扫描。要启动的扫描过程230的特定数量基于计算设备101的可用带宽。因此,在计算设备101的低利用率期间,可以启动多个扫描过程230,从而允许扫描更大数量的数据对象115。在一些实施例中,计算设备101确定自从执行最近一次扫描以来已经添加或修改的数据对象115的数量,并且基于修改的数据对象的数量,调整该特定数量的扫描过程。除了扫描过程230
之外,当处理带宽可用时,可以启动多个识别过程210和/或转换过程220。
48.如前所述,数据库110可以包括非常大量的数据对象。在一些实施例中,执行风险分析还包括随机选择转换后的数据对象的子集215,并扫描该转换后的数据对象的子集215以确定转换后的数据对象215是否符合该组安全规则130。因此,随机选择可以发生在识别过程210、转换过程220或扫描过程230的任何组合中。
49.给定风险分析的结果包括置信得分245,该置信得分245表明相应数据对象是特定类型的数据对象的概率。例如,如果数据对象115中的特定数据对象被加密,则可以在不解密该数据对象的情况下执行扫描过程。因此,扫描过程可以确定特定数据对象包括诸如电子邮件地址或信用卡信息之类的敏感信息的概率。在一些实施例中,可以为给定的数据对象生成多个置信得分245,每个置信得分对应于相应类型的敏感信息。给定风险分析的结果还包括风险得分243,该风险得分243表明对应数据对象易受误用的相关联的风险等级。例如,扫描过程230可以确定特定数据对象具有对应于有70%可能性包括信用卡号的置信得分245。基于用于存储信用卡号的安全规则130,扫描过程230可以进一步确定数据对象仅受密码保护,而相应的安全规则130表明仅在针对包括信用卡号的数据对象使用了特定加密算法的情况下,该信用卡号才被存储在数据库110中。
50.值的注意的是,置信得分245和风险得分243都可以使用任何合适标度的值来实现,较高或较低的得分表明置信度和/或风险的相应增加。例如,在一些实施例中,可以使用“低”、“中”或“高”来表示得分。在其他实施例中,可以使用0-1、0-10或0-100中的标度。
51.计算设备101使用风险确定过程240将元数据247从安全区域105发送到仓储区域以呈现给用户,该元数据247标识风险分析的结果。风险确定过程240将元数据247传送到由仓储160中的计算设备执行的控制过程250。在各种实施例中,元数据247可被存储在仓储160中包括的存储介质内,或者存储在诸如风险分析数据库270之类的单独数据库中。风险分析数据库270可由一个或多个系统管理员访问,例如管理安全区域的任何系统管理员,该安全区域扫描风险分析数据并将风险分析数据发送到数据库。从各种安全区域收集的元数据能够被分析以识别各种风险级别并跟踪企业计算系统内的信息存储以确定是否正确遵循了存储规则。
52.为保护敏感信息,所发送的元数据247不包括存储在数据库中的相应数据对象115。然而,元数据247包括置信得分245和风险得分243。元数据247还可以包括例如数据对象的标识数据,这些数据对象包括可能处于风险中的信息。系统管理员可以使用这样的数据来定位数据库110中的数据对象并修改数据对象,从而根据安全规则130正确存储敏感信息。例如,系统管理员可以对数据对象进行加密,或者可以联系数据对象的所有者,以告知他们存在风险的信息,并要求所有者正确存储数据对象。
53.在一些实施例中,计算设备101响应于确定对应风险得分243满足特定阈值得分而发送元数据247。可以使用相关联的置信得分245进一步对风险得分243进行加权。这样的阈值得分可以由系统管理员建立。此外,对于企业计算系统中的每个安全区域,可以将阈值得分设置为不同值。
54.值得注意的是,图2的风险分析扫描系统仅是示例。在其他实施例中,可以使用不同数量的过程来执行风险分析。在一些实施例中,可以组合不同的过程,例如识别和转换过程。尽管在图2中示出了单个计算设备,但是风险分析可以由多个计算设备执行。例如,诸如
识别和转换过程之类的一些过程可以由一个计算设备执行,而扫描过程由另一个计算设备执行。第三计算设备可用于执行风险确定过程。
55.还应注意的是,图2描述的过程可被实现为包括在软件程序中的程序指令。这样的软件程序可以存储在非暂态计算机可读介质中,该非暂态计算机可读介质上存储有程序指令,这些程序指令可由计算设备执行以引起参考图2中所示的过程描述的操作。
56.在图1和图2的描述中,风险分析扫描被描述为确定信息是否根据相关联的安全规则进行存储的过程。安全规则可以包括宽范围的数据类型和标准。此外,扫描模型在图2的描述中被描述为用于确定哪些类型的数据对象应被包括在扫描中。下面关于图3来呈现一组安全规则和一组扫描模型的示例。
57.转到图3,图示出描绘一组安全规则和一组扫描模型的示例的相应两个表格。如上所述,安全规则规定了允许将哪些类型的数据对象存储在特定数据库中并且建立了如何存储每个允许的数据对象的标准。扫描模型建立了如下标准,例如将被扫描的数据对象的类型以及对每个已建立类型执行的扫描的类型。安全规则130包括五个规则330a-330e,每个规则标识可以在数据对象(例如图1和图2中的数据对象115)中找到的信息的类型。每个规则还包括用于存储对应类型的信息的相应标准。扫描模型235包括四个模型335a-335d,每个模型标识数据对象的类型和用于扫描对应数据对象类型的相应标准。安全规则130和扫描模型235可以应用于给定安全区域(例如安全区域105a或105b)内的一个或多个数据库。
58.特定安全规则指定要对与特定类别匹配的数据对象实施的相应安全级别。在安全规则130的示例中,规则330a针对电子邮件地址信息。规则330a允许在没有进一步限制的情况下存储电子邮件地址信息。规则330b针对登录凭证(例如,用户名和密码组合),并且如果登录凭证被加密,则允许存储登录凭证。规则330c和330d分别针对家庭地址和电话号码,并且类似地当信息被加密时允许它们的存储。规则330e规定信用卡数据被限制存储在由安全规则130管理的数据库中。尽管规则330a-330e所描绘的存储安全标准只是“允许的”、“加密的”和“受限的”,但是设想,在其他实施例中,在安全规则130的给定一者中可以包括附加标准和/或更具体的标准。例如,加密标准还可以包括一种类型的加密算法,例如高级加密标准(aes)或不对称密码演算法(rivest-shamir-adleman,rsa)。例如,规则330a可以包括进一步的标准,例如允许电子邮件地址不加密,除非该电子邮件地址进一步用作一组登录凭证的一部分,或用于密码恢复。
59.扫描模型235的特定模型指定了数据对象的类型和用于扫描该类型的数据对象的一个或多个标准。如图所示,模型335a表明不扫描媒体文件(例如,视频和音频文件可能超出特定风险分析的范围)。模型335b规定扫描加密文件以查找信用卡数据。因为根据安全规则130其他信息在经加密的情况下被允许存储,所以在加密文件内其他类型可被跳过。模型335c要求对文本文件进行默认扫描。例如,默认扫描可以包括扫描所有类型的信息。模型335d规定在电子邮件联系人文件内扫描家庭地址和电话号码。例如,联系人文件可能包括受限类型的信息的字段,因此可以排除诸如信用卡数据之类的信息。
60.在风险分析扫描期间,计算设备将特定数据对象的指定安全级别与第一安全区域的安全级别进行比较。参考图1,例如,计算设备101a基于扫描模型235扫描存储在数据库110a中的加密文件以查找信用卡数据。如果在加密文件中检测到信用卡数据的指示,则基于安全规则130确定风险得分。例如,如果文件上使用的加密算法被认为是强大的,则信用
卡数据被发现和/或误用的风险可能会被评分为低。置信得分反映了检测到的数据实际上是信用卡数据的置信水平。如果对加密文件的扫描不包括解密该文件,则可以基于该加密文件包括信用卡数据的提示(例如,表明16位数字的特定数据模式)来检测信用卡数据。
61.在一些实施例中,将新的安全规则添加到安全区域而不中断当前正在进行的特定扫描的执行。每个安全规则330a-330e可以被计算设备视为独立对象,允许在不中断正在进行的风险分析扫描的情况下进行添加。可以以类似方式管理扫描模型335a-335d。响应于确定特定扫描已经完成,计算系统在安全区域内使用新的安全规则对相应的数据库执行新的扫描。在这样的实施例中,计算设备检测到已经添加了新的扫描模型或新的安全规则,并且可以使用添加的规则或模型来发起新的扫描。通过允许对安全规则和扫描模型进行实时更新,风险分析扫描可以作为企业计算系统中的后台进程频繁或连续执行,同时仍允许系统管理员对掌管扫描的规则和模型进行更改。
62.值的注意的是,图3中描述的安全规则和扫描模型仅是示例。为清楚起见,已经对所描述的规则和模型进行了简化。在其他实施例中,规则和模型可以包括用于规定风险分析的操作的更详细的标准。此外,规则和模型被示出为文本值。在一些实施例中,可以为各种选项分配标识符(例如,字母数字或二进制编码)以代替文本值使用。
63.如上所述的风险分析系统可操作来执行各种方法。下面描述的图4-7提供了这样的方法的示例。
64.进行到图4,根据一些实施例描绘了图示用于执行安全风险分析的示例方法400的流程图。在各种实施例中,方法400可以由图1的计算机系统103执行。参考图1来执行对数据库110a和110b的风险分析。例如,计算机系统103可以包括(或可以访问)非暂态计算机可读介质,其上存储有程序指令,这些程序指令可由计算机系统103执行以引起参考图4描述的操作。共同参考图1和图4,方法400开始于框401。
65.在框410,在所示实施例中,方法400包括在具有第一组安全规则的第一安全区域内维护第一数据库,其中第一组安全规则定义用于在第一安全区域内存储数据对象的限制。安全区域105a包括数据库110a,其中存储有数据对象115a-115c。数据对象115a-115c的存储由安全规则130a掌管。安全规则130a包括用于一种或多种类型的信息的指示符和掌管如何将该类型的数据存储在数据库110a中的对应标准。
66.在框420,方法400包括在具有第二组安全规则的第二安全区域内维护第二数据库,其中第二组安全规则定义用于在第二安全区域内存储数据对象的限制。数据库110b被包括在安全区域105b内并且由安全规则130b掌管。以与安全规则130a类似的方式,安全规则130b包括一个或多个规则,这些规则规定允许如何将包括在数据对象115d-115f中的各种类型的信息存储在数据库110b中。在一些实施例中,安全规则130a和130b可以不同。
67.方法400还包括,在框430,由计算机系统在第一安全区域内执行对第一数据库的第一扫描,以确定存储在第一数据库中的随机选择的第一群组的数据对象是否符合第一组安全规则。如图1所示,计算机系统103包括计算设备101a和101b。计算机系统103使用计算设备101a来执行对数据库110a的风险分析扫描。该风险分析扫描检测包括在数据对象115a-115c中的各种类型的信息,并确定检测到的信息是否是根据安全规则130a存储的。
68.在框440,方法400还包括由计算机系统在第二安全区域内执行对第二数据库的第二扫描,以确定存储在第二数据库中的随机选择的第二群组的数据对象是否符合第二组安
全性规则。以与框430类似的方式,计算机系统103使用计算设备101b来执行对数据库110b的风险分析扫描,确定数据对象115d-115f中检测到的信息是否是根据安全规则130b存储的。值的注意的是,框430和440的风险分析扫描可以通过如图2所示和上面描述的多个过程来执行。在一些情况下,取决于计算设备101a和101b的相应可用处理带宽,可以启动多个过程以提高相应扫描的速度和/或准确性。
69.此外,方法400包括,在框450,由计算机系统将第一扫描和第二扫描的结果传送到仓储区域以供管理员审查,其中结果被传送到仓储区域,而不将存储在第一数据库和第二数据库中的数据对象传送到仓储区域。在框430和440中执行的每次风险分析扫描的结果可以包括为每个数据对象115a-115f生成的一个或多个风险得分。可以为具有多个风险得分的数据对象编译综合风险得分。该综合风险得分可以是多个风险得分的平均值,也可以是最坏情况(最高或最低,取决于相应的风险等级)。风险得分以及标识与该风险得分对应的数据对象的其他元数据可以被发送到安全区域105a和105b外部的仓储160。由于仓储160在安全区域105a和105b外部,所以发送到仓储160的元数据不包括任何数据对象115a-115f中所包括的任何敏感信息。
70.在一些实施例中,将每个数据对象115a-115f的风险得分与阈值进行比较,并且仅将与满足阈值的风险得分对应的元数据传送到仓储160。设置用于传送扫描结果的阈值可以使得发送到仓储160的数据更少,这可以减少仓储160使用的存储内存量和/或减轻负责监视发送到仓储160的结果的系统管理员的负担。此外,除了风险得分之外,可以为每个扫描的数据对象115a-115f确定对应的置信得分。该置信得分表明各扫描的数据对象包括由相应的一组安全规则掌管的信息类型的置信水平。例如,如果安全规则对银行账户信息的存储方式施加限制,则数据对象115b的置信得分表明在数据对象115b中扫描的信息包括银行账户信息的置信水平。在与阈值进行比较之前,可以使用相应的置信得分对风险得分进行加权。该方法在框490结束。在一些实施例中,方法400被连续或周期性地重复。
71.值的注意的是,方法400的图示示例包括元素401-490。虽然为了便于理解而以特定顺序示出了这些元素,但可以使用其他顺序并且可以包括另外的元素。例如,框410和430可以与框420和440并发执行。在一些实施例中,框430和440可以迭代地执行,例如周期性地或连续地执行。在一些实施例中,框450可以在框430和框440的每次迭代结束时执行。在其他实施例中,框450可以在自从框450的先前执行以来已经过去了特定量的时间之后执行。
72.现在转到图5,图示了用于在给定安全区域内执行风险分析扫描的方法的实施例的流程图。方法500可以由耦合到给定安全区域中的数据库的计算机系统执行,例如图1中的计算设备101a和101b。例如,图2中的计算设备101可以访问非暂态计算机可读介质,其上存储有程序指令,这些程序指令可由计算设备101执行以引起关于图5描述的操作。共同参考图2和图5,方法500开始于框501。
73.在框510,方法500包括存储一组安全规则,该组安全规则定义对在安全区域内维护的数据对象的限制。如图2所示,安全规则130被包括在安全区域105中。在各种实施例中,安全规则130被存储在包括在计算设备101中的存储内存内、存储在包括数据库110的存储设备内、或存储在计算设备101可访问的不同存储设备中,例如usb闪存驱动器或网络存储驱动器。如前所述,安全规则130包括一组或多组标准,该一组或多组标准规定用于在数据库110内存储各种类型的信息的许可。此外,计算设备101可以访问存储在与安全规则130类
似的位置的扫描模型235。
74.方法500还包括,在框520,在安全区域内执行风险分析,该风险分析包括将一组安全规则应用到存储在安全区域内的数据库中的随机选择的一组数据对象,以确定所选择的一组数据对象是否符合该组安全规则。如图所示,计算设备101执行对数据库110的风险分析扫描,以确定数据对象115内的信息是否根据安全规则130被存储。计算设备101可以发起和执行各种过程来执行这种风险分析。如图2所示,例如,计算设备101执行识别过程210以识别能够被扫描的数据对象115,并且执行转换过程220以将数据对象115中的一些或全部转换成扫描过程230所使用的通用数据格式。计算设备101使用扫描模型235执行扫描过程230,以扫描包括在一个或多个转换后的数据对象215中的信息以符合安全规则130。基于扫描,扫描过程230为每个被扫描的转换后的数据对象215生成元数据247,包括风险得分243和置信得分245。扫描过程230还包括其他元数据以标识对应于相应风险得分243和置信得分245的特定数据对象115。
75.在框530,方法500还包括将标识风险分析的结果的元数据从安全区域发送到仓储区域以呈现给用户,其中所发送的元数据不包括存储在数据库中的数据对象。计算设备使用风险确定过程240来确定是否将特定生成的元数据247传送到安全区域105外部而传送到仓储160。在一些实施例中,可以将所有生成的元数据247发送到仓储160。在其他实施例中,对于每个生成的元数据247,将对应的风险得分243与阈值进行比较,并且仅在满足阈值时才将其发送到仓储160。在一些这样的实施例中,在确定是否满足阈值之前,使用对应的置信得分245对风险得分243进行加权。这种阈值的使用可以减少仓储160上的工作负载以及管理仓储160的系统管理员的工作负担。值的注意的是,元数据247不包括对应数据对象115中可能包括的任何敏感数据。方法500在框590结束。
76.在一些实施例中,方法500被重复。例如,计算设备101可以连续重复方法500,或者可以基于重复时间表(例如,每天一次、每周一次等)重复方法500的执行。在其他实施例中,方法500的执行可以取决于计算设备101的可用带宽。在一些实施例中,计算设备可以启动多个过程,这多个过程并发运行以执行风险分析。这样的并发处理(其中活跃处理的数量基于计算设备101的可用带宽)可以减少完成扫描的时间量。并发处理还可以增加风险分析扫描的准确性,例如,通过增加被扫描的数据对象的数量。
77.值的注意的是,方法500是一个示例。虽然以特定顺序示出了元素,但可以使用其他顺序并且可以包括另外的元素。例如,计算系统可以启动多个过程,以使得框520和530可以在方法的重复执行期间重叠。
78.现在转到图6,示出了用于操作风险分析仓储的方法的实施例的流程图。在各种实施例中,方法600可以由图1和图2中所示的仓储160执行,以接收从对一个或多个数据库110的扫描生成的风险分析元数据,并在用户界面上呈现结果。包括在仓储160中的计算设备可以访问非暂态计算机可读介质,其上存储有程序指令,这些程序指令可由计算设备执行以引起关于图6描述的操作。共同参考图1和图6,方法600开始于框601。
79.在框610,方法600包括在计算机系统的仓储区域接收从在第一安全区域内执行的第一风险分析生成的第一元数据。第一风险分析评估存储在第一安全区域中的第一组随机选择的数据对象是否符合一组安全规则,并且在不从第一安全区域中移除第一组数据库对象的情况下接收第一元数据。参考图1,仓储160在计算设备101a完成对位于安全区域105a
中的数据库110a中的数据对象115a-115c中的至少一个的风险分析扫描之后接收第一元数据。风险分析将用于存储数据对象115a-115c的实际存储方法与掌管数据对象115a-155c的存储的安全规则130a进行比较。
80.方法600还包括,在框620,在仓储区域接收从在第二安全区域内执行的第二风险分析生成的第二元数据。第二风险分析评估存储在第二安全区域中的随机选择的第二组数据库对象是否符合一组安全规则,并且在不从第二安全区域中移除第二组数据库对象的情况下接收第二元数据。以与框610描述的类似方式,计算设备101b发送响应于对存储在位于安全区域105b中的数据库110b中的数据对象115d-115f的风险分析扫描而生成的元数据。计算设备101b使用安全规则130b来扫描数据库110b。在各种实施例中,安全规则130a和130b可以相同,可以具有一些共同的规则,或者可以完全不同。
81.可以在已经完成相应风险分析扫描的特定迭代之后发送由计算设备101a和101b生成的元数据。在其他实施例中,可以在至少一个数据对象已被扫描之后发送元数据,但同时继续扫描其他数据对象。如上所述,存储在数据对象中的敏感数据并不包括在发送到仓储160的元数据中。因此,在一些实施例中,仓储160可以不包括任何敏感数据。
82.在框630,方法600还包括基于接收到的第一和第二元数据,在仓储区域内呈现描绘第一和第二风险分析的结果的用户界面。仓储区域107可以包括任何合适数量的计算设备,以及任何合适数量的存储内存。仓储160将从计算设备101a和101b接收的元数据存储在存储内存中。此外,仓储160将结果呈现在与仓储160耦合的一个或多个显示设备(例如,监视器)上显示的用户界面中。在各种实施例中,所呈现的用户界面显示关于结果的任何合适程度的细节。用户界面可以显示例如对于特定安全区域的风险分析扫描已经完成的通知。在一些实施例中,用户界面可以显示关于扫描结果的一个或多个度量,例如扫描的数据对象的数量,和/或得出的风险得分满足相应阈值的扫描的数据对象的数量。
83.具有适当授权的系统管理员或其他实体可以访问仓储160中的风险分析结果并根据需要生成一个或多个报告。例如,第一实体可以生成提供专用于特定政府法规的结果的报告。第二实体可以生成受限于属于特定公司部门的雇员所拥有的、或分配给特定项目的数据对象的报告。由于仓储不包括存储在所扫描的数据对象中的敏感数据,因此可以授权比对仓储的访问仅限于被授权查看所有敏感数据的实体情况下更多数量的实体访问仓储160。通过提供更开放的访问,各种系统管理员和雇员主管可能够查看结果并在检测到违反任何安全规则时实施更正。
84.在框640,方法600包括基于第一元数据确定第一安全区域中的特定数据对象不符合针对第一安全区域的一组安全规则。在一些实施例中,仓储160包括如下附加能力:检测从计算设备101a接收的元数据中的特定元数据违反安全规则130a和/或呈现出满足第二阈值的风险水平,该第二阈值比计算设备101a所使用的本地阈值更为严格。作为第一示例,该确定可以包括使用第一元数据识别出特定数据对象包括信用卡号。在一些实施例中,仓储160可以被配置为检测与信用卡号相关联的元数据的任何接收。在第二示例中,确定包括使用第一元数据来识别出特定数据对象是未加密的电话号码。在这样的实施例中,仓储160可以被配置为检测与未经任何加密而存储的任何敏感数据相关联的元数据的任何接收。
85.方法600,在框650,包括为特定数据对象生成警报。当在接收到的元数据内检测到对安全规则的特定违反时,仓储160生成警报。参考前一段的第一示例,该生成包括:响应于
确定针对第一安全区域的一组安全规则限制信用卡号的存储而生成警报。参考第二示例,该生成包括:响应于确定针对第一安全区域的一组安全规则要求对电话号码进行加密而生成警报。所生成的警报可以通过任何合适的技术来实现。例如,警报可以是发送给一个或多个实体(例如负责第一安全区域的系统管理员)和/或发送给与特定数据对象相关联的数据对象的所有者的主管的电子邮件。该警报可以是耦合到仓储160的显示器上的弹出窗口。该警报还可以包括向系统管理员和/或主管的移动设备发送文本消息或推送通知。该方法在框690结束。
86.值的注意的是,方法600是用于展示所公开的概念的示例。针对方法600描述的操作可以以不同的顺序执行和/或可以包括额外的操作。例如,在附加操作中,仓储可以响应于接收元数据而向计算设备发送确认。
87.进行到图7,呈现了根据一些实施例的用于修改一组安全规则的方法的流程图。在一些实施例中,方法700由诸如图1中的仓储160之类的仓储区域中的计算设备执行,以向安全规则130a和/或130b添加新的安全规则。例如,仓储160中包括的计算设备可以包括(或有权访问)非暂态计算机可读介质,其上存储有程序指令,这些程序指令可由仓储160执行以引起图7所示的操作。共同参考图1和图7,方法700开始于框701。
88.在框710,方法700包括将多个安全规则存储在仓储区域中。在一些实施例中,仓储160存储并维护一组安全规则,以在计算设备在安全区域105a和105b中执行的一个或多个风险分析扫描中使用。这组安全规则可以是主列表,包括由在任何对应安全区域中执行扫描的任何计算设备使用的每个安全规则。例如,负责跨企业计算系统100的数据安全合规性的系统管理员可以基于各种来源生成或获得各种安全规则。安全规则的此类来源包括,例如,公司策略、行业标准、各种政府法规、公布的最佳实践、从公布的数据泄露中吸取的教训等等。
89.在框720,方法700还包括将特定安全规则推送到第一安全区域以添加到针对第一安全区域的一组安全规则中,其中该推送不中断第一安全区域中的活动过程。系统管理员可以从安全规则的主列表中选择特定安全规则以添加到安全规则130a。例如,可以将许可添加到数据库110a以存储银行账户信息。特定安全规则可以规定当使用aes 256加密算法进行加密时允许存储银行账户信息。仓储160被配置为将特定安全规则发送到计算设备101a,使得计算设备101a将特定安全规则添加到安全规则130a。如果在接收到特定安全规则时计算设备101a正在执行风险分析扫描,则使用先前的一组安全规则130a完成当前扫描。风险分析扫描的下一次迭代将包括使用所添加的安全规则。
90.方法700还包括,在框730,将不同的安全规则推送到第二安全区域以添加到针对第二安全区域的一组安全规则中,其中该推送不中断第二安全区域中的活动过程。以与针对框720描述的类似方式,确定将不同的安全规则添加到安全区域105b中的安全规则130b。例如,不同的安全规则可以对电子邮件地址在数据库110b内的存储施加额外的限制,例如从允许存储仅使用密码保护的电子邮件地址变为要求对电子邮件地址进行加密。仓储160将不同的安全规则发送到计算设备101b以添加到安全规则130b。如上所述,如果正在进行风险分析扫描,则使用安全规则130b的先前版本来完成当前扫描,并且使用更新的安全规则130b执行风险分析扫描的未来迭代。
91.在一些实施例中,仓储160有权将新的安全规则直接添加到安全规则130a和130b,
而无需将新规则发送到计算设备101a或101b中的任一个。在这样的实施例中,将新的安全规则添加到安全规则130a或130b中的任一个不会中断可能在安全区域105a或105b内正在进行的扫描。方法700在框790结束。
92.值的注意的是,图7所示的方法仅是示例。在其他实施例中,可以包括另外的操作,和/或可以以不同的顺序执行所示的操作。例如,操作720可以以相反的顺序执行或者可以并发执行。在一些情况下,可以仅执行操作720或730来更新特定的一组安全规则。此外,设想了类似的方法可以用于将扫描模型添加到存储在特定安全区域中的一组扫描模型中。
93.移动到图8,图示了用于执行风险分析扫描的方法的另一个实施例的流程图。方法800可以由耦合到给定安全区域中的数据库的计算机系统执行,例如图2中的计算设备101。例如,计算设备101可以访问非暂态计算机可读介质,其上存储有程序指令,这些程序指令可由计算设备101执行以引起关于图8描述的操作。共同参考图2和图8,方法800开始于框801。
94.在框810,方法800包括由计算机系统执行对存储在数据库中的多个数据对象的扫描。如图所示,计算设备101对存储在数据库110中的数据对象115进行扫描。在各种实施例中,数据对象115可以包括存储在数据库110中的所有数据对象,或者可以是存储的数据对象的子集。如果使用子集,则可以从存储的数据对象的总数中随机选择该子集。
95.方法800还包括,在框820,由计算机系统使用多个数据对象的一个或多个特性来确定用于这些数据对象的特定安全区域。如图所示,计算设备101基于数据对象115的特性确定安全区域105。这样的特性包括例如存储每个数据对象的位置、每个数据对象的文件类型、每个数据对象的内容、与每个数据对象一起存储的元数据等。使用一个或多个特性,计算设备101识别用于多个数据对象的安全区域105。在一些实施例中,计算设备101可以为每个数据对象确定相应的安全区域,而在其他实施例中,为多个数据对象115识别单个安全区域。
96.此外,在框830,方法800包括由计算机系统使用特定安全区域来识别对应的一组安全规则,其中该组安全规则定义针对在该特定安全区域内存储数据对象的限制。在一些实施例中,计算设备101访问对应于安全区域105的所存储的一组安全规则130。在其他实施例中,计算设备101从与所确定的安全区域相关联的不同计算设备接收安全规则130。
97.在框840,方法800包括由计算机系统确定多个数据对象是否符合该组安全规则。计算设备101扫描每个数据对象115以确定包括在每个数据对象115中的数据的类型。在一些实施例中,一个或多个数据对象115可以被加密。对数据类型的确定是在不对加密数据对象进行解密的情况下进行的。对于包括在数据对象中的每种确定的数据类型,确定置信得分以及风险得分。如前所述,置信得分表明所确定的数据类型准确的置信水平,而风险得分表明所确定的类型的数据对用于存储该类型的数据的规则的遵从程度。对于每个扫描的数据对象115,可以根据与每个相应的数据对象115相关联的一个或多个置信得分和风险得分来确定总体安全得分。
98.方法800还包括,在框850,由计算机系统将对应于多个数据对象的元数据传送到仓储区域,其中在不将存储在数据库中的数据对象传送到仓储区域的情况下传送元数据。计算设备101将与扫描的数据对象相关联的元数据发送到仓储160。在一些实施例中,将每个数据对象115的安全得分与阈值进行比较,并且仅将与满足阈值的数据对象相关联的元
数据传送到仓储160。包括在相应数据对象中的敏感数据不被传送到仓储160。该方法在框890结束。
99.现在参考图9,根据各种实施例描绘了示例计算机系统900的框图,其可以实现一个或多个计算设备,例如计算设备101a和101b以及图1的仓储160。计算机系统900包括处理器子系统920,该处理器子系统920经由互连980(例如,系统总线)耦合到系统存储器940和(一个或多个)i/o接口960。(一个或多个)i/o接口960耦合到一个或多个i/o设备970。计算机系统900可以是各种类型的设备中的任何一种,包括但不限于服务器计算机系统、个人计算机系统、台式计算机、膝上型计算机或上网本计算机、大型计算机系统、在数据中心设施中运行的服务器计算机系统、平板电脑、手持计算机、工作站、网络计算机等。尽管为了方便起见,图9中示出了单个计算机系统900,但是计算机系统900也可被实现为两个或更多个一起操作的计算机系统。
100.处理器子系统920可以包括一个或多个处理器或处理单元。在计算机系统900的各种实施例中,处理器子系统920的多个实例可以耦合到互连980。在各种实施例中,处理器子系统920(或920内的每个处理器单元)可以包含高速缓存或其他形式的板载存储器。
101.系统存储器940可用于存储可由处理器子系统920执行以使计算机系统900执行本文所述的各种操作的程序指令。系统存储器940可以使用不同的物理、非暂态存储器介质来实现,例如硬盘存储装置、软盘存储装置、可移除盘存储装置、闪存、随机存取存储器(ram-sram、edo ram、sdram、ddr sdram、rambus ram等)、只读存储器(prom、eeprom等)等等。计算机系统900中的存储器不限于诸如系统存储器940之类的主存储等。更确切地说,计算机系统900还可以包括其他形式的存储装置,例如处理器子系统920中的高速缓冲存储器和i/o设备970(例如,硬盘驱动器、存储阵列等)上的辅存储装置。在一些实施例中,这些其他形式的存储也可以存储可由处理器子系统920执行的程序指令。
102.根据各种实施例,i/o接口960可以是被配置为耦合到其他设备并与其他设备通信的各种类型的接口中的任何一种。在一个实施例中,i/o接口960是从前端到一个或多个后端总线的桥接芯片(例如,南桥)。i/o接口960可以通过一个或多个对应的总线或其他接口耦合到一个或多个i/o设备970。i/o设备970的示例包括存储设备(硬盘驱动器、光驱、可移除闪存驱动器、存储阵列、san或它们相关联的控制器)、网络接口设备(例如,到局域网或广域网)或其他设备(例如,图形、用户界面设备等)。在一个实施例中,i/o设备970包括网络接口设备(例如,被配置为通过wifi、蓝牙、以太网等进行通信),并且计算机系统900通过网络接口设备耦合到网络。
103.用于检测敏感数据库信息的神经网络
104.图1-图9描述了用于扫描数据库以识别属于多个指定输出类之一的数据的实施例。下面描述的图10-图17针对使用神经网络扫描数据库的特定实施例。如上所述,虽然图10-图17的实施例适用于图1-9的实施例,但设想了图10-图17的实施例可以有更广泛的应用。
105.移动到图10,示出了计算机网络的实施例的框图。计算机网络1000包括计算机系统1001和包括一组数据项1015的数据库1010。计算机系统1001可操作来确定元数据1020,元数据1020包括模式信息1023,并生成数据配置文件1025。使用元数据1020和数据配置文件1025,神经网络分类器1005生成对应于输出类1030a-1030n的输出1035a-1035n(分别统
称为输出类1030和输出1035)。在各种实施例中,计算机网络1000可以对应于具有能够包括数据库1010的存储存储器的单一计算机系统1001,或者可以包括多个计算机系统和多个存储存储器(其中可以包括各种数据库)。包括在计算机网络1000中的一个或多个计算机系统1001可以对应于图9中的计算机系统900。
106.数据库1010的系统管理员或其他用户可能希望确定存储在数据库1010中的任何数据(包括一组数据项1015)是否对应于任何输出类1030。数据库1010可以包括吉字节、太字节或甚至更大量的数据。因此,手动搜索存储在数据库1010上的数据以识别对应于特定数据类别的数据可能是时间密集的并且令人望而却步。计算机系统1001被配置为执行对数据库1010的自动扫描以识别对应的数据。在各种实施例中,计算机系统1001对应于单个计算设备,例如膝上型计算机、台式计算机、服务器计算机、移动设备等,或者对应于在局域网或广域网上耦合在一起并且能够执行自动扫描的相应部分的多个计算设备的。
107.如图所示,计算机系统1001执行扫描以识别数据库1010中对应于一个或多个输出类1030的一组数据项1015。在一些实施例中,计算机系统1001可以对应于图1中的计算机系统103,而数据库1010对应于数据库110a或110b。在这种情况下,输出类1030可以对应于各种类型的敏感数据,例如用户身份数据、财务数据、健康数据、专有公司数据等。如上所述,此类敏感数据可能针对在数据库1010中存储具有特定的几组安全规则。可执行扫描以识别任何所存储的不满足对应的一组安全规则的数据。
108.如图所示,扫描包括多个动作,从确定针对数据库1010的一部分的元数据1020开始,其中元数据1020包括模式信息1023。元数据1020包括关于数据项的信息,而不包括该数据项中所包括的实际数据。例如,元数据1020可以包括如下信息,比如文件最后被编辑时间的时间戳、数据项的大小、创建该数据项的用户的标识等等。模式信息1023是元数据1020的子集,包括关于数据项如何被存储在数据库1010中的结构的信息。如本文所使用的,“模式信息”指的是描述数据项和/或一组数据项的结构的元数据。例如,一组数据项1015可以对应于以表格格式存储的一列数据项。在这样的示例中,模式信息包括表中特定数据项的行和列信息、表名、列和行标题以及其他类似信息。在计算机系统1001上执行的过程访问数据库1010的包括该组数据项1015的部分并提取与该组数据项1015相关联的元数据1020,包括模式信息1023。基于提取的元数据,生成一组特征。每个特征具有表明所提取的元数据与输出类1030中的相应一者之间的相关性的值。如本文所使用的,“相关性”是指数据项的特性与特定输出类的典型特性匹配的程度。例如,一个特征可能具有介于“0”和“1”之间的值,其中“0”表示提取的元数据之间不匹配,“1”表示非常接近的匹配。下面将参考图12公开关于元数据提取过程的附加细节。
109.该扫描还包括为存储在数据库1010的该部分中的一组数据项1015生成数据配置文件1025。数据配置文件1025的生成包括:通过在计算机系统1001上执行的数据剖析过程来执行对该组数据项1015的基于字符的分析。如本文所使用的,“基于字符的分析”是指评估并比较包括在该组数据项1015中的数据项中所包括的字符数据(例如,ascii数据)的特性。特性可以包括字符类型(例如,字母、数字、标点符号)和/或特定字符或字符群组的出现率。用于执行该数据剖析过程的算法可以包括,例如,访问一组数据项1015中的特定数据项,并确定该特定数据项中的每个字符的一个或多个特性。在一个实施例中,与每个字符相关联的ascii值可用于通过以下方式生成针对该特定数据项的字符的组成:将字符分类为
字母、数字、标点符号、空格等,然后递增与所得到的类别对应的计数值。在不同的算法中,可以通过每次在特定数据项中识别出预定字符之一时递增对应的计数值来确定一个或多个预定字符的出现率。
110.如图所示,数据配置文件1025包括关于该组数据项1015的每个数据项中所包括的数据的组成的信息。基于字符的分析包括:确定该组数据项1015的每个数据项中所包括的字符的字母数字组成。例如,组成信息可以包括给定数据项中所包括的字母字符的数量以及数值数字的数量。组成信息用于提取另一组特征,这些特征中的每一个表明组成信息与输出类1030中的各个输出类的对应程度。将在稍后关于图13公开关于数据剖析过程的进一步信息。
111.如图所示,扫描还包括识别该组数据项1015是否对应于多个输出类1030之一。为了执行识别,在计算机系统1001上执行多类神经网络分类器1005。神经网络分类器1005被训练为使用多个特征(包括从元数据1020和数据配置文件1025提取的特征)执行识别。每个提取的特征对应于该组数据项1015的特定特征如何匹配输出类1030中的特定输出类。每个输出类1030是特定数据类别。例如,输出类1030a可以是用户标识值(用户id),1030b可以是密码,1030c可以是信用卡号码,等等。特定的提取特征可以表明与该组数据项1015相关联的列名与和密码相关联的已知列名的匹配程度。神经网络分类器1005接收该组数据项1015的所有提取特征并生成一组输出1035。每个输出1035对应于输出类1030中的相应输出类,以使得输出1035a是表明该组数据项1015与输出类1030a——用户id类——的特性的匹配程度的值。类似地,输出1035c的值表明该组数据项1015与输出类1030c——信用卡号类——的特性的匹配程度。
112.该扫描还包括:基于神经网络分类器1005的输出1035识别输出类1030中对应于该组数据项的特定输出类。神经网络分类器1005评估输出1035并识别最能表明对应输出类1030的一个输出1035。如图10的示例所示,神经网络分类器1005将输出类1030b选择为具有最高可能性匹配该组数据项1015。可以响应于具有最高值的输出1035b而选择输出类1030b。在一些实施例中,输出1035中的一些或全部的值可以基于对所提取特征的分析被不同地加权。下面将关于图11讨论更多关于类识别过程(包括神经网络分类器1005)的信息。
113.在一些实施例中,扫描还可以包括:将一组规则中的每一个应用到存储在数据库1010的该部分中的一组数据项1015。该组规则可以包括一组搜索字符串和/或正则表达式,用于识别包括在该组数据项1015中的每个数据项中的特定字符数据。在一些实施例中,该组规则中的每个规则是对应于特定一个输出类1030的正则表达式。例如,一个用于识别信用卡号的正则表达式规则可以寻找四个字符串的模式,每个字符串具有四个数字,每个四个数字的字符串由空格分隔。另一个用于识别信用卡号的正则表达式可以查找16个不带空格的数字的字符串。一组规则可以对应于一个输出类1030。可以为应用于该组数据项1015的每一组规则提取一个特征,所提取的特征表明该组数据项1015与相应一组规则之间的相关性。神经网络分类器1005使用的多个特征可以包括从该组规则的应用而提取的这些特征。
114.值的注意的是,图10中图示的计算机网络仅是示例。在其他实施例中,可以包括功能框和过程的不同组合。例如,可以包括任何合适数量的输出类。尽管图示了单个数据库,但其他实施例可以包括要对其执行扫描的任意数量的数据库。
115.图10中图示的计算机网络描绘了用于扫描数据库的技术的一个实施例。可以使用各种实现方式来实现图10中描绘的技术。在图11中,提供了所公开的技术的一个实施例的另外的细节。
116.转到图11,示出了计算机网络1000的另一实施例。计算机网络1000包括数据对象1102,其进一步包括三组数据项:一组数据项1015、一组数据项1116和一组数据项1117。三个过程用于提取关于三组数据项中的每一组的各种类型的数据。元数据收集器1121提取元数据以供元数据特征提取器1131使用。数据配置文件转换器1125为数据配置文件特征提取器1135收集数据。规则引擎1129产生由规则引擎特征提取器1139使用的信息。特征1145由元数据特征提取器1131、数据配置文件特征提取器1135和规则引擎特征提取器1139生成,并被发送到神经网络分类器1005。对于每组数据项,神经网络分类器1005生成对应于每个输出类1030的输出1035。
117.如图所示,计算机系统(例如图1的计算机系统1001)执行扫描以识别数据库(例如数据库1010)中对应于输出类1030中的那些输出类的数据项。数据库可以包括任何合适数量的数据对象,每个数据对象包括一组或多组数据项。在所示示例中,数据对象1102是数据项的表格。该表格的三列被示为相应的数据项组,数据项组1015、1116和1117。在其他实施例中,给定的一组数据项可以对应于表格的一行、链接的项的列表或任何其他合适的一群数据项。扫描包括:对数据库中的数据对象执行若干数据提取过程,包括执行元数据收集器1121、数据配置文件转换器1125和规则引擎1129。
118.为执行元数据收集器1121,计算机系统1001确定针对数据库的一部分(例如数据对象1102)的元数据,其中元数据包括模式信息。模式信息包括关于数据对象1102的结构的信息,例如数据对象1102的名称和大小、包括在数据对象1102中的数据项组的数量以及包括在每组中的数据项的数量。所确定的元数据被发送到元数据特征提取器1131,元数据特征提取器1131继而生成特征1145的一部分。针对数据对象1102中的每组数据项,生成一组特征,针对每个输出类1030一个特征。因此,对于图示的三组数据项(1015、1116和1117),生成三组特征,每组特征包括针对每个输出类1030的相应特征。在本示例中,如果给定一组数据项的元数据类似于与对应于特定特征的输出类相关联的元数据,则将该特定特征的值设置为“1”,否则,如果确定很少或没有相似性,则设置为“0”。
119.数据配置文件转换器1123由计算机系统1001通过为存储在数据对象1102中的每组数据项生成数据配置文件来执行。生成数据配置文件还包括:对每组数据项执行基于字符的分析。数据配置文件包括关于包含在给定一组数据项的每个数据项中的数据的类型的信息。例如,一组数据项1015的数据配置文件可以包括关于数据项1015a-1015d中的每一者的字母数字组成的信息。给定一组数据项的数据配置文件被发送到数据配置文件特征提取器1133,该数据配置文件特征提取器1133继而生成特征1145的另一部分。以与元数据特征提取器1131类似的方式,数据配置文件特征提取器1133生成一组特征,针对每个输出类1030一个特征。如上所述,给定特征的“1”值表明该数据配置文件与相应输出类1030的相关联的数据配置文件之间的强相关性,而“0”值表明弱相关性。
120.如图所示,计算机系统1001通过将多个正则表达式与一组数据项1015进行比较来执行数据收集器1127。多个正则表达式(这里也称为“regex”)中的每一者都包括与输出类1030中的相应一个相关联的字符模式。例如,用于检测电子邮件地址的正则表达式可以搜
索如下模式:一个或多个字母数字字符后跟“@”符号,然后是更多字母数字字符,然后是后缀字符串(例如“.com”)。用于电子邮件地址的另外的正则表达式可以查找其他后缀字符串,例如“.net”、“.org”、“.gov”等。表明特定数据项(例如,数据项1015b)与特定正则表达式之间的匹配程度的值被发送到规则引擎特征提取器1137。因此,可以为数据项1015a-1015n与每个正则表达式的每种组合生成一个值。在其他实施例中,可以为数据项1015a-1015n与每个输出类1030的每种组合生成一个值,针对给定输出类1030的相应值是基于一个或多个正则表达式的。在一些实施例中,不是针对每个数据项1015a-1015n发送值,而是针对整组数据项1015发送单个值(针对每个正则表达式或每个输出类1030)。规则引擎特征提取器1137确定该组数据项1015与每个输出类1030的百分比匹配。这些百分比转而用于为每组数据项生成一组特征。给定特征可被赋予值“0”或“1”,其中“1”预测匹配而“0”预测不匹配,这取决于相应百分比是否满足用于匹配输出类1030中的相关联输出类的阈值。
121.在已经通过元数据特征提取器1131、数据配置文件特征提取器1133和规则引擎特征提取器1137中的每一者生成与该组数据项1015相关联的特征1145之后,计算机系统1001预测该组数据项1015是否对应于输出类1030中的特定输出类。该预测包括将基于元数据、数据配置文件和正则表达式的比较的特征1145发送到神经网络分类器1005。神经网络分类器1005基于接收到的特征1145生成输出1035a-1035n(统称为输出1035)。每个输出1035对应于输出类1030之一。输出1035的各个值用于预测输出类1030之一是否对应于一组数据项1015。在一些实施例中,具有最高值的输出1035被用于选择对应的输出类1030作为预测匹配。例如,为一组数据项1015生成一组输出1035。如果输出1035b具有最高值,则该组数据项1015被预测为对应于输出类1030b。在其他实施例中,可以使用另外的阈值来确定一组数据项1015是否对应于任何输出类1030。例如,如果输出1035b具有一组输出1035中的最高值,但输出1035b的值不满足特定阈值,则神经网络分类器1005可以确定该组数据项1015不对应于任何输出类1030。
122.在一些实施例中,计算机系统1001不是预测整组数据项1015对应于特定输出类1030,而是预测该组数据项1015中的每个数据项是否对应于输出类1030中的特定输出类。因此,在一些实施例中,计算机系统1001使用神经网络分类器1005来将例如一组数据项1015作为一个群组预测其是否对应于特定输出类1030。在其他实施例中,计算机系统1001对一组数据项1015中的每个数据项执行神经网络分类器1005以预测例如数据项1015a对应于输出类1030b,而数据项1015b对应于输出类1030n。
123.值的注意的是,关于图11描述的一些或所有元件,比如元数据特征提取器1131、数据配置文件特征提取器1133和规则引擎特征提取器1137,可被实现为包括在软件程序中的程序指令。这种软件程序可以存储在非暂态计算机可读介质中,其上存储有程序指令,这些程序指令可由计算机系统1001执行以引起参考图11描述的操作。
124.还应注意的是,图11的实施例是用于图示所公开的概念的示例。预设想了该示例的变体,例如包括不同数量的特征提取器。尽管示出了三组数据项,但任何合适数量的数据项都可被包括在给定数据对象中。
125.图11图示了用于生成可由神经网络分类器用来生成输出值的特征的各种过程。可以以多种方式来实现这些各种各样的过程。在图12中示出了元数据提取过程的实现方式的示例。
126.进行到图12,描绘了提取与一组数据项相关联的元数据的过程的实施例的框图。如图所示,元数据提取管线1200用于检索与包括在数据对象1102中的相应数据项组相关联的各种类型的元数据。元数据收集器1121检索相关联的元数据并将收集的元数据发送到元数据特征提取器1131。元数据特征提取器1131包括用于分析收集的元数据和生成多个元数据特征1145a的若干过程。元数据特征1145a是图11中所示的特征1145的子集。
127.如图所示,数据对象1102是数据项的表,该表包括多个列,其中数据项组对应于多个列中的相应列。数据对象1102包括表名“user_data.tbl”,并被示出为具有三列,这三列具有相应的列名称:对应于一组数据项1015的“用户id”,对应于一组数据项1116的“密码”,以及对应于一组数据项1117的“ccn”。每列数据被进一步示出为具有四个相应的数据项。每个数据项包括一种或多种类型(例如数字、字母和二进制)的数据。
128.由元数据收集器1121检索相关联的元数据,包括表名1202、列名1215和列数据类型1215a-d。该检索到的元数据被统称为模式信息1023,因为特定元数据对应于用于将数据对象1102存储在数据库1010中的模式(例如,数据结构)。例如,对于一组数据项1015,表名1202被设置为“user_data.tbl”,列名1215被设置为“userid”,并且列数据类型1215a-d包括数字和字符串数据类型。该模式信息1023被发送到元数据特征提取器1131,以便为该组数据项1015生成元数据特征1145a。
129.元数据特征提取器1131包括用于生成元数据特征1145a的三个分类器:表名相似度1231a、列名相似度1231b和列数据类型加权1231c。每个输出类1030具有针对该输出类的通用列名和通用表名的预定义列表。元数据特征提取器1131针对特定输出类1030(例如,输出类1030a)基于模式信息1023与该输出类1030的预定义列表的比较生成相应的特征。该生成是通过针对输出类1030a将基于字符的神经网络分类器分别应用于通用列名和通用表名的预定义列表来执行的。表名相似性1231a是一种基于字符的神经网络分类器,其基于表名1202与输出类1030a的通用表名列表的比较来识别特定的一个通用表名。元数据特征1145a中的一个特征对应于该比较。对于表名1202的给定值,表名相似性1231a为每个输出类1030生成相应的特征。值的注意的是,由于表名1202对于数据对象1102中的所有三组数据项都是相同的,所以表名相似性1231a可以仅对每个数据对象执行一次。
130.列名相似性1231b是另一基于字符的神经网络分类器,其基于列名1215与输出类1030a的通用表名列表的比较来识别特定的一个通用列名。元数据特征1145a中的一个特征对应于该比较。对于列名1215的给定值,列名相似性1231b使用如下预测来生成相应的特征:模式信息与输出类1030a的列表上的通用列名之一匹配。列名相似性1231b基于与对应于剩余输出类1030b-1030n中的每一者的列表的额外比较来生成元数据特征1145a中的另外的特征。
131.每个输出类1030具有可接受数据类型的预定义列表。列数据类型加权1231c是为每个输出类1030生成特征的过程,该特征表明该组数据项1015的列数据类型1215a-d是否包括相应输出类1030的可接受数据类型。如图所示,列数据类型1215a-d表明该组数据项1015包括数字和字符串类型的数据。列数据类型加权1231c基于每个输出类1030通常是否包括数字和字符串类型的数据来为每个输出类1030生成元数据特征1145a中的相应特征。通常包括两种类型的数据的输出类1030将接收特征值“1”,而通常仅包括数字类型数据或仅包括字符串类型数据的输出类1030可被分配小于“1”的值(例如,“0”)。
132.值的注意的是,图12中图示的元数据提取管线仅是示例。如图所示,仅收集和分析了三种类型的元数据。在其他实施例中,可以收集附加的或不同类型的元数据。例如,其他类型的元数据可以包括表明对各个数据项的最近访问的时间戳、表明对数据对象的访问频率的计数值,以及其他类似的元数据类型。
133.图12图示了用于生成作为神经网络分类器的一部分的特征的过程的示例。如上所述,利用若干过程来生成一组特征以输入到神经网络分类器。图12图示了基于数据对象的元数据生成特征。图13中描绘了用于生成与一组数据项的数据配置文件相关联的特征的过程的示例。
134.现在转到图13,示出了用于为一组数据项生成数据配置文件的实施例的框图。如图所示,作为基于字符的分析的一部分,利用数据配置文件转换管线1300来确定包括在数据对象1102中的一组数据项(例如,一组数据项1015)中的每个数据项中所包括的字符的字母数字组成。数据配置文件转换器1123基于所确定的给定一组数据项中的数据项的字母数字组成来确定数据配置文件,并将该数据配置文件发送到数据配置文件特征提取器1133。数据配置文件特征提取器1133包括用于分析数据配置文件和生成多个数据配置文件特征1145b的两个过程。以与元数据特征1145a类似的方式,数据配置文件特征1145b是图11中所示的特征1145的子集。
135.如图所示,一组数据项1015包括四个数据项1015a-1015d,每个数据项具有字母数字值,例如针对数据项1015a的“abc123”。针对一组数据项1015,数据配置文件转换器1123确定该组内数据项1015a-1015d的字符组成的分布。确定分布包括:确定该组数据项1015的每个数据项中所包括的字母字符的数量和数字字符的数量。例如,分布1315a是数据项1015a的字符组成(其值为“abc123”)的示例。如分布1315a所示,该值包括三个字母字符(表示为“a3”)和三个数值数字(表示为“d3”)。类似地,分布1315b-1315d表明数据项1015b-1015d分别包括两个字母字符(“a2”)和四个数值数字(“d4”)、零个字母字符(“a0”)和四个数值数字(“d4”)、三个字母字符(“a3”)和零个数值数字(“d0”)。
136.使用字母字符的数量和数值数字的数量,数据配置文件转换器1123确定该组数据项1015内的数据项的字符组成的分布以生成数据配置文件1324。如图所示,分布1315a-1315d被数据配置文件转换器1123用来创建数据配置文件1324,该数据配置文件1324表明所包括的多个字符中的每个字符的百分比分布。数据配置文件1324表明四个数据项1015a-1015d之一或25%包括零个字母字符,25%包括两个字母字符,并且50%包括三个字母字符。此外,数据配置文件1324表明数据项1015a-1015d中25%包括零个数字,25%包括三个数字,并且50%包括四个数字。该数据配置文件1324被发送到数据配置文件特征提取器1133。
137.数据配置文件特征提取器1133包括用于生成数据配置文件特征1145b的两个神经网络分类器:相似性分类器1333a和相异性分类器1333b。数据配置文件特征提取器1133将数据配置文件1324应用到相似性分类器1333a,该分类器被训练为识别数据配置文件1324中表明的分布和与每个输出类1030相关联的通用分布的相似性。例如,相似性分类器1333a将数据配置文件1324与和输出类1030a相关联的一个或多个通用字符分布进行比较。相似性分类器1333a生成数据配置文件特征1145b之一,其具有表明数据配置文件1324和输出类1030之间的相似程度的值。所生成的特征可以具有从“0”到“1”范围内的值,其中“1”表明完
全匹配,“0”表明不相似。
138.以类似的方式,数据配置文件特征提取器1133将由数据配置文件1324表明的字符组成的分布应用到相异性分类器1333b,该相异性分类器1333b被训练为识别该分布与每个输出类1030的相异性。使用数据配置文件1324为每个输出类1030生成单独的一个数据配置文件特征1145b。在各种实施例中,相异性分类器1333b可以使用与相似性分类器1333a所使用的相同的标度(“1”表明完全匹配而“0”表明不相似)或者可以反转该标度,用“1”表明不相似。从将字符组成的分布分别应用到相似性分类器1333a和相异性分类器1333b中而提取的数据配置文件特征1145b被包括在特征1145中,特征1145被发送到神经网络分类器1005。
139.值的注意的是,如图13所示地数据配置文件转换管线是用于演示目的的示例。尽管该示例仅说明了收集字母和数字字符数据,但在其他实施例中也可以收集和分析其他类型的字符(例如,诸如数学和标点符号之类的特殊字符)。示出了两个神经网络分类器。在一些实施例中,可以使用不同的数量,例如具有用于数值数据和字母数据的单独分类器。
140.图12和13示出了用于从一组数据项生成一组特征的过程(作为神经网络分类器的一部分)的两个示例。如图11所示,可以利用三个过程来生成该组的特征。图14中描绘了用于基于正则表达式与一组数据项的比较来生成特征的第三过程的示例。
141.现在转到图14,图示了用于将规则引擎应用于一组数据项的实施例的框图。如图所示,作为基于字符的分析的一部分,使用规则引擎管线1400来识别在数据对象1102中包括的一组数据项(例如,一组数据项1015)中的每个数据项中存在的字符模式。数据收集器1127识别每个数据项1015a-1015d中的值,并将收集的数据1428发送到规则引擎特征提取器1137。规则引擎特征提取器1137包括用于将收集的数据1428与和每个输出类1030相关联的模式进行比较的多个过程(图14中示出了三个)。生成多个规则引擎特征1145c作为图11中所示的特征1145的子集。
142.如上面所公开的,数据配置文件包括对一组数据项中的数据项的数据值的组成(包括不同类型字符的字符计数)的分析。规则引擎管线1400,不是将字符计数,而是将多个正则表达式与存储在数据库1010中的数据对象1102的该组数据项1015进行比较。多个正则表达式中的每个正则表达式对应于输出类1030之一,并且表明对应输出类1030通用的字符模式。如图所示,数据收集器1127收集每个数据项1015a-1015d的数据值并将收集的数据1428提供给在规则引擎特征提取器1137中运行的每个过程。
143.规则引擎特征提取器1137包括用于每个输出类1030的一个正则表达式过程。为清楚起见仅示出了三个,但是可以根据需要包括尽可能多的正则表达式过程以对应于每个输出类1030。所示的过程是用户名正则表达式1437a、密码正则表达式1437b和信用卡正则表达式1437c。这些过程中的每一个包括与对应的输出类1030相关联的一个或多个正则表达式。例如,用户名正则表达式1437a可以对应于输出类1030a,密码正则表达式1437b可以对应于输出类1030b,并且信用卡正则表达式1437c可以对应于输出类1030c。用户名正则表达式1437a包括一个或多个表明用户名值的正则表达式。例如,用户名可能被限制为长度在3到12个字符之间的字母和数字字符的字符串。因此,用户名的正则表达式将对应于长度为3至12个字符的字母和数字字符的任意组合。如果由用户名正则表达式1437a分析的数据项包括其他符号,例如“@”或“#”,则该数据项将不对应于用户名的正则表达式。类似地,密码正则表达式1437b可以包括对应于密码规则的正则表达式。例如,特定安全区域可能要求密
码包括最少8个字符,包括一个或多个大小写字母字符、一个或多个数值数字、以及一个或多个特殊字符。信用卡号的正则表达式可能需要最少16个字符,所有数值数字,以四位数字的模式分组,每四位数字的群组之间有一个空格字符。
144.为生成对应于输出类1030a的特征1145c,将收集的数据1428中的每个值与用户名正则表达式1437a中的每个正则表达式进行比较,并且确定表明该值与该正则表达式匹配的程度的对应匹配值。在收集的数据1428中的所有值已经与所有正则表达式进行比较之后,基于一组匹配值生成对应于输出类1030a的特征。以与上述用于生成特征类似的方式,所生成的特征可以具有从“0”到“1”的值,其中“0”表明不匹配,“1”表明匹配。在一些实施例中,特征可以具有二进制值,“0”或“1”,而在其他实施例中,每个特征可以包括“0”和“1”之间的小数值范围。为生成对应于每个输出类1030b和1030c的相应特征1145c,以类似的方式执行密码正则表达式1437b和信用卡正则表达式1437c,其中所收集的数据1428被与相应的正则表达式组进行比较。从多个正则表达式过程与该组数据项1015的比较中提取的特征1145c被包括在特征1145中。
145.值得注意的是,图14是用于说明所公开的概念的一个示例。图示了三个正则表达式过程。在各种实施例中,可以包括任何合适数量的正则表达式过程。
146.图10-图14提供了用于在数据库扫描过程中利用神经网络分类器的各种系统和技术的示例。如上所述,扫描系统可操作来执行多种方法。下面在图15-图17中描绘这种方法的几个示例。
147.现在进行到图15,根据一些实施例,描绘了图示用于执行对数据库的扫描的示例方法1500的流程图。在各种实施例中,方法1500可以由图10的计算机系统1001执行以识别数据库1010中的数据项。例如,计算机系统1001可以包括(或可以访问)具有非暂态计算机可读介质,其上存储有程序指令,这些程序指令可由计算机系统1001执行以引起参考图15描述的操作。参考图10和图15,方法1500开始于框1501。
148.在框1510,在所示实施例中,方法1500包括由计算机系统1001执行扫描以识别数据库1010中对应于多个指定输出类1030中的一个或多个的数据项。在一些实施例中,该扫描可以对应于上述的一个或多个扫描,例如在图8中的方法800的框810中。在这样的实施例中,扫描可用于识别存储在特定安全区域中的数据项,并且输出类1030表明应根据特定一组安全规则存储的各种类型的敏感数据。在其他实施例中,扫描可以独立于参考图1-图9描述的安全扫描。在各种实施例中,扫描可以响应于特定事件而启动,可以按周期性时间表执行,或者可以不断重复。该扫描包括操作1520-1550,如下所述。
149.在框1520,方法1500包括确定数据库1010的一部分的元数据1020,其中元数据1020包括模式信息1023。元数据1020可以包括关于数据库1010的该部分的各种信息,包括例如该部分中所包括的一个或多个数据对象的文件名。在一些实施例中,数据库的该部分对应于单个数据对象,例如图11的数据对象1102。模式信息1023包括与数据对象的数据结构相关联的信息。例如,模式信息1023可以包括数据对象的名称、包括在数据对象中的表格的名称以及这些表格中的列和/或行的名称。除了确定元数据1020之外,还执行分析以确定元数据1020和与每个输出类1030相关联的元数据之间的相似程度。在一些实施例中,确定和分析过程对应于图12的元数据提取管线1200。
150.在框1530,该方法还包括为存储在数据库1010的该部分中的一组数据项1015生成
数据配置文件1025。生成数据配置文件1025包括对该组数据项1015执行基于字符的分析。该组数据项1015对应于给定数据对象内具有相似特性和数据类型的一组数据项。例如,给定的数据对象可以是表格并且该组数据项1015可以是该表格的一行或一列。对该组数据项1015执行的基于字符的分析包括确定该组数据项1015中的每个数据项的值的字符组成。该分析还可以包括确定数据配置文件1025和与每个输出类1030相关联的通用数据配置文件之间的相似程度。在一些实施例中,数据配置文件生成过程对应于图13的数据配置文件转换管线1300。
151.在框1540,方法1500还包括通过利用多类神经网络分类器1005识别该组数据项1015是否对应于多个指定输出类1030之一,多类神经网络分类器1005被训练为使用多个特征执行识别,多个特征包括从元数据和数据配置文件中提取的特征。与确定元数据1020和生成数据配置文件1025相关联地执行的分析产生多个特征,这些特征被发送到神经网络分类器1005。每个特征是从“0”到“1”的值,其表明该组数据项1015的特定特性与对应一个输出类1030之间的相似程度。在各个实施例中,每个特征的值可以是“0”或“1”的二进制值,或从“0”到“1”的小数值。在一些实施例中,一组特征可以包括二进制特征和小数特征的组合。
152.该方法进一步包括,在块1550,基于神经网络分类器1005的输出1035,识别多个指定输出类1030中对应于该组数据项1015的特定输出类。神经网络分类器1005使用接收到的特征来生成输出1035。输出1035中的每一个对应于输出类1030中的相应一个,使得在输出1035和输出类1030之间存在一一对应关系。在一些实施例中,输出1035可以是二进制值,其中“0”表明对应输出类1030与该组数据项1015几乎没有相关性,而“1”表明对应输出类1030和该组数据项1015之间的强相关性。在这样的实施例中,对于一组数据项1015,只有一个输出1035可以具有值“1”,而其余输出1035具有值“0”。在其他实施例中,输出1035可以具有由一定值范围的实数表示的值。在这样的实施例中,具有最高值的输出1035可以表明对应的输出类1030与该组数据项1015具有最强的相关性。此外,可以将阈值与具有最高值的输出1035进行比较。如果最大值不满足该阈值,则神经网络分类器1005可以确定该组数据项1015不对应于任何输出类1030。
153.方法1500被描述为识别一组数据项与指定输出类中的输出类之间的相关性。设想了方法1500的变体可以识别各个数据项与指定输出类中的输出类之间的相关性。此外,值的注意的是,这些值被描述为表明较高相关程度的较高值。还设想了,在一些实施例中,特征和/或输出的值可以反转,使得较低的值提供增加的相关性的指示。
154.移动到图16,图示了说明用于从从数据对象中的一组数据项中提取的元数据生成一组特征的方法的实施例的流程图。在一些实施例中,方法1600可以由图10的计算机系统1001执行,以生成图11中的元数据特征1145a。例如,计算机系统1001可以包括(或可以访问)非暂态计算机可读介质,其上存储有程序指令,这些程序指令可由计算机系统1001执行以引起参考图16描述的操作。在一些实施例中,方法1600的操作可以对应于包括在图15中的框1520和/或1540中的操作。共同参考图11和图16,该方法开始于框1601。
155.在框1610,方法1600包括提取数据对象的名称、一组数据项的名称、和数据对象中的一组数据项的数据类型。如图12所示,在计算机系统1001上执行的元数据收集器1121从数据对象1102中提取表名1202、列名1215和列数据类型1215a-1215d。表名1202是数据对象1102的名称,列名1215是一组数据项1015的名称,列数据类型1215a-1215d对应于数据项
1015a-1015d的数据类型。所提取的元数据对应于模式信息1023,并且作为对数据对象1102的基于字符的分析的一部分,所提取的元数据被发送到元数据特征提取器1131。
156.在框1620,方法1600包括将表名称1202和列名称1215与和每个输出类1030相关联的相应的各组名称进行比较。对于每个输出类1030,由计算机系统1001维护通用表名和通用列名的预定义列表。元数据特征提取器1131利用这些预定义列表来确定模式信息1023和每个输出类1030之间的相似程度。对于每个输出类1030,元数据特征提取器1131将表名1202与该输出类的表名的预定义列表进行比较,以确定表名1202与预定义列表中的一个或多个表名之间的相似程度。以类似的方式,元数据特征提取器1131将列名1215与每个输出类1030的通用列名的预定义列表进行比较,以确定列名1215与特定输出类的一个或多个列名之间的相似程度。
157.在框1630,该方法还包括:将列数据类型1215a-1215d与针对每个数据类的已知列数据类型进行比较。如图所示,计算机系统1001针对每个输出类1030维护通用数据类型的预定义列表。以与用于表名称和列名称类似的方式,元数据特征提取器1131利用这些预定义列表来确定列数据类型1215a-1215d和每个输出类1030之间的相似程度。
158.方法1600还包括,在框1640,基于在框1620和1630中执行的比较,为多个指定数据类中的每一个生成相应的一组特征。对于每个输出类1030,元数据特征提取器1131生成一个对应的特征1145a,其表明表名1202与针对该输出类1030的预定义列表中的一个或多个表名之间的相似程度。对于数据对象1102,基于表名1202为每个输出类1030生成一个特征1145a。以类似的方式,元数据特征提取器1131基于列名1215与每个预定义的列名列表的比较来生成相应特征1145a。对于一组数据项1015,针对列名1215,为每个输出类1030生成一个特征1145a。基于该组数据项1015的列数据类型1215a-1215d,可以为每个输出类1030生成特征1145a之一。如上所述,每个特征1145a的值可以在“0”和“1”之间的值范围内,其中“1”对应于最高级别的相关性。设想了用于对相关程度进行评级和缩放的其他方法。该方法在框1690结束。
159.图16的方法1600仅是示例。尽管操作被呈现为以串行方式发生,但是所图示的操作可以以不同的顺序执行和/或与一些操作并行执行。例如,框1620和1630可以由并行运行的各个过程来执行。此外,值的注意的是,特征的值被描述为表明较高相关程度的较高值。可以设想,在一些实施例中,特征的值可以反转,使得较低的值提供关于增加的相关性的指示。
160.转到图17,示出了图示用于从根据数据对象中的一组数据项确定的数据配置文件生成一组特征的方法的实施例的流程图。在一些实施例中,方法1700可以由图10的计算机系统1001执行,以生成图12中的数据配置文件特征1145b。在这样的实施例中,计算机系统1001可以包括(或可以访问)非暂态计算机可读介质,其上存储有程序指令,这些程序指令可由计算机系统1001执行以引起参考图17描述的操作。在一些实施例中,方法1700的操作可以对应于包括在图15中的框1530和/或1540中的操作。参考图12和图17,该方法开始于框1701。
161.在框1710,方法1700包括确定包括在一组数据项的每个数据项中的字母字符的第一数量和数字字符的第二数量。如图所示,包括在一组数据项1015中的数据项1015a-1015d包括字母数字字符。数据配置文件转换器1123(在图10的计算机系统1001上运行的过程)针
对每个数据项1015a-1015d,确定包括两种计数的对应分布1315a-1315d。第一种计数表明对应数据项中所包括的字母字符的数量,而第二种计数表明数值数字的数量。例如,分布1315b包括计数“a2”和“d4”。第一计数a2表明对应的数据项1015b包括两个字母字符“x”和“y”。第二个计数d4表示数据项1015b包括四个数字,“2”、“0”、“0”和“1”。尽管说明了两种类型的字符,即字母和数字,但在其他实施例中可以使用其他类型。例如,另外的字符类型可以包括小写字母、大写字母、数值数字和特殊字符(例如,标点符号、算术运算符)。
162.在框1720,方法1700包括针对每组数据项1015确定数据项1015a-1015d的字符组成的分布。如图12所示,数据配置文件转换器1123使用来自框1710的字符计数来确定数据配置文件1324,其包括一组数据项1015中所有数据项的字符组成的概要。在该示例中,数据配置文件1324表明一个数据项包括零个字母字符,一个数据项包括两个字母字符,并且两个数据项包括三个字母字符。数据配置文件1324还表明一个数据项包括零个数字,一个数据项包括三个数字,且两个数据项包括四个数字。数据配置文件转换器1123进一步确定每个计数值相对于一组数据项1015中的数据项总数的百分比或比率。这些比率被发送到在计算机系统1001上运行的数据配置文件特征提取器1133。
163.该方法还包括,在框1730,将数据配置文件1324应用到相似性神经网络分类器,该相似性神经网络分类器被训练为识别数据配置文件1324与每个输出类1030的相似性。数据配置文件特征提取器1133包括神经网络相似性分类器1333a。如图所示,相似性分类器1333a接收数据配置文件1324并将确定的字符组成与每个输出类1030通用的一个或多个相应数据配置文件进行比较。例如,相似性分类器可以使用输出类1030b通用的十个数据配置文件,并将这十个通用数据配置文件与数据配置文件1324进行比较。表明数据配置文件1324与十个共有数据配置文件中的一个或多个之间的相似程度的值被生成。例如,信用卡号的一个通用数据配置文件是十六位数字且没有字母字符。具有针对“d16”计数的高比率的数据配置文件1324可产生表明针对信用卡类的强相关性的值。
164.在框1740,该方法包括将数据配置文件1324应用到相异性神经网络分类器,该相异性神经网络分类器被训练为识别数据配置文件1324与每个输出类1030的差异。数据配置文件特征提取器1133还包括神经网络相异性分类器1333b。以与相似性分类器1333a类似的方式,相异性分类器1333b接收数据配置文件1324并将所确定的字符组成与和每个输出类1030相关联的一个或多个相应数据配置文件进行比较。相异性分类器1333b确定针对每个输出类1030的表明该组数据项1015与该输出类的特性之间的相异程度的值。相似性分类器1333a分析数据配置文件1324与每个输出类1030的相似性,相异性分类器1333b寻找相异的特性。回到上面的信用卡示例,具有d16计数的高比率的数据配置文件1324可以产生与信用卡类的强相关性。然而,如果相同的数据配置文件1324表明在对应的一组数据项中字母字符的高出现率,则该组数据项的相异性值可以指示该组与信用卡类之间的强相异性。在一些实施例中,较高的确定值可表明强相异性,而其他实施例可利用较低值来表明强相异性。
165.方法1700还包括,在框1750,从将字符组成的分布应用到相似性神经网络分类器和相异性神经网络分类器而提取的特征被包括在多个特征中。对于给定的一组数据项,相似性分类器1333a和相异性分类器1333b中的每一个为每个输出类1030生成特征1145b之一。如前所述,每个特征1145b可以是“0”和“1”之间的值。值“1”表明由相似性分类器1333a为特征生成的高相似程度。在各种实施例中,相异性分类器1333b可以使用“0”或“1”来表明
与给定输出类的强相异程度。生成的特征1145b被包括作为特征1145的一部分,特征1145被发送到神经网络分类器1005以生成输出1035,如图11所示。该方法在框1790结束。
166.图16中图示的方法是用于说明所公开的概念的示例。在其他实施例中可以使用该方法的变体。例如,一些操作虽然以串行顺序呈现,但可以以不同顺序执行和/或并行执行。例如,框1730和1740可以由并行运行的各个过程来执行。
167.尽管本文公开的实施例可能有各种修改和替代形式,但在附图中通过示例的方式示出了并且在本文中详细描述了具体的实施例。然而,应当理解,附图及其详细描述并不旨在将权利要求的范围限制为所公开的特定形式。反而,本技术意在涵盖落入如由所附权利要求限定的本技术的公开内容的精神和范围内的所有修改、等同以及替代。本文使用的标题仅用于组织目的,并不意味着用于限制说明书的范围。
168.本公开包括对“一个实施例”、“特定实施例”、“一些实施例”、“各种实施例”、“一实施例”等的提及。这些或类似短语的出现不一定指相同的实施例。可以以符合本公开的任何合适的方式来组合这些特定特征、结构或特性。
169.如本文所使用的,术语“基于”用于描述影响确定的一个或多个因素。该术语不排除其他因素可能影响确定的可能性。也就是说,确定可以仅基于指定的因素或基于指定的因素以及其他未指定的因素。考虑短语“基于b确定a”。该短语指定b是用于确定a或影响a的确定的因素。该短语不排除a的确定还可能基于某些其他因素,例如c。该短语也旨在涵盖仅基于b确定a的实施例。如本文所使用的,短语“基于”与短语“至少部分地基于”同义。
170.如本文所使用的,短语“响应于”描述了触发效果的一个或多个因素。该短语并不排除额外的因素可能影响或以其他方式触发该效果的可能性。也就是说,效果可能仅响应于那些因素,或者可能响应于指定的因素以及其他未指定的因素。考虑短语“响应于b而执行a”。该短语指定b是触发a的执行的一个因素。该短语不排除执行a还可能响应于某一其他因素,例如c。该短语还旨在涵盖如下实施例,其中a仅响应b而执行。
171.如本文所使用的,术语“第一”、“第二”等用作它们前面的名词的标签,并且不暗示任何类型的排序(例如,空间上、时间上、逻辑上等),除非另有说明。如本文所使用的,术语“或”用作包含性的或而不用作排他性的或。例如,短语“x、y或z中的至少一个”是指x、y和z中的任何一个,以及它们的任何组合(例如,x和y,但没有z)。
172.应当理解,本公开不限于特定装置或方法,其当然可以变化。还要理解,本文中使用的术语仅用于描述特定实施例的目的,并且不意图是限制性的。如在本文所使用的,除非上下文另有明确规定,否则单数形式的不定冠词(“a”、“an”)和定冠词(“the”)包括对单数和复数指示物。此外,在整个本技术中,“可以”一词是在许可的意义上使用的(即,有可能、能够),而不是在强制的意义上(即,必须)。术语“包括”及其派生词表示“包括但不限于”。术语“耦合”指的是直接或间接连接。
173.在本公开内,不同实体(其可以不同地称为“设备”、“电路”、其他组件等)可以被描述或要求为“被配置”为执行一个或多个任务或操作。这种表述——[实体]被配置为[执行一项或多项任务]——在本文中用于指代结构(即,物理的东西,例如电子电路)。更具体地,该表述用于表明该结构被布置为在操作期间执行一项或多项任务。可以说一个结构被“配置为”执行某一任务,即使该结构当前没有被操作。“被配置为存储数据的存储器设备”旨在涵盖例如具有在操作期间执行此功能的电路的集成电路,即使所讨论的集成电路当前没有
被使用(例如,没有连接到电源)。因此,被描述或记载为“被配置为”执行某些任务的实体是指物理的东西,例如设备、电路、存储可执行以实现任务的程序指令的存储器等。该短语在本文中不用于指代无形的东西.
[0174]
术语“被配置为”并不意在指“可配置为”。例如,未编程的fpga不会被视为“被配置为”执行某一具体功能,尽管它可能在编程后“可配置为”执行该功能。
[0175]
在所附权利要求中记载结构“被配置为”执行一项或多项任务明确地不意在为该权利要求要素援引35u.s.c.
§
112(f)。如果申请人希望在审查期间援引第112(f)条,它将使用“用于[执行一项功能]的装置”结构来记载权利要求要素。
[0176]
在本公开中,可操作以执行指定功能的各种“过程”在图中示出并在上面详细描述(例如,扫描过程230、转换过程220等)。如本文所使用的,术语“过程”指的是被配置为执行指定操作的电路或存储指示其他电路(例如,处理器)执行指定操作的信息(例如,程序指令)的物理、非暂态计算机可读介质。这种电路可以以多种方式实现,包括作为硬连线电路或作为其中存储有程序指令的存储器,这些程序指令可由一个或多个处理器执行以执行操作。硬件电路可以包括,例如定制超大规模集成(vlsi)电路或门阵列、诸如逻辑芯片之类的现成的半导体、晶体管、或其他分立组件。过程还可以实现在可编程硬件设备中,比如现场可编程门阵列、可编程阵列逻辑、可编程逻辑器件或类似物。过程也可以是任何合适形式的非暂态计算机可读介质,其存储可执行以执行指定操作的程序指令。
[0177]
尽管上面已经描述了具体实施例,但这些实施例并不旨在限制本公开的范围,即使针对特定特征仅描述了单个实施例。除非另有说明,否则本公开中提供的特征的示例旨在是说明性而非限制性的。上面的描述旨在涵盖对受益于本公开的本领域技术人员显而易见的这样的替代、修改和等同。
[0178]
本公开的范围包括本文公开的任何特征或特征的组合(显式地或隐含地),或其任何概括,无论其是否减轻了本文所解决的任何或所有问题。因此,在本技术(或要求其优先权的申请)的审查期间,可以针对任何这样的特征的组合提出新的权利要求。具体地,参考所附权利要求,来自从属权利要求的特征可以与独立权利要求的特征组合,并且来自各个独立权利要求的特征可以以任何适当的方式组合,而不仅仅是以所附权利要求中枚举的特定组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献