白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

渗透技巧 3年前 (2022) admin
697 0 0
本文发表在S&P 2021上。文章第一作者是Iskander Sanchez-Rola,整篇研究是由NortonLifeLock公司的科研团队完成的。论文采用了tracking技术对于cookie的创建以及分享的链路进行追踪,从而对于cookie参与者的行为进行分析,识别出恶意利用cookie的某些可能触发安全漏洞的行为。
本文提出了cookie树以及cookie的创建和传播链的概念,对于不同类型的cookie进行了区分,并以此进行cookie传播的生态链路进行分析,从而对不同的cookie行为在cookie生态中的不同作用进行调研,得出恶意行为可能存在的特征。


一、背景

Web cookie 在用户跟踪中发挥着重要作用,但以前对 cookie 跟踪的测量主要集中在问题的两个方面,即关于识别和测量两个方面:a)哪些域与浏览器创建的cookie相关联, b) 哪些域与其他域共享 cookie。 然而,这些研究是基于一个非常简化的网页模型,它无法捕捉到包含的代码片段之间复杂而微妙的交互和许多不同的组织。这会导致一系列后果。第一,网站的所有者通常不知道实际上是谁在他自己的页面和综合体中创建第一方 cookie。 其次,由于这个之前简化的模型,只研究了cookie共享在第三方 cookie 的上下文中 – 因此仅捕获跟踪全景图的冰山一角。 最后,由准确识别创建 cookie 的代码段,我们可以发现“cookie 冲突”的案例,其中两个同一网站中包含的不同参与者最终会创建cookie 具有相同的名称,从而相互覆盖。

另一方面,先前研究中认为 cookie 共享是一种两方操作,其中 cookie从域 A 通过 HTTP 请求发送到域B. 然而,实际上,该操作涉及三个参与者:谁首先创建了 cookie,谁从浏览器取回cookie并将其包含在 HTTP 请求中,以及谁接收链末端的 cookie。

本文研究的目标是深入了解网页并捕获 cookie 的整个生命周期,从其创建它以后涉及的所有操作,并揭开cookie传播中参与者之间错综复杂的关系网络参与 cookie 生态系统的无数参与者。

 

二、方法

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem


文章提出了三种不同的cookie类型,第一方cookie,第三方cookie,cookie代写:

 

第一方cookie:指网页所有者以自身名义创建的cookie,并发送给用户,如图中所示的绿色cookie。

第三方cookie:指网页所有者导入了第三方库或者资源,第三方库或者资源在此域名上以第三方的名义创建cookie并发送给用户,如图中所示的紫色cookie。

Cookie代写:指网页所有者导入了第三方库或者资源,第三方库或者资源在此域名上以网页所有者的名义创建cookie并发送给用户,如图中所示的黄色cookie。

 

可以看到,原有研究中对于cookie代写和第一方cookie是并没有办法进行有效区分的,文章基于网页资源树模型创建出了cookie树模型。如图所示,包含所有的cookie传播链路在树中。并基于cookie树提出了cookie分享中的四种不同的参与者模型。

 

Cookie创建者:指cookie最初的创建方。(包含第一方cookie创建者,第三方cookie创建者以及cookie代写者)

Cookie发送者:指从浏览器中取回cookie并通过HTTP请求将cookie进行转发的参与者,其中包括self sender(将自己创建的cookie副本转发出去),in-chain sender(将子节点创建的cookie,即在链路中的cookie转发出去)和off-chain sender(将不在链路中的cookie转发出去)

Cookie接收者:指在链路末端接受cookie的参与者。同样包含三种接收者,self receiver(接收来自自己创建的cookie),in-chain receiver(接收来自子节点创建的cookie),off-chain receiver(接收不在链路的中的cookie)

中间者:指既不是创建者,也不是链路终端接收者的所有中间参与者。

除此之外,本文还实现了将域名链接到组织名称的工作,采用了人工分析和自动化的两种方法进行实现其中人工分析采用三个不同列表进行分析,并以此验证自动化的方法的正确性。

 

三、评估

数据集规模

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

本文的评估设计1M个域名,6.2M个网页和138M个cookie的行为。

其中三种cookie的比例如下图:

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem


Cookie树统计分析

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

本文将之前对于cookie的行为分析进行了横向对比,当本文采用cookie树进行建模后,对于二元关系(组织之间)和三元关系(组织之间通过S网页交互)和cookie参与者的建模数量都有了成倍的提升。


Cookie分享分析

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

本文进行了cookie在不同的参与角色之间分享的分析,并且提出了最常见的就是风险行为就是将自己创建的cookie副本发送给自己,以达到追踪用户行为的目的。另一个常见的风险行为就是将自己创建的cookie发送给链路之外的节点,这个涉及到一个隐私授权的问题。而本文认为最危险的是链路之外的接收者,可能存在窃取cookie完成恶意行为的风险。


Cookie碰撞分析白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

本文研究了cookie的碰撞行为,发现71%的cookie碰撞发生在修改标识符cookie中。其余的则是会将标识符cookie修改类型为非标识符cookie。而这种修改更多的来源于是链路外的cookie参与者。

这会导致两种类型的风险:破坏软件体系结构完整和引发安全问题。


链路中的风险页面分析

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

本文还研究了在链路中有多少是存在风险的参与者,本文将参与者的危险程度量化成了1-10,其中1是绝对安全,而10则是确定是恶意的参与者。

在表格中本文提出了有60K个创建者是存在较高风险的,而31K创建者是风险极高的,甚至有接近3K的创建者是几乎确定恶意的。

整体来看则有24%的页面中存在有至少一个高风险的参与者。


网页种类分

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

本文还就网页的种类进行了调研,将不同种类之间网页cookie链路相似性进行了一个评分,结果发现大多数相似的网页都依赖于相同的主流广告推送。而那种几乎不相同的网页则是分离了广告和主体内容的网页种类。


重要cookie参与者分析

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

在这项分析中,本文调研了不同组织的cookie参与者,发现绝大多数参与者都是在链路之外的也就存在有cookie泄露的风险。

组织关系图分析

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

本文就不同组织之间的cookie交互与分享绘制了组织关系图,并发现了其中最大的cookie交互量发生在google和facebook之间。而AppNexus则作为一个重要的转发方,在cookie链路结构中起到了重要作用。


不在trackerlists的组织分析

本文还对于不在trackerlists的组织进行了比较简单的分析,发现有166k的小型组织并不在trackerlists里面,作者由此提出trackerlists需要进一步进行完善。


种类关系图分析

白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

本文绘制了不同种类网页之间的cookie分享的的关系图,并由此分析得出web广告和web分析的cookie交互量是最大的。技术服务和商业经济类的网页与其他种类网页进行cookie交互也非常频繁。

四、结论

本文在分析了完整的cookie传播流程之后得出了以下两点结论:在未来应该更多的从法律的角度减少不必要的cookie传播,以及在以后的工作之中需要更加细粒度的对于cookie进行更加有效的分析。


五、Q&A

Q:先前的对于cookie tracking的评估研究主要集中在两个方面,具体是哪两个方面?

A:a) 浏览器中创建的cookie 关联到了哪个领域。b)哪些领域与其他领域分享cookie。


Q:在长调用链最后执行的cookie可能包含多个组织实体,这会带来哪些后果?

A:a)页面所有者无法意识到是谁创建了这个第一方cookie。b)由于这种先前简化的模型,cookie 共享仅在第三方 cookie 的上下文中进行了研究。c)可能导致cookie碰撞。


Q:Cookie ghostwriting本身并不会有隐私问题,但在作者研究中发现可能出现什么潜在问题?

A:可能出现cookie代写者将第一方cookie的副本转发,从而达到追踪第一方cookie的隐私泄露问题。


Q:Cookie flow中主要有哪几类角色?

A:a)cookie创建者:主要是创建cookie的实体(包括第一方cookie,第三方cookie和cookie代写)。B)中间节点(Intermediaries):在cookie tree中既不是根节点也不是叶子节点的中间节点。C)发送者:发送者从其他实体取回cookie之后,明确将他们通过HTTP请求发送出去。其中发送者包括三个角色:own sender(发送自己创建的cookie),in-chain sender 发送子节点创建的cookie,off-chain sender 发送不属于自己链路的cookie。D)接收者 接收者与发送者相对应,同样也有own receiver,in-chain和off-chain


Q:为了防止同一个组织的不同页面创建不同cookie影响结果,作者在研究中做出了什么处理?

A:作者聚合了属于同一组织的节点以避免误报。


Q:作者如何实现从JS中创建的cookie?

A:作者修改了cookie对象在浏览器中的实现来捕获cookie写操作以及追踪脚本的实际操作。


Q:在确定了每个域名的最大私有后缀后,作者采用了什么方法映射域名到组织?

A:作者采用了两种策略,第一种是从三个手工的的列表(disconnect,WhoTracks.me,webxray),第二个是作者自己设计的提高覆盖率的自动化方法。(优先采用第一种策略)


Q:映射自动化方法具体指什么,如何验证有效性?

A:作者设计了一个图结构G:其中包含域名,IP地址和组织名称,用图结构关联不同信息。并采用了保守的方式以避免误报节点之间的联系。作者用手动方式的list作为ground truth并以此验证自动化的方式是否正确。


文案:叶晟柯

排版:ppflower

戳“阅读原文”即可查看论文原文哦~


怀

~


白泽带你读论文 | Journey to the Center of the Cookie Ecosystem


原文始发于微信公众号(复旦白泽战队):白泽带你读论文 | Journey to the Center of the Cookie Ecosystem

版权声明:admin 发表于 2022年5月19日 下午4:30。
转载请注明:白泽带你读论文 | Journey to the Center of the Cookie Ecosystem | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...