本次分享的论文是一项关于去中心化域名系统的大规模测量研究,即以太坊域名服务(Ethereum Name Service,ENS)。文章第一作者来自于北京邮电大学。论文围绕以太坊域名服务,对其部署应用的生态以及潜在安全风险进行了系统性的分析。论文录用于国际网络测量顶级会议ACM Internet Measurement (IMC) 2022。
全文约3200字,阅读时间约9分钟。
01
【背景介绍】
域名系统(Domain Name System, DNS)为互联网上层应用提供网络资源的寻址与定位,是互联网关键网络基础设施之一。如图表1所示,传统的域名系统通过“层级化”查询,实现对域名的解析。比如,netsec.ccert.edu.cn的查询中,根域名服务器给出负责 .cn 查询的顶级域名服务器地址,cn 顶级域名服务再给出二级域名服务器的地址,以此类推进行层级解析。
图表 1:传统域名系统的解析流程
传统域名系统在报文交互过程中缺乏对应答响应内容的认证与消息完整性检查,存在着诸多漏洞与安全风险,例如缓存污染攻击 [1]。针对上述问题,安全社区提出了多种解决方案,例如 DNSSEC、DNS over HTTPS(DoH)、DNS over TLS(DoT)等 [2~5],但域名系统仍然难以满足 Zooko 三角评估模型 [6],也即:1)域名标识符具有可读性;2)域名解析具有安全性,即使受到攻击,域名也应被正确解析;3)域名基础设施去中心化,域名解析不需要中心权威机构。
近年来,随着区块链技术的兴起,一些基于区块链的去中心化域名系统被相继提出,以太坊域名服务(ENS)是其中极具代表性的一类。基于密码学的原理,区块中的每一笔交易都通过系统中大多数参与者的确认来进行验证。其中,智能合约是支持以太坊域名服务的关键技术。智能合约是指,运行在以太坊区块链上的计算机程序,其包含一组功能代码和状态数据。
图表 2:以太坊域名服务的解析流程
以太坊域名服务由三种智能合约进行控制,用户可以调用这些合约提供的接口来注册和管理域名,具体包括:
1)注册局是存储以太坊域名及其信息的智能合约 (Registry Contract)。注册局首先会针对每个以太坊域名生成一个固定长度的哈希值,以进行存储。除了以太坊域名,注册局还会存储域名所有者、相应的解析服务器,及其域名解析记录的缓存生存时间(time-to-live,TTL);
2)注册商是分配以太坊域名的智能合约 (Registrar Contract)。注册商根据一些规则(如付款)自动分配.eth 顶级域下的子域名给用户,比如,foo.eth。另外,用户申请的域名还可以通过 DNSSEC 在以太坊域名服务中证明域名的所有权,并设置包含其以太坊地址的TXT记录 [7];
3)解析服务器是记录域名到解析记录映射的智能合约 (Resolver Contract)。解析器可以存储图表3中显示的任意一种解析记录类型。
图表 3:八种官方声明的域名解析记录类型
特别需要注意的是,以太坊域名服务的目的并不是为了取代传统的互联网域名系统,而是仅关注于将以太坊域名解析至区块链上的资源,如区块链地址或者去中心化网站等。
如图表2所示,以太坊域名服务的解析过程主要包括以下两个步骤:1)发起解析查询请求的用户需要查询注册局(Registry Contract)以找到正确的解析服务器(Resolver Contract);2)随后,用户从解析服务器获得域名解析结果。
针对这种新兴的去中心化域名系统,以太坊域名服务(ENS),作者提出了若干研究问题,包括:
1. 目前以太坊域名服务共计包含多少域名?
2. 用户使用以太坊域名服务主要目的是什么?
3. 以太坊域名服务是否会引入新的安全风险?
02
【数据收集】
针对上述研究问题,作者基于数据驱动安全的思路,设计了大规模测量实验,以系统全面地分析以太坊域名服务的生态系统及其安全风险。
如图表4所示,论文的数据收集过程主要包括三个步骤,我们在下文中进行详细介绍。
图表 4:数据收集过程的整体示意图
步骤一:收集以太坊域名服务相关的智能合约。论文利用一个以太坊搜索工具(Etherscan[8])进行相关智能合约的检索。具体来说,该工具根据智能合约的名称,检索与注册局、注册商、解析服务器相关的智能合约。
步骤二:对收集到的智能合约提取其状态变化。针对收集到的智能合约,论文利用一个以太坊客户端,Geth[9],获得每个智能合约的事件日志,事件日志中包括事件名称及其相关参数,并将在满足预定条件时发出。通过事件日志,作者可以获得每个智能合约的状态变化。
步骤三:数据处理。如前文所述,以太坊域名服务的智能合约存储的内容均是哈希值,因此论文使用三种技术将这些哈希值进行恢复,包括:1)根据官方公开的数据进行恢复,即 Dune Analytics 数据平台 [10];2)根据常见英文单词和 Alexa [11] 前10万的域名结合,手动生成一批哈希值,在收集到的数据中进行匹配;3)将包含新注册域名的纯文本进行提取。除了事件日志中的信息外,论文还需要从“域名-所有者”的映射中获得未被哈希处理的以太坊域名,并根据其编码规则恢复以太坊钱包地址和内容哈希,并从相应的交易中获取文本记录的值。
论文通过上述的三个步骤,总共收集到超过270万条注册局日志,440万条注册商日志,以及63.5万条解析器日志。从收集到的日志中,论文恢复出514,567个以太坊域名(包括447,116个.eth域名,占所有.eth名称的90.1%)。
03
【测量结果】
根据收集到的数据,本文针对上述的三个研究问题分别进行了系统的分析。
结论一:以太坊域名服务的注册规模整体呈现持续上升的趋势
如图表5所示,自2017年3月以太坊域名服务提出以来,除了两次由于系统故障导致服务下线引起的域名注册趋势下降,以太坊域名的注册呈现持续增长的趋势。论文发现有超过61万的以太坊域名被注册,其中34.1万个以太坊域名在论文研究期间是活跃的。同时,一些用户为稀有的以太坊域名支付高价的注册费用,或者试图获得尽可能多的以太坊域名。
图表 5:以太坊域名注册行为的时间分布
结论二:以太坊域名服务的用途多样化
通过分析以太坊域名相关的记录类型和信息,论文发现以太坊域名可以解析至各种各样的记录,其中最常见的是链接到区块链地址,同时使用域名解析至其他去中心化网址和文本也很常见。多样化的以太坊域名的用途表明,以太坊域名服务有可能成为区块链基础设施的很重要的一部分。
结论三:以太坊域名服务仍然存在着多种安全风险
论文发现以太坊域名服务不仅容易受到传统的域名系统的安全问题的影响,同时论文还发现了一种新的记录持久性攻击,下文详细描述论文发现的四种安全问题:
1)域名抢注(Domain Squatting)。论文发现在 Alexa 前十万的域名中,有18,984个域名可以在以太坊域名的二级域名中找到,为了确认这样的情况是否属于域名抢注现象,论文通过结合传统域名解析记录及其WHOIS记录,如果存在同一个以太坊地址同时控注册了多个来自不同注册者的传统域名,作者就将这种以太坊域名认为是抢注的。论文最终确定了由2,005个以太坊地址控制的15,117个.eth顶级域下的抢注域名。
2)有恶意行为的域名。借助 VirusTotal [11]平台的检索功能,作者发现了29个存在恶意行为的去中心化网站与一个钓鱼域名。
3)欺诈性的区块链地址。通过从公开渠道收集已经被标记为具有恶意行为的区块链地址列表,作者将其与论文所收集到的以太坊域名解析地址进行交叉匹配,最终发现13个欺诈性的区块链地址。这些地址主要被用于勒索软件等欺诈活动中。
4)持久记录攻击。除了上述三种攻击外,论文还发现了一种新形式的以太坊域名的攻击手段,即持久记录攻击。如图表6所示,过期的以太坊域名器解析记录仍会被保留,因此一些支持以太坊域名服务的钱包仍然可以解析这些过期域名。由于以太坊域名的解析结果通常是区块链地址,因此这种过期的解析记录可能会导致诈骗或严重的财务损失。论文总共发现了22,716个过期的.eth下的以太坊域名仍然拥有解析记录。
图表 6:一个持久记录攻击的示例
04
【结论】
该论文首次对以太坊域名服务进行了系统全面的测量研究,通过收集和分析数百万的以太坊域名服务的日志,论文发现以太坊域名的使用变得越来越普遍,其用途也非常多样化。上述现象都表明以太坊域名服务正在成为区块链基础设施的重要组成部分。然而,论文同时也发现以太坊域名服务仍然存在很多安全风险,包括域名抢注、欺诈域名、持久记录攻击等。
原文链接
https://dl.acm.org/doi/abs/10.1145/3517745.3561469
数据集开源链接
https://ensnames.github.io/ensnames/
参考文献
编辑&审校|刘保君、张一铭
原文始发于微信公众号(NISL实验室):【论文分享】关于去中心化域名系统 ENS 的测量分析(互联网域名系统安全学术前沿系列)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论