DNS攻击的表现形式有很多种,通常都针对连接互联网的域名服务器。有时候DNS攻击只会导致网站下线或者无法访问,但在最坏的情况下,它们可能带来惨痛的代价,就比如Myetherwallet攻击事件(损失资金达15万美元)。如果你身处加密货币领域,防止DNS攻击不是不可能的。
DNS攻击如何运作
本周的一场DNS攻击影响了大量的大型网站,对于Myetherwallet用户来说更是付出了巨大的代价。技术公司Cloudflare在文章《BGP和加密货币》中说明了这场攻击是如何发生的,攻击者优势如何利用DNS系统漏洞的。BGP指的是边界网关协议,是将信息从网络的一部分路由到另一部分的标准网关。
通过现有的70多万个可行路由,从A点到B点或者Z点,又或者是任意一点都可以有很多不同的路径。大多数情况下,这些由不同的互联网供应商运作的链式结构都能够相互沟通,但偶尔会出现意外。通常这些漏洞都是小范围的,是由配置错误导致的。不过,Cloudflare解释道:
有时候(BGP漏洞)是带有恶意目的的。可以通过重新路由前缀来被动地分析数据。
在漏洞爆发的这两个小时内,IP范围内的服务器只响应了myetherwallet.com的查询。部分人已经注意到了服务器发生故障。任何由Route53处理的DNS解析器都只能查询到被BGP漏洞所影响的主服务器。
任何连接到受攻击的DNS解析器的人就会被迫与一家俄罗斯供应商连接,事实证明这家供应商是个骗子。
可以从下图中更直观地看到正常的网络与被攻击的网络之间路由传输的差别。
如何检测DNS攻击
好消息是,在大多数情况下,识别BGP劫持并不需要使用互联网协议结构中的主服务器。首先,浏览器的https地址会出现错误。如果浏览器地址栏的“https”显示为绿色,那么就证明你访问的网站是安全的。如果出现红色或者浏览器发出了警告信息,你就不应该再进行下一步操作了,即使URL是正确的。
Myetherwallet攻击事件的受害者之一就曾看到浏览器提示他连接的网站不安全:“尽管我身体的每个部分都告诉我不要再继续登录了,但我还是这样做了。”由于浏览器中跳出的通知太多,造成了用户的认知疲劳,因此它们很容易忽视重要信息。要知道,并不是所有通知都是垃圾信息:其中有一些十分重要,可能帮你解除困境。
Cloudflare解释道:
如果你在使用HTTPS,虚假网站会显示TLS(传输层安全)证书来源于未知的组织(证书中的域名是正确的,但却是自签的)。这场攻击得以继续的唯一条件就是你接受了这个错误的证书。之后,你发送的一切内容都是加密的,但攻击者却是密钥的持有者。
保管好你的币
Whoismydns.com等网站能够帮助用户核对他们连接到的服务器名称和IP,即核对他们的网络服务供应商(ISP)。不幸的是,除此之外,普通用户什么都做不了,检测BGP漏洞的责任在网络管理者。把加密货币存在中心化的交易所是有风险的,与Myetherwallet等网站以及Etherdelta等去中心化交易所连接也是一样——这两个网站都遭到了DNS攻击,投资者几乎没有选择。有些公司已经开始研究相关技术,提醒加密货币交易所用户承担DNS造成的风险,但距离实际应用还有很远。
唯一确保加密货币安全的方式就是存在不需要连接互联网的硬件钱包里。但要想获取钱包里的币,还是需要连接互联网。为了正常的工作和生活,你不应该每时每刻都担心网络被劫持或攻击。但当你进入在线钱包和交易所时,一定要记得检查https地址。如果你得直觉告诉你有些不对劲,那么就应该相信你的直觉,留意警告信息,这很可能帮你保住你的币。数字货币