文章目录

  • 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请求的生命周期。本文关注的第三方服务就在上图过程中。

  1. 用户发起对example.com的请求,通过example.com的权威nameserver解析到它的IP地址。(网站的网络服务提供者是该网站的DNS记录的权威机构)
  2. 请求被路由到example.com的web服务器上,如果example.com使用https,则它将会向客户端提供有CA颁发的SSL证书。
  3. 客户端通过联系提供证书撤销列表服务的服务器(CRL分发点或CDP),或者向OCSP服务器询问证书状态来验证证书合法性。(CDP和OCSP由CA管理,其地址包含在证书里面)
  4. 如果证书合法,客户端会向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⋃m​k∈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⋃m​k∈Esp​⋃​fi​(Ewk​,Esk​∖{p})∣

基于这些基本概念,就有了以下问题:

  • 有多少网站关键依赖第三方供应商提供DNS、CDN和CA服务?
  • 就供应商的影响而言,网络生态系统有多集中?就供应商的影响而言,网络中是否存在单点故障?
  • 间接依赖对第三方依赖的盛行有什么影响,以及提供者的影响?
  • 自从Dyn事件以来,在网站的关键依赖、服务提供商的集中度和服务间依赖方面,世界发生了怎样的变化?

3 测量方法

3.1 DNS测量方法

  DNS有两种测量方法:

  1. 将TLD与nameserver进行匹配。(这种方法大多数情况很好,但如果服务提供商使用别名,那就会漏掉)
  2. 将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相关推荐

  1. [论文阅读]《Discovering Graph Functional Dependencies》阅读笔记

    总结: 本文介绍了发现图函数依赖,更加清晰地介绍了可满足性问题.蕴含问题以及验证问题(可满足性问题是寻找Σ,蕴含问题是判断Σ|=φ,验证问题是判断G|=Σ)全文以约化为中心致力于寻找无冗余GFDs集合 ...

  2. The Chubby lock service for loosely-coupled distributed systems 论文阅读笔记

    The Chubby lock service for loosely-coupled distributed systems 论文阅读笔记 特点:高可靠.高可用.粗粒度锁服务.小文件存储 主要用于高 ...

  3. 【论文阅读】定量评估服务模式__Quantitative Assessment of Service Pattern: Framework, Language, and Metrics

    [论文阅读]定量评估服务模式__Quantitative Assessment of Service Pattern: Framework, Language, and Metrics 文章目录 [论 ...

  4. 论文阅读笔记 - Chubby: The Chubby lock service for loosely-coupled distributed systems

    作者:刘旭晖 Raymond 转载请注明出处 Email:colorant at 163.com BLOG:http://blog.csdn.net/colorant/ 更多论文阅读笔记 http:/ ...

  5. 论文阅读 Current Solutions for Web Service Composition

    简单信息 Title Current solutions for Web service composition Journal IEEE Internet Computing Year 2004 A ...

  6. [论文阅读] (14)英文论文实验评估(Evaluation)如何撰写及精句摘抄(上)——以入侵检测系统(IDS)为例

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  7. 【论文阅读】Learning Traffic as Images: A Deep Convolutional ... [将交通作为图像学习: 用于大规模交通网络速度预测的深度卷积神经网络](1)

    [论文阅读]Learning Traffic as Images: A Deep Convolutional Neural Network for Large-Scale Transportation ...

  8. [论文阅读] (13)英文论文模型设计(Model Design)如何撰写及精句摘抄——以入侵检测系统(IDS)为例

    <娜璋带你读论文>系列主要是督促自己阅读优秀论文及听取学术讲座,并分享给大家,希望您喜欢.由于作者的英文水平和学术能力不高,需要不断提升,所以还请大家批评指正,非常欢迎大家给我留言评论,学 ...

  9. 深度学习论文阅读目标检测篇(一):R-CNN《Rich feature hierarchies for accurate object detection and semantic...》

    深度学习论文阅读目标检测篇(一):R-CNN<Rich feature hierarchies for accurate object detection and semantic segmen ...

最新文章

  1. 专访中国移动钱岭:大数据更像是一种“倍增器”
  2. MySQL中的子查询
  3. TensorFlow基础8-实现单层神经网络
  4. mysql创建部分索引
  5. serialVersionUID的作用(转)
  6. LeetCode题组:第1162题-地图分析
  7. 从netty-example分析Netty组件续
  8. 一文串起从NLP到CV 预训练技术和范式演进
  9. 华为HCIE实验考试险过,考试真题分享、答题经验分享
  10. 我一哥们,在东莞和五名女孩被抓了.....
  11. node.js服务器+mongodb数据库(重拾)
  12. python动态运行py代码_Python 动态执行
  13. JPA基础(三):搭建JPA开发环境和全局事务介绍
  14. 常用零部件尺寸公差标注方法
  15. linux系统如何使用ocr图片文字识别
  16. EXCEL 2013中“定义名称”的命名规则
  17. 刘雨昕成为Swisse斯维诗胶原蛋白系列代言人
  18. pip 下载安装包及依赖包 并安装
  19. 索尼xz Android 内存,首发Android 9.0索尼新旗舰XZ2P曝光:搭载骁龙845处理器和6GB内存...
  20. mac上使用使用rz,sz命令

热门文章

  1. 搜索引擎优化SEO和SEM有什么不一样
  2. Unity学习之工厂模式
  3. 手机数控模拟器安卓版_数控机床模拟器手机版下载-数控机床模拟器高级版下载v1.1.4 安卓版-单机手游网...
  4. 2021年通辽市高考成绩查询,内蒙古通辽市2021年高考成绩查询及志愿填报时间安排公布...
  5. Halcon中用于RealSense设备的图像采集接口
  6. 纯阻性与非纯阻性功率最大化传输
  7. 编程(从入门到入土)8
  8. Nutanix 在 2020 .NEXT 大会推出 Kubernetes 平台即服务产品
  9. 特征工程—数据哑变量(独热编码)
  10. 水声工程中的波束形成与MALTAB实现