如果您已经熟悉数据泄露的概念,那么您可能也熟悉其后果。但是它背后的机制呢?更重要的是,你如何预防它?这是我们将在这篇博文中探讨的两个问题,以便您了解如何有效防止网站数据泄露。
为什么网站会泄露数据?
要回答这个问题,我们首先需要了解一般的现代网站是如何工作的。如果我们看一下最新的统计数据,我们会发现平均网站上运行的所有脚本中大约有 70% 来自第三方。这意味着只有 30% 的网站代码是由公司内部编写和维护的。如果我们仔细研究这些第一方代码,我们会发现它通常由 JavaScript 框架和库组成,例如 React 和 Angular,它们本身是由第三方开发和维护的。
这数百个第三方代码导致了一个复杂的供应链,为公司创造了一个巨大的安全盲点,攻击者可能利用这些盲点来泄露数据。但攻击者究竟如何才能做到这一点?
第三方脚本的一个关键是它们与所有第一方代码具有相同的功能。他们可以访问任何类型的数据,篡改您现有的代码,甚至篡改您的用户与您网站的交互方式。因此,网络供应链的问题。
网络供应链和数据泄露
从代码库到聊天机器人等第三方服务,当您将所有这些外部代码加起来时,您很快就会发现您几乎看不到您网站上实际运行的代码。
出现主要问题是因为网站不断处理非常敏感的信息,例如信用卡详细信息、社会安全号码和私人健康信息。因此,当用户在任何给定网站上输入和提交该数据时,它总是会通过混乱的客户端。如果公司不了解他们正在运行的代码,他们就无法确定是否有任何第三方脚本试图拦截和泄露敏感数据。
如今,攻击者正在利用这个安全盲点并发起 Web 供应链攻击。这些攻击越来越流行,因为如果攻击者设法更改第三方脚本,他们基本上可以将任意代码注入网站并为所欲为。另外,该代码将影响该网站上的所有用户以及使用该脚本的所有其他网站。
Web 供应链攻击也很流行,因为攻击者不必直接针对主网站。他们可以追踪其最薄弱的环节——页面中使用的第三方供应商——并利用他们可能拥有更少的安全资源这一事实。
如何保护网络供应链,防止数据泄露?
防止数据泄漏的第一步是了解客户端实际发生的情况。因此,这意味着您需要实时监控每个单独的脚本并了解其特定行为。这里的一个重要方面是能够知道某个脚本是否以及何时发送数据、特定类型的数据以及数据发送到何处。没有这些信息,您就无法知道某个网络连接是否合法或是否有人企图泄露您的用户数据。
但可见性只是解决方案的一部分。一种预防数据泄漏的方法需要控制网站脚本的所有不同行为,并能够默认限制它们。虽然使用内容安全策略等方法似乎可以解决这个问题,但实际上它们不足以有效解决数据泄露问题。其他方法,如 Web 应用程序防火墙甚至浏览器防御,也达不到要求。
为这个问题找到正确的解决方案需要一种深入的安全方法来提供可见性和控制。要获得可见性,第一步是盘点您网站上运行的所有脚本以及它们正在执行的所有网络连接。这样可以清楚地了解您的客户端是如何构建的,您面临的 Web 供应链风险是什么,以及您的用户数据是如何流经您的客户端的。