Edgio Beyond the Edge播客简介第5集:识别和缓解由Andrew Johnson,Sr.托管的零日威胁 产品营销经理–Edgio的安全。
Andrew Johnson:欢迎来到Beyond the Edge,在这里,我们将深入了解影响现代数字化业务的趋势。 我是安德鲁·约翰逊,你的副飞行员本集。 今天,我们将探讨零日威胁的主题,特别是我们如何识别和缓解这些威胁。 今天加入我们的有工程副总裁Dave Andrews Edgio和Edgio首席研究科学家Marcel Flores。
欢迎,Dave。 Marcel,很高兴你们两人来到这里。 您能告诉我们一些关于您自己和您在Edgio的角色的信息吗?
戴夫·安德鲁斯:当然。 感谢您的邀请Andrew。 这是一个令人高兴的事情。 我是工程部副总裁。 我已经在Edgio工作了11年了,我觉得只是一个阴凉处。 从工程角度来看,我负责边缘平台和许多类型的中央基础设施。
安德鲁·约翰逊:太棒了。 谢谢你。
Marcel Flores:是的。 非常感谢您的邀请。 你说,我是马塞尔·弗洛雷斯。 我是Edgio Labs的首席研究科学家,Edgio的研究小组。 我的团队通过进行严格的研究和开发,以及与更广泛的系统和网络研究社区合作,致力于提高网络的性能,可靠性和运营。
什么是零日?
安德鲁·约翰逊:太棒了。 再次感谢大家今天的参与。 因此,在零日威胁这一主题中,我认为快速为我们的受众提供有关零日漏洞和攻击的背景信息非常重要。 在介绍您保护Edgio和我们的客户的一些经验之前,我将尝试简要介绍一下这一点。 那么,就我们这里所说的而言,零日是什么意思呢? 嗯,基本上现代应用程序,现代企业,现代服务是由软件,软件从开源代码,商业化的代码库不同的协议,等等组成的 我们知道没有一个软件是完美的,并且不时会在代码中检测到漏洞。 基本上,”零日”是指发现漏洞的时间段,以及提出修补程序或解决方法的时间,对吗?
因此,开发人员一旦知道漏洞,就会尽快尝试修补该漏洞,或者向客户和用户提供他们可以执行的软件步骤,以防止漏洞被利用。 但基本上,就像我提到的那样,这是一个不会消失的问题。 我们看到CVE或常见漏洞和风险敞口的数量在2022年比2021年每年增加约25%。 发现更多的漏洞并不令人惊讶。 有AI工具可以快速扫描代码库。 当然,良好的行为者和坏的行为者都有财政激励,可以在良好的行为者方面找到这些脆弱性。 有bug赏金计划。
Apple一直为您的iPhone推送代码修复程序,您对此非常熟悉。 好的白帽子研究人员向这些开发者提交漏洞攻击,然后还有一些恶意攻击者也在利用漏洞。 所以,只是一点背景。 也许是您最近听说过的一些常见问题。 HTTP2/Rapid Reset是最近应用程序安全领域中一个非常值得注意的事情。 也许您听说过Log4j,Spring4Shell,或者几年前,Apache Struts 2漏洞在美国造成了大规模的数据泄露,实际上在世界各地。 这只是关于零日威胁的一些背景知识,但也许我会先问Dave一些关于你们为保护Edgio和我们的客户免受零日威胁所做的事情。
Edgio如何保护自己及其客户免受零日威胁?
戴夫·安德鲁斯:是的,是的。 因此,我认为安全是关于深度防御的,对吧? 就像,您从来没有做过任何特定的事情。 它更多的是确保你有许多层都被串联在一起。 想法是如果一两层是不完美的,因为它们都是因为我们有非常聪明的人积极地试图打破它们,我们设计了大量的层和重叠的保护和缓解措施,你知道,这里的重点是,如果一件事失败并不重要,因为还有五件事情会保护你。 所以,退一步,就像第一步一样,我认为最重要的事情之一是一般都属于备灾的水桶。
这至少有三个不同的方面。 第一个让我想到的是卫生。 拥有良好的安全卫生是绝对重要的。 它确实有助于减少您的担忧领域。 那么我指的是卫生呢? 主要有两件事。 其一是保持软件最新或定期修补。 这是世界上最无聊的事情。 它也可以说是最好的,最关键的防线之一。 这意味着您可以充分利用您所谈论的所有负责任的披露信息,安德鲁,优秀的白帽研究人员,查找漏洞,向供应商披露漏洞,修复漏洞并推出修复程序。
您可以利用您正在使用的软件中的所有基本已知攻击媒介。 只是因为它是无聊并不一定意味着它很容易,特别是当你的工作规模与我们在Edgio ,以及其他许多地方,它是非常非常困难的管理风险,随着定期升级您的所有软件。 因此,正如我们稍后将会看到的那样,我们在操作上做了很多事情,以使操作更安全,更容易。 但如果你愿意的话,它仍然相当正直地落入卫生桶里。 接下来进入卫生领域的工作是扫描。 这里的要点是积极寻找表明您在坏演员发现问题之前就遇到了问题的迹象。
这有很多种形式。 它可以是内部安全小组或信息安全小组。 您可以聘请外部人员执行扫描。 它可以是两者。 组织通常利用漏洞奖金来鼓励人们采取白帽子路线,发现漏洞将其透露给我们或特定的一方,以便他们可以在被积极利用之前得到修复。 所以这些东西都落入这个桶里,你可以先解决,对吧? 例如,充分利用整个社区正在做的出色工作,使互联网和软件总体上更加安全。 然后主动查看您自己的应用程序,尝试查找漏洞并尽可能主动修复它们。 下一节我想说的是准备,我要转给Marcel,是观察性。
Marcel Flores:是的,谢谢Dave。 因此,我认为在许多这些情况下,另一件重要的事情是能够了解您的网络或基础设施的状况。 所以我认为这可以分为两类,从根本上讲是相同的,但我认为重要的是要指出来。 首先是考虑应用程序级别的行为,对吧? 确保您了解哪些请求进入您的网络,这些请求的功能类型,它们的形状,它们的正常外观以及它们在某些事件中的外观。 我认为同样重要的是,记住,每当您在互联网上通信时,这是一种完整的堆栈操作,对吧?
每个请求都将通过应用层,但也通过较低级别的协议。 因此,留意堆栈下方发生的事情非常重要,对吧? 并了解可能存在来自低层系统的复杂行为和响应,这些应用层行为未能很好地捕捉到这些行为。 因此,重要的是要跟踪这两个组件的排序,并观察这两种情况下发生的情况。 我认为一个关键的部分是能够了解何时交通变化,对吧? 当您的流量超出预期时,对吧? 您可能会开始看到应用程序请求的功能,这些功能不是您通常看到的,对吗? 例如,与GETS相比,HTTP帖子突然增加,想到应用层,想到协议级别,对吧?
这在协议中可能非常复杂,比如HTTP2或更低的协议。 想一想TCP套接字发生了什么以及该级别协议交互发生了什么情况,尤其是当您考虑可能会尝试利用特定漏洞的DDoS攻击之类的情况时。 我认为拥有这些漏洞的关键是,这种可观察性不仅是有指标让您可以看到发生了什么,还可以挖掘这些行为,对吗? 然后相应地划分它们,对吧? 了解是否有特定的用户群体正在生成特定的流量集。 有特定的网络,特定的客户,特定客户的特定财产,对吧? 这样你就可以理解和缩小事情的实际发生地点以及它们可能是如何发生的。
安德鲁·约翰逊:这很有趣。 真有意思。 那么,在您观察到这些不同类型的行为或您认为可能是零日的行为后,您可以采取哪些操作步骤?
您可以采取哪些措施来缓解零日威胁?
戴夫·安德鲁斯:是的,安德鲁 是的。 Marcel谈论的两种要素其实就是基础,对吧? 就像第一个是看事物,看趋势,归根结底是从一个角度看事物,对吧? 比如,这种情况总体上是怎样的? 总的来说,您可以从高层次的角度了解正在发生的事情,它让您可以非常,非常快速地发现变化,就像您所说的那样。 深入潜水的第二部分实际上是能够挑剔和培养您对什么变化的理解,它是在什么层面运作的,它是一种风险,对吗? 就像,你知道,互联网是野生的,狂野的西部,对吧? 就像,事情一直在变化。
新的行为一直在发生。 并非所有这些都是安全问题,对吗? 例如,拥有更广泛的汇总信息集的能力,但可以让您深入挖掘,询问和观察或回答更微妙的问题,让您深入了解发生了哪些变化及其原因,并让您做出决定。 我的天哪,这是好的。 这是一位新客户在做些什么。 或者你知道这实际上是一个问题,或者我们需要去看看。 你知道,远离这个问题,看看发生了什么,对它有一些理解。 你进入喜欢的领域,伟大,那么什么?
“那你想怎么样?” 我们称之为运营敏捷性和敏捷性的桶。 在考虑运营敏捷性时,我们会思考一些高层次的主题。 再说一遍,其中三个是响应性,安全性和冗余性。 所以,只花一点时间来响应每一个响应速度就是听起来的样子,对吧? 从安全角度来看,当出现问题时,时间至关重要,对吧? 正如您所知,您希望能够非常迅速地关闭安全问题,以便给攻击者最少的时间来造成破坏,并给您最长的时间来进行清理。 因此,从非常广泛的意义上来说,我们的目标不仅围绕安全问题,而且围绕我们所做的各种运营更改,我们的目标是在大约5秒内达到99.99%的基础设施。
这就是目标。 我们并不总是能达到目标,因为有些事情必然需要更长时间,但这正是目标。 我们的许多子系统确实达到了这一目标。 安全是一个很奇怪的主题,需要考虑操作敏捷性。 所以让我把它分开一点点。 当你试图以高水平的响应能力做某件事时,你所面临的一个风险是,你可以非常非常快速地解决问题,假设你有完美的观察能力和对正在发生的事情的完美理解,并且你可以完美地预测你将要做出的改变的反应。 这很棒,很多次都是这样。 然而,也有机会,你对这些事情的理解是不完美的,你很可能会使它变得更糟,也非常非常快。
没有人想要这样做。 所以关于安全的全部要点是你把系统,流程,自动化和许多其他事情都投入到其中来确保你不会让事情变得更糟。 这可以归结为几个非常非常高层次的事情。 开始时。 就像主动建模一样。 这在很大程度上适用于基本容量规划,对吧? 例如,如果由于某种原因必须将计算机停机才能修补它们,因为不管出于何种原因,它都需要重新启动服务。 如果您尝试非常快地执行此操作,其中一个风险是您将过多的机器从生产中停用,无法承受当前所承受的负载。 你可以提前知道,对吧?
因此,我们有许多建模系统与工作流程系统集成,因此当您请求以尽可能快的速度修补所有服务器时,它不会立即使所有服务器停止生产。 所以,有基本的安全系统,你可以建立和集成,以防止自己在脚射击。 因此,假设从这个角度看,我们不会让事情变得更糟,只是从纯粹的容量规划基础设施的角度看,我们还想知道,我们所做的更改在应用程序级别或任何级别(可观察性应用程序,协议)上都有预期的效果,无论我们试图缓解的是什么。 那么我们所做的就是利用一个我们称之为煤矿的系统。 我们之前已经写过博客并公开谈论过它,但这里的想法基本上就是一切都是我们所谓的金丝雀——煤矿中的金丝雀。
不管多么可怕,在全球范围内都没有任何事情发生。 至少两个阶段的东西出去。 因此我们将其放置在基础设施的子集上。 通常,在经历事件最严重或最显眼的基础设施中,我们会验证它是否达到预期效果,然后我们很快将其推向市场。 抱歉,请滚动,更广泛地推广,并验证整体问题是否已在全球范围内得到解决。 所以煤矿和金丝雀与其指标和观测系统紧密集成,这样你就可以一目了然地联系起来,这是什么? 这种金丝雀对我正在查看的汇总指标做了什么? 因此,我们得到了实时反馈,嘿,我们所做的改变实际上是在解决问题。
这是非常非常方便的。 我们目前实际正在努力,准备在内部和以后发布,我们将为客户及其配置更改量身打造,基本上是全自动度量分析。 因此,目前当我们做出这样的改变时,需要一个人坐在那儿观察,确保事情发生正确,并确保他们关注的指标朝着正确的方向发展。 然后基本上推进金丝雀,告诉系统,很棒,你已经通过了第一阶段。 一切看起来都很好。 继续前进,进入那种金丝雀的全球阶段。 我们这样做,我们利用系统进行所有更改,不仅仅是您了解安全操作更改,还了解整个系统中流动的所有更改。
随着我们对销售点的可见性越来越高,可见性越来越高,指标越来越多,有关所发生情况的信息越来越多,人们需要查看的信息越来越多,对吧? 而该负载正达到过高的程度。 所以人类开始犯错误,对吧? 因为有太多的图表要看,太多的图表要看,人们会感到疲惫,人们反正是不完美的。 所以我们推出了一个叫做观鸟者的系统,这个系统基本上可以观察金丝雀,它可以对指标进行一些复杂的统计分析,就像这些变化正在展开,给它一个大拇指或一个小拇指。 这是与煤矿集成在一起的,所以我们可以说,嘿,以一种自动化的方式,我们得到一些迹象表明金丝雀是好的,它正在做我们期望的事情。
另外,它不会做任何我们无法预料到的坏事,而且在没有任何人为干预的情况下,部署将会继续进行。 这让我非常兴奋。 这将使我们的响应速度更快,更安全。 因此,当我们谈到安全时,这些是我们要考虑的主要事项,能够快速,安全地解决问题。 我提到的最后一点是冗余,这是相对不言而喻的。 我们利用和部署了一个关键点或理念,这基本上是许多这些变化的双重途径,我们可以实现尽可能多的变革。 因此,双路径意味着,我们思考的两条路径基本上是快速,尽力和缓慢,可靠的。 有了这个想法,我们在世界各地非常,非常,完全不同的地方运营着大量的基础设施。
在几秒钟内就能以百分之百的可靠性打入一切,这是一个童话故事。 就像,这不是可行的东西。 某处的东西总是有问题。 你没有什么可以做的。 所以我们基本上将这些东西分层,类似于安全,纵深防御,对吧? 比如,你把这两件事情放在一起,这实际上是利用快速路径。 尽可能多地去击中你可能可以。 如果您错过任何东西,我们将确保我们有一个冗余的可靠路径,我们将一直重试,直到它正常工作,这会稍微慢一点。 因此,为了给出一些数字,我们将在不到五秒的时间内对大约99.9%的基础设施进行更改,对吧?
喜欢,99.9%是可重复和可靠的。 然后慢速可靠的路径运行在60秒左右。 这个系统会一直尝试直到它基本上成功。 因此,通过将这两者结合起来,我们可以充分利用这两个世界。 如果其中一个子系统完全停机,并不意味着一切都停机了,我们仍然需要最多5分钟的时间。 这两个因素结合在一起,为我们提供了这种响应能力和敏捷性以及我们所追求的可靠性。 还有其他类似的有趣的小事情来确保我们有一些冗余。 您喜欢如何启动这些系统? 就像很多系统一样,聊天机器人集成在一起,所以非常简单。
任何人都可以通过手机从世界任何地方执行此操作。 很多其他东西都有API。 许多子系统都有CLI。 因此,确保这些任务不仅仅是一种方法来完成,这是我们如何尝试构建冗余的另一个示例,以便无论发生什么情况或特定系统可能遇到问题,我们始终可以在指尖实现这种操作灵活性。 我们确保我们拥有所需的控制权和运营能力。 很多这些东西,你知道,都是通用的,但就像我说的,我们尽可能地利用它们。 从我们自己的基础设施工作流程到客户配置更改,包括将机器从生产中撤出并对其进行修补。 这一切都利用了与我们狗食和积极利用自己相同的核心系统。 因此,我们向客户展示的产品非常可靠,非常坚固。
安德鲁·约翰逊:太棒了。 太棒了 感谢Dave。 Marcel,我想您已经谈到了安全团队可以应用于其实践中的最佳实践或注意事项。 欣赏这些技巧。 我知道你们一定会在野外处理一些非常有趣的零日例子,以保护Edgio和我们的客户。 我相信您对这些最佳实践有一些很好的故事和应用。 你能谈一谈这一点吗?
零日示例:HTTP2/Rapid Reset
戴夫·安德鲁斯:是的,是的。 我认为最相关或最近的一个,我想,这是一种有趣的是,你之前提到的,是HTTP2/Rapid Reset攻击。 这是一个非常有趣的经历。 从Edgio的角度来看,有一个小博客,我们写了一篇关于这家伙的文章。 HTTP2/Rapid Reset是一种零日攻击,人们意识到,不仅HTTP2模式服务器库的实现采取了HTTP2 RFC中的某种东西,规范,协议规范作为一般建议,并基本上在库本身编码了。 对不起,这是允许的并发请求数,允许在特定连接上运行的并发流,在规范中写成100。
再加上H2的一个有趣的小方面,您知道,这就是多路复用(单个TCP套接字上有大量请求)的想法,以及取消请求的能力,导致了这一非常有趣的漏洞或DDoS漏洞。 攻击者正在寻找的全部要点是攻击者需要花费少量的钱,而攻击者需要花费更多的钱,而另一端的人则需要花费更多的钱 他们在HTTP2快速重置中发现了它。 这基本上意味着攻击者可以非常非常非常非常迅速地像单个数据包一样快速地闯入发起请求,然后反复取消请求,就像单个套接字上的数百个数据包一样,对不起,单个数据包上有数百个数据包,然后将其发送到服务器。
然后,服务器不仅仅发送单个数据包,还需要做更多的工作。 我们必须创建一个请求,通常我们必须启动代理连接。 这就是CDN要去获取攻击者请求的任何资产。 最后我们必须记录请求发生的情况。 因此,攻击者能够生成这些启动并取消请求的事实非常非常快。 基本上,像任何人遭受攻击,它更昂贵. 处理它们比生成它们更昂贵。 因此,这将成为DDoS漏洞。 所以我们喜欢业内的许多其他人,你知道,被攻击了。
每个人都在同一时间受到攻击,这使得它特别有趣。 这是一个非常广泛的攻击。 我很想了解攻击者在开始时的想法。 因为他们同时攻击许多,许多,许多的提供商。 当我们开始与其他提供商交谈时,我们发现了这一点,哦,您是什么时候看到的? 哦,这与我们看到的完全相同,我们偶然发现了这种攻击。 由于Marcel谈论的观察性,我们确定了发生了什么。 我们开始构建缓解措施,对吧? 因此,缓解措施看起来就像是增加了更多的可观察性,以了解实际发生的事情的核心,然后建立运营控制,让我们能够调整应对措施。
因此,这实际上是怎样的,跟踪任何客户端在特定套接字上重置请求的次数,如果其中的百分比超过预定义的阈值,则终止该连接。 因此,我们的想法基本上是不允许攻击者不断发送这些请求来对其设置上限,从而能够缓解攻击。 因此,我们在构建缓解措施,部署缓解措施,实施缓解措施并验证其确实可以防止这些攻击再次发生之后,发布了博客。 接着我们有业内人士接触到我们看到了博客 我们实际上也受到了这种影响,我们正在努力进行负责任的披露。 因此,我们与业界的一个团队(如Vince)合作,该团队是负责的披露流程的一部分,确保在这种情况下,实施HTTP2库或HPD服务器的人员有时间生成修补程序,在之前部署这些修补程序,漏洞被更广泛地宣传。
这是一个非常非常有趣有趣的流程。 我们能够非常迅速地扭转这种局面,对吧? 部分原因在于我们在卫生和运营以及运营可见性和敏捷性方面所做的工作,我们能够做出一个非常小的改变,对吧? 我的天哪,我们不得不升级这个库,因为我们不会定期更新它,所以我们已经落后于10个版本了。 这不是因为实际上我们落后了一个版本,对吧? 例如,因为我们会定期修补升级,因为这是一个小跃点,所以风险会降低,这意味着您可以在保持我们的低风险阈值的同时非常快速地完成升级。 所以我们很快就做到了,并且我们能够将其推广并抵御攻击。 然后,我们在不知道攻击已经打击了更多的人的情况下发布了博客,他们不仅试图与我们的客户,还试图与行业进行社交。 就像,嘿,这是一个奇怪的东西,我们看到它看起来像它没有什么特定的Edgio ,事实上可能更适用. 原来是这样。
安德鲁·约翰逊:这真的很有趣。 看到您所知的内部视图,全球安全社区通力合作,为每个人改善成果,这一点很酷。 Marcel,您是否想在这方面添加任何内容?
Marcel Flores:是的,我只想添加一个注释,我认为这个例子是一个有趣的例子,在这个例子中,我们最初的观察性肯定显示出奇怪的行为,因为Dave是在描述,对吧? 这种较低级别的协议功能与CDN较高层次行为的交互产生了一些真正意想不到的行为。 其中的一部分是了解到这里发生了什么是严重的不平衡,对吧? 我们看到的请求数与实际发回给客户的请求数之间存在偏差,对吗? 这一点很突出。 尽管这两个指标都是我们一直在收集的,但我们并没有以这种方式进行比较。 结果的一部分是坐下来看着它说,嘿,怎么办,我们如何将我们已经拥有的可见性整合到为检测这个问题而量身定制的东西中? 我们正是能够做到这一点的,并且通过稍微不同的视角查看我们已经拥有的数据,从而提高了我们的可见性范围。
安德鲁·约翰逊:太棒了。 太棒了 请记住这一点。 谢谢你,马塞尔。 是的,伙计们,所以我想我们正在结束。 如果有任何其他建议,您想分享吗? 我认为我们涵盖了一个很高的层次,一些很好的层次。
加强安全态势的建议
戴夫·安德鲁斯:好问题。 我认为一般性的建议是卫生是至关重要的。 专注于您的观察力,我认为我要提醒的是找到可以提供帮助的人,对吧? 就像Edgio这样的公司所提供的关键价值主张的一部分,我们绝对可以提供帮助,对吗? 您有一整支团队,像我和Marcel一样,他们正在努力解决这一问题,并致力于主动防止整个类型的攻击影响到人们。 所以找人能帮忙,对吧? 就像我们构建的许多工具和技术一样,社区也提供了这些工具和技术,可以让您的工作更轻松。 当我们谈论互联网上的事物时,通常,WAF就是最关键的事物,就像最基本的事物一样,我认为这是最关键的例子。
如果实施得当,它就能让您将敏捷性和安全要素结合在一起。 因此Edgio WAF在双模式下运行,这意味着您可以将新规则部署到生产环境中,并部署到正在观察流量的实际机器中。 你可以看到正在发生什么。 Log4j就是一个很好的例子,那就是,你知道,它可以回溯到一点点时间。 当我们制定对此的响应时,我们能够非常非常迅速地制定规则并非常非常快速地验证它。 因为我们推送规则更新,并且能够在实际计算机上以警报模式部署规则更新,并看到它们与攻击匹配,所以向我们的客户展示他们没有受到攻击,也没有受到攻击。 然后做出一个非常由数据驱动的决策,使该规则进入阻止模式,并实际防止这些攻击侵入我们的客户。 所以它将所有这些东西结合在一起,对吧? 例如响应速度,安全性,冗余性和可靠性。 让能帮忙的人来帮忙。 我认为这将是我的主要建议。
安德鲁·约翰逊:这很有道理。 我很感激,戴夫。 是的,我的意思是,当响应零天时,时间至关重要。 所以拥有这些专门的解决方案,但更重要的是,能够帮助您解决这一问题的人员是关闭攻击者大门的关键。 非常感谢各位加入我们。 我也要感谢观众,我们将在下一集再见。 谢谢你。