CN102067146A - 安全的应用程序流式传输 - Google Patents

安全的应用程序流式传输 Download PDF

Info

Publication number
CN102067146A
CN102067146A CN2009801235247A CN200980123524A CN102067146A CN 102067146 A CN102067146 A CN 102067146A CN 2009801235247 A CN2009801235247 A CN 2009801235247A CN 200980123524 A CN200980123524 A CN 200980123524A CN 102067146 A CN102067146 A CN 102067146A
Authority
CN
China
Prior art keywords
data block
application program
module
malware
server
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.)
Granted
Application number
CN2009801235247A
Other languages
English (en)
Other versions
CN102067146B (zh
Inventor
T·布朗
R·克莱德
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.)
Norton Weifuke Co
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 CN102067146A publication Critical patent/CN102067146A/zh
Application granted granted Critical
Publication of CN102067146B publication Critical patent/CN102067146B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • 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
    • G06F21/562Static detection
    • 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/1441Countermeasures against malicious traffic

Abstract

一个服务器包括一个用于确定应用程序是否没有恶意软件的扫描模块,一个用于将该应用程序打包为多个数据块而通过应用程序流式传输传送的模块,一个用于在请求时向客户端提供这些数据块的模块,以及一个用于将相关联的应用程序是否已经被确定为没有恶意软件的指示添加到每个数据块中的模块。一个客户端包括一个用于从该服务器请求流式应用程序的多个数据块的模块。当该客户端接收了一个数据块时,它采用一个模块,该模块用于通过检查由该服务器提供的指示来核实相关联的应用程序已经被确定为没有恶意软件。如果核实成功,于是执行该数据块的代码,而不是首先接收并扫描来自该服务器的任何额外的数据块。

Description

安全的应用程序流式传输
技术领域
本发明总体上涉及计算机安全并且具体涉及有效率地实施流式应用程序的安全检查。
背景技术
应用程序流式传输是作为一种对执行应用程序有用的方式出现的并且具有传统的应用程序执行方法未提供的多种益处。确切地讲,应用程序流式传输允许在客户端系统上执行尚未本地安装或存储的一个应用程序,该应用程序流在该客户端系统上执行,从而按需要而以每次一个数据块的方式向客户端提供应用程序代码以及数据。这提供了多种益处,如节省磁盘空间(否则的话在客户端机器上将要求这种空间来存储整个应用程序)、允许集中的许可控制以及简化的为应用程序打补丁并且更新的能力、并且允许开始执行应用程序而不要求首先下载所有的代码。
然而,应用程序流式传输目前不是总能够顺利地与现有的系统相整合。具体地讲,使用安全系统(如恶意软件扫描软件)目前能够否定应用程序流式传输的益处。确切地讲,常规的恶意软件扫描技术有时候无法基于从应用程序的其余部分中分离出来的一个单独的应用程序数据块来检测存在的恶意软件。因此,常规的恶意软件扫描软件停止执行流式应用程序直至已经下载了整个应用程序,对该应用程序作为一个整体进行扫描,并且只有这时才允许执行该应用程序。这就消除了应用程序流式传输用来执行应用程序的有益的能力,其中实际呈现在客户端机器上的仅是应用程序的一部分。
发明内容
以上说明的这些困难是通过一种方法、计算机、以及计算机程序产品来解决的,它们结合了一种基于信任的机制以确保一个流式应用程序的所有部分均不含恶意软件,与此同时仍然保留了应用程序流式传输的有益的性能特点。
该方法的一个实施方案接收一个应用程序的一个流式数据块,该数据块包括用于应用程序的一个单元的代码。该方法确定是否该数据块包含该应用程序已经被发现没有恶意软件的一个指示,并且至少部分地响应于该数据块包含该应用程序已经被发现没有恶意软件的一个指示而允许执行该代码。
一种被适配为将恶意软件扫描结合入应用程序流式传输系统中的计算机包括存储一种存储了可执行的计算机程序模块的计算机可读存储媒介。这些计算机程序模块包括一个数据块服务器模块,它用于从客户端接收对于一个数据块的请求,该数据块包括用于应用程序的一个单元的代码。这些模块进一步包括一个扫描保证模块用于确定是否该应用程序已经被发现没有恶意软件。该数据块服务器模块获取所请求的数据块;该扫描保证模块响应于确定了该应用程序已经被发现没有恶意软件的结果而在所获得的数据块中插入该应用程序已经被扫描的一个指示;并且该数据块服务器模块向客户端提供这个包括了该插入的指示的数据块。
计算机程序产品的多个实施方案具有一种计算机可读存储媒质,该计算机可读存储媒质中存储了用于在一种应用程序流式传输系统中结合恶意软件扫描的多种可执行计算机程序模块,这些模块包括一个用于从服务器接收应用程序的流式数据块的客户端应用程序流模块,该数据块包括用于该应用程序的一个单元的代码。这些模块进一步包括一个客户端扫描核实模块,它用于确定是否该数据块包含该应用程序已经被发现没有恶意软件的一个指示,并且用于至少部分地响应于该数据块包含该应用程序已经被发现为没有恶意软件的一个指示而允许执行该代码。
附图说明
图1是根据一个实施方案的一种计算环境的高级框图。
图2是展示了根据一个实施方案的用作一个客户端或服务器的一台典型的计算机的高级框图。
图3是根据一个实施方案展示了服务器中的多个模块的细节的一个高级框图。
图4是根据一个实施方案展示了客户端中的多个模块的细节的高级框图。
图5是一个流程图,展示了根据一个实施方案由一个服务器应用程序流模块与一个服务器安全模块合作进行的步骤。
图6是一个流程图,展示了根据一个实施方案由一个客户端应用程序流模块与一个客户端安全模块合作进行的步骤。
这些图仅为了展示的目的描绘了本发明的一个实施方案。本领域的普通技术人员将容易地从以下说明中认识到,可以使用在此所展示的这些结构以及方法的多种替代实施方案而不背离在此所说明的本发明的原理。
具体实施方式
图1是根据一个实施方案的一种计算环境100的高级框图。图1展示了通过网络130进行连接的服务器110和客户端120。为了使说明简化并且清晰,在图1中仅示出了一个客户端120和一个服务器110。计算环境100的实施方案可以具有连接到网络130的成千上万台客户端120和服务器110。
客户端120可以执行多种软件应用程序,或者根据传统的范例,其中应用程序在执行前先在本地安装,或者使用一种应用程序流式传输系统,其中应用程序是远程地存储在服务器110上并且以分离的块(“数据块”)下载并且在客户端120上本地执行。
为了支持应用程序流式传输,服务器110存储了应用程序代码和数据(此后统称为“应用程序”)并且使它们可供进行访问。服务器110包括用于向提出请求的客户端提供流式应用程序的一个服务器应用程序流模块111,以及用于将安全性结合到由服务器应用程序流模块111提供的应用程序流式传输中的一个服务器安全模块112。客户端120进而包括一个客户端应用程序流模块121,它用于通过应用程序流式传输请求一个希望的应用程序的多个数据块、接收这些数据块、并且执行来自这些数据块的代码以便运行该应用程序。客户端120另外包括一个客户端安全模块122,该客户端安全模块将安全特性结合到由客户端应用程序流模块121提供的应用程序流式传输中。这些客户端和服务器应用程序流模块111和121(一起被称为“应用程序流式传输系统”)彼此进行通信以便向客户端120提供所需要的应用程序数据块来执行当前要求的应用程序功能性。此外,客户端和服务器安全模块112和122与它们对应的应用程序流模块111和121交互以便为应用程序流式传输提供安全性,而不要求在它执行之前下载整个应用程序,由此以最小的延迟来提供应用程序的执行。
服务器110通过网络130与客户端120通信。在一个实施方案中,网络130是互联网。网络130还可以使用并非必须是互联网一部分的专用的或私有的通信链路。在一个实施方案中,网络130使用标准的通信技术和/或协议,如以太网、802.11、等等。类似地,用在网络130上的这些网络协议可以包括传输控制协议/互联网协议(TCP/IP)、超文本传输协议(HTTP)、文件传送协议(FTP),等等。在网络130上交换的数据可以使用多种技术和/或格式来表示,包括超文本标记语言(HTML)、可扩展标记语言(XML)、等等,连同针对于应用程序数据块的传输而专门设计的定制的数据流格式。此外,所有的或部分的链路可以用常规的加密技术加密,如安全套接层(SSL)、安全HTTP和/或虚拟专用网络(VPN)。在另一个实施方案中,这些实体可以使用定制的和/或专用的数据通信技术来代替或附加于以上说明的那些技术。
图2是根据一个实施方案展示了用作一个客户端120或服务器110的一台典型的计算机200的高级框图。所展示的是连接到总线204上的一个处理器202。同样连接到总线204上的是存储器206、存储装置208、键盘210、图形适配器212、指向装置214、以及网络适配器216。显示器218被连接到图形适配器212上。
处理器202可以是任何通用的处理器,如可兼容INTEL x86的CPU。例如,存储器206可以是固件、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、和/或RAM,并且保存由处理器202使用的指令和数据。指向装置214可以是鼠标、轨迹球、或其他类型的指向装置,并且与键盘210相结合使用以便将数据输入计算机200中。图形适配器212在显示器218上显示图像和其他信息。网络适配器216将计算机200连接到网络130上。在一个实施方案中,存储装置208是硬盘驱动器但是还可以是能够存储数据的任何其他装置,如可写的光盘(CD)或DVD、固态存储器装置、或其他形式的计算机可读存储媒质。存储装置208存储用于操作系统、应用程序等等的文件。
由图1的实体使用的计算机200的类型可以根据被该实体使用的实施方案以及处理能力而改变。例如,一台个人数字助理(PDA)的客户端120典型地具有有限的处理能力、一个小型显示器218,并且可能没有指向装置214。相比之下,服务器110可以包括一起工作的多个刀片服务器。
如本领域中已知的,计算机200被适配为执行多个计算机程序模块。如在此所使用的,术语“模块”是指用于提供特定的功能性的计算机程序逻辑和/或数据。一个模块可以被实施在硬件、固件、和/或软件中。在一个实施方案中,这些模块被存储在存储装置208上,被加载进入存储器206中,并且被处理器202执行。
此外,本说明书使用术语“应用程序”来指由计算机200执行的一个程序,包括该程序所含的代码和数据。应用程序是由一个或多个文件形成的,这些文件典型地驻存在存储装置208上的并且当执行时被加载入存储器206中。载入存储器206中的这些文件中的至少一个被称为“可执行图像”并且当以一种传统的方式执行时作为一个进程来执行。然而,当通过应用程序流式传输来执行时,该应用程序被分段并且以一种不同的方式来执行,如以下更全面说明。
图3是展示了根据一个实施方案的服务器110中的多个模块的细节的高级框图,它包括服务器应用程序流模块111以及服务器安全模块112。服务器应用程序流模块111的这些子模块一起提供了将一个应用程序流式传输到客户端120上的能力,并且包括一个应用程序库301,一个应用程序打包模块302,以及一个数据块服务器模块303。
应用程序打包模块302将一个应用程序分为一组片段,称为“数据块”。在一个实施方案中,每个数据块代表该应用程序的一个具体的逻辑单元。除了程序本身的一部分外,一个数据块可以包含对于该应用程序流式传输系统有用的关于数据块的任何元数据,如它的数据块编号、它以字节计的大小、该数据块代表的应用程序的字节范围、等等。应用程序打包模块302另外创建了由应用程序流式传输系统所要求的任何组织信息以允许客户端120获取需要的数据块。例如,在一个实施方案中应用程序打包模块302创建了一种数据结构,例如一个列表,它将数据块编号与它们代表的应用程序字节范围相关联。这使得客户端能够确定它要求哪一个数据块编号以便执行存储在一个给定的存储器地址中的一条指令。数据块的划分可以是逻辑性的或物理性的,这就是说,应用程序可以被物理地分为被分别存储的多个离散的数据块,或者这些数据块可以被存储在一起并且通过以上提及的将一个地址与一个数据块编号相关联的数据结构而逻辑地分离。
应用程序库301存储了这些分段的应用程序以及任何相应的组织信息,如由应用程序打包模块302创建的组织信息。应用程序库301可以在不同的实施方案中以不同的方式来实现。例如,在一个实施方案中该应用程序库301是一个关系性数据库管理系统中的一组表。
数据块服务器模块303响应于对一个流式应用程序或其具体的数据块的请求向客户端120提供适当的数据块。它这样做的具体方式取决于应用程序打包模块302将应用程序打包的方式。例如,在一个实施方案中,其中应用程序打包模块302不将应用程序物理地分段,数据块服务器模块303通过发送对应于所请求的数据块编号的文件的具体字节范围来提供一个请求的数据块,动态地插入任何要求的元数据,如数据块编号。可替代地,在一个实施方案中,其中这些数据块连同它们相应的元数据是分离地存储的,数据块服务器模块仅发送数据的离散数据块的一个副本。
应认识到服务器应用程序流模块111和它的这些模块能够以多种不同的方式来实施,并且不限于以上说明的具体实现方式。相反,很多替代实现方式对于本领域的普通技术人员都是已知的,如具有不同的模块编号或它们之间的不同关系,用于为应用程序流式传输打包一个应用程序的不同的数据格式的实现方式,以及类似的实现方式。
服务器安全模块112的子模块包括一个应用程序扫描模块310以及一个扫描保证模块311,它们与服务器应用程序流模块111的多个模块合作以便向客户端120提供该流式应用程序不包含恶意软件的保证。在一个实施方案中,服务器安全模块112另外包括用作服务器110到客户端120的验证的一部分的一个服务器验证模块312。应用程序扫描模块310对一个应用程序进行扫描以确保它没有恶意软件。在一个实施方案中,在由应用程序扫描模块310进行扫描之前,这些应用程序以一种常规的方式被安装并存储在服务器110的文件系统中。在其他的实施方案中,这些应用程序可以被存储在应用程序库301的一部分中,该部分与这些应用程序的打包形式是分离的。在一个实施方案中,在一个应用程序被打包以便作为一个流式应用程序传送之前,对该应用程序进行扫描。应用程序扫描模块310可使用常规的恶意软件检测软件(如可从Symantec公司获得的诺顿防病毒软件)来实施。
扫描保证模块311与数据块服务器模块303交互以便指示提供给客户端的这些数据块已经进行了扫描。确切地讲,扫描保证模块311将一个指示添加到发送到客户端120上的每个数据块中,该指示为是否已经在该数据块所对应的应用程序上进行了一次恶意软件扫描。在一个实施方案中,只有先前已经进行了扫描的应用程序才会被打包作为流式应用程序传送,并因此在这样的实施方案中由扫描保证模块311添加的指示总是肯定的,表明该数据块已经被扫描。在另一个实施方案中,其中应用程序可以在尚未扫描的情况下被打包并且使之可供用于流式传输,该扫描保证模块311可以访问一种数据结构,该数据结构使应用程序与它们是否已经被扫描并且被确定没有恶意软件相关联。例如,可以由应用程序扫描模块310保持这样一种数据结构。
服务器验证模块312应用加密技术以便向客户端120保证由扫描保证模块311提供的数据块中的指示是值得信任的。例如,在一个实施方案中服务器验证模块312将在服务器110和客户端120之间的一个通信信道加密以便确保在传输过程中该指示不被一个恶意中介方所篡改;因此服务器110在向客户端传输数据块之前将其加密,并且客户端120在检查该数据块之前将其解密。在另一个实施方案中,服务器验证模块312将数据块数字地签署以便允许客户端120来核实该数据块没有被篡改。
图4是展示了根据一个实施方案的客户端120中的多个模块的细节的高级框图。客户端应用程序流模块121是该应用程序流式传输系统的客户端侧部件并且与服务器应用程序流模块111通信。客户端应用程序流模块121包括一个应用程序执行模块401和一个数据块请求模块402。应用程序执行模块401接收并执行来自服务器110的多个数据块。在一个实施方案中,应用程序执行模块401将所接收的数据块本地存储在一个临时的存储区域中,如存储器缓冲区,当执行指令时所存储的这些数据块对于应用程序执行模块401是可供使用的。例如,可以通过向客户端应用程序流模块121提供所希望的执行程序的一个流式应用程序的标识符而启动应用程序流式传输。例如,用户可以在示出该流式应用程序的一个桌面图标上进行双击。这样一个图标将会指定执行实施客户端应用程序流模块121的一个进程,其中将该流式应用程序的标识符作为一个变元传送给该进程。
数据块请求模块402向服务器110发送对于执行该流式应用程序必需的数据块的请求。在一个实施方案中,数据块请求模块402可以访问一种数据结构,如在一个实施方案中由应用程序打包模块302创建的数据结构,它使指令地址与数据块相关联。因此,当有待执行的指令对应于尚未被客户端应用程序流模块121下载的一个数据块时,数据块请求模块向服务器110发送对于该数据块的一个请求;当有待执行的指令对应于已经被下载的一个数据块时,就不需要发送这种请求,因为该指令在客户端120已经是本地可供使用的,如在应用程序执行模块401的存储器缓冲区中。
客户端安全模块122确定是否流式应用程序没有恶意代码。客户端扫描模块403针对恶意软件的存在对客户端系统进行扫描。在一个实施方案中,客户端扫描模块403是由现有的防恶意软件软件(如诺顿防病毒软件)来实现的,并且具有自动保护特征,这些特征自动检测并扫描输入的数据。
客户端扫描核实模块404与客户端扫描模块403接口以便对客户端120接收的流式应用程序的一个数据块进行检查以确定是否该流式应用程序已经被扫描并且被发现没有恶意软件。客户端扫描核实模块404在该数据块中的一个位置处寻找该指示,而扫描保证模块311被设计为将指示放置在该位置。例如,该指示可以被放置在一个数据块的第一字节中,用一个非零值表示相关的应用程序先前已经进行过扫描,以及一个零值表示它尚未进行过扫描。如果发现了这样一个指示,客户端扫描核实模块404不需要将一个数据块传送到客户端扫描模块403,而是可以立即将该数据块传送到应用程序执行模块401用于存储以及执行;然而,如果没有发现该指示,那么客户端扫描核实模块404会将该数据块传送到客户端扫描模块403,然后它将停止执行该流式应用程序直至该应用程序的所有数据块已经被下载并且整个应用程序文件已经被扫描。
客户端验证模块405确保提供流式应用程序的服务器110确实是一个可靠的、可信任的来源。如果客户端验证模块405没有确定服务器110是一个可信任的源,那么就忽略数据块已经被发现没有恶意软件的一个指示,而是认为该数据块不包含这样一个指示。因此,在一个实施方案中,该数据块将会被传送到客户端扫描模块403上,其结果是应用程序的所有数据块将会被下载并且在执行该应用程序之前对其进行整体扫描。
在一个实施方案中,客户端验证模块405保持经特别授权执行应用程序流式传输的多个服务器的一个白名单,从而将该白名单上的服务器认为是受到充分验证的。更确切地讲,该白名单包括多个特殊的服务器标识符,如互联网协议(IP)地址,的一份列表。这个列表可以由用户、或者实施客户端验证模块405的软件的作者、或由这两者共同录入。然后,当一个特定的服务器110正在将多个应用程序流式传输到客户端120时,客户端验证模块405确定该服务器110的IP地址是否在其白名单内,如果是则对该服务器进行验证,并且如果不是则不对它进行验证。这样一种基于白名单的验证方法仅仅是一个实例,并且对于本领域的普通技术人员来讲,其他的验证方法同样也是可能的。
此外,客户端验证模块405确保恶意软件没有在被服务110的发送与被客户端120接收之间的某个点上被插入到数据块中。这可以由使用常规的加密技术的客户端120的客户端验证模块405与服务器110上的服务器验证模块312进行合作来实现,如以上关于服务器验证模块312的讨论。
图5是一个流程图,它展示了根据一个实施方案由一个服务器应用程序流模块111与一个服务器安全模块112合作进行的步骤。在一个实施方案中,应用程序扫描模块310首先在510扫描一个应用程序以确保它不包含恶意软件。随后,应用程序打包模块302在520将该应用程序打包,将它分为多个数据块并且创建任何其他的必要的相关信息,如以上所述。打包程序被存储在应用程序库301中,在那里它成为可供用于流式传输到客户端。接下来,数据块服务器模块303在530接收来自客户端120的对于一个数据块的请求。然后,数据块服务器模块303将所请求的数据块提供给扫描保证模块311,该扫描保证模块通过在该数据块的一个给定的位置添加一个指示来扩充该数据块,该指示是与该数据块所对应的应用程序是否已经针对恶意软件进行扫描并且发现是没有恶意软件的。最终,该扫描保证模块在540向客户端120提供该扩充的数据块。
图6是一个流程图,它展示了根据一个实施方案由一个客户端应用程序流模块121与一个客户端服务器安全模块122合作进行的步骤。首先,客户端120的数据块请求模块402在610请求一个数据块。该数据块请求可以针对一个单一的数据块、或者多个数据块,视情况而定。例如,当该有待流式传输的应用程序首次执行时,数据块请求模块402可以请求多个数据块以便在一次传输处理中获取该应用程序的初始的或核心的功能性所需的所有代码。然后,当访问一个尚未被获取其数据块的代码时,数据块请求模块402可以请求单独的数据块。随后,客户端120接收来自服务器110的所请求的一个或多个数据块。客户端扫描核实模块404检查该数据块以确定是否存在该应用程序先前已经针对恶意软件进行了扫描的一个指示630。
如果该数据块确实包含这样一个指示,那么客户端扫描核实模块404阻止客户端扫描模块403对该数据块进行操作,而允许应用程序执行模块401在640立即执行该数据块内相关的代码。然而,如果该数据块不包含该指示,那么客户端扫描核实模块404会将该数据块传送给客户端扫描模块403。其结果是,客户端扫描模块403致使数据块请求模块402在650请求该应用程序中的所有剩余的数据块。然后,当所有的数据块已经被接收后,客户端扫描模块403可以将这些数据块汇编在一个单独的单元中并且由此在660对整个应用程序作为一个整体进行扫描。在一个实施方案中,即使该数据块确实包含它经过扫描的指示,客户端扫描核实模块404仍会响应于客户端验证模块405没能够确定提供该指示的服务器110是可信任的而将该数据块传递至客户端扫描模块403。在另一个实施方案中,如果该数据块不包含该指示,或者如果客户端验证模块405未能确定服务器110是可信任的,则客户端安全模块122发出一个警报,该警报指出相关联的应用程序尚未被核实为没有恶意软件并且提示用户有关是否不进行扫描而执行该应用程序的输入,采取由用户输入所指定的行动,如进行一次扫描、或者不扫描而执行该代码。在另一个实施方案中,在此类情况中采取的行动是由一个政策来限定的,如在实施客户端安全模块122的安全软件中的优选设置。
应认识到图5和图6的这些步骤是用于举例的目的。在其他的实施方案中,能够以一种不同的顺序进行这些步骤,或者多次进行而不是刚好一次,或者可以存在额外的、更少的、或替代的步骤。
因此,以上说明的发明允许将安全性整合到一个应用程序流式传输系统之中,而同时保留应用程序流式传输的有益的性能特点。
所包括的以上说明是为了说明某些实施方案的运作并且并非有意限制本发明的范围。本发明的范围仅由以下权利要求限定。从以上讨论中很多变体对于相关领域的技术人员都是清楚的,它们也应包含在本发明的精神和范围之内。

Claims (20)

1.一种将恶意软件扫描结合入应用程序流式传输系统中的方法,该方法包括:
从一个服务器接收一个应用程序的一个流式数据块,该数据块包括用于该应用程序的一个单元的代码;
确定是否该数据块包含该应用程序已经被发现没有恶意软件的一个指示;并且
至少部分地响应于该数据块包含了该应用程序已经被发现没有恶意软件的一个指示而允许执行该代码。
2.如权利要求1所述的方法,进一步包括:
至少部分地响应于该数据块不包含该应用程序已经被发现没有恶意软件的一个指示:
停止执行该代码;
对该代码进行扫描以确定是否它包含恶意软件;并且
响应于确定了该代码不包含恶意软件的扫描而允许执行该代码。
3.如权利要求2所述的方法,进一步包括接受该应用程序的所有数据块,其中直至该应用程序的所有数据块已经被接收为止才对该代码进行扫描。
4.如权利要求1所述的方法,进一步包括:
响应于该数据块不包含该应用程序已经被发现没有恶意软件的一个指示:
向一个用户显示一个提示即该应用程序尚未被核实为没有恶意软件;
接收用户的输入,该输入指明是否执行该代码而不针对恶意软件进行该数据块的一次扫描;并且
至少部分地响应于该用户的输入而执行该代码而不针对恶意软件进行该数据块的一次扫描。
5.如权利要求1所述的方法,进一步包括:
一个安全白名单上通过确定是否该服务器在一个安全白名单上来验证该服务器;并且
至少部分地响应于该确定而允许执行该代码。
6.如权利要求1所述的方法,其中所接收的数据块被该服务器用一个签名来数字地签署,并且从该服务器接收该数据块进一步包括核实该签名。
7.如权利要求1所述的方法,其中所接收的数据块被该服务器加密,并且从该服务器接收数据块进一步包括将该数据块解密。
8.一种计算机程序产品,该计算机程序产品具有一种计算机可读存储媒质,该计算机可读存储媒质存储用于将恶意软件扫描结合入一种应用程序流式传输系统中的多个可执行的计算机程序模块,这些模块包括:
一个客户端应用程序流模块,该客户端应用程序流模块用于从一个服务器接收一个应用程序的一个流式数据块,该数据块包括用于该应用程序的一个单元的代码;并且
一个客户端扫描核实模块,该客户端扫描核实模块用于:
确定是否该数据块包含该应用程序已经被发现没有恶意软件的一个指示,并且
至少部分地响应于该数据块包含该应用程序已经被发现没有恶意软件的一个指示,允许执行该代码。
9.如权利要求8所述的计算机程序产品,进一步包括:
一个客户端扫描模块,该客户端扫描模块用于进行以下动作,
至少部分地响应于该数据块不包含该应用程序已经被发现没有恶意软件的一个指示:
停止执行该代码;
对该代码进行扫描以确定是否它包含恶意软件;并且
响应于确定了该代码不包含恶意软件的扫描而允许执行该代码。
10.如权利要求9所述的计算机程序产品,进一步包括接受该应用程序的所有数据块,其中直至该应用程序的所有数据块已经被接收为止才对该代码进行扫描。
11.如权利要求8所述的计算机程序产品,进一步包括:
一个客户端扫描模块,该客户端扫描模块用于进行以下动作,
至少部分地响应于该数据块不包含该应用程序已经被发现没有恶意软件的一个指示:
向一个用户显示一个提示即该应用程序尚未被核实为没有恶意软件;
接收用户的输入,该输入指明是否执行该代码而不针对恶意软件进行该数据块的一次扫描;并且
至少部分地响应于该用户的输入而执行该代码而不针对恶意软件进行该数据块的一次扫描。
12.如权利要求8所述的计算机程序产品:
进一步包括一个客户端验证模块,该客户端验证模块用于通过确定是否该服务器在一个安全白名单上来验证该服务器;并且
其中该客户端扫描核实模块允许至少部分地响应于该确定执行该代码。
13.如权利要求8所述的计算机程序产品,其中所接收的数据块被该服务器用一个签名来数字地签署,并且从该服务器接收该数据块进一步包括核实该签名的一个客户端验证模块。
14.如权利要求8所述的方法,其中所接收的数据块被该服务器加密,并且从该服务器接收数据块进一步包括将该数据块解密的一个客户端验证模块。
15.一种被适配为将恶意软件扫描结合入应用程序流式传输系统中的计算机,该计算机包括:
存储可执行的计算机程序模块的一种计算机可读存储媒质,这些模块包括:
用于从一个客户端接收对于一个数据块的一个请求的一个数据块服务器模块,该数据块包括用于一个应用程序的一个单元的代码;以及
一个用于确定是否该应用程序已经被发现没有恶意软件的扫描保证模块;
其中:
该数据块服务器模块识别所请求的数据块;
响应于确定了该应用程序已经被发现没有恶意软件,该扫描保证模块在所获得的数据块中插入该应用程序已经被扫描的一个指示,并且
该数据块服务器模块向该客户端提供包括所插入的指示的数据块。
16.如权利要求15所述的计算机,进一步包括用于确定是否多个应用程序没有恶意软件的一个应用程序扫描模块。
17.如权利要求15所述的计算机,进一步包括将由该数据块服务器提供给该客户端的数据块加密的一个服务器验证模块。
18.如权利要求15所述的计算机,进一步包括用一个数字签名将由该数据块服务器提供给该客户端的数据块进行数字签署的一个服务器验证模块。
19.如权利要求15所述的计算机,其中该数据块服务器从存储了多个应用程序的一个应用程序库获取该数据块,每个应用程序是处于一种被打包以便通过应用程序流式传输传送的形式。
20.如权利要求19所述的计算机,其中存储在该应用程序库中的每个应用程序在被存储在该应用程序库中之前被确定为没有恶意软件。
CN200980123524.7A 2008-05-16 2009-05-14 安全的应用程序流式传输 Expired - Fee Related CN102067146B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/122575 2008-05-16
US12/122,575 US8353041B2 (en) 2008-05-16 2008-05-16 Secure application streaming
PCT/US2009/044017 WO2009140537A1 (en) 2008-05-16 2009-05-14 Secure application streaming

Publications (2)

Publication Number Publication Date
CN102067146A true CN102067146A (zh) 2011-05-18
CN102067146B CN102067146B (zh) 2015-02-11

Family

ID=40888137

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200980123524.7A Expired - Fee Related CN102067146B (zh) 2008-05-16 2009-05-14 安全的应用程序流式传输

Country Status (5)

Country Link
US (1) US8353041B2 (zh)
EP (1) EP2283447B1 (zh)
JP (1) JP5460698B2 (zh)
CN (1) CN102067146B (zh)
WO (1) WO2009140537A1 (zh)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2008202532A1 (en) * 2007-06-18 2009-01-08 Pc Tools Technology Pty Ltd Method of detecting and blocking malicious activity
US8799450B2 (en) 2008-10-14 2014-08-05 Mcafee, Inc. Server-based system, method, and computer program product for scanning data on a client using only a subset of the data
US20100263048A1 (en) * 2009-04-14 2010-10-14 Chih-Jen Chang Malware prevention method and system in a peer-to-peer environment
US20110032143A1 (en) * 2009-08-05 2011-02-10 Yulan Sun Fixed User Terminal for Inclined Orbit Satellite Operation
US8214903B2 (en) 2009-10-02 2012-07-03 International Business Machines Corporation Analysis of scripts
EP2489150B1 (en) * 2009-11-05 2018-12-26 VMware, Inc. Single sign on for a remote user session
US20120291106A1 (en) * 2010-01-19 2012-11-15 Nec Corporation Confidential information leakage prevention system, confidential information leakage prevention method, and confidential information leakage prevention program
US20110302655A1 (en) * 2010-06-08 2011-12-08 F-Secure Corporation Anti-virus application and method
KR101201622B1 (ko) * 2010-08-19 2012-11-14 삼성에스디에스 주식회사 보안 기능을 가진 시스템 온 칩 및 이를 이용한 디바이스 및 스캔 방법
JP5765185B2 (ja) * 2011-10-25 2015-08-19 富士通株式会社 制御プログラム、クライアント装置、制御システムの制御方法及びクライアント装置の制御方法
US8584235B2 (en) * 2011-11-02 2013-11-12 Bitdefender IPR Management Ltd. Fuzzy whitelisting anti-malware systems and methods
US9213673B2 (en) * 2012-02-23 2015-12-15 Via Technologies, Inc. Networked applications with client-caching of executable modules
WO2013175267A1 (en) * 2012-05-21 2013-11-28 Nokia Corporation Method and apparatus for application behavior policies
KR101480903B1 (ko) 2013-09-03 2015-01-13 한국전자통신연구원 모바일 악성코드 다중 점검 방법
CN104580108B (zh) * 2013-10-24 2018-04-10 深圳市腾讯计算机系统有限公司 信息提示方法和系统、服务器
US9483636B2 (en) 2014-01-17 2016-11-01 Microsoft Technology Licensing, Llc Runtime application integrity protection
US9299246B2 (en) 2014-07-19 2016-03-29 Oracle International Corporation Reporting results of processing of continuous event streams
US11068248B2 (en) * 2019-03-11 2021-07-20 International Business Machines Corporation Staggering a stream application's deployment
US11558417B2 (en) * 2019-04-30 2023-01-17 Citrix Systems, Inc. System and method for improved accessing of a shared object
US11818574B2 (en) * 2021-05-27 2023-11-14 Citrix Systems, Inc. Provisioning devices securely using zero touch deployments

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892904A (en) * 1996-12-06 1999-04-06 Microsoft Corporation Code certification for network transmission
US20030126303A1 (en) * 2001-12-31 2003-07-03 Slam Dunk Networks, Inc. Method for the secure and timely delivery of large messages over a distributed communication network
US20060123244A1 (en) * 2004-12-06 2006-06-08 Microsoft Corporation Proactive computer malware protection through dynamic translation
US7107618B1 (en) * 2001-09-25 2006-09-12 Mcafee, Inc. System and method for certifying that data received over a computer network has been checked for viruses
CN1875607A (zh) * 2003-04-17 2006-12-06 迈克非公司 用于在移动通信框架内访问内容/安全分析功能的api系统、方法和计算机程序产品
CN1981263A (zh) * 2003-04-17 2007-06-13 迈克非公司 在移动通信框架内用于更新扫描子系统的更新系统与方法
CN101243400A (zh) * 2005-08-16 2008-08-13 Emc公司 信息保护方法和系统
CN101252585A (zh) * 2007-05-08 2008-08-27 飞塔信息科技(北京)有限公司 对使用远程文件系统访问协议的数据进行内容过滤的方法与系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5832208A (en) * 1996-09-05 1998-11-03 Cheyenne Software International Sales Corp. Anti-virus agent for use with databases and mail servers
US6088803A (en) * 1997-12-30 2000-07-11 Intel Corporation System for virus-checking network data during download to a client device
US5987610A (en) * 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6311221B1 (en) * 1998-07-22 2001-10-30 Appstream Inc. Streaming modules
US6986051B2 (en) * 2000-04-13 2006-01-10 International Business Machines Corporation Method and system for controlling and filtering files using a virus-free certificate
US6611925B1 (en) * 2000-06-13 2003-08-26 Networks Associates Technology, Inc. Single point of entry/origination item scanning within an enterprise or workgroup
US7086050B2 (en) * 2000-08-04 2006-08-01 Mcafee, Inc. Updating computer files
WO2002093334A2 (en) * 2001-04-06 2002-11-21 Symantec Corporation Temporal access control for computer virus outbreaks
AU2002324615A1 (en) * 2001-08-04 2003-02-24 Kontiki, Inc. Method and apparatus for facilitating secure distributed content delivery across a computer network
JP4411173B2 (ja) * 2004-09-30 2010-02-10 富士通株式会社 コンピュータシステムの管理方法およびコンピュータ管理システムおよびコンピュータ管理プログラム
US7765410B2 (en) * 2004-11-08 2010-07-27 Microsoft Corporation System and method of aggregating the knowledge base of antivirus software applications
KR101201118B1 (ko) * 2004-11-08 2012-11-13 마이크로소프트 코포레이션 바이러스 방지 소프트웨어 어플리케이션들의 지식 베이스를모으는 시스템 및 방법
JP4523480B2 (ja) * 2005-05-12 2010-08-11 株式会社日立製作所 ログ分析システム、分析方法及びログ分析装置
US20070083930A1 (en) * 2005-10-11 2007-04-12 Jim Dumont Method, telecommunications node, and computer data signal message for optimizing virus scanning
US9064115B2 (en) * 2006-04-06 2015-06-23 Pulse Secure, Llc Malware detection system and method for limited access mobile platforms

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5892904A (en) * 1996-12-06 1999-04-06 Microsoft Corporation Code certification for network transmission
US7107618B1 (en) * 2001-09-25 2006-09-12 Mcafee, Inc. System and method for certifying that data received over a computer network has been checked for viruses
US20030126303A1 (en) * 2001-12-31 2003-07-03 Slam Dunk Networks, Inc. Method for the secure and timely delivery of large messages over a distributed communication network
CN1875607A (zh) * 2003-04-17 2006-12-06 迈克非公司 用于在移动通信框架内访问内容/安全分析功能的api系统、方法和计算机程序产品
CN1981263A (zh) * 2003-04-17 2007-06-13 迈克非公司 在移动通信框架内用于更新扫描子系统的更新系统与方法
US20060123244A1 (en) * 2004-12-06 2006-06-08 Microsoft Corporation Proactive computer malware protection through dynamic translation
CN101243400A (zh) * 2005-08-16 2008-08-13 Emc公司 信息保护方法和系统
CN101252585A (zh) * 2007-05-08 2008-08-27 飞塔信息科技(北京)有限公司 对使用远程文件系统访问协议的数据进行内容过滤的方法与系统

Also Published As

Publication number Publication date
US20090288166A1 (en) 2009-11-19
US8353041B2 (en) 2013-01-08
WO2009140537A1 (en) 2009-11-19
JP2011525003A (ja) 2011-09-08
EP2283447B1 (en) 2016-01-06
EP2283447A1 (en) 2011-02-16
CN102067146B (zh) 2015-02-11
JP5460698B2 (ja) 2014-04-02

Similar Documents

Publication Publication Date Title
CN102067146A (zh) 安全的应用程序流式传输
CN112837160B (zh) 基于区块链的跨链交易方法、装置和计算机可读存储介质
US10212173B2 (en) Deterministic reproduction of client/server computer state or output sent to one or more client computers
JP4864333B2 (ja) ソフトウェアの脆弱性の悪用を防止するように通信をフィルタ処理するための方法およびシステム
CN104255009A (zh) 用于自适应流媒体的片段完整性和真实性的系统和方法
CN1808326A (zh) 使用部分映像散列确认可执行文件完整性的系统和方法
US9311329B2 (en) System and method for modular and continuous data assurance
US8745389B2 (en) Avoiding padding oracle attacks
US11755499B2 (en) Locally-stored remote block data integrity
US11916922B2 (en) Digital content access control
CN105262589A (zh) 数据安全校验方法、装置及校验设备
US8646070B1 (en) Verifying authenticity in data storage management systems
US10862675B2 (en) Method for exchanging messages between security-relevant devices
CN112131041A (zh) 用于管理数据放置的方法、设备和计算机程序产品
US20200059478A1 (en) Continuous hash verification
US7644266B2 (en) Apparatus, system, and method for message level security
US9390280B2 (en) System and method for obtaining keys to access protected information
KR20190099898A (ko) Https에서의 쿠키 무결성 검증 방법
US20230205518A1 (en) Management method and management system used for reducing version dependency
CN113873035A (zh) 一种文件传输方法、装置,文件传输设备及用户终端
WO2016013926A1 (en) A system and method to secure distribution and execution of library files in a client-server environment

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Norton weifuke Co.

Address before: California, USA

Patentee before: Symantec Corp.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150211