具有基于反馈回路的增强流量分析的网络安全系统的制作方法

文档序号:26195293发布日期:2021-08-06 18:49阅读:99来源:国知局
背景本文件总体上涉及网络安全,并且更具体地涉及具有基于反馈回路的增强流量分析的改进的网络安全系统。相关技术的简述在本领域中已知部署网络安全网关以代理、解密和分析web和其它网络流量,以便发现和阻止安全威胁。一种网络安全网关是“安全web网关”或swg,它是分析web流量的网关。在该情况下,术语“web”流量是指使用http应用层协议,无论是否通过tls,而且无论传输层协议如何。网络安全网关可以执行任何广泛范围的网络安全检查,包括网络协议检查、深度包检测(deeppacketinspection)、恶意软件/僵尸网络签名检测(malware/botnetsignaturedetection)、异常检测等。在本领域中已知使用dns系统将客户端流量路由到网络安全网关。更具体地,基于客户端要解析的域,专用网络(privatenetwork)上的本地dns解析器可以将安全情报应用于客户端dns查找请求。如果请求的域表示已知的安全威胁,则可以将客户端阻止或定向到网络安全网关,而不是定向到所需的主机。响应于来自客户端的给定dns名称查询,可以通过为客户端提供网络安全网关的ip地址而不是与域名相对应的实际ip地址,来完成客户端请求到网络安全网关的该路由。请求路由也可以使用其它技术来完成,诸如ip层路由。然而,一些应用程序与网络安全网关和/或与它们可能执行的特定类型的网络检查不兼容。在此类情况下,即使端到端tls加密会话使用受信任的中间人方法进行中介,如果经由网络安全网关代理流量,客户端的应用层通信也可能中断。另一个问题是一些流量不应该被解密和/或被检查或至少以不同于通常的方式进行检查,因为其承载敏感数据,诸如付款信息、医疗信息或其他个人数据(例如,个人标识信息)。由于人们越来越关注在线隐私和相关法规,因此该问题变得越来越重要。总的来说,当此类检查可能与应用程序不兼容或不合需要时,希望限制对流量的检查。为了解决该问题,可以尝试使网络安全网关产生错误日志并手动分析那些日志,并且然后手动调节对网络流量的检查以避免此类错误。然而,这将是远远不够的:它将是劳动密集型的、缓慢的(因此会产生更多的错误),并且最终会不准确,并可能导致安全问题并增加支持成本。本文的教导的目的是,考虑到上述关注点以及在本文档中将变得明显的其它关注点,提供一种网络安全系统,该网络安全系统自动地,动态地、准确地和有效地调节要经历检查的流量的范围。本文的教导通过提供用于改进的网络安全分析的系统和方法来解决以上确定的技术问题(以及将变得明显的其它技术问题)。因此,本文的教导表示对网络安全技术和dns系统、网络安全网关、网络安全服务和其它网络基础结构的操作的改进。附图简述通过以下结合附图的详细描述,将会更好地理解本发明,在附图中:图1是在一个实施例中具有反馈回路的网络安全系统的概图;图2是在一个实施例中具有反馈回路的网络安全系统的详细示图;图3是示出在图2中所示的反馈处理器部件处执行的处理的图;图4是示出在图2中所示的反馈处理器部件处执行的处理的图;图5是示出用于图2中所示的反馈处理器部件的机器学习实施例的图;以及图6是示出可用于实现本文的教导的计算机系统中的硬件的框图。详细描述以下描述阐述了本发明的实施例,以提供对本文公开的方法和装置的结构、功能、制造和使用的原理的全面理解。在本申请中描述并在附图中示出的系统、方法和装置是非限制性示例;仅权利要求书定义了所寻求的保护范围。结合一个示例性实施例描述或示出的特征可以与其它实施例的特征组合。此类修改和变化旨在被包括在本发明的范围内。本文件中任何地方引用的所有专利、专利申请出版物、其它出版物和参考文献均通过引用其全文并出于所有目的而明确地被并入本文。全文中使用的术语“如(e.g.)”用作非限制性短语“例如(forexample)”的缩写。本文的教导可以在各种系统、方法、装置和非暂时性计算机可读介质中实现。将功能分配给特定机器不是限制性的,因为可以以各种方式在不同机器之间组合或分割本文所述的功能。对优点或益处的任何提及均指通过实践本文的教导可能获得的潜在优点和益处。为了实践本文的教导而获得此类优点和益处并非必须的。假设基本熟悉的众所周知的网页、流传输以及联网技术和术语,诸如html、url、xml、ajax、css、http版本1.1和2、dns、基于quic的http、tls、tcp/ip和udp。本文使用术语“服务器”来指代具有在此类硬件(例如,web服务器)上运行的服务器软件的硬件(配置为服务器的计算机,也称为“服务器机器”)。另外,术语“源(origin)”用于指代源服务器。同样,术语“客户端”和“客户端设备”在本文中用于指代与软件(例如,浏览器或播放器应用程序)组合的硬件。尽管上下文可能专门指示硬件或软件,但是如果此类区分是适当的,则可以以硬件和软件的任何组合来实现其教导。术语网页或“页面”旨在指代用户代理(例如,浏览器)表示,诸如通过url标识的表示。页面通常以html或其它标记语言文档定义。本文档中术语“对象”和“资源”可互换使用。术语“域名”和“主机名”在本文档中可以互换使用。概述除其他事项外,本文档描述了网络安全系统,该网络安全系统结合了反馈回路,以便自动地且动态地调节要进行检查的流量范围。图1示出了系统实施例。该图示出客户端100、请求路由部件102和检查部件104,它们将代理到远程主机108的流量。请求路由部件102(其例如可以是dns解析器或可以是选择性地解密http流量的https代理)使得关注的客户端流量到达检查部件以进行安全检查。请求路由部件102基于威胁情报(ti)来做出是否将流量发送到检查部件104的决定,在本实施例中该威胁情报依赖于对域进行以下分类的几个列表:o[高风险域]–要阻止的域。(应当理解,如本领域中已知的,在此上下文中,“阻止”通信可能意味着请求路由部件102无法响应,定向到主机上的警告页面或以其它方式不允许请求继续进行到源。)o[有风险域]–要由检查部件104分析的域。o[白名单]–利用与检查部件104不兼容的协议的域,或者不需要扫描的域,因此应绕过检查部件104将它们直接发送到源(例如,远程主机108)。这可以包括正在处理不应被扫描的“敏感”流量的域。o[低风险域]–生成大量流量而没有或几乎没有威胁的域。o[未分类的域]–当请求路由部件(102)遇到不属于上述任何列表的流量时,它可以基于针对这些“未分类域”的可配置策略来做出是否将其路由到检查部件(104)的决定,例如,所述可配置策略是诸如以下项的策略:i.始终路由到检查部件–该未分类流量的100%ii.从不路由到检查部件iii.基于速率的路由–将针对给定域的请求的一小部分(例如2%)路由到检查部件104,以实现其分类。检查部件104执行安全检查,并阻止、通过或代理客户端通信到所需的目的地,如所示的远程主机108。之后,检查部件104(有时称为网络安全网关)后分析发送到远程主机108(也称为源服务器108)或从远程主机108接收的网络流量。如图1中所示,请求路由部件102和检查部件104将日志发送到反馈分析部件106。请求路由部件102记录其执行的请求路由动作(例如,哪个客户端请求解析哪个域)以及由部件102做出的决定。检查部件104记录其对接收到的客户端请求和在客户端100与远程主机108之间的其它网络流量执行的检查的结果。通常,客户端100在企业或家庭网络上。部件102、104、106可以在驻地(例如,在企业数据中心内)或“在云中”。在云中意味着部件102、104、106可以是在公共互联网上托管并且由服务提供商代表客户端和/或企业来操作的服务。此类服务通常是多租户的。源108通常在公共互联网上。请求路由部件102的示例已经被提为dns解析器,有时称为本地dns服务器。当客户端要求某些可疑dns名称(例如已列入黑名单或以其它方式指示可疑的企业和/或isp外部的服务器的主机名)的ip地址时,此类dns解析器可以将客户端请求定向到检查部件。dns解析器可以由服务提供商作为服务提供,这意味着dns解析器实际上可以部署在专用网络外部,并且可以是多租户的。其它类型的设备可以用作请求路由部件102。例如,在ip层处操作的基于策略的路由器(pbr)可以将发往外部ip地址或ip地址块的客户端流量重定向到检查部件104的ip地址。使用本文的教导,可以建立反馈回路,以便动态地调节哪些目的地ip地址保证了路由到检查部件104的请求。检查部件104的典型示例是网络安全网关。如上所述,网络安全网关的示例是安全web网关(swg),该安全web网关检查、分析和代理客户端(在请求路由到swg之后)发送给swg的http和/或https流量,以便到达与可疑dns名称相关联的源。swg可以由服务提供商作为服务提供,使得swg可以实际部署在专用网络外部,并且它可以是多租户的案子。本文描述的许多示例将把swg描述为检查部件,但这仅仅是一个示例。在操作中,根据本文的教导,安全分析的结果可以被捕获,并在图1中所示的反馈回路中被提供。例如,请求路由部件102和检查部件的日志可以被捕获并与检查部件104的日志相关,以确定由请求路由部件102执行的给定请求路由的最终结果。基于该反馈和/或其它反馈,请求路由部件102可以(例如,通过更改要执行到检查部件的请求路由的域列表上的域,如通过[高风险域]、[有风险域]和[白名单]指示)调节到检查部件104的请求路由的范围。更具体地,请求路由部件102可以产生日志,该日志指示客户端尝试访问并被发送到104进行检查的域。检查部件104可以产生具有各种信息的日志,诸如:o哪些域被成功访问?o是否由于协议错误而导致对给定域的访问失败?o对哪些域的访问实际上在网络流量中被检查部件104检测到威胁?o在其中检测到流量敏感信息的域。o作为客户端请求的一部分发送/接收的字节数。反馈和分析部件106从部件102和104收集日志。它分析日志以确定(除其它外)应作为对请求路由范围进行调节的触发的情况和/或域。这些可能包括与故障入口(failedon-ramp)相关联的域(针对定向到检查部件104但从未到达检查部件104的域的流量)、流量故障(产生流量故障率高于阈值的域,这指示该域与检查部件104不兼容)、以前是有风险但通过观察实际上是高风险的域(威胁率超过配置阈值的域)、以前是有风险但通过观察是低风险的域(其中与该域的总流量相比,检测到的安全事件的数量低于配置目标的域)以及敏感域(其敏感信息率超过阈值)。反馈分析部件106可以过滤结果和/或验证它们以最小化误报和漏报(falsepositivesandfalsenegatives)。然后,它以新的配置(例如,关于[高风险域]、[有风险域]、[白名单]、[低风险域]的新域列表)更新请求路由部件102,从而产生反馈回路。因此,反馈回路用于调节请求路由部件102发送到检查部件104以及被允许绕过检查部件104并直接进入远程主机的未来域。如本领域技术人员将认识到的,反馈部件106优选地(但是不是必须)在与请求路由部件102相同的层上操作。换句话说,如果请求路由部件102操作以执行ip层重定向,则反馈回路可以生成关于ip地址(与域名相对)的统计信息,并以高风险ip地址范围、有风险ip地址和ip地址白名单的形式产生新列表。该系统也可以同时使用域和ip地址进行操作。通过前述的概述,现在提供本发明的详细但非限制性的示例。详细的系统实施例图2示出根据本文的教导的系统的一个实施例。请求路由部件102被实现为dns服务器202。检查部件104在该实施例中被实现为安全web网关(swg)204。注意,图2中所示的部件中的每个部件可以由具有执行计算机程序指令的硬件处理器的一个或更多个通用计算机来实现;所示出的部件可以在任何数量的物理计算机中组合和/或以其它方式分配在任何数量的物理计算机上。威胁情报部件206a用于生成包括作为威胁的域的列表的配置。用于此类检测的算法可以基于先前观察到的威胁、域注册信息、流行度或安全数据馈送(securitydatafeeds)(声誉馈送(reputationfeeds))或任何其它方法。例如以列表形式的配置数据以箭头(0)被发送到dns服务器202。还可以提供有关如何处理“未分类”域的策略。dns服务器202可以使用生成的列表来决定是否应将客户端请求定向到检查部件(在这种情况下,被示为swg204)。如前所述,列表可以包括:[高风险域]–将被dns服务器202阻止的域[有风险域]–将被路由到swg204进行检查的域[白名单]–利用与检查部件204不兼容的协议、包含敏感数据或以其它方式应该绕过系统(如图2中的箭头(3)所示)的域[低风险域]–为了降低成本/改善系统性能并不进行检查的域。例如,dns服务器202可以在威胁情报206a情报中查找由客户端域请求的域,并且如果它在列表[有风险域]中列出,则dns服务器202用swg204的ip地址进行响应,从而将流量定向到那里。更具体地,假设终端用户在客户端设备(终端用户客户端200)上打开应用程序,并且该用户和/或应用程序尝试通过域名访问网站或获得特定服务。在箭头(1)处,应用程序将dns请求发送到dns服务器202,该dns服务器202通过针对终端用户网络(例如,企业网络或isp的网络,或其它)的威胁防护功能进行了增强。dns服务器202在威胁情报206a先前产生的域列表中查找所查询的域名(箭头(0)处),并采用(在需要检查的情况下,箭头2)将检查流量的swg204的ip地址或(在绕过情况下,箭头3)与域名对应的源主机的实际ip地址来响应。dns服务器202产生日志(图2中的l2日志),该日志(图2中的l2日志)指示特定域实际上由客户端查找、查找的[时间戳]、以及dns服务器202是否将其重定向到swg204以进行检查、或做出的其它决定(换句话说,客户端定向的位置)。具有已知与swg204不兼容的流量的域可以被允许绕过,即,为客户端提供了实际的远程主机ip地址,以便避免断开客户端与主机之间的通信。这样的示例在图3中在箭头(3)处示出,其中非web流量被发送到远程主机210。最初,dns服务器202可能不知道应该以该方式绕过哪些域;但是可以看出,本文的教导将使用反馈来开发[白名单],以准确标识这些域。可替代地,该系统可以被布置成使得甚至绕过流量(bypasstraffic)也被路由到另一类型的检查部件(例如,针对另一种协议定制的部件),而不是绕过到源。在箭头(2)处,客户端将http请求发送到由dns服务器202提供的ip地址。这假定了该请求被选择进行检查,因此ip地址指向swg204。注意,在一些实施例中,关于是否绕过swg204的决定可以移动到swg204本身。在该实施例中,在很多情况下或在所有情况下,dns服务器202用swg204的ip地址进行响应。然后,当客户端将请求(例如,箭头(2)处的http请求)定向到swg204时,swg204可以在http消息的主机报头(hostheader)中或甚至在tls加密消息的sni字段中读取客户端的预期域,并决定是直接将第3层(udp/tcp)代理到源还是终止连接并执行如下面进一步描述的其安全功能。在箭头(2)处接收到客户端的http请求后,swg204分析该请求是否有威胁。swg204可能阻止该请求。在箭头(2a)处,如果该请求通过了安全检查,则可以将请求转发到源服务器(208)。在箭头(2b)处,可以从远程服务器208接收响应,swg204也可以检查并阻止或(在箭头2c处)转发到终端用户客户端200。在给定的客户端会话中可能发生任何数量的请求和响应,并且swg204可以检查并阻止它们中的任何一个或全部。更一般地,本文的教导不限于在swg204处执行的任何特定检查技术或威胁检测方法。swg204生成日志(图2中的l1日志),该日志(图2中的l1日志)指示在给定客户端请求中或在主机响应中是否检测到威胁、以及与该请求/响应相关联的域名、以及其它相关信息,诸如时间戳和ip地址。swg204还可以生成指示是否发生某种故障的日志。作为示例,ll日志可以包括如下的此类数据:与安全相关的且敏感的数据1.请求(2)是否被标识为包括威胁2.来自源(108)的响应(2b)是否指示威胁3.客户端请求和响应(例如,来自swg的响应和/或来自源的响应)中传输的字节数4.http方法(例如get、post、put、head)5.访问的特定url6.http请求报头(包括引荐者、内容长度、内容类型、用户代理)7.源服务器的tls证书信息(包括其名称、证书链和到期日期)8.http响应行(包括响应代码、http版本、http服务器软件名称和版本)9.http响应(包括内容长度、web服务器名称(如果可用)等)10.swg204基于防病毒和/或反恶意软件扫描在响应中是否检测到威胁或恶意软件11.是否在请求或响应中找到敏感数据(例如,基于可配置的模式/正则表达式确定的敏感数据,诸如付款卡号、社会保障号码、地址等)失败/错误相关数据12.流量处理是否由于协议不兼容而失败(例如,因为它不是http或其它原因);此类日志可以包括观察到流量时的[时间戳],以及可能观察到的协议。13.客户端请求是否到达了预期的应用协议安全端口(例如端口80或443)14.请求是否包括有效的协议消息(例如格式正确的http请求)15.请求(2)是否是对应用程序协议的有效请求16.对于tls,tls握手是否包括snitls指示(对于tls代理是必需的)17.对于http,流量是否具有主机:http网关所需的报头18.对源(108)的请求(2a)是否失败,以及为什么19.来自源(108)的响应(2b)是否指示(2b)失败,以及如果是,则指示失败代码20.流量处理失败时的任何其它指示。在图2中的箭头(4)处由反馈处理器206a收集来自dns服务器202和swg204的日志。多个swg204实例和多个dns服务器202可能正在系统中产生日志(但这在图2中并未被示出,以避免使图混乱)。换句话说,反馈处理器206b可以从多个机器202、204收集日志,并且在处理之前合并日志。概括来说,多个检查部件102和请求路由部件104(对于任何协议/层)可以以所示的方式将日志提供给反馈处理器206b。反馈处理器206b处理日志以确定未来的入口决策。可以直接从日志中提取特征(例如:到达意外端口的请求数),或可以基于汇总日志进行计算(例如:基于访问的不同url标识共享内容网站)。这些特征可用于在基于监督的机器学习方法中或通过启发式方法对域进行分类。在图3中概述了基于启发式的示例,并且在下面进行说明。在图4中概述了机器学习方法,并且稍后将在本文档中进行描述。在300处,反馈处理器206b生成关于给定时间段的统计信息,以表征由swg204检查的域,并且特别例如基于以上l1日志项1至3中的数据来标识每个域的流量呈现威胁或良性的频率。这可以通过在子例程301处以如下方式实现:查看客户端在l2日志中查询的每个域,并基于l1日志确定该域是否被证明具有安全威胁(例如,对于给定域),计算当请求或响应分析标识出实际威胁时的实例数[t1]以及开始的请求和响应的实例数[b1]。在302处,反馈处理器206b标识以下情况:即使流量被dns服务器202定向到swg204,也没有流量到达swg204。这被称为[故障入口]。对于l1中的每个日志行,这可以在201处通过以下方式来实现:查找该域出现在l1日志中的实例数[o1],以及该域在相同时间段中出现在l2日志[a1]中的情况数。在304处,反馈处理器206b针对每个域标识在给定时间段期间的流量中断情况。这可以通过针对每个域标识以下项来实现:给定域出现在l2日志中的实例数[f1]以及l1日志项4-12中指示的错误条件之一和[s1]情况数,这些是相同时间段内正确处理域时的情况。在306处,反馈处理器206b针对每个域的给定时间段内,将域与承载敏感数据的流量相关联的情况标识出来。这可以通过确定域出现在l2日志中的实例数[sen1]以及在l1日志中观察到的敏感数据的指示来实现。还捕获了未检测到域的敏感数据时的实例数[nonsenl]。在308处,反馈处理器206基于客户端请求的数量或传输的字节数[vol1]以及在流量检查期间针对该域检测到的安全事件的数量[sec1],标识每个域的流量的量。现在在310处使用在步骤300到308中生成的统计信息。在310处,反馈处理器206b处理日志以产生将影响系统操作进行的一个或更多个反馈调节。这些调节可以包括:o生成对[有风险域]的更新;标识当前列为[有风险域]的域,对于这些域,承载威胁的流量与良性流量的比率足够低,以至于反馈处理器206b认为可以将其从[有风险域]中移除。这可以通过标识在swg204处看到的那些域来实现,其中[t1]÷[b1]情况的比率小于配置的[威胁移除阈值]。o生成对[高风险域]的更新;标识当前列为[有风险域]的域,对于这些域,承载威胁的流量与良性流量的比率足够高,以至于它们被添加到[高风险域]中,并被dns服务器202阻止。这可以通过标识这些域来实现,其中[t1]÷[b1]情况的比例大于配置的[高风险威胁阈值]。o生成[故障入口]:生成域列表,其中故障入口的发生率足够高以证明有理由将其从swg204进行的检查中移除(尽管也许应该将它们定向到其它地方进行检查或将其标记以进行人工检查)。这可以通过标识[a1]减去[o1]情况的数量小于[入口使用阈值]的那些域来实现。o生成[流量故障]:生成域列表,其中流量故障的发生率足够高以有理由将其从swg204进行的检查中移除(尽管也许应该将其定向到其它地方进行检查或标记以进行人工检查)。这可以通过标识如下的域来进行:其中[s1]÷[f1]情况的比率小于[成功阈值],这意味着情况的阈值比率不成功。o[敏感域]:标识流量包含足够高数量的敏感数据的域,应将其从检查中排除或以其它方式特殊处理。对于给定的域流量,可以通过计算[sen1]÷[nonsen1]情况的比率是否小于[敏感数据阈值]来实现该操作。o[低风险域]:通过计算[sec1]÷[vol1]并根据已配置的目标(例如,全部、10%、90%)获取最低x%的域,从而标识安全事件率与总数量相比较低的域。调节有时被称为“过滤器”,因为它们过滤出了不应被重定向的域,例如,由于它们风险不高,由于重定向导致错误(由于协议不兼容或其它原因)和/或因为到这些域的流量具有高级别的敏感数据。在312处,反馈处理器206b然后对[有风险域]列表产生更新,该[风险域]列表不包括表现出至少特定比例(可配置值)的良性流量的域。(请注意,威胁情报206a可以在以后的步骤中覆盖和/或添加新标识的风险域,参见图2,在箭头(5,6)处。)可选地,如果通用域的流行度(基于外部来源)高于可配置阈值,则可以将列表中的域标记为需要批准。例如,可以将候选域列表发送给批准部件以进行批准。在自动检查或由外部人员进行的人工验证之后,批准收到回执。优选地,[有风险域]列表中的每个条目将包括可配置的[衰减]值,该可配置的[衰减]值指示该条目在被丢弃之前应在列表上保留多长时间。[衰减]值实质上用作生存时间(ttl)值。这意味着一段时间后,列表中的条目将过期并被移除(假定对于该域尚未发现新的威胁)。注意,步骤312可以等效地通过产生自被标识为低风险的域(即,反馈处理器206b认为因为足够高的流量比例是良性的,因此不需要检查,应从最终的[有风险域]列表中移除的域)的最后一个基线以来的全新和完整的基线列表或增量列表来执行。同样在312处,反馈处理器206b产生对[高风险域]列表的更新,该[高风险域]列表包括威胁流量比例很高的域。该流量可以表示应作为[高风险域]列表的一部分在dns服务器202处被阻止的域,而不是仅被视为[有风险域]并被发送到swg204以进行检查——因为该域的流量很有可能是威胁。再次,优选地,每个列表条目将包括可配置的[衰减]值,指示何时应丢弃该条目。这意味着一段时间后,列表中的条目将过期并被移除(假定对于该域尚未发现新的威胁)。在314处,反馈处理器206b产生对[白名单]的更新,该更新标识了不应定向到swg204的域。可以通过合并[故障入口]、[流量故障]和[敏感域]中的域列表来创建该列表。在合并过程期间,[白名单]对于每个域注释有对列入白名单被标记的[原因],例如,超过了哪个阈值。优选地,每个列表条目将包括可配置的[衰减]值,该可配置的[衰减]值指示何时应从[白名单]中丢弃该条目。在316处,在将对列表的新更新发布给威胁情报系统206a之前,反馈处理器206b可以对另一个系统执行检查。例如,反馈处理器206b可以将产生的被认为与安全网关不兼容的所有域的列表(在步骤314中)发送到另一系统以进行审查和批准。该审查和批准可以是自动的或人工的。优选地,反馈处理器206b包括用于将每个域列入白名单的[原因],使得外部系统可以访问该信息。外部审查和批准系统可能对于从初始[白名单]中被移除的某些域,以修改的列表(例如,修改的[白名单])做出响应,指示这些域应保留在列表中。在318处,反馈处理器206b将dns域的最终[高风险域]和[白名单]发送给威胁情报206a。这在图2中在箭头(5)处示出。在一些实施例中,威胁情报部件(206a)可以改变这些列表,从而改写反馈处理器206b的推荐。然后,威胁情报部件206a生成具有以下项的最终更新列表:[高风险域]–被阻止[有风险域]–由安全网关分析[白名单]–利用与检查部件104不兼容的协议或者是敏感域或出于其它原因而必须绕过检查部件104将流量直接发送到源(108或其它)的域[低风险域]可以跳过检查的域列表。这些列表更新了先前在图2中的步骤(0)处发送的列表。威胁情报系统206a然后可以在图2中的箭头(6)处(以表格或新列表的形式)分发新配置。作为更新列表的结果,[高风险域]列表、[有风险域]和[白名单]更准确,因此系统操作具有更少的误报和漏报。可以将一些流量(诸如在swg204处导致错误或导致在swg204处存储敏感数据的流量)放在[白名单]上并绕过检查。如前所述,该可能性在图2中的步骤(3)处被示出。教导同样适用于ip层实施例本领域技术人员应当理解,尽管以上过程已将反馈分析描述为基于域(例如,哪些域被阻止或发送以进行检查,哪些域被绕过等)发生,但是在替代实施例中,可以基于ip地址来执行反馈分析。例如,如果dns服务器202被ip层请求路由部件102代替,则优选地,产生关于ip地址的日志,并且例如,反馈分析206b产生具有新添加的高风险ip地址以及应列入白名单的ip地址的配置更新,因为到swg204的请求路由会产生错误。多租户可以通过基于多租户操作swg204来扩展上述教导。也就是说,检查部件104(以及可选地,还包括请求路由部件102)可以被实现为针对各种租户(例如,多个不同的企业、isp等)的托管服务。请求路由、检查和反馈逻辑可以自定义地应用于每个租户的流量。例如,每个租户可具有用于反馈处理的独立配置的阈值(如关于图3所描述的,并且具体而言是步骤300至308)。机器学习实施例观察到的域到[有风险域]配置列表的映射也可以(例如,使用机器学习算法来实现,如上所述。换句话说,反馈处理器206b可以至少部分地使用标识和/或更新[有风险域]列表的机器学习方法来实现。可以使用如已经针对图1-3所述的反馈系统将通过机器学习标识为[有风险域]的那些域路由到swg204并由swg204进行检查,并基于来自[l1]和[l2]的反馈以及启发式方法,可以将此类域移至[高风险域]、[低风险域]、[故障入口]、[敏感]或任何其它列表。换句话说,机器学习实施例可以用于生成[有风险域]列表,而同时,先前描述的启发式方法可以用于生成其它列表。机器学习算法的应用使用具有以下项的输入数据集:标记数据、特征提取和机器学习算法的类型(例如,监督学习、无监督学习和强化学习)。该方法在图4中所示的步骤中被概述。对训练数据的标记在400发生。标记过程包括在训练数据中为域分配标签。一个这样的标签是指示它们是否被认为托管恶意软件的标签。可以使用本领域已知的威胁情报数据馈送来标识(在401处)此类域。此类域也可以通过运行图2-3中所示的系统一段时间来进行标识,以便如关于图3所提到的中步骤300-301收集关于在流量中发现的威胁的发生率的统计信息,并应用启发式方法来标识[有风险域](和/或[高风险域]或其它)域的开始列表。在401处,可以为其它类别的流量创建标签,诸如流量的[白名单]域,其可以由关于[故障入口]、[流量故障]和[敏感域]的标签组成。[低风险]域也可以是标签。在所有上述示例中,可以通过运行如上面相对于图2-3所说明的系统来(初始地)确定标签,以产生应具有给定标签的域的初始列表。然后,可以通过人工和/或其它类型的验证检查来验证初始列表。标签可以是二进制的,多类的,离散的或连续的。例如,如果域托管至少一种恶意软件,则将二进制标签设定为真,否则为假)。多类标签可以基于托管的恶意软件的类型来分配域(例如,托管恶意javascript文件的域与托管恶意可移植可执行文件(portableexecutablefiles)的域不同地标记,换句话说,[高风险域]下多个类)。通过分配检测到的恶意软件的数量或检测为恶意软件的托管文件的比率,可以使用离散和连续标签来评估风险评分。对标记类型的选择取决于用于训练的可用数据和机器学习任务(例如,二进制分类、多分类或回归)。二进制分类应对应于二进制标签、多类分类和多类标签,并回归对应于离散或连续。同样,用于训练的可用数据应用于设定拟合函数。例如:如果数据由swg204收集,该swg204观察流量中出现的每个文件,并且具有完整的信息,则对于从未托管恶意软件的域,可以将二进制标签指定为假。然而,如果可用数据是(例如,从第三方馈送中收集的)部分数据,则只能为几乎确定托管了恶意软件的域分配标签,而对于状态未知的所有其它域为假。在402处发生特征提取。特征提取重点优选地在于传入http流量[l1]的带内特征(如上面针对[l1]所述的特征所接收的,包括例如段落0049中的特征)和传入dns流量[l2](如上面针对[l2]所述的特征所接收的,包括例如段落0043中提到的特征),但也可以利用免费提供的带外数据,诸如:whois信息,其描述每个域的注册详细信息,诸如:注册日期、域所有者、注册域的国家等。特征提取技术过程取决于机器学习模型。传统的机器学习模型(即非深度模型)将需要定义明确的离散和连续变量。例如:域特征矢量将包括基于其http流量的人为设计的特征,诸如:平均每小时http请求、按内容类型值托管的可执行文件的比率、域是否使用易受攻击的web服务器版本的二进制标志等。相反,对于通常被描述为无特征模型的深度机器学习模型,输入可以是http请求和/或响应整体的文本。有了足够的数据样本和计算资源,这些模型通常能够在无需人类专家设计和提取特征的情况下检测模式。下表1提供了针对监督学习模型的训练集的示例,其中隐式设计和提取了特征。训练集中的每个条目都对应单个域。最右边的列是二进制标签,使得仅在已知域托管恶意软件的情况下才将其设定为真。其余的列包括离散、连续和二进制特征,这些特征被假定与模型试图拟合的潜在变量(即标签)有关系。表1机器学习任务的类型(即,有监督的、无监督的或强化的)受制于如上所述的标签的可用性。如果对托管文件具有完全可见性(例如,防病毒扫描所有流量并在检测到恶意软件时返回真),则监督学习将最适合理想地进行训练和测量。然而,如果很少有标签(例如,没有防病毒扫描),则机器学习任务的类型必须不受监督。在无监督学习的情况下,可以通过设定的提取特征对数据进行聚类(上面相对于步骤402提到了示例),以基于其分配的聚类输出有风险域的列表。例如:将托管大量可执行文件的域的聚类被设定为[有风险域]。强化学习的最后一种选择将适用于仅部分信息可用并根据需要收集的情况(例如,仅一小部分域可以被扫描)。在该情况下,使用强化学习将需要状态(例如,扫描域的集合)、动作(例如,将域移除/添加到扫描列表)和奖励(例如,每个检测到的恶意软件的正标量和一段时间内未检测到的负标量)的定义。奖励可以是累积性的,并且因此可以帮助强化算法,以基于试验和错误来选择托管恶意软件的域(例如,参见表1)。图5示出了机器学习实施例,其中,所选择的任务是强化学习。当仅部分信息可用时(例如,进行标记所需的离散时间t+1处的恶意软件检测仅适用于在离散时间t标记为有风险的域的集合),该任务最合适。在图5中,代理500对应于结合图2中所示的系统运行的机器学习代理。换句话说,代理500是反馈处理器206b内的采用l1和l2日志的部件。该环境表示图2的其余部分。换句话说,“动作”被推送到威胁情报引擎206a以部署在dns解析器202中。奖励信息来自反馈处理器206b的管理员配置;状态信息由l1和l2日志中的信息表示。在该方案中,在每个离散时间戳上,代理500获取状态和对其在先前时间戳中进行的动作的奖励。该状态可以包括针对关于先前时间戳基于如在ll日志中指示的在其上检测到的恶意软件设定的[有风险域]的域的新标签,并且奖励可以是对恶意软件检测的正面激励与对没有检测到的负面激励的总和。例如:状态可以包括100个[有风险域]域,其中4个托管了恶意软件或其它防火墙规则触发器,如由swg204发现并在l1中报告。此外,可以设定奖励,使得针对每个域,恶意软件检测(或其它防火墙规则)奖励100点,而没有恶意软件检测奖励-1点。因此,在所述时间戳处的奖励将是4*(+100)+96*(-1)=304。基于奖励,激励代理500维护检测到恶意软件的域(称为“开发(exploit)”),并从[有风险域]列表中移除检测不到恶意软件的域,并可能添加新域(称为“探索(explore)”)。应当基于任务来选择机器学习模型,特别是包括预期的流量的量。对监督学习任务的选择将需要监督学习模型(例如,随机森林、决策树、朴素贝叶斯等)。类似地,无监督学习任务将需要无监督模型(例如,dbscan聚类、期望最大化等),并且强化学习将需要合适的模型(例如,q学习)。基于计算机的实现方式可以使用传统计算机系统来实现本文的教导,但是可以通过本文的教导对其进行修改,其中上述功能特性在专用硬件、由存储在其中的用于专用目的的软件配置的通用硬件、或它们的组合中实现。软件可以包括一个或多个离散程序。任何给定功能可以包括任何给定模块、进程、执行线程或其它此类编程构造的一部分。概括而言,上述每个功能可以实现为计算机代码,即,作为一组计算机指令,可以在一个或多个微处理器中执行以提供专用机器。可以使用如本文的教导所修改的装置——诸如计算机中的微处理器、数字数据处理设备或其它计算装置——来执行代码。在一个实施例中,可以用与代理一起在运行诸如linux的操作系统的标准英特尔硬件平台上运行的编程语言来实现此类软件。该功能可以内置在代理代码中,或者可以作为该代码的附件被执行。尽管在某些情况下阐述了由特定实施例执行的操作的特定顺序,但是应当理解,这样的顺序是示例性的,并且它们可以以不同的顺序、组合等来被执行。而且,一些功能可以在给定的指令、程序序列、代码部分等中组合或共享。说明书中对给定实施例的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不必包括特定的特征、结构或特性。图6是示出计算机系统600中的硬件的框图,在该计算机系统600上可以运行此类软件以实现本发明的实施例。计算机系统600可以实施在客户端设备、服务器、个人计算机、工作站、平板计算机、诸如智能电话的移动或无线设备、网络设备、路由器、集线器、网关或其他设备中。提供本文主题的代表性机器可以是运行linux或linux变体操作系统以及执行所述功能的一个或多个应用程序基于intel的计算机。计算机系统600包括耦合到总线601的微处理器604。在一些系统中,可以采用多个处理器和/或处理器核。计算机系统600还包括主存储器610,诸如随机存取存储器(ram)或其它存储设备,其耦合到总线601以用于存储信息和要由处理器604执行的指令。只读存储器(rom)608耦合到总线601以用于存储信息和处理器604的指令。提供非易失性存储设备606(诸如磁盘、固态存储器(例如,闪存)或光盘),并将其耦合到总线601以用于存储信息和指令。其它专用集成电路(asic)、现场可编程门阵列(fpga)或电路可被包括在计算机系统600中以执行本文描述的功能。外围接口612将计算机系统600通信地耦合到显示在计算机系统上执行的软件的输出的用户显示器614,以及将用户输入和指令传达给计算机系统600的输入设备615(例如,键盘、鼠标、触控板、触摸屏)。外围接口612可以包括接口电路、用于本地总线通用串行总线(usb)的控制和/或电平转换逻辑、ieee1394或其它通信链路。计算机系统600耦合到通信接口616,该通信接口616提供在系统总线601和外部通信链路之间(例如,在物理层、数据链路层处)的链路。通信接口616提供网络链路618。通信接口616可以表示以太网或其它网络接口卡(nic)、无线接口、调制解调器、光接口或其它种类的输入/输出接口。网络链路618通过一个或更多个网络向其它设备提供数据通信。此类设备包括作为局域网(lan)626的一部分的其它计算机系统。此外,网络链路618提供经由互联网服务提供商(isp)620的到互联网622的链路。进而,互联网622可以提供到其它计算系统(诸如远程服务器630和/或远程客户端631)的链路。网络链路618和此类网络可以使用分组交换、电路交换或其它数据传输方法来发送数据。在操作中,计算机系统600可以由于处理器执行代码而实现本文描述的功能。可以从非暂时性计算机可读介质(诸如存储器610、rom608或存储设备606)中读取或存储此类代码。非暂时性计算机可读介质的其它形式包括磁盘、磁带、磁介质、cd-rom、光学介质、ram、prom、eprom和eeprom。可以采用任何其它非暂时性计算机可读介质。执行代码也可以从网络链路618中(例如,根据接口缓冲器、本地存储器或其它电路中存储)读取。应该理解,前述内容已经提出了本发明的某些实施方式,这些实施方式不应被解释为限制性的。例如,以上出于说明性目的已经呈现了某些语言、语法和指令,并且它们不应被解释为限制性的。可以预期,鉴于本公开并且根据其范围和精神,本领域技术人员将认识到其它可能的实现方式。所附权利要求限定了寻求保护的主题。应当指出,鉴于所涉主题的性质,本文出现的商标是其相应所有者的财产,并且是仅用于标识和描述目的,并不以任何方式暗示背书或隶属关系。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1