虹科分享 | 作为域名系统的SPoF

news2024/11/24 6:20:43

“SPoF”或“单点故障”背后的思想是,如果系统的一部分发生故障,那么整个系统也会发生故障。

这是不可取的。在IT和安全领域,如果一个组件或子组件的故障会导致系统或应用程序严重中断或降级,那么我们通常认为设计有缺陷。

这就把我们带到了SPoF,即域名系统(域名系统)。域名系统是IP地址和人类可读的网站名称和域名的电话簿。例如,在撰写本文时,www.facebook.com解析为IP地址31.13.71.36。要为网站提供服务,计算机和路由器需要达到IP地址,但人类不能(也不应该)在每次想要在网上做任何事情时记住一长串数字和圆点。取而代之的是,我们普通人输入一个由单词组成的域名,比如facebook.com,然后DNS服务器将其转换为IP地址。虽然域名系统是互联网工作原理的基本和关键要素,但它也是许多事件调查和设计失败、测试不足或文档不足的根本原因。

为了说明我的观点,即DNS一直是并将继续是SPoF,我引用了发生在2021年10月4日的一件令人难忘的事件。

在那个周一,全球估计有49亿互联网用户中,有相当大一部分人受到了一个变化的影响,而这一变化对Facebook的工程师来说并不太好,因为他们正在为他们的平台基础设施引入一种配置。具有讽刺意味的是,这一变化可能是为了给他们的DNS基础设施和社交媒体平台带来额外程度的弹性。

事情是这样的:Facebook的BGP路由规则和表中引入了一个错误。(BGP,即边界网关控制,是帮助将互联网上的数据从一台笔记本电脑或工作站路由到其他笔记本电脑、工作站和服务器的协议。)。结果,所有Facebook在一眨眼的时间内就不复存在了。错误的配置也让WhatsApp和Instagram随之而来,因为这些服务和应用程序也依赖于相同的核心Facebook DNS基础设施。

因此,当值团队中的第一批响应人员不知道什么起作用,什么不起作用。

这次中断尤其令人震惊的是它的持续时间。通常情况下,变更控制文档会包含在更改未按预期进行的情况下的回滚计划。然而,出于善意的(但事后看来是有缺陷的)设计和安全考虑,出现了一些复杂情况。首先,Facebook所有的网络管理工具和应用程序都突然不可用,无法访问,因此当值团队中的第一批响应人员完全不知道哪些功能正常,哪些功能不正常;一切似乎都不起作用。即使您已经记住了为了逆转配置更改而需要到达的系统的IP地址,由于配置更改的性质,也没有数据包可以到达这些系统。令人感到滑稽的是,据报道,有人不得不开车到一个数据中心附近的家得宝(Home Depot)购买角磨机,以便打开数据中心的门。为什么?因为为了加固和保护门后的系统,该公司没有使用物理钥匙开门。您现在可能已经猜到了,使用钥匙卡打开门的徽章阅读器依赖于DNS。因为不是所有数据中心附近的工程师都了解BGP配置或有权限访问服务器,这导致了长时间的中断。所以那天,社交媒体用户、广告商和有影响力的人被迫暂停大约6个小时,在Facebook、WhatsApp和Instagram上推广他们的各种产品。

这不是第一次DNS宕机导致宕机,当然也不会是最后一次。即使是最谨慎和勤奋的网络架构师和工程师有时也会遗漏一些东西,但他们应该注意并从这些和其他DNS故障示例中学习。您的组织可能已经创建了一个健壮且容错的DNS设计,其中多个服务器运行在地理上分散的离散网络上。但是,如果您没有将BGP作为一个故障点,那么您仍然面临中断(或由BGP劫持攻击)的风险。

那么,您可以做些什么来保护您的企业免受DNS故障的影响,无论是引人注目的故障还是普通的故障?我建议采取以下步骤:

解决有关SPF记录、DMARC和DKIM的正确DNS配置的“简单问题”。在SecurityScorecard的评级平台上,确实有数百万个可利用的域名和DNS服务器。(我们每天都会扫描所有的IPv4)。观察到的错误配置很容易修复,我们的问题报告可以免费下载,以供贵公司的数字足迹使用。

请务必检查您的核心服务提供商和第三方供应商的DNS运行状况和安全状况。他们对SPoF(即域名系统)的不重视也会扰乱您的业务可用性。

考虑引入DNSSEC,它使用基于公钥加密的数字签名来加强对DNS的身份验证。这将使坏人更难劫持您的流量和冒充您的服务,就像最近发生的一起涉及加密货币盗窃的事件一样。

确保您至少有两个不同的DNS提供商,它们由不同的自治系统编号(ASN)提供服务。您可以使用这个页面查找任何IP地址的ASN,这些页面来自Team Cymru:https://asn.cymru.com/。

有许多同样的例子和故事可以告诉我们,罪魁祸首是域名系统或域名系统安全。对于像我这样多年来一直构建和管理互联网服务和网络的人来说,“永远都是域名系统”是一句口头禅。

但我希望你能考虑到以上几点,而且不会是域名系统。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/333859.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

OpenAI GPT3 + Flask 利用 text-davinci-003 API 制作自己的交互网页教程 | 附源码 和 Github链接

1. OpenAI GPT3 text-davinci-003 API 最近ChatGPT很火,使用与InstructGPT相同的方法,使用来自人类反馈的强化学习 Reinforcement Learning from Human Feedback (RLHF) 来训练该模型,但数据收集设置略有不同。ChatGPT是在 GPT-3.5 系列中的…

JavaWEB-Servlet

目录 Servlet简介Servlet快速入门Servlet配置详解ServletContext 1 Servlet简介 Servlet 运行在服务端的Java小程序,是sun公司提供一套规范(接口),用来处理客户端请求、响应给浏览器的动态资源。但servlet的实质就是java代码&a…

101-并发编程详解(上篇)

并发编程详解在学习之前,如果多线程的理解足够,可以往下学习,否则的话,建议先看看26章博客(只是建议),注意:可能有些字的字体不对,那么一般是复制粘贴来的,但…

前端构建工具 Vite

文章目录参考环境构建工具构建工具的主要功能目前主流的前端构建工具Vite为什么使用 Vite冷启动WebpackVite热更新优化热更新优化预构建依赖Webpack VS ViteVite 的缺点首屏性能懒加载与 Vite 相关的基本操作获取create-vite创建项目Project nameSelect a frameworkSelect a va…

信息系统与信息化

1.1 信息系统与信息化 1.1.1 信息的基本概念 信息质量属性(掌握)信息传输模型 1.1.2 信息系统的基本概念1.1.3 信息化的基本概念 信息化的五个层次信息化基本内涵信息化的基本概念(了解)六要素关系图(掌握) 1.1.4 信息系统生命周…

Qml学习——动态加载控件

最近在学习Qml,但对Qml的各种用法都不太熟悉,总是会搞忘,所以写几篇文章对学习过程中的遇到的东西做一个记录。 学习参考视频:https://www.bilibili.com/video/BV1Ay4y1W7xd?p1&vd_source0b527ff208c63f0b1150450fd7023fd8 目…

91.【SpringBoot-03】

SpringBoot-03(十四)、任务1.异步任务2.邮件任务(1).简单邮箱发送(2).复杂邮箱发送3.定时任务(1).cron表达式(2).特殊表达式(3).定时任务测试(4).常用cron表达式(十五)、Dubbo和Zookeeper集成1.分布式原理(1).Dubbo文档2.什么是RPC?3.Dubbo的概念和介绍(1).Dubbo是什么(2). Du…

详细聊聊spring核心思想

犹记我当年初学 Spring 时,还需写一个个 XML 文件,当时心里不知所以然,跟着网上的步骤一个一个配置下来,配错一个看着 error 懵半天,不知所谓地瞎改到最后能跑就行,暗自感叹 tmd 这玩意真复杂。 到后来用上…

最短路之Dijkstra(15张图解)

🌼多年后再见你 - 乔洋/周林枫 - 单曲 - 网易云音乐 闲来无事听听歌 Dijkstra可解决“单源最短路径”问题 四种最短路算法 Floyd算法 时间复杂度高,但实现容易(5行核心代码),可解决负权边,适用于数据范围…

凭借这份《2022测试八股文》候选者逆袭面试官,offer拿到手软

《2023测试面试八股文》800 道软件测试面试真题,高清打印版打包带走,横扫软件测试面试高频问题,涵盖测试理论、Linux、MySQL、Web 测试、接口测试、App 测试、Python、Selenium、性能测试、LordRunner、计算机网络、数据结构与算法、逻辑思维…

opencv——傅里叶变换、低通与高通滤波及直方图等操作

1、傅里叶变换a、傅里叶变换原理时域分析:以时间为参照进行分析。频域分析:相当于上帝视角一样,看事物层次更高,时域的运动在频域来看就是静止的。eg:投球——时域分析:第1分钟投了3分,第2分钟投…

“学好英语网”首页制作

“学好英语网”首页制作一、实验名称:二、实验日期:三、实验目的:四、实验内容:五、实验步骤:六、实验结果:七、源程序:八、心得体会:一、实验名称: “学好英语网”首页…

Linux第三讲

目录 三、 磁盘和文件管理和使用检测和维护 3.1 磁盘目录 3.2 安装软件 3.2.1 rpm命令 3.2.2 克隆虚拟机 3.2.3 yum或压缩包方式安装jdk 3.2.4 使用虚拟机运行SpringBoot项目 3.2.5 安装mysql80(57) 3.2.6 运行web项目 3.2.7 安装tomcat 三、 …

情人节前夕,竞品在小红书平台如何布局营销策略?

情人节作为全球性消费型节日之一,其营销价值不言而喻。以女性用户群体为主导的小红书平台,更是成为该营销节点众多品牌争夺流量的阵地。 那么,情人节前夕竞品在小红书平台布局什么样的营销策略?创作何种内容,如何推广&…

手把手教你用Python做可视化数据,还能调节动画丝滑度

数据可视化动画还在用Excel做? 现在一个简单的Python包就能分分钟搞定! 而且生成的动画也足够丝滑,效果是酱紫的: 这是一位专攻Python语言的程序员开发的安装包,名叫Pynimate。 目前可以直接通过PyPI安装使用。 使用…

线程池小结

什么是线程池 线程池其实就是一种多线程处理形式,处理过程中可以将任务添加到队列中,然后在创建线程后自动启动这些任务。这里的线程就是我们前面学过的线程,这里的任务就是我们前面学过的实现了Runnable或Callable接口的实例对象; 为什么使用线程池 …

1001. x+y 1002. x+y+z etiger.vip 解析与答案

目录 1001题 题目描述 输入输出格式 输入格式 输出格式 输入输出样例 输入样例#1: 输出样例#1: 头文件和数组等初始定义 第一个函数——converts 第二个函数——add 第三个函数——print 主函数部分 完整代码 1002题 题目描述 输入输出格式 输入格式 输出格…

Vue3快速入门【一】

Vue3快速入门一、Vue脚手架1.1、Vite简介1.2、创建项目二、更换Vue模板支持工具三、项目相关命令解析四、生命周期钩子函数五、ref方法的几种使用方式5.1、ref方法(操作基本类型数据)5.2、ref方法(操作复杂类型数据)5.3、ref方法获取标签六、reacttive方法和toRefs方法七、setu…

开发人员 ONLYOFFICE 文档 v7.3:API 与文档生成器更新

随着版本 7.3 新功能的发布,我们也对编辑器、插件以及文档生成器的 API 进行了更新。在下方了解更多详情。 增强的 WOPI 支持 从现在开始,您可在 WOPI 集成中使用二进制格式,如 doc、ppt 以及 xls。我们现已实现了相应方案,其中包…

ClickHouse 合并树表引擎 MergeTree 索引与数据存储方式

目录 1. 一级索引 1.1 稀疏索引 1.2 索引粒度 1.3 索引数据的生成规则 1.4 索引的查询过程 2. 二级索引 2.1 granularity 与 index_granularity 2.2 跳数索引的生成规则