CN101404014B - 用于创建和更新批准文件和受信任域数据库的方法和*** - Google Patents

用于创建和更新批准文件和受信任域数据库的方法和*** Download PDF

Info

Publication number
CN101404014B
CN101404014B CN2008101619441A CN200810161944A CN101404014B CN 101404014 B CN101404014 B CN 101404014B CN 2008101619441 A CN2008101619441 A CN 2008101619441A CN 200810161944 A CN200810161944 A CN 200810161944A CN 101404014 B CN101404014 B CN 101404014B
Authority
CN
China
Prior art keywords
file
cryptographic hash
territory
approval documents
approval
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN2008101619441A
Other languages
English (en)
Other versions
CN101404014A (zh
Inventor
凯里·纳晨伯格
迈克尔·斯泊图斯
苏拉伯·萨蒂什
格里·伊根
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CAI Software LLC
Original Assignee
Symantec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of CN101404014A publication Critical patent/CN101404014A/zh
Application granted granted Critical
Publication of CN101404014B publication Critical patent/CN101404014B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

公开了用于创建或更新批准文件和受信任域数据库以及验证文件合法性的计算机实现方法和***。用于创建或更新批准文件数据库的方法可包括:截取第一文件;识别与所述第一文件相关联的源域;识别受信任域数据库;确定在受信任域数据库内是否存在与所述第一文件相关联的源域的数据库记录;如果在所述受信任域数据库内存在与所述第一文件相关联的源域的数据库记录,则为所述第一文件创建哈希值;以及将所述第一文件的哈希值存储在批准文件数据库中。还公开了用于验证文件合法性以及用于创建或更新受信任域数据库的方法和***。

Description

用于创建和更新批准文件和受信任域数据库的方法和***
背景技术
现有的防病毒技术日益变得无法保护计算资源免受诸如病毒或其它类型的恶意软件(malware)之类的恶意文件和程序的攻击,引发了对替代技术的研究。一个有前途的研发领域是文件“记入白名单(whitelisting)”,一种其中仅有包含在所定义的项目列表内的应用、文件或程序才可以被计算***访问或执行,而防止所有其它文件或程序在所述计算***上运行的***。
传统的白名单***依赖于手工创建的白名单或网络爬取(web-spidering,通常被称作网络抓取)技术来识别合法的(或潜在合法的)文件。然而,假设以每天为基础创建和发布(通常是经由因特网)新应用的速度,实际上不可能手工创建合法文件的全面白名单。
此外,由于网络爬取技术中的各种限制,传统的网络爬取技术典型地仅识别部分已知的合法文件,估计只有10%。例如,网络爬取技术难以对仅在用户填写在线表格和/或经由电子交易购买文件之后才可访问的文件进行访问和分析。传统的网络爬取技术还倾向于将非法文件错误地识别为合法的,反之亦然,进一步限制了白名单的生存能力。
发明内容
根据至少一个实施例,一种计算机实现的用于创建或更新批准文件数据库的方法可包括:截取第一文件;识别与所述第一文件相关联的源域(source domain);识别受信任域数据库;确定在受信任域数据库内是否存在与所述第一文件相关联的源域的数据库记录;如果在所述受信任域数据库内存在与所述第一文件相关联的源域的数据库记录,则为所述第一文件创建哈希(hash)值;以及将所述第一文件的哈希值存储在第一批准文件数据库中。截取所述第一文件可以包括当响应于自动请求或来自客户终端的请求而从第一域传送所述第一文件时对其进行截取。
所述第一文件的哈希值可包括所述第一文件的内容表示。此外,创建所述第一文件的哈希值可以包括使用安全哈希算法来创建所述第一文件的安全哈希值。所述第一文件可以包括可执行文件、存档文件和安装包中的至少一个。
所述方法还可以进一步包括创建所有被截取文件的报告,其中所述报告包括多个被截取文件中的每个被截取文件的文件名、多个被截取文件中的每个被截取文件的功能分类、多个被截取文件中的每个被截取文件的软件发布者、细化每个文件被截取次数的流行度信息或者多个被截取文件中的每个被截取文件的源域。所述方法还可以包括准许对所述报告进行访问或传送所述报告。
在某些实施例中,所述方法可以包括识别包含多个文件的多个哈希值的第二批准文件数据库,并且通过将存储在所述第一批准文件数据库中的哈希值与存储在所述第二批准文件数据库中的哈希值进行聚合来创建聚合的批准文件数据库。此外,所述方法可以包括接收访问所述第一批准文件数据库的请求、验证访问所述第一批准文件数据库的所述请求以及准许访问所述第一批准文件数据库。
识别与所述第一文件相关联的源域可以包括:从客户端计算设备所发布的HTTP请求中提取域信息以检索所述第一文件;使用托管所述第一文件的服务器的IP地址来执行反向域查找操作;从受信任的第三方服务器请求源域信息,或者解析所述第一文件来定位所嵌入的源域/发布者信息。所述方法还可以进一步包括创建批准文件数据库的本地副本,以及周期性地将所述本地副本与所述批准文件数据库进行同步。此外,所述方法可以进一步包括:在存储所述第一文件的哈希值之前,确定在所述批准文件数据库内是否存在先前为所述第一文件创建的哈希值。
在某些实施例中,一种用于验证文件合法性的方法包括:从第一计算设备接收第一请求来验证第一文件的合法性;确定在批准文件数据库内是否存在所述第一文件的哈希值的数据库记录;以及如果在所述批准文件数据库内存在所述第一文件的哈希值的数据库记录,则向所述第一计算设备传送指示所述第一文件是合法的响应。所述方法还可以进一步包括:如果在所述批准文件数据库内不存在所述第一文件的哈希值的数据库记录,则向所述第一计算设备传送指示所述第一文件是不合法的响应。
在至少一个实施例中,一种用于验证文件合法性的方法可以包括:截取第一文件;创建所述第一文件的哈希值;访问批准文件数据库;确定在所述批准文件数据库内是否存在所述第一文件的哈希值的数据库记录;以及如果在所述批准文件数据库内存在所述第一文件的哈希值的数据库记录,则允许访问所述第一文件。所述方法还可以包括:如果在所述批准文件数据库内不存在所述第一文件的哈希值的数据库记录,则拒绝访问所述第一文件。在某些实施例中,拒绝访问所述第一文件可以包括:阻止所述第一文件;提示用户确定是否允许访问该文件;隔离所述第一文件或删除所述第一文件。此外,访问所述批准文件数据库可以包括验证访问所述批准文件数据库的请求。
在一些实施例中,方法可以进一步包括:在将哈希值存储到所述批准文件数据库中之前,创建哈希值高速缓存;从所述哈希值高速缓存中识别至少一个唯一哈希值;以及确定在所述批准文件数据库内是否存在所述第一文件的所述唯一哈希值的数据库记录。
在至少一个实施例中,一种用于创建或更新受信任域数据库的方法可以包括:对来自第一源域的多个文件进行评估;确定所评估的来自第一源域的多个文件是否合法;如果所评估的来自第一源域的所述多个文件合法,则为所述第一源域创建数据库记录;以及将所述第一源域的所述数据库记录存储在受信任域数据库中。在一些实施例中,对来自第一源域的多个文件进行评估可以包括对在第一时间段中来自第一源域的多个文件进行评估。类似地,确定所评估的来自第一源域的多个文件是否合法可以包括确定所评估的在第一时间段中来自第一源域的多个文件是否合法。
依据这里所描述的一般原理,以上所提到的实施例中的任意特征可以彼此结合使用。通过阅读以下结合附图和权利要求所进行的详细描述,将更为全面地理解这些和其它实施例、特征以及优势。
附图说明
附图图示了多个示例性实施例并构成说明书的一部分。这些附图连同以下描述一起论证和解释了本公开的各种原理。
图1A是根据至少一个实施例的用于创建或更新批准文件和受信任域数据库和/或验证文件合法性的示例性***的框图。
图1B是根据附加实施例的用于创建或更新批准文件和受信任域数据库和/或验证文件合法性的示例性***的框图。
图2是根据至少一个实施例的用于创建或更新批准文件数据库的示例性计算机实现方法的流程图。
图3是根据附加实施例的用于创建或更新批准文件数据库的示例性计算机实现方法的流程图。
图4是根据附加实施例的用于创建或更新批准文件数据库的示例性计算机实现方法的流程图。
图5是根据至少一个实施例的用于验证文件合法性的示例性计算机实现方法的图示。
图6是根据附加实施例的用于验证文件合法性的示例性计算机实现方法的图示。
图7是用于创建或更新受信任域数据库的示例性计算机实现方法的流程图。
图8是能够实现这里所描述和/或图示的一个或多个实施例的示例性计算***的框图。
图9是能够实现这里所描述和/或图示的一个或多个实施例的示例性计算***的框图。
具体实施方式
图1A是根据至少一个实施例的用于创建或更新批准文件和受信任域数据库和/或验证文件合法性的示例性***100的框图。如该图所示,在至少一个实施例中,示例性***100可包括受信任域数据库102、批准文件数据库104和文件批准模块106。如以下将结合图2—9更详细解释的,***100可单独或与其它元件相结合来完成这里所描述的一个或多个示例性实施例和/或作为完成这里所描述的一个或多个示例性实施例的装置。
受信任域数据库102通常表示任意类型或形式的能够存储一个或多个数据库记录的计算设备或数据库。如以下将要更详细解释的,在至少一个实施例中,受信任域数据库102可包括多个受信任域中的每一个的数据库记录。受信任域数据库102的示例可包括数据库、服务器、本地存储设备、远程存储设备或任意其它适当的计算设备,但并不局限于此。
批准文件数据库104通常表示任意类型或形式的能够存储数据的计算设备或数据库。如以下将要更详细解释的,在至少一个实施例中,批准文件数据库104可包括关于一个或多个文件的数据或数据库记录。批准文件数据库104的示例可包括服务器、数据库、远程存储设备或任意其它适当的计算设备,但并不局限于此。
文件批准模块106通常表示任意类型或形式的能够单独或与其它组件相结合来验证文件合法性的模块或设备。在某些实施例中,文件批准模块106可表示当由计算设备执行时可使得所述计算设备执行用于验证文件合法性的一个或多个任务的软件应用或程序。例如,文件批准模块106可表示被配置成在代理服务器、固件、企业服务器、客户终端、本地因特网服务提供商服务器、骨干网络服务器或任意其它适当的计算设备上运行的软件模块。文件批准模块106还可以表示被配置成执行对验证文件合法性所需的一个或多个任务的专用计算机。
如图1A所示,文件批准模块106可与受信任域数据库102和/或批准文件数据库104进行通信。如以下将要更详细解释的,文件批准模块106可通过与受信任域数据库102和/或批准文件数据库104进行通信来验证一个或多个文件的合法性。如以下将要更详细解释的,文件批准模块106还可以在受信任域数据库102和批准文件数据库104内创建或更新数据库记录,或者可以请求创建或更新受信任域数据库102和批准文件数据库104内的数据库记录。
如图1A所示,在一些实施例中,计算***108可以与示例性***100进行通信。计算***108广泛地表示能够执行计算机可读指令的任意单处理器或多处理器的计算设备或***。计算***108的示例包括与***100进行通信的多个计算设备、联网环境中的一个或多个客户端终端、分布式计算***、一个或多个服务器或者任意其它计算***或设备,但并不局限于此。
在一些实施例中,文件批准模块106可被部署或配置成在联网环境中运行。例如,如图1B所示,文件批准模块106可被存储或配置成在计算***120上运行,在一些实施例中,所述计算***120可以表示企业网络环境中的代理服务器。在该实施例中,计算***120可通过将来自客户端122的请求转发至其它服务器而对一个或多个客户端122的请求进行服务。因此,如以下将要更详细解释的,文件模块106可以在允许客户端122访问文件之前通过截取来自客户端122的请求来验证客户端122从其它服务器所请求的文件的合法性。
文件批准模块106还可以被存储和配置成在诸如图1B中的计算***110的单个计算***上运行。在至少一个示例中,计算***110可表示至少部分被文件批准模块106所控制的客户端终端。例如,如以下将要更详细解释的,文件批准模块106可防止计算***110访问还没有被文件批准模块106验证和批准的文件。
图2是用于创建或更新批准文件数据库的示例性计算机实现方法200的流程图。如该图所示,在步骤202,可截取第一文件。在步骤202所截取的第一文件表示任意类型或形式的计算数据或文件。该第一文件的示例包括可执行文件(诸如.EXE文件)、存档文件(诸如RPM)和安装包(诸如MSI),但并不局限于此。
可以以任意的多种方式来截取文件。例如,截取所述第一文件可包括响应于诸如来自客户端的请求或自动请求之类的请求在其从来自诸如www.msn.com的特定域的web服务器进行传送时截取,或者截取电子邮件中的文件。例如,如图1B所示,文件批准模块106可被存储或配置成在计算***120上运行,在一些实施例中,所述计算***120可表示企业网络环境中的代理服务器。在该实施例中,计算***120可通过将客户端122的请求转发到诸如web服务器的其它服务器来代理这些请求。因此,在该实施例中,截取第一文件可包括响应于客户端122的请求而截取由这些其它服务器所传送的文件。
在步骤204,可识别与所述第一文件相关联的源域和相对路径。如这里所使用的短语“源域”通常是指文件的起源的域。例如,源自MICROSOFT的文件的源域可以是www.microsoft.com,而源自ADOBE的文件的源域可以是www.adobe.com。可以以多种任意的方式来识别与步骤202中的第一文件相关联的源域。例如,可以通过检验对所述第一文件的客户端请求(其可包含可从其接收第一文件的源域)、执行反向域查找操作、从诸如AKAMAI的受信任的第三方服务器请求源域信息或者对所述第一文件进行解析以识别存储在所述第一文件内的源域信息,来识别与所述第一文件相关联的源域。此外,一些源域可托管多个软件发布者的文件,其中所述软件发布者可产生受信任和非受信任软件。例如,源域可具有域名download.net,其托管来自受信任和非受信任软件发布者的文件。源域可使用相对路径来区分不同发布者所投放(post)的文件。例如,http://download.net/trusted/foo.exe、http://download.net/trusted/bar.exe、http://download.net/unknown/spywarel.exe和http://download.net/unknown/spyware2.exe可表示源域所托管的文件的可能路径。Download.net可在现对路径“trusted”下托管受信任的文件。然而,域名download.net也可以包含由相对路径“unknown”所表示的非受信任文件。在该示例中,通过源域对文件的分析可能是不充分的。计算***120可能需要进一步识别托管文件的路径的前缀部分。计算***120可以将一个或多个路径前缀与不明确的发布者相关联,并且将良好发布者在站点上发布的文件子集与非受信任发布者在站点上所发布的那些文件进行区分。例如,计算***120可以将相对路径“/trusted”、“/trusted1”和“/trusted2”与源域“download.net”相关联。
在步骤206,可识别受信任域数据库(诸如图1A中的受信任域数据库102)。如以上所详细描述的,在步骤206中识别的受信任域数据库可包括多个受信任域中的每一个的数据库记录。在一些实施例中,短语“受信任域”(其数据库记录可存储在受信任域数据库102中)广泛地指先前已经被识别为“受信任”的源域,也就是说,先前已经被验证来提供非恶意内容和文件的源域。此外,一些受信任域可具有一个或多个附加的相对路径说明来识别它们受信任和/或非受信任的URL空间的子集。如以下将要更详细解释的,为了被识别为“受信任”,源域可能必须满足某个标准,诸如具有没有从其自己所有的域分发过恶意软件(诸如恶意程序、病毒、间谍程序、广告程序等)和/或没有分发过未知的第三方软件的历史。受信任域的示例可包括主要或流行的公司域(诸如www.microsoft.com或www.adobe.com)、专用软件(例如,用于管理数据库的工具、文本编辑器、注册表清理工具等)提供商的域、受信任的软件区域提供商的域或者已经加入仅提供非恶意内容和文件协议的软件提供商的域,但并不局限于此。
在步骤208,所述***可确定在受信任域数据库内是否存在与在步骤202中所识别的第一文件相关联的源域的数据库记录。如果与所述第一文件相关联的源域的数据库记录存在于可指示源域为“受信任”域的域数据库内,则可在步骤210为所述第一文件创建哈希值。然而,如果在受信任域数据库内不存在与所述第一文件相关联的源域的数据库记录,则示例性方法200的处理流程可以终止。
这里所使用的短语“哈希值”通常是指通过对文件执行哈希函数所生成的数据。在一些实施例中,文件的哈希值包括所述文件的内容的表示(representation)或数字“指纹”。可以以多种方式来创建该哈希值。例如,可使用诸如SHA-1、SHA-2、MD5的安全哈希算法或任意其它安全哈希算法来创建步骤202中所识别的第一文件的哈希值。在步骤210,可将所述第一文件的哈希值存储在批准文件数据库中,诸如图1A中的批准文件数据库104。在步骤212之后,示例性方法200的处理流程可以终止。
虽然没有图示,但是示例性方法200可进一步包括截取诸如从web下载的文件或通过电子邮件接收的文件之类的附加文件,识别与所述附加文件相关联的源域,确定在受信任域数据库内是否存在与所述附加文件相关联的源域的数据库记录,并且如果在受信任域数据库内存在与所述附加文件相关联的源域的数据库记录,则为所述附加文件创建哈希值并将所述哈希值存储在所述批准文件数据库中。
在一些实施例中,可创建包含关于每个所截取文件的信息的报告。该报告可包含关于每个所截取文件的名称、每个所截取文件的源域、文件的功能类型(例如“CAD软件”、“娱乐软件”等(如果已知))和/或每个文件被截取多少次的信息。该报告可存储在诸如图1B的批准文件数据库104之类的数据库中,并且被传送至计算设备(诸如公司的服务器)或提供给实体(诸如企业)。该报告可为示例性***100(诸如企业或组织)的用户提供关于其组织内的文件使用的宝贵信息。
出于简明的原因并且仅作为示例,以下详细描述将提供可以如何实现示例性方法200的说明。诸如图1B中的客户端122之类的客户端终端的用户可决定从因特网上的web服务器下载文件。在该示例中,用户可能在能够下载所述文件之前被要求填写多种表格和/或为所述文件提供电子支付。在完成这些要求中的每一个之后,所述web服务器可以响应于用户的请求向客户端122传送所述文件。作为代理服务器的计算***120然后可以在其到达客户端122之前截取所述文件。
文件批准模块106然后可以使用以上所详细描述的技术之一来识别与所截取的文件相关联的源域以及所述源域内的相对URL路径。例如,文件批准模块106可从客户端所发送的网络请求分组中提取文件的源域和相对路径。一旦已经识别了所述文件的源域信息和相对路径,文件批准模块106就可以查询批准文件数据库104来确定在受信任域数据库102内是否存在与所述文件相关联的源域(以及可选地所述相对路径)的数据库记录。如果在受信任域数据库102内存在与所述文件相关联的源域(以及可选地所述相对路径)的数据库记录,则可以为所述第一文件创建哈希值并将所述哈希值存储在批准的文件数据库104中。
在一些实施例中,存储在一个批准文件数据库中的哈希值可与存储在其它的批准文件数据库中的哈希值进行聚合。接着,各个所验证的客户端可访问该聚合的批准文件数据库以便验证文件的合法性。例如,第一方(诸如企业)可加入与第二方的合作伙伴关系协议来共享它们各自的批准文件数据库内的结果,可使用***100和/或示例性方法200来创建和/或更新其中每个批准文件数据库。任意数目的附加方也可以加入该合作伙伴关系并且同意根据需要来共享其各自的批准文件数据库内的结果。在该示例中,随着各方共享和组合数百万***所生成的数据,合法文件的数据库可以以指数增长。
在该共享或聚合数据库的示例中,示例性方法200可进一步包括识别第二批准文件数据库(其可包含多个文件的多个哈希值)并且通过将存储在第一批准文件数据库中的哈希值与存储在所述第二批准文件数据库中的哈希值进行聚合来创建聚合的批准文件数据库。所述方法还可以包括接收访问所述聚合的批准文件数据库的请求,验证所述访问所述聚合的批准文件数据库的请求并准许访问所述聚合的批准文件数据库。
在某些实施例中,所述***可在存储所述第一文件的哈希值之前确定在第一批准文件数据库中是否存在先前为所述第一文件所创建的哈希值。例如,图3是用于在将哈希值存储到批准文件数据库中之前确定在数据库中是否存在先前为该文件所创建的哈希值的示例性计算机实现方法300的流程图。如这些图所示,在步骤302,***可在将先前所创建的哈希文件存储在批准文件数据库之前从多个先前所创建的哈希值中识别至少一个唯一哈希值。在步骤304,所述***可确定在批准文件数据库中是否存在在步骤302中所识别的唯一哈希值。如果在批准文件数据库中不存在在步骤302中所识别的唯一哈希值,则所述***在步骤306可将所述唯一哈希值存储在所述批准文件数据库中。
由于在正常使用期间,***100可在短时间段内的多个时机对诸如来自流行或频繁访问的域的文件之类的单个文件进行处理,所以示例性方法300可避免在多个时机传送和存储相同的哈希值,从而提高了效率。此外,在一些实施例中,可在将哈希值传送到批准文件数据库之前创建所述哈希值的本地高速缓存。在该示例中,所述***可以将识别该本地高速缓存内的唯一哈希值并仅将其传送至批准文件数据库进行存储。在另一个示例中,一旦***发现和添加了文件,所述***可以发送关于以较低频率的已知文件的文件使用的附加统计。
在一些实施例中,网络或子***可包括批准文件数据库104的本地副本,其可以不时地与批准文件数据库104进行同步。图4是用于创建批准文件数据库的本地副本的示例性计算机实现方法400的流程图。如该图所示,在步骤402,可识别批准文件数据库。在步骤404,可创建所述批准文件数据库的本地副本。在一些实施例中,创建批准文件数据库的本地副本可包括将所述批准文件数据库的内容复制到本地或远程存储设备。在步骤406,可周期性地将所述批准文件数据库的本地副本与步骤402中所识别的批准文件数据库进行同步。然后示例性方法400的处理流程可以终止。
在一些实施例中,批准文件数据库104可简单地被用来验证文件的合法性,而不(apart from)存储附加哈希值或数据库记录。例如,代理服务器可查询中央批准文件数据库(诸如批准文件数据库104)来验证所述代理服务器所截取的文件的合法性。图5是用于验证文件合法性的示例性计算机实现方法500的图示。如该图所示,在步骤502,可从诸如图1A中的计算设备108或图1B中的计算设备110和/或120的第一计算设备接收用于验证第一文件的合法性的第一请求。例如,可表示用于客户端122的代理服务器的计算设备120可在截取向客户端122传送的文件之后向批准文件数据库104传送请求来验证所截取文件的合法性。在某些实施例中,在步骤502中接收的第一请求可包括所要验证的第一文件的哈希值。该哈希值可由文件批准模块(诸如在计算***110或计算***120上运行的文件批准模块106)或任意其它适当设备来创建。
在步骤504,所述***可确定在诸如图1A中的批准文件数据库104的批准文件数据库内是否存在所述第一文件的所述哈希值的数据库记录。在某些实施例中,这可以通过查询批准文件数据库104来确定在所述数据库中是否存在所截取文件的哈希值来完成。如果在批准文件数据库内存在所述第一文件的哈希值的数据库记录,则在步骤506可向所述第一计算设备传送指示所述第一文件是合法的到第一计算设备的响应。替代地,如果在批准文件数据库内不存在所述第一文件的哈希值的数据库记录,则在步骤508可以向所述第一计算设备传送指示所述第一文件是不合法的响应。然后示例性方法500的处理流程可以终止。
示例性方法500可使得多个代理服务器能够查询中央批准文件数据库(诸如批准文件数据库104)或中央批准文件数据库的一个或多个高速缓存副本来验证所述代理服务器所截取的文件的合法性。示例性方法500还可以使得诸如图1B中的计算设备110的单个计算设备能够在下载文件之前验证其合法性。
如6是根据附加实施例的用于验证文件合法性的示例性计算机实现方法600的图示。该图细化了诸如代理服务器的计算设备在试图确定文件的合法性时可以执行的各个步骤和动作。如该图所示,在步骤602,可截取第一文件。如以上所详细描述的,该第一文件步骤可由诸如企业网络环境中的代理服务器或公司内的终端用户的个人计算机的任意计算设备进行截取。在步骤604,为所述第一文件创建哈希值。在某些实施例中,所述第一文件的哈希值可由诸如图1A中的文件批准模块106的文件批准模块和/或诸如图1A—1B中的计算设备108、110和120的计算设备所创建。在步骤606,可访问批准文件数据库。在某些实施例中,可由运行文件批准模块(诸如运行在计算***110和120上的文件批准模块106)的计算***来访问诸如图1A中的批准文件数据库104的所述批准文件数据库。
在步骤608,可验证访问批准文件数据库的请求。在某些实施例中,验证访问批准文件数据库的请求可包括验证从其接收所述请求的计算设备先前已经被授予对所述批准文件数据库的访问权。例如,步骤608可包括确定从其接收访问请求的代理服务器已经被授予对批准文件数据库的访问权。
在步骤610,***可确定在批准文件数据库内是否存在第一文件的哈希值的数据库记录。如果在批准文件数据库内存在第一文件的哈希值的数据库记录,则在步骤612可允许或准许访问所述第一文件。替代地,如果在批准文件数据库内不存在第一文件的哈希值的数据库记录,则在步骤614可拒绝访问所述第一文件或提示请求用户证明将未知软件引入到计算机***合法。可以任意的多种方式来拒绝或准许访问所述第一文件。例如,代理服务器可通过防止或阻止下载第一文件、在下载后隔离第一文件、删除第一文件或对第一文件应用沙盒(sandboxing)来拒绝客户端对所述第一文件的访问。替代地,所述***可请求用户填写指示下载/安装未证明的应用的原因的表格,以及可请求在违反政策的情况下使用这样的文件的权限。在完成步骤614和/或步骤612之后,示例性方法600的处理流程可以终止。
如以上所详细描述的,受信任域数据库可包括多个受信任域中的每一个的数据库记录。这些受信任域可被手工识别或者由满足某个标准的计算***自动识别。例如,为了被信任,源域可能必须具有没有分发过恶意软件(诸如恶意程序、病毒、间谍程序、广告程序等)和/或没有从其自己所拥有的域分发过非受信任的第三方软件的历史。图7是用于识别受信任域和基于这些受信任域创建或更新受信任域数据库的示例性计算机实现方法700的流程图。如该图所示,在步骤702,可从第一源域(例如,www.microsoft.com)请求多个文件。在某些实施例中,图1A中的***100的一个或多个组件可对来自第一源域的多个文件进行评估。在步骤704,可接收来自所述第一源域的多个文件。在步骤706,所述***可确定来自所述第一源域的多个文件是否合法。可以以任意的多种方式来验证来自所述第一源域的文件的合法性。例如,所述***可确定从所述第一源域所接收的文件是否包括在由计算***执行时使得所述计算***执行一个或多个所不希望的动作的指令。
如果从第一源域接收的多个文件是合法的,则在步骤708可为所述第一源域创建数据库记录。在步骤710,可以将所述第一源域的数据库记录存储在诸如图1A—1B中的受信任域数据库102的受信任域数据库中。替代地,如果从所述第一源域接收的多个文件中的一个或多个不合法,则示例性方法700的处理流程可以终止。
在某些实施例中,在步骤704评估来自第一源域的多个文件可包括在第一时间段对来自所述第一源域的多个文件进行评估。类似地,确定从所述第一源域接收的多个文件是否合法可包括确定在第一时间段从所述第一源域接收的多个文件是否合法。例如,诸如图1A中的***100的***可监视在固定时间段内源自该源域的多个文件。所述***然后可对在固定时间段内源自该源域的每个文件进行分析来确定任意文件是否合法。如果在固定时间段内源自所述源域的一个或多个文件是合法的,则将不在受信任域数据库中为所述源域创建或存储数据库记录。
这里所公开的示例性实施例提供了多种优于现有技术的优势。例如,由于批准文件数据库104随着示例性***100的数百万***请求并获得对各种文件的访问而自动增长,所以避免了对具有内在局限性的传统web爬取技术的需求。合法文件的数据库还可以随着这里所公开的示例性实施例在多种网络环境中采用以及聚合和共享批准文件而指数增长。此外,由于自动识别合法文件,所以省去了传统的手工方法中所需的许多努力。
在所有附图中,相同的附图标记和描述指示类似而不必完全相同的元素。而这里所描述的示例性实施例容许进行各种修改和替换形式,特定的实施例已通过在附图中举例的方式被示出并在这里进行了详细描述。然而,这里所描述的示例性实施例不是意在被限制为所公开的特定形式。相反,本公开涵盖了落入所附权利要求范围之内的所有修改、等同物和替代。
图8是能够实现这里所描述和/或图示的一个或多个实施例的示例性计算***810的框图。计算***810广泛地表示能够执行计算机可读指令的任意单处理器或多处理器计算设备或***。计算***810的示例包括工作站、膝上型电脑、客户端侧终端、服务器、分布式计算***、手持设备或任意其它计算***或设备,但并不局限于此。在其最基本的配置中,计算***810可包括至少一个处理器814和***存储器816。
处理器814通常表示任意类型或形式的能够处理数据或解析和执行指令的处理单元。在某些实施例中,处理器814可从软件应用或模块接收指令。这些指令可使得处理器814执行这里所描述和/或图示的一个或多个示例性实施例的功能。例如,处理器814可单独或与其它元件相结合来执行这里所描述的截取、识别、确定、创建、存储、准许、传送、接收、验证、执行、请求、解析、同步、访问、允许、拒绝、阻止、隔离和删除步骤中的一个或多个和/或作为用于执行上述步骤中的一个或多个的装置。处理器814还可执行这里所描述和/或图示的任意其它步骤、方法或处理和/或作为执行这里所描述和/或图示的任意其它步骤、方法或处理的装置。
***存储器816通常表示任意类型或形式的能够存储数据和/或其它计算机可读指令的易失性或非易失性存储设备或介质。***存储器816的示例包括随机存取存储器(RAM)、只读存储器(ROM)、闪存或任意其它适当的存储设备,但并不局限于此。虽然没有要求,但是在某些实施例中,计算设备810可包括易失性存储器单元(例如,***存储器816)和非易失性存储设备(例如,如以下详细描述的主存储设备832)两者。
在某些实施例中,除处理器814和***存储器816之外,示例性计算设备810还可包括一个或多个组件或元件。例如,如图8所示,计算***810可包括存储器控制器818、输入/输出(I/O)控制器818和通信接口822,其中每一个都可以经由通信基础设施812来互连。通信基础设施812通常表示任意类型或形式的能够有助于在计算设备的一个或多个组件之间进行通信的基础设施。通信基础设施812的示例包括通信总线(诸如ISA、PCI、PCIe或类似总线)和网络,但并不局限于此。
存储器控制器818通常表示任意类型或形式的能够处理存储器或数据或者对计算***810的一个或多个组件之间的通信进行控制的设备。例如,在某些实施例中,存储器控制器818可对在处理器814、***存储器816和I/O控制器820之间经由通信基础设施812所进行的通信进行控制。在某些实施例中,存储控制器可单独或与其它元件相结合来执行这里所描述和/或图示的诸如截取、识别、确定、创建、存储、准许、传送、接收、验证、执行、请求、解析、同步、访问、允许、拒绝、阻止、隔离和删除的一个或多个步骤或特征和/或作为执行上述一个或多个步骤或特征的装置。
I/O控制器820通常表示任意类型或形式的能够协调和/或控制计算设备的输入和输出功能的模块。例如,在某些实施例中,I/O控制器可控制或促进在计算***810的诸如处理器814、***存储器816、通信接口822、显示适配器826、输入接口830和存储接口834的一个或多个元件之间的数据传输。例如,I/O控制器820可被用来单独或与其它元件相结合来执行这里所描述的截取、识别、确定、创建、存储、准许、传送、接收、验证、执行、请求、解析、同步、访问、允许、拒绝、阻止、隔离和删除步骤中的一个或多个和/或作为执行上述步骤中的一个或多个的装置。I/O控制器820还可被用来执行本公开所阐述的其它步骤和特征和/或作为执行其它步骤和特征的装置。
通信接口822广泛地表示任意类型或形式的能够促进在示例性计算***810和一个或多个其它设备之间的通信的通信设备或适配器。例如,在某些实施例中,通信接口822可促进在计算***810和包括其它计算***的私有或公共网络之间的通信。通信接口822的示例包括有线网络接口(诸如网络接口卡)、无线网络接口(诸如无线网络接口卡)、调制解调器以及任意的其它适当接口,但并不局限于此。在至少一个实施例中,通信接口822可经由到诸如因特网的网络的直接链接提供与远程服务器的直接连接。通信接口822还可以通过例如局域网(诸如以太网)、个人域网(诸如蓝牙网络)、电话或有线网络、蜂窝电话连接、卫星数据连接或任意的其它适当连接来间接地提供这样的连接。
在某些实施例中,通信接口822还可表示被配置成促进在计算***810和一个或多个其它网络或存储设备之间经由外部总线或通信信道进行通信的主机适配器。主机适配器的示例包括SCSI主机适配器、USB主机适配器、IEEE1394主机适配器、SATA和eSATA主机适配器、ATA和PATA书记适配器、光纤信道接口适配器、以太网适配器等,但并不局限于此。通信接口822还可允许计算***810用于分布式或远程计算中。例如,通信接口822可从远程设备接收指令或向远程设备传送指令以用于执行。在某些实施例中,通信接口822可单独或与其它元件相结合来执行这里所描述的截取、识别、确定、创建、存储、准许、传送、接收、验证、执行、请求、解析、同步、访问、允许、拒绝、阻止、隔离和删除步骤中的一个或多个和/或作为执行上述步骤中的一个或多个的装置。通信接口822还可被用来执行本公开所给出的其它步骤和特征和/或作为执行其它步骤和特征的装置。
如图8所示,计算***810还可包括至少一个经由显示适配器耦合到通信基础设施812的显示设备824。显示设备824通常表示任意类型或形式的能够对显示适配器826所转发的信息进行可视显示的设备。类似地,显示适配器826通常表示任意类型或形式的被配置成转发来自通信基本设施812(或来自本领域已知的帧缓冲器)的图形、文本和其它数据以便在显示设备824上进行显示的设备。
如图8所示,示例性计算***810还可包括至少一个经由输入接口830耦合到通信基础设施812的输入设备828。输入设备828通常表示任意类型或形式的能够向示例性计算***810提供计算机或人工生成的输入的输入设备。输入设备828的示例包括键盘、指示设备、语音识别设备或任意其它输入设备,但并不局限于此。在至少一个实施例中,输入设备828可单独或与其它元件相结合来执行这里所描述的截取、识别、确定、创建、存储、准许、传送、接收、验证、执行、请求、解析、同步、访问、允许、拒绝、阻止、隔离和删除步骤中的一个或多个和/或作为执行上述步骤中的一个或多个的装置。输入设备828还可被用来执行本公开所阐述的其它步骤和特征和/或作为执行其它步骤和特征的装置。
如图8所示,示例性计算***810还可包括经由存储接口834耦合到通信基础设施812的主存储设备832和备用存储设备833。存储设备832和833通常表示任意类型或形式的能够存储数据和/或其它计算机可读指令的存储设备或介质。例如,存储设备832和833可以是磁盘驱动器(例如,所谓的硬盘驱动器)、软盘驱动器、磁带驱动器、光盘驱动器、闪存驱动器等。存储接口834通常表示任意类型或形式的用于在存储设备832和833以及计算***810的其它组件之间传输数据的接口或设备。
在某些实施例中,存储设备832和833可被配置成从可移动存储单元进行读取和/或对其进行写入,所述可移动存储单元被配置成存储计算机软件、数据或其它计算机可读信息。适当的可移动存储单元的示例包括软盘、磁带、光盘、闪存设备等,但并不局限于此。存储设备832和833还可允许计算机软件、数据或其它计算机可读指令加载到计算***810中的其它类似结构或设备。例如,存储设备832和833可被配置成读取和写入软件、数据或其它计算机可读信息。存储设备832和833还可作为计算***810的一部分或者可以是通过其它接口***进行访问的单独设备。例如,存储设备832和833还可被用于单独或与其它元件相结合来执行这里所描述的截取、识别、确定、创建、存储、准许、传送、接收、验证、执行、请求、解析、同步、访问、允许、拒绝、阻止、隔离和删除步骤中的一个或多个和/或作为执行上述步骤中的一个或多个的装置。存储设备832和833还可被用来执行本公开所阐述的其它步骤和特征和/或作为执行其它步骤和特征的装置。
许多其它设备或子***可连接到计算***810。反之,无需呈现图8所示的所有组件和设备来实践这里所描述和/或图示的实施例。以上所引用的设备和子***还可以以与图8所示不同的方式进行互连。计算***810还可以采用任意数量的软件、固件和/或硬件配置。例如,这里所公开的一个或多个示例性实施例可被编码为在计算机可读介质上的计算机程序(也被称作计算机软件、软件应用、计算机可读指令或计算机控制逻辑)。短语“计算机可读介质”通常是指任意形式的能够存储或承载计算机可读指令的设备、载体或介质。计算机可读介质的示例包括可记录媒介(诸如软盘和CD-ROM或DVD-ROM)、传输型媒介(诸如载波)、电存储媒介、磁存储媒介、光存储媒介或其它分布***。
包含计算机程序的计算机可读介质然后可以被加载到计算***810中。然后,可以将存储在所述计算机可读介质上的所有或部分计算机程序存储在***存储器816和/或存储设备832和833的各个部分。当被处理器814执行时,加载到计算***810的计算机程序可使得处理器814执行这里所描述和/或图示的一个或多个示例性实施例的功能和/或作为执行所述一个或多个示例性实施例的功能的装置。除此之外或替代地,这里所描述和/或图示的一个或多个示例性实施例可以以固件和/或硬件来实施。例如,计算***810可被配置为适于实现这里所公开的一个或多个示例性实施例的专用集成电路(ASIC)。
图9是示例性网络体系结构900的框图,其中客户端***910、920和930以及服务器940和945可耦合到网络950。客户端***910、920和930通常表示任意类型或形式的计算设备或***,诸如图8中的示例性计算***810。类似地,服务器940和945通常表示被配置成提供各种数据库服务和/或运行某些软件应用的计算设备或***,诸如应用服务器或数据库服务器。网络950通常表示任意的电信或计算机网络,包括例如内联网、广域网(WAN)、局域网(LAN)、个人域网(PAN)或因特网。
如图9所示,一个或多个存储设备960(1)-(N)可直接连到服务器940。类似地,一个或多个存储设备990(1)-(N)可直接连到服务器945。存储设备960(I)-(N)和存储设备990(1)-(N)通常表示任意类型或形式的能够存储数据和/或其它计算机可读指令的存储设备或介质。在某些实施例中,存储设备960(1)-(N)和存储设备990(1)-(N)可表示被配置成使用诸如NFS、SMB或CIFS的各种协议与服务器940和945进行通信的网络附加存储器(NAS)设备。
服务器940和945还可连接到存储域网络(SAN)构造980。SAN构造980通常表示任意类型或形式的能够促进在多个存储设备之间进行通信的计算机网络或体系结构。SAN构造980可促进在服务器940和945和多个存储设备990(1)-(N)和/或智能存储阵列995之间的通信。SAN构造980还可促进在客户端***910、920和930以及存储设备990(1)-(N)和/或智能存储阵列995之间经由网络950和服务器940和945以设备990(1)-(N)和阵列995作为客户端***910、920和930的本地附加设备出现的方式进行通信。如存储设备960(1)-(N)和存储设备970(1)-(N)一样,存储设备990(1)-(N)和智能存储阵列995通常表示任意类型或形式的能够存储数据和/或其它计算机可读指令的存储设备或介质。
在某些实施例中,并且参考图8的示例性计算***810,诸如图8中的通信接口822的通信接口可被用来提供在每个客户端***910、920和930和网络950之间的连接。客户端***910、920和930能够使用例如web浏览器或其它客户端软件访问服务器940或945上的信息。这样的软件可以允许客户端***910、920和930访问服务器940、服务器945、存储设备960(1)-(N)、存储设备970(1)-(N)、存储设备990(1)-(N)或智能存储阵列995所托管的数据。虽然图9描述了使用网络(诸如因特网)进行数据交换,但是这里所描述和/或图示的实施例并不局限于因特网或任意特定的基于网络的环境。
在至少一个实施例中,这里所公开的一个或多个示例性实施例的全部或部分可被编码为计算机程序并加载到服务器940、服务器945、存储设备960(1)-(N)、存储设备970(1)-(N)、存储设备990(1)-(N)、智能存储阵列995或其任意组合上并由它们执行。这里所公开的一个或多个示例性实施例的全部或部分还可被编码为计算机程序,存储在服务器940中,由服务器945运行,并且通过网络950分布到客户端***910、920和930。因此,网络体系结构可单独或与其它元件相结合来执行这里所描述的截取、识别、确定、创建、存储、准许、传送、接收、验证、执行、请求、解析、同步、访问、允许、拒绝、阻止、隔离和删除步骤中的一个或多个和/或作为执行上述步骤中的一个或多个的装置。
虽然以上公开使用特定的框图、流程图和示例阐述了各个实施例,但是这里所描述和/或图示的每个框图组件、流程步骤、操作和/或组件可使用广泛范围的硬件、软件或固件(或其任意组合)配置来独立和/或共同实现。此外,包含在其它组件中的组件的任意公开应当被认为本质上是示例性的,原因在于可实现许多其它体系结构来获得相同的功能。
这里所描述和/或图示的处理参数和步骤顺序仅通过示例给出并且能够根据需要进行变化。例如,虽然可以以特定顺序示出或讨论这里所描述和/或图示的步骤,但是这些步骤不必以所图示或讨论的顺序来执行。这里所描述和/或图示的各个示例性方法还可以省略这里所描述或图示的一个或多个步骤或包括除了所公开之外的附加步骤。
此外,虽然在这里已经在完全功能性的计算***的上下文中描述和/或图示了各个实施例,但是无论使用哪种特定类型的计算机可读媒介实际执行分布,这些示例性实施例中的一个或多个都可作为各种形式的程序产品进行分布。这里所公开的实施例还可使用执行特定任务的软件模块来实现。这些软件模块可包括可存储在计算机可读存储介质上或存储在计算***中的脚本、批处理或其它可执行文件。在一些实施例中,这些软件模块可配置计算***来执行这里所公开的一个或多个示例性实施例。
已经提供了以上描述以使得本领域技术人员能够最佳地利用这里所公开的示例性实施例的各个方面。该示例性描述并非意在穷举或被限制为所公开的任意准确形式。在不背离本本公开的精神和范围的情况下可以进行许多修改和变化。这里所公开的实施例应当在所有方面被认为是说明性而不是限制性的。在确定本公开的范围时应当参考所附的权利要求及其等同物。
除非另外指出,说明书中和权利要求所使用的术语“一个(“a”或“an”)”被理解为表示“至少一个”。此外,为了便于使用,说明书和权利要求中所使用的词语“包括”和“具有”可与具有与词语“包含”相同含义的词语进行互换。

Claims (20)

1.一种用于自动地创建和更新批准文件数据库的计算机实现的方法,所述方法包括:
通过以下来自动地创建识别合法文件的批准文件数据库:
在代理服务器处识别至少一个客户端计算设备从至少一个web服务器下载至少一个文件的尝试,其中在下载所述文件之前需要所述客户端计算设备的用户完成至少一个任务;
在所述客户端计算设备的用户完成下载所述文件所需的任务之后,在将所述文件从所述web服务器传送到所述客户端计算设备时在所述代理服务器处截取所述文件;
在允许所述客户端计算设备访问所述文件之前:
在所述代理服务器处通过从所述文件起源的URL提取源域来识别与所述文件相关联的所述源域;
在所述代理服务器处识别受信任域数据库,所述受信任域数据库识别受信任的源域;
通过促使所述代理服务器使用所提取的源域查询所述受信任域数据库,确定在所述受信任域数据库内是否存在作为受信任域与所述文件相关联的所述源域;和
响应于确定在所述受信任域数据库内存在与所述文件相关联的所述源域,通过以下促使所述代理服务器将所述文件添加到所述批准文件数据库:
为所述文件创建哈希值;和
将所述文件的所述哈希值添加到所述批准文件数据库;以及
在确定在所述受信任域数据库内存在与所述文件相关联的所述源域之后,通过将所述文件从所述代理服务器转发到所述客户端计算设备允许所述客户端计算设备访问所述文件。
2.如权利要求1所述的方法,其中截取所述文件包括截取多个文件,并且所述方法进一步包括创建所有被截取文件的报告,所述报告包括以下至少一个:
所述多个被截取文件中的每一个的文件名;
与所述多个被截取文件中的每一个相关联的分类;
所述多个被截取文件中的每一个的软件发布者;
细化每个文件被截取的次数的流行度信息;和
所述多个被截取文件中的每一个的源域。
3.如权利要求2所述的方法,进一步包括以下至少一个:
准许访问所述报告;和
传送所述报告。
4.如权利要求1所述的方法,进一步包括:
识别由额外实体维持的识别合法文件的额外批准文件数据库,所述额外批准文件数据库包含多个文件中的每一个的哈希值;和
通过将包含在所述批准文件数据库中的哈希值与包含在所述额外批准文件数据库中的哈希值进行聚合来创建聚合的批准文件数据库。
5.如权利要求1所述的方法,进一步包括:
接收访问所述批准文件数据库的请求;
验证访问所述批准文件数据库的所述请求;和
准许访问所述批准文件数据库。
6.如权利要求1所述的方法,其中所述文件的所述哈希值包括所述文件的内容的表示。
7.如权利要求1所述的方法,其中为所述文件创建哈希值包括使用安全哈希算法为所述文件创建安全哈希值。
8.如权利要求1所述的方法,其中将所述文件的所述哈希值添加到所述批准文件数据库包括以下至少一个:
将所述文件的所述哈希值存储在所述批准文件数据库中;和
将所述文件的所述哈希值传送到负责维持所述批准文件数据库的实体。
9.如权利要求1所述的方法,其中从所述文件起源的所述URL提取所述源域包括以下至少一个:
从所述客户端计算设备所传送的请求中提取域信息;
执行反向域查找操作;
从受信任的第三方服务器请求源域信息;和
解析所述文件来定位所述源域信息。
10.如权利要求1所述的方法,进一步包括:
创建所述批准文件数据库的本地副本;和
周期性地将所述本地副本与所述批准文件数据库进行同步。
11.如权利要求1所述的方法,进一步包括:在将所述文件的所述哈希值添加到所述批准文件数据库之前,确定在所述批准文件数据库内是否存在先前为所述文件创建的哈希值。
12.如权利要求1所述的方法,进一步包括:
从计算设备接收用于验证所述文件的合法性的请求,所述请求包括所述文件的所述哈希值;
确定在所述批准文件数据库内存在所述文件的所述哈希值;和
响应于所述确定在所述批准文件数据库内存在所述文件的所述哈希值,向所述计算设备传送指示所述文件是合法的响应。
13.如权利要求1所述的方法,进一步包括:
从计算设备接收用于验证额外文件的合法性的请求,所述请求包括所述额外文件的哈希值;
确定在所述批准文件数据库内不存在所述额外文件的所述哈希值;和
响应于所述确定在所述批准文件数据库内不存在所述额外文件的所述哈希值,向所述计算设备传送指示所述文件不是合法的响应。
14.如权利要求1所述的方法,进一步包括:
截取至少一个额外文件;
为所述额外文件创建哈希值;
访问所述批准文件数据库;
确定在所述批准文件数据库内存在作为合法文件的所述额外文件的所述哈希值;和
响应于确定在所述批准文件数据库内存在所述额外文件的所述哈希值,允许访问所述额外文件。
15.如权利要求1所述的方法,进一步包括:
截取至少一个额外文件;
为所述额外文件创建哈希值;
访问所述批准文件数据库;
确定在所述批准文件数据库内不存在作为合法文件的所述额外文件的所述哈希值;和
响应于确定在所述批准文件数据库内不存在所述额外文件的所述哈希值,拒绝访问所述额外文件。
16.如权利要求15所述的方法,其中拒绝访问所述额外文件包括以下至少一个:
阻止所述文件;
隔离所述文件;和
删除所述文件。
17.如权利要求14所述的方法,其中访问所述批准文件数据库包括完成访问所述批准文件数据库所要求的验证处理。
18.如权利要求14所述的方法,其中访问所述批准文件数据库包括:
识别本地哈希值高速缓存,所述本地哈希值高速缓存包含先前截取的文件的哈希值;
确定在所述本地哈希值高速缓存内不存在所述额外文件的所述哈希值;和
响应于确定在所述本地哈希值高速缓存内不存在所述额外文件的所述哈希值,访问所述批准文件数据库。
19.如权利要求1所述的方法,其中识别所述受信任域数据库包括通过以下来创建所述受信任域数据库:
对来自至少一个域的多个文件进行评估;
确定来自所述域的所述多个文件是合法的;和
响应于确定来自所述域的所述多个文件是合法的,将所述域作为受信任域添加到所述受信任域数据库。
20.如权利要求19所述的方法,其中:
对来自所述域的所述多个文件进行评估包括对在一个时间段内来自所述域的所述多个文件进行评估;以及
确定来自所述域的所述多个文件是合法的包括确定在所述一个时间段内来自所述域的所述多个文件是合法的。
CN2008101619441A 2007-10-01 2008-10-06 用于创建和更新批准文件和受信任域数据库的方法和*** Active CN101404014B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/865,073 2007-10-01
US11/865,073 US9959404B2 (en) 2007-10-01 2007-10-01 Methods and systems for creating and updating approved-file and trusted-domain databases

Publications (2)

Publication Number Publication Date
CN101404014A CN101404014A (zh) 2009-04-08
CN101404014B true CN101404014B (zh) 2013-08-28

Family

ID=40091604

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101619441A Active CN101404014B (zh) 2007-10-01 2008-10-06 用于创建和更新批准文件和受信任域数据库的方法和***

Country Status (4)

Country Link
US (1) US9959404B2 (zh)
EP (1) EP2045750A3 (zh)
JP (1) JP5396051B2 (zh)
CN (1) CN101404014B (zh)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9959404B2 (en) 2007-10-01 2018-05-01 Symantec Corporation Methods and systems for creating and updating approved-file and trusted-domain databases
US20090210422A1 (en) * 2008-02-15 2009-08-20 Microsoft Corporation Secure Database Access
US8838962B2 (en) * 2010-09-24 2014-09-16 Bryant Christopher Lee Securing locally stored Web-based database data
JP5779334B2 (ja) 2010-11-09 2015-09-16 デジタルア−ツ株式会社 出力制御装置、出力制御プログラム、出力制御方法および出力制御システム
GB2505297B (en) * 2012-07-16 2014-11-26 Owl Computing Technologies Inc File manifest filter for unidirectional transfer of files
US9736121B2 (en) 2012-07-16 2017-08-15 Owl Cyber Defense Solutions, Llc File manifest filter for unidirectional transfer of files
CN103824018B (zh) * 2012-11-19 2017-11-14 腾讯科技(深圳)有限公司 一种可执行文件处理方法以及可执行文件监控方法
US10218586B2 (en) 2013-01-23 2019-02-26 Owl Cyber Defense Solutions, Llc System and method for enabling the capture and securing of dynamically selected digital information
US8776254B1 (en) 2013-01-23 2014-07-08 Owl Computing Technologies, Inc. System and method for the secure unidirectional transfer of software and software updates
US9306953B2 (en) 2013-02-19 2016-04-05 Owl Computing Technologies, Inc. System and method for secure unidirectional transfer of commands to control equipment
US10951726B2 (en) * 2013-07-31 2021-03-16 Citrix Systems, Inc. Systems and methods for performing response based cache redirection
US9294284B1 (en) * 2013-09-06 2016-03-22 Symantec Corporation Systems and methods for validating application signatures
US9450764B1 (en) * 2013-09-12 2016-09-20 Symantec Corporation Systems and methods for validating self-signed certificates
KR102134429B1 (ko) * 2013-10-04 2020-07-15 삼성전자주식회사 컨텐츠 검증 방법 및 장치
EP3138040B1 (en) * 2014-04-28 2020-12-09 Intel Corporation Securely booting a computing device
US9311329B2 (en) 2014-06-05 2016-04-12 Owl Computing Technologies, Inc. System and method for modular and continuous data assurance
US9575987B2 (en) 2014-06-23 2017-02-21 Owl Computing Technologies, Inc. System and method for providing assured database updates via a one-way data link
US10169584B1 (en) * 2015-06-25 2019-01-01 Symantec Corporation Systems and methods for identifying non-malicious files on computing devices within organizations
US10169553B2 (en) * 2015-06-29 2019-01-01 Airwatch, Llc Managing grouped student devices with timed locks
US10055586B1 (en) 2015-06-29 2018-08-21 Symantec Corporation Systems and methods for determining the trustworthiness of files within organizations
US9838405B1 (en) 2015-11-20 2017-12-05 Symantec Corporation Systems and methods for determining types of malware infections on computing devices
US10003606B2 (en) 2016-03-30 2018-06-19 Symantec Corporation Systems and methods for detecting security threats
US10091231B1 (en) 2016-09-15 2018-10-02 Symantec Corporation Systems and methods for detecting security blind spots
US10542017B1 (en) 2016-10-13 2020-01-21 Symantec Corporation Systems and methods for personalizing security incident reports
US20210367918A1 (en) * 2020-05-22 2021-11-25 Nvidia Corporation User perceptible indicia for web address identifiers

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6321267B1 (en) * 1999-11-23 2001-11-20 Escom Corporation Method and apparatus for filtering junk email
US20010049732A1 (en) * 2000-06-01 2001-12-06 Raciborski Nathan F. Content exchange apparatus
JP4360750B2 (ja) * 2000-06-16 2009-11-11 ヤマハ株式会社 コンテンツ配信システム及び同配信システムに利用される配信サーバ。
ES2420758T3 (es) * 2002-08-19 2013-08-26 Research In Motion Limited Sistema y método para un control seguro de los recursos de dispositivos de comunicación móvil inalámbrica
US8374958B2 (en) * 2002-08-29 2013-02-12 Alcatel Lucent Method and apparatus for the payment of internet content
US7010655B1 (en) * 2003-03-24 2006-03-07 Veritas Operating Corporation Locking and memory allocation in file system cache
US10043008B2 (en) * 2004-10-29 2018-08-07 Microsoft Technology Licensing, Llc Efficient white listing of user-modifiable files
US7698744B2 (en) * 2004-12-03 2010-04-13 Whitecell Software Inc. Secure system for allowing the execution of authorized computer program code
US8316446B1 (en) * 2005-04-22 2012-11-20 Blue Coat Systems, Inc. Methods and apparatus for blocking unwanted software downloads
GB0603888D0 (en) 2006-02-27 2006-04-05 Univ Newcastle Phishing mitigation
JP2007289511A (ja) 2006-04-26 2007-11-08 Olympus Medical Systems Corp 内視鏡洗滌消毒装置、洗滌ブラシユニット
US20080229101A1 (en) * 2007-03-15 2008-09-18 Cisco Technology, Inc. Authenticated correspondent database
JP2008256860A (ja) 2007-04-03 2008-10-23 Nikon Corp 光学部材、光源装置及び検査装置
US9959404B2 (en) 2007-10-01 2018-05-01 Symantec Corporation Methods and systems for creating and updating approved-file and trusted-domain databases

Also Published As

Publication number Publication date
US20090089290A1 (en) 2009-04-02
JP5396051B2 (ja) 2014-01-22
EP2045750A3 (en) 2011-11-09
CN101404014A (zh) 2009-04-08
JP2009151751A (ja) 2009-07-09
US9959404B2 (en) 2018-05-01
EP2045750A2 (en) 2009-04-08

Similar Documents

Publication Publication Date Title
CN101404014B (zh) 用于创建和更新批准文件和受信任域数据库的方法和***
US20220198410A1 (en) Providing data provenance, permissioning, compliance, and access control for data storage systems using an immutable ledger overlay network
JP5522307B2 (ja) 仮想機械によるソフトウェアテストを用いた電子ネットワークにおけるクライアントシステムの遠隔保守のためのシステム及び方法
CN102341807B (zh) 使用链接中的标识符的访问控制
CN101764819B (zh) 用于检测浏览器中间人攻击的方法和***
JP5698539B2 (ja) オンラインアカウントへのアクセスを委任するシステムおよび方法
CN102307210B (zh) 一种数据下载***及其数据管理和下载方法
JP5802848B2 (ja) モバイル環境用のトロイの木馬化されたアプリケーション(アプリ)を特定するためのコンピュータ実装方法、非一時コンピュータ読み取り可能な媒体およびコンピュータシステム
EP3329408A1 (en) Expendable access control
WO2017054985A1 (en) Access control
EP3329409A1 (en) Access control
GB2540977A (en) Expendable access control
US11228444B2 (en) Tracking provenance of digital data
GB2540976A (en) Access control
RU2430412C2 (ru) Услуга определения, был ли аннулирован цифровой сертификат
CN101366040A (zh) 用户对于对象的访问的管理
CN104364790A (zh) 用于实施多因素认证的***和方法
KR20150040325A (ko) 애플리케이션 보안 검증을 위한 클라우드 지원형 방법 및 서비스
EP2767030A1 (en) Multi-repository key storage and selection
CN106095500A (zh) 一种软件自动更新的方法及***
US20110083177A1 (en) Software license management
CN104769598A (zh) 用于检测非法应用程序的***和方法
CN110008186A (zh) 针对多ftp数据源的文件管理方法、装置、终端和介质
KR101103611B1 (ko) 데이터의 원격 중개 및 분산 제어 시스템
CN110401674B (zh) 数据访问方法、装置、***、电子设备及计算机可读介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20200102

Address after: California, USA

Patentee after: CA,INC.

Address before: California, USA

Patentee before: Symantec Corporation

TR01 Transfer of patent right