您可能知道,大多数网站都有第三方分析脚本,可以记录您访问的网页和您所做的搜索。 但最近,越来越多的网站使用“会话重播”脚本。 这些脚本会记录您的击键,鼠标移动和滚动行为,以及您访问的页面的全部内容,并将它们发送到第三方服务器。 与提供汇总统计信息的典型分析服务不同,这些脚本适用于单个浏览会话的录制和回放,就好像有人正在看你一样。
这个数据收集的既定目的包括收集用户如何与网站互动和发现破碎或混乱的网页的见解。 然而,这些服务收集的数据的范围远远超出了用户的期望; 在用户提交表单之前收集输入到表单中的文本,并保存精确的鼠标移动,所有这些都没有任何可视的指示给用户。 无法合理预期这些数据是匿名的。 事实上,一些公司允许发行商明确地将录音与用户的真实身份联系起来。
在本研究中,我们分析了七家顶级的重播公司(基于它们在我们的评测中相对受欢迎程度)。研究的服务包括Yandex、FullStory、Hotjar、user回放、Smartlook、Clicktale和SessionCam。我们在Alexa前5万名网站的482中发现了这些服务。
此视频展示了一家公司的“协同浏览”功能,发布商可以在其中观看用户会话。
会出现什么问题?
由第三方重播脚本收集的页面内容可能会导致敏感信息,如医疗条件、信用卡详细信息以及在页面上显示的其他个人信息,以泄露给第三方作为记录的一部分。这可能会让用户暴露身份盗窃、网络诈骗和其他不需要的行为。在结帐过程和注册过程中,用户输入的集合也是如此。
重放服务提供了手动和自动编辑工具的组合,允许发布者从记录中排除敏感信息。 但是,为了避免泄漏,出版商需要认真检查并清理显示或接受用户信息的所有页面。 对于动态生成的网站,此过程将涉及检查基础Web应用程序的服务器端代码。 此外,每次更新站点或更改站点的Web应用程序时,都需要重复此过程。
一个彻底的修订过程实际上是一些记录服务的一个需求,这些服务明确禁止收集用户数据。这否定了这些会话回放脚本的核心前提,他们将自己推销为即插即用。例如,Hotjar的主页上有这样的广告:“在几秒钟内用一个脚本设置一个Hotjar”,而Smartlook的注册过程将其脚本标签放在一个计时器旁边,“你丢失的每分钟都有很多视频”。
为了更好地了解这些修订实践的有效性,我们建立了测试页面,并安装了来自7家公司的6家公司的重播脚本。从这些测试的结果,以及对一些现场站点的分析,我们强调以下四种类型的漏洞:
1.会议录音中包含密码。 所有研究的服务都试图通过自动排除录音中的密码输入字段来防止密码泄露。 但是,使用文本输入存储未屏蔽密码的移动友好登录框不会被此规则编辑,除非发布者手动添加了编排标签来排除它们。 我们发现至少有一个网站的密码输入到注册表中泄露给SessionCam,即使表单从未提交过。
2.敏感的用户输入以局部和不完美的方式进行编辑。当用户与一个站点进行交互时,他们将在创建账户期间提供敏感数据,同时进行购买,或者搜索站点。会话记录脚本可以使用击键或输入元素记录器来收集这些数据。
所有研究的公司都通过自动编辑功能提供了一些缓解措施,但提供者的覆盖率差别很大。 UserReplay和SessionCam将用相同长度的掩码文本替换所有用户输入,而FullStory,Hotjar和Smartlook按类型排除特定的输入字段。 我们总结下表中其他字段的编辑。
自动编辑不完美; 字段由输入元素类型或启发式进行编辑,这可能并不总是与发布者所使用的实现相匹配。 例如,FullStory会将“autocomplete”属性设置为“cc-number”来重新设置信用卡字段,但会收集没有此属性的表单中包含的任何信用卡号码。
为了补充自动编校,一些会议记录公司,包括Smartlook,Yandex,FullStory,SessionCam,和Hotjar允许网站进一步指定输入元素被排除在录音之外。为了有效地部署这些缓和,发布者需要积极审计每个输入元素,以确定它是否包含个人数据。这是复杂的、容易出错且代价高昂的,特别是作为一个站点或底层的web应用程序代码随时间而变化。例如,金融服务网站fidelity.com有几个针对Clicktale的修订规则,包括嵌套的表和由索引引用的子元素。在下一节中,我们将进一步探讨这些挑战。
一种更安全的方法是默认屏蔽或修改所有输入,如UserReplay和SessionCam所做的那样,并允许将已知安全值列入白名单。 即使完全屏蔽的输入提供了不完善的保护。 例如,UserReplay和Smartlook使用的掩码会泄漏用户密码的长度。
3.手动编辑页面上显示的个人身份信息是一个根本不安全的模式。 除了收集用户输入之外,会话记录公司还收集呈现的页面内容。 与用户输入录制不同,这些公司似乎没有提供默认显示内容的自动编辑功能。 我们测试中的所有显示内容都已经泄漏。
相反,会议记录公司希望网站可以手工标记所有在呈现页面中包含的个人识别信息。敏感的用户数据有许多途径可以在录音中结束,而在几页上的小漏洞会导致在一个会话记录中大量的个人数据积累。
对于完全没有个人信息的录制,网站的网络应用程序开发人员需要与网站的营销和分析团队一起工作,以便在发现的记录中迭代地擦除个人识别信息。 对网站设计进行的任何更改(例如,包含敏感信息的元素的类属性更改,或者将私有数据加载到不同类型的元素中的决定)都需要审阅编辑规则。
作为一个案例研究,我们来看看嵌入FullStory的Walgreens.com的药房部分。 沃尔格林在显示和输入数据上大量使用手动编辑。 尽管如此,我们发现包括医疗条件和处方在内的敏感信息与用户的姓名一起被泄漏到FullStory。
我们不提供上面的例子来指指某网站上的手指。相反,我们的目标是表明,即使对于一个强大的、合法的保护用户数据的大型出版商来说,修订过程也会失败。我们在其他网站上也发现了类似的个人信息泄露,包括联想的结帐页面。资源较少或缺乏专业知识的网站更有可能失败。
4.录制服务可能无法保护用户数据。 录音服务增加了数据泄露的风险,因为个人数据将不可避免地以录音形式出现。 这些服务必须处理记录数据,这些记录数据具有与发布者预期处理用户数据相同的安全实践。
我们提供了一个记录服务如何失败的具体例子。 会议录制完成后,发布者可以使用录制服务提供的仪表板对其进行检查。 Yandex,Hotjar和Smartlook的发布者仪表板都可以在HTTP页面中进行播放,甚至可以在HTTPS页面上进行录制。 这允许活跃的中间人将脚本注入回放页面并提取所有的记录数据。 更糟糕的是,Yandex和Hotjar通过HTTP提供发布者页面内容 - 以前受HTTPS保护的数据现在容易受到被动网络监视的影响。
我们上面强调的漏洞是全页面会话记录的固有特性。这并不是说具体的例子不能确定——事实上,我们检查的出版商可以修补他们的用户数据和密码的泄露。录音服务可以在播放时使用HTTPS。但只要用户数据的安全性依赖于出版商完全修订其网站,这些潜在的漏洞就会继续存在。
文章编译自:www.t00ls.net