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

用于端点扫描的多功能代理的制作方法

2022-03-23 10:01:37 来源:中国专利 TAG:

用于端点扫描的多功能代理
1.本专利申请要求在2019年12月19日提交且题为“用于端点扫描的多功能代理”的美国非临时性专利申请号16/720,245的优先权,其通过引用明确地并入本文。
技术领域
2.本公开一般涉及搜索计算机可读介质的文件用于实现软件功能。


背景技术:

3.软件产品过往被用于管理文件,包括排序、搜索和保护文件。示例软件产品包括防病毒软件、端点数据丢失防护、数字数据取证分析、电子文件探索(ediscove叻等。这些软件功能中的每一个都需要用户计算设备(端点)来遍历文件系统中的所有或特定目录。一般来说,每个产品都有安装在用户模式下的软件代理。此外,每个软件产品可能由不同的供应商提供。通常,当两个软件功能/代理由同一供应商提供时,它们可能由不同的产品团队开发。即使供应商可以将两个软件功能集成到一个中,集成的代理仍会针对这两个软件功能两次遍历目录。


技术实现要素:

4.本公开的一个方面涉及一种用于为多个软件功能扫描文件的方法。该方法包括扫描计算机可读存储介质中存储的文件。基于扫描,针对两个或更多个软件功能,对文件执行通用分析。基于扫描,针对相应软件功能,对文件执行软件功能专用分析。基于通用分析和软件功能专用分析,针对两个或更多个软件功能,作出有关该文件的两个或更多个判定。
5.在一些实施例中,通用分析包括文件类型识别、文件内容提取、解包文件、解压文件以及文件内容与库的内容匹配的其中之一。
6.在一些实施例中,该方法还包括识别用于扫描的多个根文件夹;通过递归地遍历每个根文件夹,确定相应根文件夹是否包括子文件夹或文件;响应于确定相应根文件夹包含子文件夹,递归地遍历该子文件夹;并且响应于确定相应根文件夹包含该文件,扫描该文件。
7.在一些实施例中,对文件执行通用分析或软件功能专用分析包括为文件生成文件指纹。
8.在一些实施例中,该文件的文件指纹通过以下步骤来生成:获取该文件的字符串;获得该字符串的第一序列;基于第一序列生成第一散列;获得该字符串的第二序列,该第二序列是由第一序列移位得到的;基于第二序列生成第二散列;并且基于第一散列和第二散列生成文件的文件指纹。
9.在一些实施例中,第一序列和第二序列彼此移位预定长度的字符。在一些实施例中,使用相同散列函数来生成第一散列和第二散列。
10.在一些实施例中,对文件执行通用分析或软件功能专用分析包括根据文件指纹与参考文件指纹计算相似度值;确定相似度值是否大于预定阈值;并且响应于确定相似度值
大于预定阈值,生成用于相应软件功能的结果。
11.在又一方面,提供一种装置。该装置包括一个或多个处理器,以及被配置成存储由该一个或多个处理器可执行的指令的存储器。该一个或多个处理器被配置成执行指令,这些指令执行包括以下的操作:扫描计算机可读存储介质中存储的文件;基于该扫描,针对两个或更多个软件功能,对文件执行通用分析。基于该扫描,针对相应软件功能,对文件执行软件功能专用分析。并且基于通用分析和软件功能专用分析,针对两个或更多个软件功能,作出有关该文件的两个或更多个判定。
12.在又一方面中,提供一种非瞬态计算机可读存储介质。该非瞬态计算机可读介质存储指令,这些指令在被一个或多个处理器执行时,使该一个或多个处理器执行包括以下的操作:扫描计算机可读存储介质中存储的文件;基于该扫描,针对两个或更多个软件功能,对文件执行通用分析。基于该扫描,针对相应软件功能,对文件执行软件功能专用分析。并且基于通用分析和软件功能专用分析,为两个或更多个软件功能作出有关该文件的两个或更多个决策。
13.考虑下文参考附图的描述和所附权利要求,所有这些附图构成本说明书的一部分,将显见到本文公开的装置、系统、方法和非瞬态计算机可读介质以及相关结构元件的操作方法和功能的这些和其它特征。然而,应该明确地认识到,这些附图仅用于说明和描述的目的,并且并不旨在界定本公开的限制。要认识到的是,前文的概述和下文的详细描述仅是示例性和说明性的,并且不作为如权利要求所述的本公开的限制。
14.附图简要说明
15.参考附图可以更容易地理解本公开的非限制性实施例,其中:
16.图1示出了根据一个示例实施例的文件扫描系统的框图。
17.图2示出了根据一个示例实施例的,示例字符串和多个示例字符串部分。
18.图3a示出了根据一个示例实施例的,从字符串进行序列的示例选择。
19.图3b示出了根据一个示例实施例的示例序列部分。
20.图4是示出根据一个示例实施例的,用于以一次扫描对文件执行两个或更多个软件功能的方法的流程图。
21.图5是示出根据一个示例实施例的,用于扫描文件资料库中的文件的方法的流程图。
22.图6是示出根据一个示例实施例的,用于对文件执行通用分析或软件功能专用分析的方法的流程图。
23.图7是示出根据一个示例实施例的,用于为文件生成文件指纹的方法的流程图。
24.图8是示出根据一个示例实施例的,用于使用文件的文件指纹以生成用于一个或多个软件功能的分析结果的方法的流程图。
25.图9是示出根据一个示例实施例的,可以在其中实现本文描述的任何实施例的计算机系统的框图。
具体实施方式
26.现在将参考附图详细描述本公开的非限制性实施例。应该认识到,可以将本文公开的任何实施例的特定特征和方面与本文公开的任何其它实施例的特定特征和方面一起
使用和/或进行组合。还应该认识到,此类实施例是举例说明,并且仅仅是说明本公开的范围内的少数实施例。本公开相关领域的技术人员易见的多种改变和修改被视为落在所附权利要求中进一步限定的本公开的精神、范围和设想内。
27.端点设备可以提供多个软件功能来管理其文件。每个软件功能需要扫描/遍历与端点设备相关联的文件的全部或部分以便为相应软件功能作出判定。例如,当采用防病毒软件以保护端点免受恶意软件攻击保护时,防病毒软件可以周期性地启用其扫描模块以扫描端点设备的文件系统。当调用另一个软件功能时,例如ediscovery时,该软件功能开始为其自身的目的进行整个文件系统的新扫描。由此,可能针对多个软件功能多次扫描文件。
28.本文公开的技术能够扫描一次文件,为多个软件功能,例如防病毒、端点数据丢失防护、数字数据取证分析、ediscovery,作出多个判定。例如,防病毒软件功能可以执行文件扫描来进行文件类型识别、文件内容提取、解包文件、解压文件、静态文件内容检查以及动态文件内容检查。静态文件内容检查可以包括子序列匹配、字符串匹配和恶意软件签名匹配。在某些情况下,字符串匹配可以通过精确字符串匹配或正则表达式(regex)匹配来执行。每个文件对于这些操作至少被扫描一次,以便使防病毒软件功能能够对文件作出判定,例如,该文件是否被恶意软件感染。
29.例如数据丢失防护软件功能可能扫描文件来进行文件类型识别、文件内容提取、解包文件、解压文件、语言识别、文件元数据匹配、静态文件内容检查以及动态文件内容检查。针对数据丢失防止软件功能的静态文件内容检查可以包括字符串匹配和文件指纹匹配。在某些情况下,字符串匹配可以通过精确字符串匹配或regex匹配来执行。每个文件对于这些操作至少被扫描一次,以便使数据丢失防护软件功能能够对文件作出判定,例如,该文件是否被允许在实体外传输。
30.再者,数字数据取证分析软件功能可能扫描文件来进行文件类型识别、文件内容提取、解包文件、解压文件、文件元数据匹配、静态文件内容检查以及动态文件内容检查。针对数字数据取证分析软件功能的静态文件内容检查可以包括子序列匹配、字符串匹配和散列匹配。在某些情况下,字符串匹配可以通过精确字符串匹配或regex匹配来执行。在某些情况下,散列匹配可以包括文件指纹匹配和应用签名匹配。每个文件对于这些操作至少被扫描一次,以便使数字数据取证分析软件功能能够对文件作出判定,例如,该文件是否包含安全漏洞的取证证据。
31.ediscovery软件功能可能扫描文件来进行文件类型识别、文件内容提取、解包文件、解压文件、语言识别、文件元数据匹配、静态文件内容检查以及动态文件内容检查。针对数字数据取证分析软件功能的静态文件内容检查可以包括字符串匹配和文件指纹匹配。在某些情况下,字符串匹配可以通过精确字符串匹配或regex匹配来执行。每个文件对于这些操作至少被扫描一次,以便使ediscovery软件功能能够对文件作出判定,例如,该文件应如何分类或该文件是否与可发现的主题相关。
32.参考图1。图1是示出根据一个示例实施例的文件扫描系统100的框图。文件扫描系统100包括扫描模块102、通用分析模块104、软件功能专用分析模块106以及包括软件功能1(108-1)、软件功能2(108-2)、
……
、软件功能m(108-m)的多个软件功能108。
33.当在端点设备处调用文件扫描系统100时,扫描模块102被配置成遍历与该端点设备关联的文件。例如,端点设备可以包括存储这些文件的计算机可读存储介质。这些文件可
以被存储在计算机可读存储介质中不同目录中,这些目录包括根文件夹下的根文件夹和子文件夹。扫描模块102可以被配置成扫描该计算机可读存储介质中的文件的全部或预定部分。例如,扫描模块102识别多个根文件夹来进行扫描。然后,扫描模块102递归地遍历每个根文件夹以确定相应根文件夹是否包含子文件夹或文件。响应于确定相应根文件夹包含子文件夹,扫描模块102递归地遍历该子文件夹。响应于确定相应根文件夹包括该文件,扫描模块102扫描该文件。在文件被扫描一次之后,通用分析模块104被配置成针对两个或更多个软件功能,对该文件执行通用分析。对文件的通用分析包括分析两个或更多个软件功能的特征或端点设备的所有软件功能的子集。
34.例如,防病毒、端点数据丢失防护、数字数据取证分析和ediscovery的软件功能需要分析文件的类型(例如,word、pdf、文本、图片等)、解包和解压文件、提取文件的内容和/或匹配文件内容的字符串,以作出针对其相应目的的判定。例如,虽然识别文件中书写的语言可以提供针对数据丢失防护和ediscovery软件功能的见解,但是对于防病毒和数字数据取证分析的软件功能则不是必需的。因此,通用分析模块104可以针对数据丢失防护和ediscovery软件功能执行语言识别。在一些实施例中,通用分析模块104可以针对防病毒和数字数据取证分析软件功能执行子序列匹配和动态文件内容检查,因为子序列匹配和动态文件内容检查的见解/结果对于这些软件功能作出用于其相应目的的判定是有用的。在一些实施例中,通用分析模块104可以针对数据丢失防护、ediscovery和取证分析软件功能执行文件元数据匹配和文件指纹匹配。
35.一般来说,调用公共分析模块104被调用来执行对于这些软件功能通用的分析。这些技术使得文件能够针对多个软件功能被扫描一次,从而该文件不会被多次扫描/遍历(例如,对应于每个软件功能执行一次)。这统一地提高了软件功能的效率,减少了计算所需的资源,并提高了软件功能的性能。
36.基于扫描,软件功能专用分析模块106被调用来针对相应软件功能,对该文件执行软件功能专用分析。一般来说,软件功能专用分析模块106被配置成为不超过一个特定软件功能分析该文件。例如,可以调用软件功能专用分析模块106来为防病毒软件功能识别恶意软件签名。此操作有助于防病毒软件功能针对其目的作出判定,但对其它软件功能则是无用的。类似地,可以调用软件功能专用分析模块106来识别数字数据取证分析软件功能的应用签名。由此,软件功能专用分析模块106可以被配置成针对相应软件功能执行独立的分析。应当认识到,这些分析可以由通用分析模块104和软件功能专用分析模块106依次或并行地执行。执行这些分析应该没有特定的顺序。
37.基于通用分析和软件功能专用分析,文件扫描系统100可以通过对文件一次扫描而为两个或更多个软件功能对该文件作出两个或更多个判定。例如,基于通用分析模块104和软件功能专用分析模块106获知的见解/结果,防病毒软件功能可以确定文件是否已感染病毒。获知的见解还使数据丢失防护软件功能能够确定文件是否是机密的且不应传输到预定域之外,使数字数据取证分析软件功能能够确定文件是否与安全漏洞有关,以及使ediscovery软件功能能够确定文件应属于哪个或哪些类别。该技术使得两个或更多个软件功能基于对文件的一次扫描为其各自目的作出判定。这提高了文件扫描系统100的性能,并减少了完成软件功能所使用的资源。
38.在一些实施例中,文件扫描系统100被配置成使用文件指纹来帮助实现通用分析
和软件功能专用分析。在一些实施例中,文件扫描系统100检测文件为文本文档或将文件转换为文本文档。例如,文件扫描系统100可以包括能够识别文件中文本的书写语言的一个或多个应用编程接口(api)。文件扫描系统100还可以包括能够通过其内容以及还有通过文件扩展名来识别文本文档的真实类型的软件工具或api(文件类型识别器)。文件扫描系统100还可以包括能够从如pdf的格式化文档中提取文本内容的软件工具或api(文件转换器)。例如,提取的文本可以按utf-8予以编码,以使该文档中书写的语言能够被处理。可以将文件转换器与文件类型识别器集成。示例工具可能包括dtsearch和keyview。
39.文件可以是文本文档。文本文档可以指存储在一个单元中的数据或信息的集合。数据或信息可以被存储为文本文档的文本。例如,文本文档可以包括电子文档。文本文档可以通过一个或多个文本文档标识符来标识,例如文本文档名称或文本文档指纹。文本文档可能包含多个字符。字符可以指具有一种或多种含义的符号,例如构成单词的一部分、描绘字母、描绘数字、表示语法标点、表示数学概念或表示其它信息的符号。字符可以选自字母集的字母、数字系统的数字或特殊符号(例如,与和符号“&”、百分号“%”、分配“@”)。字符串可以指字符序列。字符串可以包括文本文档内的连续字符。文本文档内的字符/字符串可以形成该文本文档的文本。文本文档的文本可以指文本文档的书写的、打印的或记录的信息。文本文档的文本可以包括文本文档中包括的信息的可视表示。字符串(t)可以具有长度(l)并且可以包括字符(c)。字符串可以书写为t=cl c2...cl。
40.获得字符串可以包括访问、获取、分析、确定、检查、识别、加载、定位、打开、接收、检索、查看、存储或以其它方式获得字符串的其中一种或多种。
41.在一些实施例中,获得文本文档中的字符串可以包括:获取文本文档;提取文本文档的文本;以及将文本文档中提取的文本规范化。文件扫描系统100可以提取文本文档的文本并将文本文档中提取的文本规范化。可以从文本文档的规范化的文本中选择字符串。用于获得字符串的此类过程可以使文件扫描系统100能够为不同类型的文本文档生成一个或多个文本文档指纹或文件指纹。例如,文本文档可以使用不同格式存储信息(例如,不同格式的文档),并且文件扫描系统100可以将从文本文档中提取的文本规范化。例如,文件扫描系统100可以获得不同类型的文档(word文档、pdf文档、powerpoint文档),提取文档的文本,并且将从文档中提取的文本规范化为utf-8字符的序列。此类过程可以使得文件扫描系统100从具有不同形式编码文本的文本文档获得标准化的字符串。
42.文件扫描系统100被配置为从字符串中选择多个序列。可以从字符串中选择多个序列来用于生成文本文档指纹。序列可以指字符串的一部分。序列可以包括一个字符串中的连续字符。从字符串中选择的多个序列可以彼此相关。例如,文件扫描系统100可以从字符串中选择第一序列,然后基于第一序列从该字符串中选择第二序列。第二序列可以是从第一序列移位的。第二序列的至少一部分可以与第一序列重叠。这些序列可用于生成唯一性且鲁棒性(对于变化具有适应性)的文本文档指纹,以便文本文档指纹可以唯一性地标识文本文档。
43.此类从字符串中选择多个序列可以帮助实现以低冲突概率快速生成文本文档指纹。使用文本文档中的单个字符序列来生成文本文档指纹可能会导致多个文本文档共有相同的文本文档指纹。为了降低冲突的概率,可以使用多个函数,例如不同的散列函数,处理来自文本文档的单个字符序列以生成文本文档指纹的信息。然而,使用多种函数(例如,不
同的散列函数)可能增加生成文本文档指纹的计算时间。
44.选择其中一个序列是从另一个序列移位的多个序列,能够生成唯一性和鲁棒性的指纹。例如,可以通过对字符串的一个或多个序列使用散列函数,以从字符串中选择第一序列。可以将字符串中使序列的散列值等于o对p取模(o mod p(h=o mod p))的值的序列选为第一序列。可以通过从第一序列按向前或逆向方向移位一定数量的字符来选择第二序列。例如,可以通过将从第一序列按向前或逆向方向移开如一个或两个字符的预定数字,以根据第一序列选择第二序列。此类第二序列的选择可以允许使用迭代公式来快速生成唯一性且鲁棒性的文本文档指纹。可设想其它方式的从字符串中选择第一序列。
45.文件扫描系统100可以被配置成基于来自字符串的多个序列生成散列。例如,文件扫描系统100可以基于第一序列生成第一散列并且基于第二序列生成第二散列。文件扫描系统100可以使用相同的散列函数生成散列,例如滚动散列。使用滚动散列可以实现散列的快速计算,因为先前的散列计算可以在后续散列计算中被重复使用。例如,文件扫描系统100可以通过对第一序列内的字符执行散列函数的第一计算来生成第一散列。文件扫描系统100可以通过对第二序列内的字符执行相同的散列函数的第二计算来生成第二散列。文件扫描系统100可以在执行散列函数的第二计算时重复使用散列函数的第一计算的一部分。
46.可以设定或预定义滚动散列滑动窗的长度(w)。散列函数,例如karp-rabin函数,可以书写为hw(x1,x2,...,xw)=x1b
w-1
x2b
w-2
... x
w-1
b xw。这可以是只有两个加法和两个乘法的迭代公式,其中(b
w-1
)是常数。例如,对于k=2至l-w 1,可以使用该迭代公式从h
k-1
计算出hk。即,当通过迭代公式计算hk时,可以使用h
k-1
。可以设置/预定义的b和p的值,例如p=1021和b=2。可实现使用其它值和其它散列函数,例如adler-32。
47.此类对于彼此移位的序列使用相同散列函数生成散列,可以生成文本文档指纹的唯一值。与使用两个单独的散列函数来生成文本文档指纹的值不同,可以使用相同散列函数来迭代地生成文本文档指纹的值。序列的移位支持唯一性地生成散列而避免冲突,同时允许在新计算散列时重复使用散列的先前计算。
48.文件扫描系统100被配置成基于多个序列的散列,例如第一散列和第二散列,生成文本文档的一个或多个指纹。例如,文件扫描系统100可以初始化散列列表,并将为所选序列计算的一个或多个散列值添加到散列列表中。例如,基于hk=o mod p,文件扫描系统100可以将h
k-2
添加到散列列表中(基于第二序列是从第一序列按逆向方向移位两个字符)。hk和h
k-1
的计算可以被存储以在新的散列计算中重复使用,而h
k-2
的值可以被废弃。在一些实施例中,可以使用与所选序列或散列相关的其它信息来生成文本文档的指纹。例如,除了将h
k-2
添加到散列列表中之外,还可以将k-2添加到散列列表(例如,将《h
k-2
,k-2》追加到散列列表)。散列列表可以形成文本文档的指纹。散列列表可以被用于生成文本文档的指纹。
49.图2示出根据本公开的多种实施例的示例字符串200和示例字符串部分202、204、206、208、210、212。可以从字符串200中选择一个或多个字符序列用于生成文件指纹。例如,字符串200可以被分为多个字符串部分a(202)、b(204)、c(206)、d(208)、e(210)、f(212)。字符串部分202、204、206、208、210、212可能个别地包含k-gram,其中k-gram包括来自字符串200的k字符序列(连续字符)。可以选择字符串部分202、204、206、208、210、212中的一个作为第一字符串部分以在生成文件指纹时使用。第一字符串部分可以包含来自字符串200的
第一k字符序列。例如,可以选择包含使散列等于o mod p的k字符序列的字符串部分。可设想其它方式的选择第一字符串部分。
50.第二序列可以基于第一序列来选择。第二字符串部分可以包含来自字符串200的第二k字符序列。可以通过从第一k字符序列移位n个字符来选择第二k字符序列。例如,可以通过从第一k字符序列按逆向方向(向字符串200的开始位置)移位一个或两个字符或通过从第一k字符序列按向前方向(向字符串200的末尾)移位一个或两个字符来选择第二k字符序列。
51.图3a示出根据本公开多种实施例的从字符串300中选择序列a(302)、b(304)的示例。例如,可以从字符串300中选择序列302作为生成文本文档指纹的值时的第一序列。序列302可以包含字符串300内的10个连续字符。可以基于序列a 302生成第一散列。第一散列的生成可以包括基于序列302内的字符的散列函数的第一计算。可以从字符串300中选择序列304作为生成文本文档指纹的值时的第二序列。序列304可以包含字符串300内的10个连续字符。可以从序列302按逆向方向移位两个字符来选择序列304。可以基于序列304生成第二散列。第二散列的生成可以包括基于序列304内的字符的散列函数的第二计算。第二散列函数计算可以重复使用第一散列函数计算的一部分
52.图3b示出根据本公开多种实施例的序列302、304的示例序列部分a(312)、b(314)、c(316)。序列302包含序列部分312,该部分包含序列302末尾的两个字符。序列部分312中的两个字符未被包含在序列304中。序列304包含序列部分314,该部分包含序列304开始处的两个字符。序列部分314中的两个字符未被包含在序列302中。序列302和序列304都包含重叠部分316,该部分包含同时位于序列302、304中的八个字符。基于序列302的散列函数的计算可以重复使用基于序列304的散列函数计算的一部分。即,基于序列302的散列函数计算可以重复使用以重叠部分316内的字符进行的散列函数计算。例如,基于序列302的散列函数计算可以采用基于序列304的散列函数的先前计算,从该先前计算中移除序列部分314内的字符的贡献,并对先前计算添加序列部分312内的字符的构造。
53.再次参考图1,在一些实施例中,通用分析模块104可以被配置成执行用于软件功能108的文件指纹匹配。为此,通用分析模块104被配置成生成文件的一个或多个文件指纹。例如,通用分析模块104获得该文件的字符串,并且获得该字符串的第一序列。然后,通用分析模块104基于第一序列生成第一散列。通用分析模块104还获得字符串的第二序列。第二序列不同于第一序列且可以是从第一序列移位的。通用分析模块104基于第二序列生成第二散列,并基于第一散列和第二散列生成文件的文件指纹。应该认识到,这些操作可以迭代执行以生成文件的更多个文件指纹。
54.基于文件指纹,软件功能,如数据丢失防护、ediscovery和取证分析,可以被配置成针对其各自目的作出判定。例如,分析模块(104或106)可以从文件的文件指纹和参考文件指纹来计算相似度值。该分析模块然后确定相似度值是否大于预定阈值。响应于确定相似度值大于预定阈值,该分析模块生成用于该软件功能的结果。例如,基于文件指纹分析结果,可以调用数据丢失防护软件功能以确定文件是否能够从端点设备传输到安全域的外部。可以采用通用分析模块104或软件功能专用分析模块106来生成文件的一个或多个文件指纹。分析模块然后将文件的文件指纹与被归类为机密的文件的参考文件指纹进行比较。例如,分析模块可以从这些文件指纹来计算相似度值。当分析模块确定该文件的文件指纹
与机密文件的文件指纹相似(例如,相似度值大于预定阈值)时,分析模块确定涉及的文件也是机密的。基于此确定,数据丢失防护软件功能可以阻止文件传输到安全域之外。
55.现在参考图4。图4是示出根据一个示例实施例的,用于以一次扫描对文件执行两个或更多个软件功能的方法400的流程图。方法400可以由计算(端点)设备的文件扫描系统来执行,例如图1中的文件扫描系统100。在402处,文件扫描系统扫描文件。该文件可以存储在与文件扫描系统相关联的计算机可读存储介质中。在404处,基于该扫描,文件扫描系统针对计算设备的两个或更多个软件功能,对文件执行通用分析。例如,通过对文件进行一次扫描,文件扫描系统可以执行文件类型识别、文件内容提取和文件的解包解压,这些对于如防病毒、数据丢失防护、数字数据取证分析和ediscovery的两个或更多个软件功能是通用的分析过程。例如,文件扫描系统可以调用通用分析模块来提取文件的内容,并将文件的内容字符串与参考字符串进行匹配,以供软件功能作出针对各自目的的判定。在一些实施例中,通用分析模块可以针对防病毒和数字数据取证分析的软件功能执行子序列匹配和动态文件内容检查,这些操作对于这些软件功能作出针对其各自目的的判定是有用的。
56.在406处,基于该扫描,文件扫描系统针对相应软件功能,对文件执行软件功能专用分析。在一些实施例中,通过对文件相同的一次扫描,文件扫描系统可以针对防病毒软件功能识别恶意软件签名、或针对数字数据取证分析软件功能识别应用签名。这些分析对于相应软件功能是唯一的,并且对其它软件功能则是无用的。
57.在408处,该文件扫描系统,基于通用分析和软件功能专用分析,针对两个或更多个软件功能作出有关该文件的两个或更多个判定。在一些实施例中,基于通用分析和软件功能专用分析获知的见解/结果,文件扫描系统能够针对防病毒软件确定文件是否已感染病毒。再者,基于这些见解,该文件扫描系统,针对数据丢失防护软件功能,确定文件是否是机密的且不应传输到预定的域之外;针对数字数据取证分析软件功能,确定文件是否与安全性漏洞相关;以及针对ediscovery软件功能,确定文件应该属于哪个类别或哪些类别。
58.现在参考图5。图5是示出根据一个示例实施例的,用于扫描文件资料库中的文件的方法500的流程图。方法500可以由计算(端点)设备的文件扫描系统来执行,例如图1中的文件扫描系统100。在502处,文件扫描系统识别多个根文件夹来进行扫描。例如,该文件扫描系统可以被定向到包含多个根文件夹的文件目录。在504处,文件扫描系统递归地遍历每个根文件夹以确定相应根文件夹是否包含子文件夹或文件。在506处,响应于确定相应根文件夹包括子文件夹,文件扫描系统递归地遍历该子文件夹。在508处,响应于确定相应根文件夹包括文件,文件扫描系统扫描该文件。这些操作可以递归地被执行,直到遍历了所有根文件夹和子文件夹,并且确保文件扫描系统彻底地扫描针对两个或多个软件功能的文件资料库中的每一个文件为止。
59.图6是示出根据一个示例实施例的,用于对文件执行通用分析或软件功能专用分析的方法600的流程图。方法600可以由计算(端点)设备的文件扫描系统来执行,例如图1中的文件扫描系统100。在602处,文件扫描系统对文件执行通用分析或软件功能专用分析。例如,文件扫描系统可以被配置成针对数据丢失防护软件功能,确定被分析的文件是否与机密文件相似;针对防病毒软件功能,确定被分析的文件是否是感染病毒的文件;针对ediscovery软件功能,确定被分析的文件是否是分类的文件等等。文件扫描系统可以使用文件指纹技术来确定文件相似度。在604处,文件扫描系统生成文件的文件指纹。以下提供
用于生成文件指纹的详细操作。
60.图7是示出根据一个示例实施例的,用于为文件生成文件指纹的方法700的流程图。方法700可以由计算(端点)设备的文件扫描系统来执行,例如图1中的文件扫描系统100。在702处,文件扫描系统获得文件内的字符串。例如,该文件可能包含文本或已被转换为文本文件。该文件的文本包含字符串。在704处,文件扫描系统从该字符串获得第一序列。在706处,文件扫描系统基于第一序列生成第一散列。第一散列的生成可以包括基于第一序列内的字符的散列函数的第一计算。在708处,文件扫描系统从该字符串获得第二序列。可以基于第一序列选择第二序列并且从第一序列移位。在710处,文件扫描系统基于第二序列生成第二散列。第二散列的生成可以包括基于第二序列内的字符的散列函数的第二计算。散列函数的第二计算可以重复使用散列函数的第一计算的一部分。在712处,文件扫描系统基于第一散列和第二散列生成文件的文件指纹。在一些实施例中,文件扫描系统可以采用这些操作来基于文件的字符串来生成文件的更多指纹。
61.图8是示出根据一个示例实施例的,用于使用文件的文件指纹以生成用于一个或多个软件功能的分析结果的方法800的流程图。方法800可以由计算(端点)设备的文件扫描系统来执行,例如图1中的文件扫描系统100。在802处,文件扫描系统根据文件指纹和参考文件指纹来计算相似度值。参考文件指纹可以是与相应软件功能相关的特定文件的文件指纹。例如,防病毒软件功能可能期望知道在被分析的文件是否被计算机病毒感染。文件扫描系统可以生成被感染文件的参考文件指纹,并确定被分析的文件的文件指纹是否与被感染文件的文件指纹相似。而且,数据丢失防护软件功能可能需要确定被分析的文件是否是机密的,是否不应传输到安全域之外。文件扫描系统可以生成机密文件的参考文件指纹,并确定被分析的文件的文件指纹是否与该机密文件的文件指纹相似。文件扫描系统可以通过计算相应文件指纹的相似度值来确定两个文件是相似的。
62.在804处,文件扫描系统确定该相似度值是否大于预定阈值。例如,预定阈值可以是50%或更高,60%或更高,70%或更高,80%或更高,90%或更高,95%或更高,或99%或更高。当相似度值大于预定阈值时,文件扫描系统确定被分析的文件与相应软件功能的参考文件相似。响应于确定相似度值大于预定阈值(804处为是),文件扫描系统在806处生成针对相应软件功能的分析结果。例如,文件扫描系统确定被分析的文件与参考文件相似或不相似。基于分析结果,文件扫描系统可以作出针对两个或更多个软件功能的判定。例如,防病毒软件功能可以利用分析结果来确定被分析的文件是否被计算机病毒感染。而且,ediscovery软件功能可以基于相似度分析将被分析的文件归类到特定的文件类别。例如,当被分析的文件与已归类在特定文件类别中的参考文件相似时,ediscovery软件功能可以将该被分析的文件归类到特定文件类别中。
63.响应于确定相似度值不大于预定阈值(在804处为否)时,文件扫描系统在808处确定一个或多个参考文件指纹是否在排队以与被分析的文件的文件指纹进行比较。如果一个或多个参考文件指纹仍在排队以与被分析的文件的文件指纹进行比较(在808处为是),则方法800返回到802以计算更多相似度值。如果没有参考文件指纹排队要与被分析的文件的文件指纹进行比较(808处为否),则在810处,文件扫描系统标注该文件以用于后续分析。例如,一旦在系统中生成新的参考文件指纹,则文件扫描系统可以返回到相似度分析。在一些实施例中,文件扫描系统可以隔离被分析的文件以供用户干预。例如,文件扫描系统可以向
用户生成警报,以指示文件扫描系统无法作出针对该软件功能的判定。
64.图9是示出可以实现本文描述的任一实施例所在的计算机系统900的框图。例如,计算机系统可以是包括文件扫描系统的端点设备。计算机系统900包括总线902或用于传递信息的其它通信机构,一个或多个硬件处理器904与总线902耦合用于处理信息。硬件处理器904可以是例如一个或多个通用微处理器。
65.计算机系统900还包括主存储器906,例如耦合到总线902用于存储信息和要由处理器904执行的指令的随机存取存储器(ram)、高速缓存和/或其它动态存储设备。主存储器906还可以用于在由处理器904执行的指令被执行过程中存储临时变量或其它中间信息。当这些指令被存储在处理器904可访问的存储介质中时,使计算机系统900成为被定制成执行这些指令中指定的操作的专用机器。主存储器906可以包括非易失性介质和/或易失性介质。非易失性介质可以包括例如光盘或磁盘。易失性介质可以包括动态存储器。常见形式的介质可以包括例如软盘、软磁盘、硬盘、固态硬盘驱动器、磁带或任何其它磁数据存储介质、cd-rom、任何其它光数据存储介质、具有打孔模式的任何物理数据存储介质、ram、dram、prom和eprom、flash-eprom、nvram、任何其它存储芯片或盒式磁带及其联网版本。
66.计算机系统900可以使用与计算机组合使计算机系统900成为或将其编程为专用机器的,定制硬连线逻辑、一个或多个专用集成电路(asic)或现场可编程门阵列(fpga)、固件和/或程序逻辑来实现本文描述的技术。根据一个实施例,本文的技术由计算机系统900响应于处理器904执行包含在主存储器906中的一个或多个指令的一个或多个序列来执行。此类指令可以从另一存储介质,例如存储设备908,被读入主存储器906中。执行包含在主存储器906中的指令序列,使处理器904执行本文描述的过程操作。例如,图4-8中示出且结合此附图描述的过程/方法通过存储在主存储器906中的计算机程序指令来实现。当由处理器904执行这些指令时,它们可以执行如图5-8所示且在上文描述的操作。在一些实施例中,可以使用硬连线电路代替软件指令或与软件指令组合使用。
67.存储设备908可以是非瞬态存储介质,并存储用于本文公开的操作的多种数据和软件模块。例如,存储设备908可以存储扫描模块908a、通用分析模块908b、软件功能专用分析模块908c和多个软件功能908d。
68.计算机系统900还包括耦合到总线902的通信接口910。通信接口910提供与连接到一个或多个网络的一个或多个网络链接耦合的双向数据通信。作为另一示例,通信接口910可以是局域网(lan)卡,用于提供至与广域网通信的兼容的局域网(lan)或广域网(wan)部件的数据通信连接。也可以实现无线链接。
69.图9所示的计算机系统900可以被用作文件扫描系统来执行如图4-8所示的方法400、500、600、700和800。
70.某些操作的执行可以被分布在处理器之间,不仅驻留在单个机器内,而且还部署在多个机器上。在一些示例实施例中,处理器或处理器实现的引擎可以位于单个地理位置(例如,家庭环境、办公环境或服务器场)中。在其它示例实施例中,处理器或处理器实现的引擎可以分布在多个地理位置上。
71.某些实施例在本文中描述为包括逻辑或多个部件/模块。部件可以构成软件部件/模块(例如,在机器可读介质上嵌入的代码)或硬件部件/模块(例如,能够以特定物理方式配置或布置的执行某些操作的有形单元)中的任一个。例如,图4-8中的每个操作可以由模
块(软件、硬件或软件和硬件组合)来执行。
72.虽然本文描述了所公开的原理的示例和特征,但是在不背离所公开实施例的精神和范围的情况下,可以进行修改、调适和其它实现。再有,词汇“包括”、“具有”、“包含”和其它类似形式的单词理应在含义上是等同的并且是开放式的,因为跟随着这些词汇中任一个之后的一个或多个项不意味着是此一个或多个项的穷举性列出,或不意味着被限制于仅列出的一个或多个项。还必须注意,如本文和所附权利要求中所使用的,单数形式“一个”和“该”包含复数形式的引用对象,除非上下文另有明确指出。
73.本文图示的实施例进行了足够详细的描述,以使本领域技术人员能够实施所公开的教导。在不背离本公开范围的情况下,可以使用其它实施例以及据此导出其它实施例,由此进行结构和逻辑上的替代和更改。因此,具体实施方式不应取其限制意义,并且多种实施例的范围仅由所附权利要求以及这些权利要求所赋予的全部等同物来限定。
再多了解一些

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

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

相关文献