论文阅读:Analyzing Third Party Service Dependencies in Modern Web Services
文章目录
- Analyzing Third Party Service Dependencies in Modern Web Services: Have We Learned from the Mirai-Dyn Incident?
- 1 背景&目的
- 2 问题范围&一些概念
- 2.1 问题范围
- 2.2 基本概念
- 3 测量方法
- 3.1 DNS测量方法
- 3.2 CA测量方法
- 3.3 CDN测量
- 3.4 服务之间的依赖
- 4 测量结果
- 4.1 直接依赖
- 4.1.1 第三方依赖
- 4.1.2 服务提供者的集中度
- 4.2 间接依赖
- 4.2.1 CA→DNSCA\rightarrow DNSCA→DNS 依赖
- 4.2.2 CA→CDNCA\rightarrow CDNCA→CDN依赖
- 4.2.3 CDN→DNSCDN\rightarrow DNSCDN→DNS依赖
- 5 Case Study
- 5.1 Hospital
- 5.2 Smart Home Company
- 6 总结
Analyzing Third Party Service Dependencies in Modern Web Services: Have We Learned from the Mirai-Dyn Incident?
IMC 2020
1 背景&目的
目前web生态系统越来越依赖第三方服务,例如DNS、CDN。但是第三方服务并不总是安全的,例如2016年的Mirai Dyn攻击、2016的GlobalSign撤销错误事件、2019年的Amazon DNS DDoS攻击等。这些事件就引出了web生态系统的健壮性的问题:
- 除了这些个别事件,是否有其他类型的第三方服务也是影响流行web服务的潜在弱点?
- 网站和第三方供应商之间是否存在隐藏的传递性或间接依赖关系,涉及到集中度和第三方依赖程度?
- 在Dyn事件后,网站是否发生变化,是否减少了对第三方服务的依赖?
本文的目的就是,基于这些问题,对Alexa top 100K的网站进行测量,且主要从基础设施的角度进行测量。即测量DNS、CDN、CA,同时不考虑DoH和DoT,因为它们部署得太少了。
2 问题范围&一些概念
2.1 问题范围
上图显示了一个典型的web请求的生命周期。本文关注的第三方服务就在上图过程中。
- 用户发起对example.com的请求,通过example.com的权威nameserver解析到它的IP地址。(网站的网络服务提供者是该网站的DNS记录的权威机构)
- 请求被路由到example.com的web服务器上,如果example.com使用https,则它将会向客户端提供有CA颁发的SSL证书。
- 客户端通过联系提供证书撤销列表服务的服务器(CRL分发点或CDP),或者向OCSP服务器询问证书状态来验证证书合法性。(CDP和OCSP由CA管理,其地址包含在证书里面)
- 如果证书合法,客户端会向example.com请求内容,内容可能托管在CDN上。网站可能会从其他内容提供者那加载内容,例如javascript libraries、font等。
2.2 基本概念
网站集合表示为W={w1,w2,⋯,wn}W=\{w_1,w_2,\cdots ,w_n\}W={w1,w2,⋯,wn}
这些网站使用的服务集合表示为S={s1,s2,⋯,sm}S = \{s_1,s_2,\cdots,s_m\}S={s1,s2,⋯,sm}
令PSP^SPS表示一种服务类型的所有供应商的集合
- 第三方依赖(Third-party dependency):w∈Ww\in Ww∈W使用一个不同于自己的实体的服务
- 直接依赖(Direct dependency):w∈Ww\in Ww∈W使用p∈Ps1p\in P^{s_1}p∈Ps1获得服务s1s_1s1,那么www直接依赖ppp。一个p′∈Ps2p'\in P^{s_2}p′∈Ps2可能也使用ppp来获得s1s_1s1服务
- 间接依赖(Indirect dependency):对于一个w∈Ww\in Ww∈W或p∈Ps1p\in P^{s_1}p∈Ps1,他们直接依赖p′∈Ps2p'\in P^{s_2}p′∈Ps2,并且p′p'p′直接依赖p′′∈Ps3p''\in P^{s_3}p′′∈Ps3,那么w,pw,pw,p间接依赖p′′p''p′′
- 关键依赖(Critical Dependency):对于一个w∈Ww\in Ww∈W或p∈Ps1p\in P^{s_1}p∈Ps1,他们使用另外一个p′∈Ps2p'\in P^{s_2}p′∈Ps2来获得s2s_2s2服务,如果p′p'p′挂了之后s2s_2s2服务就对w,pw,pw,p不可见,则说w,pw,pw,p关键依赖p′p'p′。换句话说就是依赖的唯一性。
- 服务提供者的集中度(Concentration of a service provider): 计算直接/间接依赖于给定提供商的网站数量。例如,如果100个网站直接使用Dyn,而50个网站间接使用Dyn,则我们说Dyn的集中度为150。令DwpD_w^pDwp表示网站直接依赖的p∈Ps1p\in P^{s_1}p∈Ps1的集合,令DspD_s^pDsp为所有服务类型s∈Ss\in Ss∈S的提供者的集合且这些提供者都直接依赖ppp。那么CpC_pCp为服务提供者的集中度,可计算如下:
Cp=∣fc(Dwp,Dsp)∣=∣Dwp∪⋃s=1m⋃k∈Dspfc(Dwk,Dsk∖{p})∣C_p =|f_c(D_w^p, D_s^p)|=|D_w^p \cup \bigcup_{s=1}^m \bigcup_{k\in D_s^p} f_c(D_w^k,D_s^k\setminus\{p\})| Cp=∣fc(Dwp,Dsp)∣=∣Dwp∪s=1⋃mk∈Dsp⋃fc(Dwk,Dsk∖{p})∣ - 服务提供者的影响力(Impact of a service provider):计算关键依赖于服务提供商的网站数量,例如如果有100个网站使用Dyn,其中80关键依赖它,那么Dyn对80个网站有影响。令EwpE_w^pEwp表示关键依赖于p∈ps1p\in p^{s_1}p∈ps1的网站集合;令EspE_s^pEsp表示所有服务类型s∈Ss\in Ss∈S的提供者的集合且这些提供者关键依赖于ppp。那么IpI_pIp为服务提供者的影响力,计算为:
Ip=∣fi(Ewp,Esp)∣=∣Ewp∪⋃s=1m⋃k∈Espfi(Ewk,Esk∖{p})∣I_p =|f_i(E_w^p, E_s^p)|=|E_w^p \cup \bigcup_{s=1}^m \bigcup_{k\in E_s^p} f_i(E_w^k,E_s^k\setminus\{p\})| Ip=∣fi(Ewp,Esp)∣=∣Ewp∪s=1⋃mk∈Esp⋃fi(Ewk,Esk∖{p})∣
基于这些基本概念,就有了以下问题:
- 有多少网站关键依赖第三方供应商提供DNS、CDN和CA服务?
- 就供应商的影响而言,网络生态系统有多集中?就供应商的影响而言,网络中是否存在单点故障?
- 间接依赖对第三方依赖的盛行有什么影响,以及提供者的影响?
- 自从Dyn事件以来,在网站的关键依赖、服务提供商的集中度和服务间依赖方面,世界发生了怎样的变化?
3 测量方法
3.1 DNS测量方法
DNS有两种测量方法:
- 将TLD与nameserver进行匹配。(这种方法大多数情况很好,但如果服务提供商使用别名,那就会漏掉)
- 将nameserver的SOA(Start of Authority Records)与网站进行匹配。(这种方法不是很好,因为很多情况下网站使用第三方nameserver)
综合两种情况,设计的测量方案:
3.2 CA测量方法
与DNS类似,简单的TLD匹配工作得很好。测量方案:
另外要看一个网站是否关键依赖OCSP和CDP,本文使用的方法是查看是否开启了OCSP Stapling。
3.3 CDN测量
大多数CDN使用CNAME重定向来将资源指向CDN。
- 可以查看一个网站的内部资源的CNAME重定向,并与CNAME到CDN的映射进行匹配
- 可以查看每个内部资源的AS编号,并将AS映射到流行的CDN
这就需要找到内部资源,使用phantomJS获取网站的登录页,并记录至少为页面上的一个对象提供服务的所有主机名。然后对页面的所有内部资源执行dig CNAME查询。
3.4 服务之间的依赖
DNS、CDN、CA服务也会互相依赖,例如CA的OCSP和CDP以及CDN会依赖DNS解析IP;CA可能会使用CDN
4 测量结果
4.1 直接依赖
直接依赖分析:
- 第三方依赖的普遍性
- 查看第三方供应商中网站的集中情况,并确定互联网中的单店鼓掌
- 对比Dyn 2016攻击之后和现在的第三方依赖状态
4.1.1 第三方依赖
1)小众网站对第三方DNS的依赖程度很高。top 100K网站中有89%依赖第三方DNS,85%是关键依赖;而top 100网站中有49%使用第三方DNS,28%是关键依赖。
2)DNS服务提供商的关键依赖,从2016到2020提高了4.7%
3)33.2%的网站使用CDN,更受欢迎的网站越不是关键依赖。对于关键依赖CDN的网站,top 100K占85%,top 100占43%
4)2016和2020年对CDN的关键依赖并没有重大改变
5)更受欢迎的网站对第三方CA的依赖程度越小
6)2016和2020年对CA的关键依赖并没有重大改变
4.1.2 服务提供者的集中度
7)4个DNS提供者是50%的top 100K网站的关键依赖,2个CDN是50%的使用CDN的网站的关键依赖,2个CA是50%的支持HTTPS的网站的关键依赖
8)2016到2020,DNS和CA的提供者集中度增加了,但是CDN提供者的集中度下降了
4.2 间接依赖
间接依赖主要分析:
- 服务提供商之间是否存在关键依赖关系,就像网站一样
- 由关键的服务间依赖产生的间接依赖如何影响网站的第三方依赖,以及供应商之间的集中度
4.2.1 CA→DNSCA\rightarrow DNSCA→DNS 依赖
9)当考虑CA→DNSCA\rightarrow DNSCA→DNS关键依赖时,72%的网站关键依赖3个DNS提供商,而只考虑website→DNSwebsite\rightarrow DNSwebsite→DNS依赖时,这一比例为40%
4.2.2 CA→CDNCA\rightarrow CDNCA→CDN依赖
10)当考虑CA→CDNCA\rightarrow CDNCA→CDN关键依赖时,56%的网站关键依赖3个CDN提供商,而只考虑website→CDNwebsite\rightarrow CDNwebsite→CDN依赖时,这一比例为18%
4.2.3 CDN→DNSCDN\rightarrow DNSCDN→DNS依赖
11)主流的CDN提供商使用私有DNS,因此 DNS提供商的影响几乎没有变化。
5 Case Study
本文给了两个Case Study,还挺有趣的。
5.1 Hospital
网络中断会阻碍医院运作,而实际上。2020年3月22日,新冠流行期间,巴黎医院管理局AP-HP遭到了DDoS攻击。此外2016年的Dyn攻击中,AthenaHealth和AllScripts也遭到中断,因为他们用了Dyn。
本文分析了美国前200家医院的第三方依赖分析
5.2 Smart Home Company
智能家居服务的中断也会造成严重后果,本文分析了23家只能家居公司的第三方依赖,包括智能家居框架(如三星SmartThings、Yonomi等)、智能家居设备(如Lifx、Philips Hue等)。在这23家公司中,14家在本地和云端运营,9家智能家居公司仅在云端运营。
6 总结
本文根据测量结果给出了一些建设性意见:
- 网站在使用第三方服务时需要增强弹性和冗余性,以及需要了解他们所使用的第三方服务隐藏的依赖性。
- 服务提供商应该支持并鼓励冗余,在使用其他第三方服务时也应该是透明的
未来工作方面,包括合并分析网站之间的依赖关系,测量服务提供商的能力,以更好地描绘他们个人的弱点,设计一个防御度量,利用这些度量来评估一个网站的健壮性。
可以构建这样一种服务:给定一个网站,它可以分析其完整的依赖结构,并使网站管理员能够在选择新的服务提供商时做出明智的政策决定。
依赖分析可以扩展到研究服务级别的依赖关系,如支付处理器、消息传递平台、CRM等。
可以对电子商务、教育或政府部门等进行有趣的案例研究,分析它们对第三方的依赖。
论文阅读:Analyzing Third Party Service Dependencies in Modern Web Services相关推荐
- [论文阅读]《Discovering Graph Functional Dependencies》阅读笔记
总结: 本文介绍了发现图函数依赖,更加清晰地介绍了可满足性问题.蕴含问题以及验证问题(可满足性问题是寻找Σ,蕴含问题是判断Σ|=φ,验证问题是判断G|=Σ)全文以约化为中心致力于寻找无冗余GFDs集合 ...
- The Chubby lock service for loosely-coupled distributed systems 论文阅读笔记
The Chubby lock service for loosely-coupled distributed systems 论文阅读笔记 特点:高可靠.高可用.粗粒度锁服务.小文件存储 主要用于高 ...
- 【论文阅读】定量评估服务模式__Quantitative Assessment of Service Pattern: Framework, Language, and Metrics
[论文阅读]定量评估服务模式__Quantitative Assessment of Service Pattern: Framework, Language, and Metrics 文章目录 [论 ...
- 论文阅读笔记 - Chubby: The Chubby lock service for loosely-coupled distributed systems
作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...
- 论文阅读 Current Solutions for Web Service Composition
简单信息 Title Current solutions for Web service composition Journal IEEE Internet Computing Year 2004 A ...
- [论文阅读] (14)英文论文实验评估(Evaluation)如何撰写及精句摘抄(上)——以入侵检测系统(IDS)为例
<娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...
- 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](1)
[论文阅读]Learning Traffic as Images: A Deep Convolutional Neural Network for Large-Scale Transportation ...
- [论文阅读] (13)英文论文模型设计(Model Design)如何撰写及精句摘抄——以入侵检测系统(IDS)为例
<娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...
- 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》
深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...
最新文章
- 专访中国移动钱岭:大数据更像是一种“倍增器”
- MySQL中的子查询
- TensorFlow基础8-实现单层神经网络
- mysql创建部分索引
- serialVersionUID的作用(转)
- LeetCode题组:第1162题-地图分析
- 从netty-example分析Netty组件续
- 一文串起从NLP到CV 预训练技术和范式演进
- 华为HCIE实验考试险过,考试真题分享、答题经验分享
- 我一哥们,在东莞和五名女孩被抓了.....
- node.js服务器+mongodb数据库(重拾)
- python动态运行py代码_Python 动态执行
- JPA基础(三):搭建JPA开发环境和全局事务介绍
- 常用零部件尺寸公差标注方法
- linux系统如何使用ocr图片文字识别
- EXCEL 2013中“定义名称”的命名规则
- 刘雨昕成为Swisse斯维诗胶原蛋白系列代言人
- pip 下载安装包及依赖包 并安装
- 索尼xz Android 内存,首发Android 9.0索尼新旗舰XZ2P曝光:搭载骁龙845处理器和6GB内存...
- mac上使用使用rz,sz命令
热门文章
- 搜索引擎优化SEO和SEM有什么不一样
- Unity学习之工厂模式
- 手机数控模拟器安卓版_数控机床模拟器手机版下载-数控机床模拟器高级版下载v1.1.4 安卓版-单机手游网...
- 2021年通辽市高考成绩查询,内蒙古通辽市2021年高考成绩查询及志愿填报时间安排公布...
- Halcon中用于RealSense设备的图像采集接口
- 纯阻性与非纯阻性功率最大化传输
- 编程(从入门到入土)8
- Nutanix 在 2020 .NEXT 大会推出 Kubernetes 平台即服务产品
- 特征工程—数据哑变量(独热编码)
- 水声工程中的波束形成与MALTAB实现