有时候全工作有时感觉就像“和以前一样”与“该死的一天来了”反复跳跃。当数字化转型在各个部门加速,远远超过安全控制的节奏时,平衡就更加困难了。
打断这一加速过程的问题基本上发生在网站开发和安全环境中。二十年前,一个“典型”所有的网站都是静态页面来发布信息。现在,动态网站应用程序处理极其敏感的数据,并执行关键操作。
敏感信息继续通过几乎每个网站,给攻击者一个完美的机会窃取和销售这些私人信息。事实上,这种攻击已经相当成功,泄漏数量的增长率也在上升。最近的数据显示,2020年第一季度录比2019年第一季度高出273%。
现在,那些在应用安全工作的人已经知道了传统的安全系统(比如WAF该服务器端和网络安全产品)无法防止对网站数据流出的攻击。攻击者将利用客户端侧的安全盲点将恶意代码注入公司网站,而无需成功攻击第一方服务器“定时炸弹”——网站供应链。
代码相关性的收入和风险
现在典型的JavaScript开发过程总是依赖于开源组件来加速发展。这意味着该公司将在其网站上使用数百个外部源代码。在这种情况下,该公司几乎没有控制代码的能力,大多数人最终会选择信任他们使用的可靠和安全的代码模块。但问题是,这些模块也可能依赖于第三方代码,导致代码相关性更加复杂。
代码相关性越大,攻击面越大,攻击者有机会控制部分相关性,并注入恶意代码。
如果这个网站的供应链攻击看起来像是复现SolarWinds因为事件SolarWinds本身就是展示供应链攻击如何达到爆炸效果的完美例子。
最近,攻击者在那里PHP Git远程执行后门植入了官方代码库。然而,在当地代码检查中发现了恶意代码,因此它没有进入官方更新包。然而,它显示了网站供应链中的另一个安全缺陷:如果恶意代码隐藏得更好,它们能进入公开发布的更新包吗?这以前发生过,例如Copay恶意代码影响了几个版本的产品(加密货币钱包),并窃取了用户数据。
另一个事件可以让我们意识到事件更糟。安全研究人员Alex Birsan微软、苹果、PayPal等。尽管说Alex这种行为只是为了道德安全研究,但攻击者很快复制了这种攻击方法,并试图攻击其他尚未开始防御的公司。
这些例子只是冰山的上层。网站供应链广泛而深入,平均每个网站应用包含1000多个外部源代码组件。此外,最近的研究表明,安装代码包意味着间接信任79个第三方代码包和39个维护人员——我们可以猜测现代网站应用的攻击面有多大。
减少潜在危险
那么,有这么多不确定的组件,越来越多的人认为网站供应链将是不可避免的灾难。我们能做些什么?
这个问题的答案可能是使用深度防御,进一步部署更好的供应商管理能力,并在服务器端和网络安全控制上增加一层客户端防御。用新的协议审查和管理第三方供应商越来越重要,尽管很难审查数百个第三方组件。此外,审查只能在一定时间点提供代码状态,但无法识别突然感染的正常代码。因此,在客户端运行时需要增加一层安全控制,以检测和控制可疑的代码行为。在这个级别上,无论是数月还是实时,都可以发现和解决网站供应链造成的数据泄露。
这些都是组织可以采取的减少网站供应链暴露的措施。至少,我希望组织和组织能在最后一秒开始这些操作。