CN106576105A - 非侵入式白名单制定 - Google Patents

非侵入式白名单制定 Download PDF

Info

Publication number
CN106576105A
CN106576105A CN201580045249.7A CN201580045249A CN106576105A CN 106576105 A CN106576105 A CN 106576105A CN 201580045249 A CN201580045249 A CN 201580045249A CN 106576105 A CN106576105 A CN 106576105A
Authority
CN
China
Prior art keywords
action
prestige
user
computing device
executable
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.)
Pending
Application number
CN201580045249.7A
Other languages
English (en)
Inventor
A·乔里
B·辛格
J·库拉那
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.)
McAfee LLC
Original Assignee
McAfee LLC
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 McAfee LLC filed Critical McAfee LLC
Publication of CN106576105A publication Critical patent/CN106576105A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • 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/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Devices For Executing Special Programs (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

在示例中,公开了一种用于对可执行对象进行增强型非侵入式白名单制定的安全架构。当可执行对象设法执行动作时,安全引擎无缝地拦截所述动作并且判定是否将所述动作列入白名单、黑名单或灰名单,为所述动作指定相应的安全分数。列入白名单的动作可以被允许,列入黑名单的动作可以被禁止,并且列入灰名单的动作可能需要来自用户的附加验证。因为将所述分数指定给所述可执行对象和所述动作的组合,可以避免误肯定,如,在可执行对象被预取但还未设法执行任何有用工作时可能发生的那些误肯定。

Description

非侵入式白名单制定
相关申请的交叉引用
本申请要求2014年9月24日提交的题为“Non-Invasive Whitelisting(非侵入式白名单制定)”的美国实用新型申请号14/495,692的优先权,所述申请通过引用结合在此。
技术领域
本申请涉及计算机安全领域,并且更具体地涉及对可执行对象所进行的动作的非侵入式白名单制定。
背景技术
计算机安全是一个重要的问题,并且其重要性随着计算设备之间互连性的提高而提高。在传统安全架构的一个示例中,反病毒或反恶意软件代理周期性扫描计算机硬盘驱动器以判定机器上是否安装有与一个或多个恶意对象的配置文件相匹配的可执行对象。用户还可以在更新变得可用时手动地为可执行对象安装这些更新,或者安全管理员可以在这些更新变得可用时“推(push)”出更新。
在这种示例架构中,可执行对象可以由“白名单”或“黑名单”来控制。“白名单”上的可执行对象被允许不受禁止地运行,而“黑名单”上的可执行对象则完全被阻止。
附图说明
当与附图一起阅读时,将从以下详细描述中更好地理解本公开。强调的是,根据行业中的标准实践,不同特征未按比例绘制,并且仅用于说明性目的。实际上,为了讨论清楚,不同特征的尺寸可以被任意放大或减小。
图1是根据本说明书的一个或多个示例的安全网络的网络图。
图2是根据本说明书的一个或多个示例的计算设备的框图。
图3是根据本说明书的一个或多个示例的服务器计算机的框图。
图4和图4A是根据本说明书的一个或多个示例的方法的流程图。
图5是根据本说明书的一个或多个示例的安全引擎的功能框图。
图6是根据本说明书的一个或多个示例的自我审批的功能框图。
具体实施方式
概述
在示例中,公开了一种用于对可执行对象的增强型非侵入式白名单制定的安全架构。当可执行对象设法执行动作时,安全引擎无缝地拦截所述动作并且判定是否将所述动作列入白名单、黑名单或灰名单,为所述动作指定相应的安全分数。列入白名单的动作可以被允许,列入黑名单的动作可以被禁止,并且列入灰名单的动作可能需要来自用户的附加验证。因为将所述分数指定给所述可执行对象和所述动作的组合,可以避免误肯定,如,在可执行对象被预取但还未设法执行任何有用工作时可能发生的那些误肯定。
本公开的示例实施例
以下公开内容提供了用于实施本公开的不同特征的许多不同实施例或示例。以下描述了部件和安排的具体示例以便简化本公开。当然,这些仅是示例并且并不旨在是限制性的。进一步地,本公开在不同示例中可以重复参考标号和/或字母。这种重复是出于简明性和清楚性的目的,并且本身并不决定所讨论的不同实施例和/或配置之间的关系。
不同实施例可以具有不同优点,并且不必需要任何实施例的特定优点。
安全架构中的永久性问题是对安全性与便利性的平衡。在多数情况下,提高安全性以及增加便利性的目标是直接彼此相反的。换言之,一般而言,增加便利性则降低了安全性,而增加安全性则降低了便利性。因此,期望提供一种包括在一定程度上增加安全性和便利性二者的非显而易见的改进的安全架构。
在一个示例中,白名单制定解决方案被用于可执行对象。如贯穿本说明书所使用的,通过非限制性示例的方式,术语“可执行对象”可以包括可执行文件、DLL、共享对象库、静态库、ActiveX部件、驱动器、脚本、安装程序包以及具有嵌入式活动内容的文档(如,宏指令)。
白名单制定本身是一种据说可以以便利性为代价增加安全性的解决方案。在典型的白名单制定解决方案中,所允许的或可允许的可执行对象的列表由安全子系统(例如,在数据库中)维护。白名单上未出现的任何可执行对象被阻止执行。在白名单的最严谨的形式中,白名单仅可以由具有管理访问权限的用户(如,系统管理员)进行修改。因此,最终用户(如使用计算机的个人)不能启动系统管理员未放置在白名单上的任何可执行对象。
在白名单制定的不太严谨的形式中,在手动管理的数据库中仍然维护白名单,但给予个人用户对数据库的写入访问权限,从而使得他可以随意修改白名单。在又另一个示例中,对白名单进行维护,并且当用户试图启动来自未出现在白名单上的可执行对象的进程时,可能需要附加验证(如,采用弹出对话或类似的形式)。例如,如果用户试图启动来自白名单上的外部对象的进程,可能出现弹出以通知用户他即将启动未被列入白名单的可执行对象,并且请求用户实际上打算进行的验证。为了增加对这种弹出的利用,软件可以为用户提供有关可执行对象的有用信息。然而,再次,存在折衷。将大量信息提供给用户给予用户基于此进行决策的附加信息,但是存在信息过载的风险。在那种情况下,用户看到大量的对他来说无意义的加密信息,并且他因此忽略了全部信息,仅凭猜测做出准许或阻止对象的决策。
在本说明书的系统和方法中,公开了一种安全架构,所述安全架构应用计算机智能以提供增强的安全性,同时还在不必要时避免打扰用户,并且避免对用户的信息过载。
在本说明书的一个示例中,描述了一种安全架构,其中可以将安全引擎整体地托管在最终用户的计算设备上、整体地托管在除运行在最终用户设备上的瘦客户端以外的服务器上、或者托管在一些二者的组合上。
为了增加实用性,真正的白名单可以与黑名单和灰名单二者结合使用,并且可以给可执行对象二者以及由这些对象采取的单独动作指定信誉分数。在这一架构中,可以一直允许白名单上的对象。可以一直阻止黑名单上的对象,通知或不通知最终用户或者服务器和管理员。灰名单上的对象可以接收分级分数,从而基于多种因素做出有关是否启动对象以及是否从最终用户或者从服务器或系统管理员征求验证的决策。通过非限制性示例的方式,这些因素可以包括:可执行对象本身、其内容、威胁智能数据库、先前决策、来自最终用户或管理员的先前输入、嵌入在询问可执行对象本身或目录之内的证书、可执行对象的信誉、可执行对象的创建者的信誉、或者作为非限制性示例的其他类似因素。这些因素可以用于将分数(如信誉分数)指定给可执行对象,从而可以做出有关是否完全允许所述对象以及是否需要附加用户输入的明智决策。
在实施例中,通过在下文中更加详细地描述的机器学习技术来增强白名单制定。由于计算设备学习了用户之前允许哪种类型的应用程序,当机器遇到新对象时,它可以检查所述对象的信誉分数。如果所述信誉分数与用户已经授权的多个其他对象的信誉一样良好或者更高,那么要求用户再次进行验证就没什么价值了。这一机器学习方面强调,即使在“列入白名单”的应用程序中,可能有灰色区域,只要有可能就应该采用自动方式来处理。
在本说明书的示例方法中,当启动可执行对象时,安全引擎判定对象本身是否被列入白名单、黑名单或灰名单。如果所述对象被列入白名单,则执行可以继续进行,无论是通知或是不通知用户或管理员。如果可执行对象被列入黑名单,则阻止并且不启动所述对象,无论是通知或是不通知最终用户或者服务器或管理员。
未出现在白名单或黑名单上的任何可执行对象被认为是列入灰名单的对象。当对象被认为是列入灰名单的对象时,可以部署附加机器学习以判定是否完全允许所述对象启动、以及是否寻求来自用户或管理员的附加验证。
如上所述,可以在给所述对象指定置信分数的过程中采用多种因素。应注意的是,所述置信分数无需是简单的整体分数或标量分数。相反,置信分数可以是具有不同因素的多分面分数或者确定多个可能动作的分数,通过非限制性示例的方式,包括:允许所述应用程序、阻止所述应用程序、允许所述应用程序但向管理员提供管理警告、阻止所述应用程序并且向管理员提供管理警告、只有在接收到管理审批时才允许所述应用程序、如接收到来自最终用户的审批(如,经由弹出对话)则允许所述应用程序、只有在接收到来自管理员的管理框时才阻止所述应用程序、或者如果最终用户未验证所述动作则阻止所述应用程序。应注意的是,输入和响应动作的许多其他组合和排列在特定上下文中可能是合适的。因此预期在设计时间,实践本说明书的系统和方法的设计师将基于设计时间的主导条件作出合适的设计决策,并且旨在使落入所附权利要求书的精神和范围内的任何这种决策包括在其内。
如以上所讨论的,可以在本说明书的机器学习算法中使用多种因素。在一个示例中,当可执行对象设法执行动作时,给那个动作(结合所述可执行对象)指定信誉。“好的”或“高的”信誉(列入白名单的)意味着在没有附加干预的情况下允许完成所述动作。“坏的”或“低的”信誉(列入黑名单的)意味着无需附加干预但是在登陆或其他通知情况下可能地阻止所述动作。“适度的”或“中级的”信誉(列入灰名单的)意味着在完成所述动作之前可能需要一些附加反馈或验证。这可以采用用户审批、管理员审批、查询安全服务器或威胁智能数据库、启发式分析或者类似的形式。
在一些情况下,缓存了关于列入灰名单的动作的决策,这可以用于通知可执行对象的随后的实例或者类似的可执行对象,执行相同或类似的动作。这可以用于减少非必要请求输入(尤其是来自用户或管理员的输入)的数量,这可以中断工作流程。在一些情况中,针对所有随后的类似动作授权曾经由用户授权的动作。安全管理员还可以选择聚集来自多个机器的动作授权,并且选择性地制作来自于此的安全政策,其中,经审批的动作可以跨越企业被列入白名单。因此,在一些情况中,可以跨越整个企业广泛传播源于单一机器上的单一用户的交互的信誉。
先前的决策也与如上所述的信誉进行交互。在这种情况中,可以将用户决策缓存在与可能被记住的特定可执行对象有关的先前决策中。
这些交互帮助确保安全引擎消除了在响应背景机器处理器时可能发生的许多误肯定。例如,所述机器可以在用户实际上请求执行所述对象之前预取并加载可执行对象。在那种情况下,可能生成请求确认进程的虚假客户对话。这种虚假请求不仅是不必要的,而且它可能使最终用户困惑,因为他可能不知道所述请求应用何种进程。因此,期望消除或限制这种虚假验证请求。
图1是根据本说明书的一个或多个示例的分布式安全网络100的网络层次图。在图1的示例中,多个用户120操作多个计算设备110。具体地,用户120-1操作台式计算机110-1。用户120-2操作膝上型计算机110-2。并且用户120-3操作移动设备110-3。
每台计算设备可以包括适当的操作系统,比如微软Windows、Linux、安卓、MacOSX、苹果iOS、Unix等。相比一种类型的设备,可能在另一种类型的设备上更经常地使用前述项中的一些项。例如,台式计算机110-1(其在一些情况中还可以是工程工作台)可能更可能使用微软Windows、Linux、Unix或Mac OSX之一。膝上型计算机110-2(其通常为具有较少定制选项的便携式现有设备)可能更可能运行微软Windows或Mac OSX操作系统。移动设备110-3更有可能运行安卓或者iOS。然而,这些示例并不旨在是限制性的。
计算设备110可以经由网络170而彼此通信地耦合以及耦合到其他网络资源。网络170可以是任何适当的网络或网络的组合,通过非限制性示例的方式,包括例如局域网、广域网、无线网络、蜂窝网络或互联网。连接至网络170的还有一个或多个服务器140、应用程序储存库160以及通过各种设备连接的人类参与者(包括例如攻击者190和开发者180)。服务器140可以被配置成用于提供适当的网络服务,包括在本说明书的一个或多个示例中公开的某些服务。
用户120的目标可以是在没有来自攻击者190和开发者180的干扰的情况下成功地操作他们各自的计算设备110。在一个示例中,攻击者190是恶意软件作者,其目标或者目的是引起恶意伤害或损害。恶意伤害或损害可以采取以下形式:在计算设备110上安装Rootkit或其他恶意软件以便篡改系统、安装间谍软件或广告软件以便收集个人和商用数据、丑化网站、操作僵尸网络、例如,用于操作垃圾邮件服务器或仅打搅和骚扰用户120。因此,攻击者190的一个目的可能是在一个或多个计算设备110上安装其恶意软件。如贯穿本说明书所使用的,恶意软件(“恶意软件”)包括被设计成用于采取可能不需要的行动的任何病毒、木马、僵尸、根程序病毒包、后门、蠕虫、间谍软件、广告软件、勒索软件、拨号器、有效载荷、恶意浏览器辅助对象、cookie、记录器等,通过非限制性示例的方式,包括数据毁坏、隐藏数据收集、浏览器劫持、网络代理或重定向、隐藏跟踪、数据记录、键盘记录、过多的或蓄意的移除阻碍、联系人采集以及未授权的自传播。
可以由合适的企业操作服务器140以提供安全更新和服务,包括反恶意软件服务。服务器140还可以提供实质服务。在一个示例中,服务器140被配置成用于分配和实施企业计算和安全策略。可以根据书面企业策略由安全管理员150管理这些策略。安全管理员150还可以负责管理和配置服务器140以及网络170的全部或部分。
开发者180也可以在网络170上进行操作。开发者180可能没有恶意的意图,但是可能开发造成安全风险的软件。例如,众所周知的且经常被利用的安全缺陷是所谓的缓冲器溢出,其中,恶意用户(比如攻击者190)能够将过长的字符串输入输入表中并且由此获得执行任意指令或者使用提升的特权来操作计算设备110的能力。缓冲器溢出可以是例如不良输入验证或未完成的垃圾收集的结果,并且在许多情况下,在非显而易见的情境中出现。因此,尽管开发者180本身不是恶意的,但是其可能为攻击者190提供攻击向量。开发者180所开发的应用程序也可以引起固有问题,比如崩溃、数据丢失或其他非期望的行为。开发者180可以自已托管软件,或者可以将他的软件上传到应用程序储存库160。因为来自开发者180的软件本身可能是期望的,所以开发者180在漏洞变得已知时偶尔提供修复漏洞的更新或补丁是有益的。
应用程序储存库160可以表示向用户120提供交互地或自动地下载应用程序并将其安装在计算设备110上的能力的“应用程序商店”、类UNIX储存库或者其他网络服务。开发者180和攻击者190都可以经由应用程序储存库160提供软件。如果应用程序储存库160具有适当的使攻击者190难以分散明显恶意的软件的安全措施,那么攻击者190反而可以暗中将漏洞插入到显然有益的应用程序中。
在一些情况下,一个或多少用户120可以属于企业。企业可以提供对可以安装的应用程序(例如来自应用程序储存库160)的类型进行限制的政策指示。因而,应用程序储存库160可以包括并非无意被发开且并非恶意软件,但虽然如此仍违反策略的软件。例如,一些企业限制对娱乐软件(如媒体播放器和游戏)的安装。因此,甚至安全的媒体播放器或游戏也可能不适合企业计算机。安全管理员150可以负责分配与企业策略一致的计算策略。
在另一示例中,用户120可以是小孩子的父母,并且希望保护小孩子不受非期望内容(通过非限制性示例的方式,比如,色情作品、广告软件、间谍软件、不符合年龄的内容、对某些政治、宗教或社会运动的倡导或用于讨论非法或者危险活动的论坛)的影响。在这种情况下,父母可以执行安全管理员150的一些或全部职责。
因此,用户120和安全管理员150的目标是在限制或消除可能不想要的内容(PUC)(包括以上所描述的PUC的所述种类)的同时配置并操作计算设备110。计算设备110可以包括用于标识并消除PUC的服务,并且服务器140可以提供被配置成用于实施策略的附加的基于网络的服务,并且以其他方式辅助计算设备110排除PUC。
图2是根据本说明书的一个或多个示例的客户端设备110的框图。客户端设备110可以是任何适当的计算设备。在各种实施例中,通过非限制性示例的方式,“计算设备”可以是或可以包括:计算机、嵌入式计算机、嵌入式控制器、嵌入式传感器、个人数字助理(PDA)、膝上型计算机、蜂窝电话、IP电话、智能电话、平板计算机、可转换平板计算机、手持计算器或者用于处理和传达数据的任何其他电子、微电子或者微机电设备。
客户端设备110包括连接至存储器220的处理器210,所述存储器具有存储在其中的用于提供操作系统222和安全引擎224的可执行指令。客户端设备110的其他部件包括存储设备250、网络接口260以及外围接口240。
在示例中,处理器210经由存储器总线270-3被通信地耦合至存储器220,所述存储器总线可以是例如直接存储器访问(DMA)总线。处理器210可以经由系统总线270-1被通信地耦合至其他设备。如贯穿本说明书所使用的,“总线”包括任何有线或无线互连线、网络、连接、束、单条总线、多条总线、交叉式网络、单级网络、多级网络或可操作用于在计算设备的各个部分之间或计算设备之间承载数据、信号或功率的其他传导介质。应当注意的是,这些使用仅仅通过非限制性示例的方式公开,并且一些实施例可以省略前述总线中的一种或多种总线,而其他实施例可以采用附加或不同总线。
在各种示例中,“处理器”可以包括硬件、软件或提供可编程逻辑的固件的任何组合,通过非限制性示例的方式包括微处理器、数字信号处理器、现场可编程门阵列、可编程逻辑阵列、专用集成电路或虚拟机处理器。
处理器210可以经由DMA总线270-3连接至DMA配置中的存储器220。为了简化本公开,存储器220被公开为单个逻辑块,但是在物理实施例中可以包括任何合适的易失性或非易失性存储器技术(或多项技术)的一个或多个块,包括例如DDR RAM、SRAM、DRAM、缓存、L1或L2存储器、片上存储器、寄存器、闪存、ROM、光介质、虚拟存储器区域、磁或磁带存储器或类似的存储设备。在某些实施例中,存储器220可以包括相对低延迟易失性主存储器,而存储设备250可以包括相对较高延迟非易失性存储器。然而,存储器220和存储设备250不需要是物理上独立的设备,并且在一些示例中,可能仅表示功能的逻辑分离。还应注意的是,尽管通过非限制性示例的方式公开了DMA,但是DMA不是与本说明书相一致的唯一协议,并且其他存储器架构是可用的。
存储设备250可以是任何种类的存储器220,或者可以是分离的设备,如硬盘驱动器、固态驱动器、外部存储设备、独立磁盘冗余阵列(RAID)、网络附接存储设备、光学存储设备、磁带驱动器、备份系统、云存储设备、或前述任何组合。存储设备250可以是或其中可以包括一个或多个数据库或存储在其他配置中的数据,并且可以包括操作软件的存储副本,如操作系统222以及安全引擎224的软件部分。许多其他配置也是可能的,并且旨在被涵盖在本说明书的广义范围内。
可以提供网络接口260来将客户端设备110与有线或无线网络通信地耦合。如贯穿本说明书所使用的“网络”可以包括可操作用于在计算设备内或在计算设备之间交换数据或信息的任何通信平台,通过非限制性示例的方式包括自组织本地网、提供具有电交互能力的通信设备的互联网架构、简易老式电话系统(POTS)(计算设备可以使用所述简易老式电话系统来执行交易,在所述交易中它们可以由人类操作员来帮助或在所述交易中它们可以自动地将数据键入到电话或其他合适的电子设备中)、提供通信接口或在系统中的任何两个节点之间进行交换的任何分组数据网络(PDN)、或任何局域网(LAN)、城域网(MAN)、广域网(WAN)、无线局域网(WLAN)、虚拟专用网(VPN)、内联网或促进网络或电话环境中的通信的任何其他适当的架构或系统。
在一个示例中,安全引擎224是执行根据本说明书的方法(如,4的图方法400或其他方法)的工具或程序。在各个实施例中,安全引擎224可以在硬件、软件、固件或其一些组合中被具体化。例如,在一些情况下,安全引擎224可以包括被设计成用于执行方法或方法的一部分的专用集成电路,并且还可以包括可操作用于指示处理器执行所述方法的软件指令。在一些情况下,安全引擎224可以作为“常驻程序”处理来运行。“常驻程序”可以包括任何程序或一系列可执行指令,无论在硬件、软件、固件或其任何组合中实施与否,那些可执行指令都作为后台进程、终止并驻留程序、服务、系统扩展、控制面板、启动程序、BIOS子程序、或没有直接用户交互操作的任何类似程序的运行。还应当注意的是,安全引擎224仅通过非限制性示例的方式被提供,并且包括交互式或用户模式软件的其他硬件和软件,还可以结合、除了或替代安全引擎224而被提供,以便执行根据本说明书的方法。
在一个示例中,安全引擎224包括存储在可操作用于执行图4的方法400、或根据本说明书的类似方法的非瞬态介质上的可执行指令。在适当时间上(如根据启动客户端设备110或根据来自操作系统222或用户120的命令),处理器210可以从存储设备250中检索安全引擎224(或其软件部分)的副本并将其加载到存储器220中。然后,处理器210可以迭代的执行安全引擎224的指令。
外围设备接口240可以被配置成用于与连接至客户端设备110但不一定是客户端设备110的核心架构的一部分的任何辅助设备接口连接。外围设备可以可操作用于向客户端设备110提供扩展功能,并且可以或可以不完全依赖于客户端设备110。在一些情况下,外围设备可以是其自身的计算设备。通过非限制性示例的方式,外围设备可以包括输入和输出设备,如显示器、终端、打印机、键盘、鼠标、调制解调器、网络控制器、传感器、换能器、致动器、控制器、数据采集总线、照相机、麦克风、扬声器、或外部存储设备。
图3是根据本说明书的一个或多个示例的服务器140的框图。服务器140可以是如结合图2所描述的任何合适的计算设备。通常,除非另外特别指出,图2的定义和示例可以被认为同样适用于图3。
服务器140包括连接至存储器320的处理器310,所述存储器具有存储在其中的用于提供操作系统322和安全引擎324的可执行指令。服务器140的其他部件包括存储设备350、网络接口360以及外围设备接口340。
在示例中,处理器210经由存储器总线270-3被通信地耦合至存储器220,所述存储器总线可以是例如直接存储器访问(DMA)总线。处理器210可以经由系统总线270-1被通信地耦合至其他设备。
处理器210可以经由DMA总线270-3连接至DMA配置中的存储器220。为了简化本公开,存储器320被公开为单个逻辑块,但是在物理实施例中可以包括任何合适的易失性或非易失性存储器技术(或多项技术)的一个或多个块,如结合图2的存储器220所描述的。在某些实施例中,存储器320可以包括相对低延迟易失性主存储器,而存储设备350可以包括相对较高延迟非易失性存储器。然而,存储器320和存储设备350无需是物理上分离的设备,如结合图2进一步描述的。
存储设备350可以是任何种类的存储器320,或者可以是分离的设备,如结合图2的存储设备250所描述的。存储设备350可以是或其中可以包括一个或多个数据库或存储在其他配置中的数据,并且可以包括操作软件的存储副本,如操作系统322以及服务器引擎324的软件部分。许多其他配置也是可能的,并且旨在被涵盖在本说明书的广义范围内。
可以提供网络接口360来将服务器140与有线或无线网络通信地耦合。
在一个示例中,服务器引擎324是执行根据本说明书的方法的工具或程序。在各个实施例中,服务器引擎324可以在硬件、软件、固件或其一些组合中被具体化。例如,在一些情况下,服务器引擎324可以包括被设计成用于执行方法或方法的一部分的专用集成电路,并且还可以包括可操作用于指示处理器执行所述方法的软件指令。在一些情况下,服务器引擎324可以作为常驻程序处理运行,如以上所描述的。还应当注意的是,服务器引擎324仅通过非限制性示例的方式被提供,并且包括交互式或用户模式软件的其他硬件和软件还可以结合、除了或替代安全引擎324而被提供,以便执行根据本说明书的方法。
在一个示例中,服务器引擎324包括存储在可操作用于执行根据本说明书的方法的非瞬态介质上的可执行指令。在适当时间上(如根据启动服务器140或根据来自操作系统322或用户120的命令),处理器310可以从存储设备350中检索服务器引擎324(或其软件部分)的副本并将其加载到存储器320中。然后,处理器310可以迭代的执行服务器引擎324的指令。
外围设备接口340可以被配置成用于与连接至服务器140但不一定是服务器140的核心架构的一部分的任何辅助设备接口连接。外围设备可以可操作用于向服务器140提供扩展功能,并且可以或可以不完全依赖于服务器140。在一些情况下,外围设备可以是其自身的计算设备。通过非限制性示例的方式,外围设备可以包括结合图2的外围设备接口240讨论的任何设备。
图4和图4A是根据本说明书的一个或多个示例的由安全引擎224执行的方法400的流程图。应注意的是,结合图4所公开并且结合安全引擎224所讨论的操作仅以示例的方式提供。在某些实施例中,结合图4公开的动作中的一些或全部动作可以由服务器140的服务器324执行。
还应当注意的是,本文公开的操作顺序仅以示例的方式提供,并且本文公开的每个操作可能在本说明书的某些实施例中不是必要的。在其他情况下,其他操作可以被插入在本文公开的操作之间,或者在合适的并且有逻辑这样做的情况下可以采用不同的顺序执行操作。
在框410中,可执行对象试图执行动作,如当由用户120启动时,被预取、预加载或者加载到存储器中。注意,用户120执行所述对象无需是发起框410的唯一操作,并且当启动时,所述对象本身可以试图执行若干不同的动作。
有利的是,在方法400中,安全引擎224可以在每个动作的基础上分析所述对象。因此,对于特定的可执行对象,一些动作可以被列入白名单,其他动作可以被列入黑名单,并且仍有其他动作可以被列入灰名单。在一个示例中,在背景中预取和加载可执行对象并启动,但还未试图读取或写入磁盘,如存储设备250或存储设备350。在那种情况下,可执行对象可以被列入白名单用于预取和加载背景,即使它未被列入白名单用于磁盘操作。
在框412中,安全引擎224确定正在试图执行的动作类型。所述动作类型可以包括由用户120发起的动作,如复制、编辑、添加、删除或启动所述可执行对象。所述动作还可以是由所述可执行对象本身采取的动作,如从磁盘读取、写入磁盘、访问磁盘的某些扇区或受保护存储器区域、使用升级特权启动、在背景中加载或者任何其他合适的动作。
决策块420判定所述动作是否被预清除,或者换言之,是否被列入白名单。
在框440中,如果所述动作被列入白名单,计算设备110可以完成所述动作,并且在图4A的框490中,完成所述方法。
上述路径表示完全预清除所述动作的情况,这可能是基于机器学习,所述机器学习已经确定这一动作应该在所有情况下都被授权、或者在某些条件下匹配使用的当前上下文,并且因此无需进行附加处理或验证。
返回至框420,如果所述动作未被清除,则需要附加处理。
在框430中,安全引擎224可以识别所述对象的类型。例如,安全引擎224可以判定所述可执行对象是否是应用程序、DLL、共享对象库或者本文所讨论的任何其他类型的可执行对象。
在框432中,安全引擎224针对所述对象计算校验和以用作例如所述对象的虚拟指纹。在一些情况下,所述校验和可能已经置前或附加了它的有关对象类型以及有关试图执行的对象的信息。
在框446中,安全引擎224从所述对象中提取属性。这些可以包括,例如,时间戳、日期戳、作者、所述对象对于计算设备110或企业网络是否是新的,以及任何其他适合的属性。
前进至图4A,在框450中,安全引擎224计算并指定信誉至可执行对象和/或动作。这一信誉可以至少部分地基于信誉存储器460由启发式数据库和/或算法454进行通知。
取决于所述对象的信誉,用户输入可能是必要的。应注意的是,用户输入在所有情况中将不是必要的。因此,在决策框462中,安全引擎224判定用户120是否存在。
在框464中,如果用户不存在,则可以应用默认动作。通过非限制性示例的方式,这可以包括:允许所述动作、阻止所述动作、更新白名单或黑名单、向用户120提供警告或通知、或者向安全管理员150提供警告或通知。默认动作464可以由信誉存储器460和由策略472(如,企业策略、家庭策略或者其他实体策略)二者通知。默认动作464还可以用于更新规则482。
返回至框462,如果用户存在,则在框470中,计算设备110在必要时请求并接收用户输入。
在框480中,安全引擎224在必要时缓存用户决策。缓存的用户决策可以用于更新规则482。
在框484中,安全引擎224指示计算设备110采取合适的动作,如本文所讨论的。所述合适的动作可以由规则482通知。
在框490中,完成所述方法。
图5是根据本说明书的一个或多个示例的安全引擎224的所选部件的功能框图。这种配置仅作为示例提供以展示不同安全引擎224如何与彼此进行交互。在一些实施例中,可以提供其他部件,而在其他实施例中,图5中描述的所述部件中的一些部件可以不被认为是安全引擎224的一部分,但可以认为是与安全224接口连接的外部部件。在适当的情况下,安全引擎224可以包括任何必要的硬件和/或软件以执行其功能。
在这个示例中,安全引擎224中包括其核架构、操作系统通知540、配置数据560(包括规则、更新器以及其他必要的配置)、库存单570以及存储保护580。这些帮助在框530中提供“启动”可执行对象。
可执行对象530可以试图执行文件读取或写入操作,这在框510中可以被暂时否认,例如如果它被列入灰名单。在适当的情况下,向用户要求适当的反馈。
在框520中,可以提供自我审批,如,基于缓存的用户决策。自我审批还可以取决于由威胁智能数据库524提供的全球信誉。威胁智能524可以由任何服务器140提供,并且可以包括由许多跨多个平台的设备提供的可执行对象的扩展数据库。在一些情况中,可以由人类安全专家检查并分析新的可执行对象,他们可以从而更新威胁智能524。在一些情况中,威胁智能524可以是上下文关联的。例如,精心设计的游戏对于家庭用户而言具有“高的”或“好的”信誉,并且因此对于家庭用户而言可以被列入白名单。相同的游戏对于企业而言可能违反策略,并且可以因此具有“低的”或“坏的”信誉,并且被完全列入黑名单。在又另一个应用程序中,父母可以将游戏的整个分类指定为仅依据审批而被准许,在这种情况中,游戏可以具有“中级的”信誉并且可以被列入灰名单。
自我审批520可以与文件系统和文件系统过滤器550进行接口连接,这向磁盘250提供了接口。
另外在框510中,即使在可执行对象具有好的全球信誉的情况下,可以保护一些或所有文件,从而使得可以由用户或拥有所述文件的群组拥有的进程,或者由使用升级特权运行的系统进程来读取或写入它们。每个文件可以具有“可信”类别,这仅对于那个文件是可信的。这可以包括用户和群组的列表,以及针对每个用户和群组的权限的列表。那些属性可以由子文件和目录继承。
在框530中,可执行对象试图执行,即使可执行对象被列入灰名单,这可以在框512中引至暂时拒绝执行。再次,如果必要可以询问用户,或者在框520中,可以提供自我审批,如,基于缓存的用户决策。
当发生拒绝写入510或拒绝执行520时,自我审批520给用户120提供采取优选动作的选项。自我审批接着使用若干技术来做出智能决策,从而最少地向用户120询问问题。相应地,通过非限制性示例的方式,自我审批可以提供以下各项:
经由令牌或针对整个企业的所选用户选择性地激活自我审批特征的能力。可以在时间上绑定所述激活以在特定系统上完成特定任务。
由用户做的最小的决策,如每个决策的安全影响被自动操纵。
辨别动作类型的能力,如,执行、写入、打包安装、ActiveX组件执行以及脚本执行,并且允许正确的进程和可执行文件具有相关特权。那些特权中的一些特权可以由随后的子进程或者协同进程来继承。可以由机器学习管理继承。
通过(如,源自威胁智能524的)信誉、先前决策、基于企业针对动作的决策、证书信誉以及可信企业任务自动做出决策。
基于决策设置持久规则。
通过自动控制许多决策过程减少用户120询问问题的数量。缓存用户决策以减少每个任务的用户决策的数量。
支持单个机器上的多个用户和会话。
即使在没有用户在场时做出某些决策的能力。
对于安全管理员150的审计跟踪包括用户决策和自动决策。取决于这些,可以更新企业全球策略,其中,可以跨企业地将某些动作列入白名单,并且可以跨企业地将其他动作列入黑名单。
有利的是,这提供了例如,在预取访问和实际可执行对象之间进行辨别的能力,允许正确的进程使用正确的特权进行执行。
还使用例如,IRP标记提供了操作意图的确定以消除当用户右击文件时,如,在文件管理器会话中可能出现的误肯定问题。这一右击操作可以被操作系统看作潜在的写入操作或改变文件属性的尝试,这可以导致对于本说明的系统和方法中缺少的用户输入的虚假请求。
图6是根据本说明书的一个或多个示例的自我审批的功能框图。
在框660中,可执行对象执行读、写入或其他文件操作。
在框670中,提供文件服务器。这一驱动器关注,例如,IRP标记以及应用程序上下文,从而使得在框680中,可以检测并避免误肯定。这可以包括,例如,判定是否存在预取访问以及对IRP标记的检查。这使得安全引擎224利用置信度的某种程度判定显示确认对话是否是虚假的。
穿过框670的动作然后可以在框630中寻求自我审批。框630可以判定是否允许或拒绝操作。安全引擎224的某些部分可以与文件系统驱动器650集成,从而使得可以在细节层面管理文件访问和控制。
在寻求自我审批过程中,框630可以查询框640中的缓存决策。如果没有缓存决策可以获得,或者根据企业策略,在框610中,可以查询安全管理员150。在一些情况下,审批将需要可能自动地或手动地生成的令牌,并且可以经由针对用户的自我审批弹出分享所述令牌以确保所述令牌是正版的。在框620中,安全引擎224对所述动作指定令牌,并且将所述令牌提供给自我审批框630。最终,框630判定是否允许或拒绝操作。
前述内容概述了若干实施例的特征,从而使得本领域的技术人员可以更好地理解本公开的方面。本领域的技术人员应该认识到,他们可以容易地将本公开用作设计或修改其他进程以及结构的基础,以便于实施相同的目的和/或实现在此介绍的实施例的相同优点。本领域的技术人员还应意识到,这些等同构造没有背离本公开的精神和范围,并且在不背离本公开的精神和范围的情况下,可在此做出各种改变、替换和替代。
本公开的特定实施例可以容易地包括片上系统(SOC)中央处理单元(CPU)封装体。SOC表示将计算机或其他电子系统的部件整合到单个芯片中的集成电路(IC)。其可以包含数字、模拟、混合信号、以及射频功能,所有这些功能都可以在单个芯片基底上提供。其他实施例可以包括多芯片模块(MCM),多个芯片位于单个电子封装体内并且被配置成用于通过电子封装体彼此密切交互。在各个其他实施例中,数字信号处理功能可以在专用集成电路(ASIC)、现场可编程门阵列(FPGA)和其他半导体芯片中的一个或多个硅核中实施。
在示例实施方式中,在此概述的处理活动的至少一些部分也可以在软件中实施。在一些实施例中,这些特征中的一个或多个特征可以在所公开的附图的元件外部提供的或者采用任何适当方式合并的硬件中实施,以便实现预期功能。各个元件可以包括可以协调以便实现如在此概述的操作的软件(或往复式软件)。在仍其他实施例中,这些元件可以包括促进其操作的任何适合的算法、硬件、软件、部件、模块、接口或对象。
此外,可以移除或者以其他方式合并与所描述的微处理器相关联的部件中的一些部件。在一般意义上,在附图中描绘的安排在其表示上可以更合逻辑,而物理架构可以包括各种排列、组合和/或这些元件的混合。必须注意,可以使用无数可能的设计配置来实现在此概述的操作目标。相应地,相关联的基础设施具有大量替代安排、设计选择、设备可能性、硬件配置、软件实施方式、设备选项等。
任何适当配置的处理器部件可以执行与数据相关联的任何类型的指令以便实现在此详细说明的操作。在此公开的任何处理器可以将元件或物品(例如,数据)从一个状态或一种东西转换为另一个状态或另一种东西。在另一个示例中,在此概述的一些活动可以利用固定逻辑或可编程逻辑(例如,由处理器执行的软件和/或计算机指令)实现,并且在此标识的元件可以是某种类型的可编程处理器;可编程数字逻辑(例如,现场可编程门阵列(FPGA);可擦除可编程只读存储器(EPROM);电可擦除可编程只读存储器(EEPROM);包括数字逻辑、软件、代码、电子指令、闪速存储器、光盘、CD-ROM、DVD ROM、磁性或光学卡、适合于存储电子指令的其他类型的机器可读介质、或其任何合适组合的ASIC。在操作中,处理器可以将信息存储在任何合适类型的非瞬态存储介质(例如,随机存取存储器(RAM)、只读存储器(ROM)、现场可编程门阵列(FPGA)、可擦除可编程只读存储器(EPROM)、电可擦除可编程ROM(EEPROM)等)、软件、硬件中或者在适当情况下并基于特定需要存储在任何其他合适的部件、设备、元件或物体中。进一步地,基于特定需要和实施方式,可以在任何数据库、寄存器、表格、缓存器、队列、控制列表、或存储结构(所有这些可以在任何合适的时间帧被引用)中提供在处理器中被跟踪、发送、接收或存储的信息。在此所讨论的存储器项中的任何存储器项应当被解释为涵盖在宽泛术语‘存储器’内。类似地,在此所描述的可能的处理元件、模块、和机器中的任何一者应当被解释为涵盖在宽泛术语‘微处理器’或‘处理器’内。此外,在各个实施例中,在此描述的处理器、存储器、网卡、总线、存储设备、相关外围设备、以及其他硬件元件可由软件或固件配置来模仿或虚拟化这些硬件元件的功能的处理器、存储器和其他相关设备来实现。
采用各种形式来具体化实施在此描述的功能中的所有或部分功能的计算机程序逻辑,包括但决不限于源代码形式、计算机可执行的形式、以及各种中间形式(例如,由汇编器、编辑器、链接器或定位器生成的形式)。在示例中,源代码包括以各种编程语言实施的一系列计算机程序指令,如目标代码、汇编语言、或高级语言(比如,与各种操作系统或操作环境一起使用的OpenCL、Fortran、C、C++、JAVA或HTML)。源代码可以限定并使用各种数据结构和通信消息。源代码可以采用计算机可执行的形式(例如,经由解释器),或者源代码可以被转换(例如,经由转换器、汇编器、或编译器)成计算机可执行的形式。
在对以上实施例的讨论中,可以容易地替换、替代或以其他方式修改电容器、缓冲器、图形元件、互连板、时钟、DDR、相机传感器、除法器、电感器、电阻器、放大器、开关、数字核、晶体管和/或其他部件,以便满足特定电路需要。此外,应当注意的是,对互补电子设备、硬件、非瞬态软件等的使用提供了同等可行的选项,以便实施本公开的教导。
在一个示例实施例中,可以在相关联的电子设备的板上实施附图的任何数量的电路。所述板可以是能够容纳电子设备的内部电子系统的各个部件并进一步为其他外围设备提供连接器的一般电路板。更具体地,所述板可以提供电连接,系统的其他部件可以通过这些电连接来进行电通信。可以基于特定配置需要、处理需求、计算机设计等来将任何合适的处理器(包括数字信号处理器、微处理器、支持芯片组等)、存储器元件等适当地耦合至所述板。如外部存储设备、附加传感器、用于音频/视频显示的控制器、以及外围设备等其他部件可以作为插入卡而经由线缆附接至所述板,或者整合到所述板本身中。在另一个示例实施例中,附图的电路可以被实施为独立的模块(例如,具有相关联的部件的设备和被配置成用于执行特定应用程序或功能的电路),或者被实施为到电子设备的专用硬件的插入模块。
注意,使用在此所提供的许多示例,可以关于两个、三个、四个或更多个电气部件来对交互进行描述。然而,这样做只是出于清楚和示例的目的。应理解的是,可以采用任何合适方式来合并所述系统。根据类似的设计替代方案,可以在各个可能的配置中组合附图中所展示的部件、模块和元件中的任一者,所有这些配置在本说明书的广泛范围内。在某些情况下,通过仅参照有限数量的电气元件,可能更容易描述一组给定流程的功能中的一个或多个功能。应当理解的是,附图的电路及其教导是可容易扩展的,并且可以容纳大量部件以及更复杂/成熟的安排和配置。相应地,所提供的示例不应限制如潜在地应用到无数其他架构上的电路的范围或抑制其宽泛教导。
许多其他的改变、替代、变更、改变、和修改对本领域技术人员来说是确定的,并且旨在本披露包含了落在所附权利要求书的范围内的所有的改变、替代、变更、改变、和修改。为了帮助美国专利及商标局(USPTO)以及另外本申请发布的任何专利的任何读者理解本申请所附权利要求书,申请人希望注意本申请人:(a)并不旨在所附权利要求中的任一项因为在本申请的申请日存在而援引35U.S.C.第112章第(6)段,除非在特定权利要求中确切地使用了字词“用于......的装置”或“用于......的步骤”;并且(b)并不旨在通过本说明书中未在所附权利要求书中反映出的任何陈述以任何方式限制本公开。
示例性实施例
示例1中公开了一种计算设备,所述计算设备包括:存储设备,所述存储设备包含可执行对象;以及安全引擎,所述安全引擎可操作用于:检测所述可执行对象已经试图执行动作;截取所述动作;为所述动作指定信誉;以及对所述信誉采取动作。
示例2中公开了如示例1所述的计算设备,其中,对所述信誉采取动作包括准许所述可执行对象执行所述动作。
示例3中公开了如示例1所述的计算设备,其中,对所述信誉采取动作包括阻止所述可执行对象执行所述动作。
示例4中公开了如示例1所述的计算设备,其中,对所述信誉采取动作包括向用户提供警告。
示例5中公开了如示例1所述的计算设备,其中,对所述信誉采取动作包括接收与所述动作相关的用户决策。
示例6中公开了如示例5所述的计算设备,其中,所述信誉引擎进一步可操作用于缓存所述用户决策。
示例7中公开了如示例1所述的计算设备,其中,为所述动作指定信誉包括使用启发法。
示例8中公开了如示例1所述的计算设备,其中,为所述动作指定信誉包括:识别所述对象的类型;针对所述对象计算校验和;以及提取对象属性。
示例9中公开了如示例1所述的计算设备,其中,为所述动作指定信誉包括查询威胁智能数据库。
示例10中公开了如示例1所述的计算设备,其中,为所述动作指定信誉包括检测输入/输出请求分组。
示例11中公开了如示例1所述的计算设备,其中,指定信誉包括提供自我审批。
示例12中公开了如示例1所述的计算设备,其中,对所述信誉采取动作包括检测并避免误肯定。
示例13中公开了如示例12所述的计算设备,其中,检测并避免误肯定包括:确定所述可执行对象已经被预取;以及在不请求用户决策的情况下允许预取动作。
示例14公开了一种或多种具有存储在其上的可执行指令的计算机可读介质,所述可执行指令可操作用于指示处理器:检测可执行对象已经试图执行动作;截取所述动作;为所述动作指定信誉;以及对所述信誉采取动作。
示例15中公开了如示例14所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括准许所述可执行对象执行所述动作。
示例16中公开了如示例14所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括阻止所述可执行对象执行所述动作。
示例17中公开了如示例14所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括向用户提供警告。
示例18中公开了如示例14所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括接收与所述动作相关的用户决策。
示例19中公开了如示例18所述的一种或多种计算机可读介质,其中,所述指令进一步可操作用于指示所述处理器缓存所述用户决策。
示例20中公开了如示例14所述的一种或多种计算机可读介质,其中,为所述动作指定信誉包括:识别所述对象的类型;针对所述对象计算校验和;以及提取对象属性。
示例21中公开了如示例14所述的一种或多种计算机可读介质,其中,为所述动作指定信誉包括检测输入/输出请求分组。
示例22中公开了如示例14所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括检测并避免误肯定。
示例23中公开了如示例22所述的一种或多种计算机可读介质,其中,检测并避免误肯定包括:确定所述可执行对象已经被预取;以及在不请求用户决策的情况下允许预取动作。
示例24中公开了一种方法,所述方法包括:检测可执行对象已经试图执行动作;截取所述动作;为所述动作指定信誉;以及对所述信誉采取动作。
示例25中公开了如示例24所述的方法,其中,对所述信誉采取动作包括检测并避免误肯定。
示例26中公开了一种方法,所述方法包括:检测可执行对象已经试图执行动作;截取所述动作;为所述动作指定信誉;以及对所述信誉采取动作。
示例27中公开了如示例26所述的方法,其中,对所述信誉采取动作包括准许所述可执行对象执行所述动作。
示例28中公开了如示例26所述的方法,其中,对所述信誉采取动作包括阻止所述可执行对象执行所述动作。
示例29中公开了如示例26所述的方法,其中,对所述信誉采取动作包括向用户提供警告。
示例30中公开了如示例26所述的方法,其中,对所述信誉采取动作包括接收与所述动作相关的用户决策。
示例31中公开了如示例30所述的方法,进一步包括指示所述处理器缓存所述用户决策。
示例32中公开了如示例26所述的方法,其中,为所述动作指定信誉包括:识别所述对象的类型;针对所述对象计算校验和;以及提取对象属性。
示例33中公开了如示例26所述的方法,其中,为所述动作指定信誉包括检测输入/输出请求分组。
示例34中公开了如示例26所述的方法,其中,对所述信誉采取动作包括检测并避免误肯定。
示例35中公开了如示例34所述的方法,其中,检测并避免误肯定包括:确定所述可执行对象已经被预取;以及在不请求用户决策的情况下允许预取动作。
示例36中公开了一种设备,所述设备包括用于执行前述方法中的任何一种方法的装置。
示例37中公开了如方法36所述的设备,其中,所述装置包括处理器或存储器。
示例38中公开了一种或多种计算机可读介质,具有存储在其上的可执行指令,所述可执行指令可操作用于指示处理器执行前述方法中的任何一种方法。

Claims (25)

1.一种计算设备,包括:
存储设备,所述存储设备包含可执行对象;以及
一个或多个逻辑元件,所述逻辑元件包括安全引擎,所述安全引擎可操作用于:
检测所述可执行对象已经试图执行动作;
截取所述动作;
为所述动作指定信誉;以及
对所述信誉采取动作。
2.如权利要求1所述的计算设备,其中,对所述信誉采取动作包括准许所述可执行对象执行所述动作。
3.如权利要求1所述的计算设备,其中,对所述信誉采取动作包括阻止所述可执行对象执行所述动作。
4.如权利要求1所述的计算设备,其中,对所述信誉采取动作包括向用户提供警告。
5.如权利要求1所述的计算设备,其中,对所述信誉采取动作包括接收与所述动作相关的用户决策。
6.如权利要求5所述的计算设备,其中,所述信誉引擎进一步可操作用于缓存所述用户决策。
7.如权利要求1至6中任一项所述的计算设备,其中,为所述动作指定信誉包括使用启发法。
8.如权利要求1至6中任一项所述的计算设备,其中,为所述动作指定信誉包括:
识别所述对象的类型;
针对所述对象计算校验和;以及
提取对象属性。
9.如权利要求1至6中任一项所述的计算设备,其中,为所述动作指定信誉包括查询威胁智能数据库。
10.如权利要求1至6中任一项所述的计算设备,其中,为所述动作指定信誉包括检测输入/输出请求分组。
11.如权利要求1至6中任一项所述的计算设备,其中,指定信誉包括提供自我审批。
12.如权利要求1至6中任一项所述的计算设备,其中,对所述信誉采取动作包括检测并避免误肯定。
13.如权利要求12所述的计算设备,其中,检测并避免误肯定包括:确定所述可执行对象已经被预取;以及在不请求用户决策的情况下允许预取动作。
14.一种或多种计算机可读介质,具有存储在其上的可执行指令,所述可执行指令可操作用于指示处理器执行以下操作:
检测可执行对象已经试图执行动作;
截取所述动作;
为所述动作指定信誉;以及
对所述信誉采取动作。
15.如权利要求14所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括准许所述可执行对象执行所述动作。
16.如权利要求14所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括阻止所述可执行对象执行所述动作。
17.如权利要求14所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括向用户提供警告。
18.如权利要求14所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括接收与所述动作相关的用户决策。
19.如权利要求18所述的一种或多种计算机可读介质,其中,所述指令进一步可操作用于指示所述处理器缓存所述用户决策。
20.如权利要求14至19中任一项所述的一种或多种计算机可读介质,其中,为所述动作指定信誉包括:
识别所述对象的类型;
针对所述对象计算校验和;以及
提取对象属性。
21.如权利要求14至19中任一项所述的一种或多种计算机可读介质,其中,为所述动作指定信誉包括检测输入/输出请求分组。
22.如权利要求14至19中任一项所述的一种或多种计算机可读介质,其中,对所述信誉采取动作包括检测并避免误肯定。
23.如权利要求22所述的一种或多种计算机可读介质,其中,检测并避免误肯定包括:确定所述可执行对象已经被预取;以及在不请求用户决策的情况下允许预取动作。
24.一种方法,包括:
检测可执行对象已经试图执行动作;
截取所述动作;
为所述动作指定信誉;以及
对所述信誉采取动作。
25.如权利要求24所述的方法,其中,对所述信誉采取动作包括检测并避免误肯定。
CN201580045249.7A 2014-09-24 2015-08-25 非侵入式白名单制定 Pending CN106576105A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/495,692 US10050993B2 (en) 2014-09-24 2014-09-24 Non-invasive whitelisting
US14/495,692 2014-09-24
PCT/US2015/046826 WO2016048544A1 (en) 2014-09-24 2015-08-25 Non-invasive whitelisting

Publications (1)

Publication Number Publication Date
CN106576105A true CN106576105A (zh) 2017-04-19

Family

ID=55526884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580045249.7A Pending CN106576105A (zh) 2014-09-24 2015-08-25 非侵入式白名单制定

Country Status (5)

Country Link
US (1) US10050993B2 (zh)
EP (1) EP3198502A4 (zh)
CN (1) CN106576105A (zh)
RU (1) RU2017105763A (zh)
WO (1) WO2016048544A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958341A (zh) * 2017-12-12 2018-04-24 阿里巴巴集团控股有限公司 风险识别方法及装置和电子设备
CN108985051A (zh) * 2018-08-02 2018-12-11 郑州云海信息技术有限公司 一种基于行为跟踪的入侵防御方法与系统
CN111651752A (zh) * 2020-04-17 2020-09-11 北京大学 一种获取容器需要的系统调用白名单的方法

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10050993B2 (en) 2014-09-24 2018-08-14 Mcafee, Llc Non-invasive whitelisting
US9467343B1 (en) * 2014-09-30 2016-10-11 Emc Corporation Collaborative analytics for independently administered network domains
JP2016139322A (ja) * 2015-01-28 2016-08-04 株式会社リコー 画像処理装置及びそれを備えた電子黒板
US20170093887A1 (en) * 2015-09-24 2017-03-30 General Electric Company Network command evaluation and response system
US10218656B2 (en) * 2016-03-08 2019-02-26 International Business Machines Corporation Smart message delivery based on transaction processing status
WO2018172818A1 (en) * 2017-03-23 2018-09-27 Pismo Labs Technology Ltd. Method and system for restricting transmission of data traffic for devices with networking capabilities
US10970410B2 (en) * 2017-10-26 2021-04-06 Lawrence Livermore National Security, Llc Accessing protected data by a high-performance computing cluster
US11086985B2 (en) * 2017-12-04 2021-08-10 Microsoft Technology Licensing, Llc Binary authorization based on both file and package attributes
US11044271B1 (en) * 2018-03-15 2021-06-22 NortonLifeLock Inc. Automatic adaptive policy based security
US11086768B1 (en) * 2020-02-20 2021-08-10 International Business Machines Corporation Identifying false positives in test case failures using combinatorics
US11176026B2 (en) 2020-02-20 2021-11-16 International Business Machines Corporation Assignment of test case priorities based on combinatorial test design model analysis
US11663113B2 (en) 2020-02-20 2023-05-30 International Business Machines Corporation Real time fault localization using combinatorial test design techniques and test case priority selection
US11307975B2 (en) 2020-02-20 2022-04-19 International Business Machines Corporation Machine code analysis for identifying software defects
CN116438533A (zh) * 2020-09-16 2023-07-14 思科技术公司 用于软件调用栈的安全策略
US20230015789A1 (en) * 2021-07-08 2023-01-19 Vmware, Inc. Aggregation of user authorizations from different providers in a hybrid cloud environment
WO2023213398A1 (en) * 2022-05-05 2023-11-09 Huawei Technologies Co., Ltd. Fast policy query

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100077445A1 (en) * 2008-09-25 2010-03-25 Symantec Corporation Graduated Enforcement of Restrictions According to an Application's Reputation
US8201255B1 (en) * 2009-06-30 2012-06-12 Symantec Corporation Hygiene-based discovery of exploited portals
US20130031376A1 (en) * 2011-07-25 2013-01-31 Lenovo (Singapore) Pte. Ltd., Removable storage device data protection
CN103617380A (zh) * 2013-11-28 2014-03-05 北京邮电大学 应用程序权限动态控制方法和系统
CN103679007A (zh) * 2013-12-19 2014-03-26 深圳全智达通信股份有限公司 一种管理应用程序权限的方法、装置及移动设备
CN103875003A (zh) * 2011-10-17 2014-06-18 迈克菲股份有限公司 用于在移动网络环境中把应用列入白名单的系统和方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6073142A (en) 1997-06-23 2000-06-06 Park City Group Automated post office based rule analysis of e-mail messages and other data objects for controlled distribution in network environments
US5987610A (en) 1998-02-12 1999-11-16 Ameritech Corporation Computer virus screening methods and systems
US6460050B1 (en) 1999-12-22 2002-10-01 Mark Raymond Pace Distributed content identification system
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
ES2385565T3 (es) * 2000-09-21 2012-07-26 Research In Motion Limited Sistema y método de firma mediante código por software
US7895448B1 (en) * 2004-02-18 2011-02-22 Symantec Corporation Risk profiling
US7647647B2 (en) * 2004-08-05 2010-01-12 International Business Machines Corporation System, method and program product for temporally authorizing program execution
US8028301B2 (en) * 2005-03-14 2011-09-27 Symantec Corporation Restricting recordal of user activity in a processing system
US7735136B2 (en) * 2005-04-18 2010-06-08 Vmware, Inc. 0-touch and 1-touch techniques for improving the availability of computer programs under protection without compromising security
US7730525B2 (en) * 2005-06-22 2010-06-01 International Business Machines Corporation Method, system, and computer program product for limiting authorization of an executable action to an application session
US8214895B2 (en) 2007-09-26 2012-07-03 Microsoft Corporation Whitelist and blacklist identification data
US8904536B2 (en) 2008-08-28 2014-12-02 AVG Netherlands B.V. Heuristic method of code analysis
RU2480937C2 (ru) 2011-04-19 2013-04-27 Закрытое акционерное общество "Лаборатория Касперского" Система и способ уменьшения ложных срабатываний при определении сетевой атаки
US20120324568A1 (en) * 2011-06-14 2012-12-20 Lookout, Inc., A California Corporation Mobile web protection
US9065826B2 (en) 2011-08-08 2015-06-23 Microsoft Technology Licensing, Llc Identifying application reputation based on resource accesses
WO2013063474A1 (en) * 2011-10-28 2013-05-02 Scargo, Inc. Security policy deployment and enforcement system for the detection and control of polymorphic and targeted malware
US20130212680A1 (en) 2012-01-12 2013-08-15 Arxceo Corporation Methods and systems for protecting network devices from intrusion
US9274816B2 (en) 2012-12-21 2016-03-01 Mcafee, Inc. User driven emulation of applications
US10050993B2 (en) 2014-09-24 2018-08-14 Mcafee, Llc Non-invasive whitelisting

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100077445A1 (en) * 2008-09-25 2010-03-25 Symantec Corporation Graduated Enforcement of Restrictions According to an Application's Reputation
US8201255B1 (en) * 2009-06-30 2012-06-12 Symantec Corporation Hygiene-based discovery of exploited portals
US20130031376A1 (en) * 2011-07-25 2013-01-31 Lenovo (Singapore) Pte. Ltd., Removable storage device data protection
CN103875003A (zh) * 2011-10-17 2014-06-18 迈克菲股份有限公司 用于在移动网络环境中把应用列入白名单的系统和方法
CN103617380A (zh) * 2013-11-28 2014-03-05 北京邮电大学 应用程序权限动态控制方法和系统
CN103679007A (zh) * 2013-12-19 2014-03-26 深圳全智达通信股份有限公司 一种管理应用程序权限的方法、装置及移动设备

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107958341A (zh) * 2017-12-12 2018-04-24 阿里巴巴集团控股有限公司 风险识别方法及装置和电子设备
CN108985051A (zh) * 2018-08-02 2018-12-11 郑州云海信息技术有限公司 一种基于行为跟踪的入侵防御方法与系统
CN111651752A (zh) * 2020-04-17 2020-09-11 北京大学 一种获取容器需要的系统调用白名单的方法
CN111651752B (zh) * 2020-04-17 2022-10-14 北京大学 一种获取容器需要的系统调用白名单的方法

Also Published As

Publication number Publication date
RU2017105763A (ru) 2018-08-21
EP3198502A4 (en) 2018-05-02
EP3198502A1 (en) 2017-08-02
WO2016048544A1 (en) 2016-03-31
US10050993B2 (en) 2018-08-14
US20160088011A1 (en) 2016-03-24
RU2017105763A3 (zh) 2018-08-21

Similar Documents

Publication Publication Date Title
CN106576105A (zh) 非侵入式白名单制定
US20200042720A1 (en) Pre-launch process vulnerability assessment
JP7073343B2 (ja) 難読化されたウェブサイトコンテンツ内のセキュリティ脆弱性及び侵入検出及び修復
CN105453102B (zh) 用于识别已泄漏的私有密钥的系统和方法
JP6196393B2 (ja) プリインストールアプリケーションのスキャンを最適化するためのシステム及び方法
US9742774B2 (en) Method and apparatus for determining phishing website
Ntantogian et al. Evaluating the privacy of Android mobile applications under forensic analysis
CN107949846A (zh) 恶意线程挂起的检测
JP6326502B2 (ja) 頻度に基づくレピュテーション
CN107533608A (zh) 可信更新
US11882134B2 (en) Stateful rule generation for behavior based threat detection
CN106797375A (zh) 恶意软件代理的行为检测
CN109840419B (zh) 计算机装置及辨识其软件容器行为是否异常的方法
CN109997143A (zh) 敏感数据的安全共享
US8869284B1 (en) Systems and methods for evaluating application trustworthiness
EP3028203A1 (en) Signal tokens indicative of malware
CN107004087A (zh) 用于自修复的代理存在
Bhardwaj Ransomware: A rising threat of new age digital extortion
US9292691B1 (en) Systems and methods for protecting users from website security risks using templates
CN106687979B (zh) 交叉视图恶意软件检测
CN109997138A (zh) 用于检测计算设备上的恶意进程的系统和方法
CN107980133A (zh) 暂时进程特权解除
CN106687978B (zh) 用于对栈破坏利用的抑制的计算设备和方法
Kaczmarek et al. Operating system security by integrity checking and recovery using write‐protected storage
US10290033B1 (en) Method, system, and computer-readable medium for warning users about untrustworthy application payment pages

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20170419