dns域名解析器的功能1、爬虫技术概述


TsuNAME 是什么

TsuNAME 是什么?DDoS 攻击向量威胁权威 DNS 服务器
计算机科学家发现了一些 DNS 解析器中的一个缺陷,如果未解决,可能会被滥用以对权威 DNS 服务器发起DDoS攻击。
这个被称为TsuNAME的漏洞有可能损害核心互联网服务,在此过程中至少部分网络难以访问。
研究人员在一篇关于该漏洞的论文(PDF) 中解释说:“当域名被错误配置为循环依赖的DNS记录时,就会发生 TsuNAME ,当易受攻击的解析器访问这些错误配置时,它们就会开始循环并向权威服务器和其他解析器快速发送 DNS 查询” .
四位研究人员——SIDN 实验室的 Giovane Moura、NZ 的 Sebastian Castro 和 John Heidemann,以及 USC/ISI 的 Wes Hardaker——使用真实的生产数据,展示了仅两个错误配置的域如何导致 .nz 的总体流量增加 50%权威服务器。
防御 TsuNAME 需要更改一些递归解析器软件,包括循环检测代码和缓存循环相关记录。
维修周期
该团队开发了CycleHunter,这是一种开源工具,允许权威 DNS 服务器运营商检测循环依赖关系,从而准确了解哪些系统需要安全修复工作以抵御潜在的攻击。
在对七个大型顶级域 (TLD) 中的 1.84 亿个域名进行分析后,研究人员过去常常使用工具来查找 1,400 个域名使用的 44 条循环依赖 NS 记录(可能来自配置错误)。
该团队正在与解析器开发人员和许多 TLD 运营商合作,以保护 DNS 系统免受潜在攻击。谷歌公共 DNS 和思科 OpenDNS 已经更新。
Infoblox 的首席 DNS 架构师 Cricket Liu 告诉The Daily Swig,虽然“TsuNAME 肯定是认真的”,但社区“之前已经发现并处理过这样的问题。
“DNS 服务器已经有机制来保护自己免受这些配置中的*一些*,例如循环别名,并且添加一种新机制来检测和处理这个可能并不困难,”刘解释说。
他补充说,解决 TSuNAME 的工作已经在进行中。
刘说:“论文说OpenDNS和谷歌公共DNS已经解决了这个问题。此外,需要修补的最重要的 DNS 服务器是互联网的大型开放递归 DNS 服务器(例如 Google Public DNS 和 Cloudflare),因为这些服务器可能会被坏人用来发起 DDoS 攻击,而且数量并不多那些。”


1、爬虫技术概述


1、爬虫技术概述



网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本,它们被广泛用于互联网搜索引擎或其他类似网站,可以自动采集所有其能够访问到的页面内容,以获取或更新这些网站的内容和检索方式。从功能上来讲,爬虫一般分为数据采集,处理,储存三个部分。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。



相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:




(1) 对抓取目标的描述或定义;




(2) 对网页或数据的分析与过滤;




(3) 对URL的搜索策略。








2、爬虫原理



2.1 网络爬虫原理



Web网络爬虫系统的功能是下载网页数据,为搜索引擎系统提供数据来源。很多大型的网络搜索引擎系统都被称为基于 Web数据采集的搜索引擎系统,比如 Google、Baidu。由此可见Web 网络爬虫系统在搜索引擎中的重要性。网页中除了包含供用户阅读的文字信息外,还包含一些超链接信息。Web网络爬虫系统正是通过网页中的超连接信息不断获得网络上的其它网页。正是因为这种采集过程像一个爬虫或者蜘蛛在网络上漫游,所以它才被称为网络爬虫系统或者网络蜘蛛系统,在英文中称为Spider或者Crawler。





2.2 网络爬虫系统的工作原理



在网络爬虫的系统框架中,主过程由控制器,解析器,资源库三部分组成。控制器的主要工作是负责给多线程中的各个爬虫线程分配工作任务。解析器的主要工作是下载网页,进行页面的处理,主要是将一些JS脚本标签、CSS代码内容、空格字符、HTML标签等内容处理掉,爬虫的基本工作是由解析器完成。资源库是用来存放下载到的网页资源,一般都采用大型的数据库存储,如Oracle数据库,并对其建立索引。



控制器



控制器是网络爬虫的中央控制器,它主要是负责根据系统传过来的URL链接,分配一线程,然后启动线程调用爬虫爬取网页的过程。



解析器



解析器是负责网络爬虫的主要部分,其负责的工作主要有:下载网页的功能,对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。



资源库



主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的数据库产品有:Oracle、Sql Server等。



Web网络爬虫系统一般会选择一些比较重要的、出度(网页中链出超链接数)较大的网站的URL作为种子URL集合。网络爬虫系统以这些种子集合作为初始URL,开始数据的抓取。因为网页中含有链接信息,通过已有网页的 URL会得到一些新的 URL,可以把网页之间的指向结构视为一个森林,每个种子URL对应的网页是森林中的一棵树的根节点。这样,Web网络爬虫系统就可以根据广度优先算法或者深度优先算法遍历所有的网页。由于深度优先搜索算法可能会使爬虫系统陷入一个网站内部,不利于搜索比较靠近网站首页的网页信息,因此一般采用广度优先搜索算法采集网页。Web网络爬虫系统首先将种子URL放入下载队列,然后简单地从队首取出一个URL下载其对应的网页。得到网页的内容将其存储后,再经过解析网页中的链接信息可以得到一些新的URL,将这些URL加入下载队列。然后再取出一个URL,对其对应的网页进行下载,然后再解析,如此反复进行,直到遍历了整个网络或者满足某种条件后才会停止下来。







网络爬虫的基本工作流程如下:




1.首先选取一部分精心挑选的种子URL;




2.将这些URL放入待抓取URL队列;




3.从待抓取URL队列中取出待抓取在URL,解析DNS,并且得到主机的ip,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。




4.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环。