DNSHijacking(劫持)大家应该都耳濡目染了,历史上MyEtherWallet、PancakeSwap、SpiritSwap、KLAYswap、ConvexFinance等等以及今天的@CurveFinance,十来个知名加密货币项目都遭遇过。但很多人可能不一定知道其劫持的根本原因,更重要的是如何防御,我这里做个简单分享:
DNS可以让我们访问目标域名时找到对应的IP:vxhuang33868
Domain->IP_REAL
如果这种指向关系被攻击者替换了:
Domain->IP_BAD(攻击者控制)微博小新投资笔记
SEC:SEC的使命是让加密货币公司遵守证券规定:金色财经报道,SEC表示,投资大众受到许多安全法的约束,这些法律规范了他们的资金在纽约证券交易所等传统市场的投资和管理方式。数字货币公司不遵守这些相同的规定,这就是核心问题。除了在资金在投资方面为加密平台提供的便利之外,这些公司没有任何正当理由或论据可以豁免遵守此类法律。这严重损害了投资公众的利益,从SEC的角度来看,需要消除这种情况。SEC的使命是让这些公司遵守这些证券规定,但在执行这些目标时他们遇到了问题。[2023/7/10 10:12:45]
那这个IP_BAD所在服务器响应的内容,攻击者就可以任意伪造了。最终对于用户来说,在浏览器里目标域名下的任何内容都可能有问题。DNS劫持其实分为好几种可能性,比如常见的有两大类:
Ankr宣布为Polygon zkEVM提供基础设施支持:3月29日消息,据官方消息,Web3 基础设施提供商 Ankr 宣布为 Polygon zkEVM 提供基础设施支持,通过 Ankr 的现成解决方案套件,包括自定义应用程序编程接口 (API) 和远程过程调用 (RPC),开发人员可以无需任何改动即可在 Polygon zkEVM 上部署与以太坊兼容的代码[2023/3/29 13:32:58]
1.域名控制台被黑,攻击者可以任意修改其中的DNSA记录(把IP指向攻击者控制的IP_BAD),或者直接修改Nameservers为攻击者控制的DNS服务器;
PoS区块链Axelar启动6000万美元创业生态系统计划:12月19日消息,权益证明(PoS)区块链Axelar宣布启动6000万美元创业生态系统计划,致力于加速开发可以取代中心化交易所的去中心化应用程序和协议,促进Web3应用程序的开发,以解决中心化互联网无法解决的全球问题。
该计划目前已经得到超过15个区块链投资者的支持,包括Blockchange、Chorus One、Collab+Currency、Cygni、dao5、DCVC、Divergence Ventures、Dragonfly Capital、Lemniscap、Morningstar Ventures、Nima Capital、Node Capital、North Island Ventures、Rockaway Blockchain Fund和SCB 10X。(Cointelegraph)[2022/12/19 21:54:37]
2.在网络上做粗暴的中间人劫持,强制把目标域名指向IP_BAD。
Celsius计划发行包装资产Token,并允许在其他平台上交易:金色财经报道,Celsius领导层最新泄露的一段录音详细说明了高管们偿还客户的提议,其中包括发行新的包装资产在其他平台上交易。该提议是将Celsius分配给偿还客户的剩余资金注入钱包,然后发行打包的代币,称为Cx代币,以表示公司欠款与手头上的资金之比。例如,等待赎回比特币的客户将收到 CxBTC 代币。
当额外的收入达到时,客户可以赎回他们打包的代币或等待更大的支出。除了赎回机制,Celsius联合创始人兼首席技术官Nuke Goldstein表示,Celsius计划允许在其他场所交易打包的代币,并允许市场为代币定价。?
据悉,Celsius必须在法庭上提出任何提案并获得批准才能继续前进。?[2022/9/22 7:13:46]
第1点的劫持可以做到静默劫持,也就是用户浏览器那端不会有任何安全提示,因为此时HTTPS证书,攻击者是可以签发另一个合法的。
第2点的劫持,在域名采用HTTPS的情况下就没法静默劫持了,会出现HTTPS证书错误提示,但用户可以强制继续访问,除非目标域名配置了HSTS安全机制。
重点强调下:如果现在有Crypto/Web3项目的域名没有强制HTTPS(意思是还存在HTTP可以访问的情况),及HTTPS没有强制开启HSTS(HTTPStrictTransportSecurity),那么对于第2点这种劫持场景是有很大风险的。大家擦亮眼睛,一定要警惕。
对于项目方来说,除了对自己的域名HTTPS+HSTS配置完备之外,可以常规做如下安全检查:
1.检查域名相关DNS记录(A及NS)是否正常;
2.检查域名在浏览器里的证书显示是否是自己配置的;
3.检查域名管理的相关平台是否开启了双因素认证;
4.检查Web服务请求日志及相关日志是否正常。
对于用户来说,防御要点好几条,我一一讲解下。
对于关键域名,坚决不以HTTP形式访问,
而应该始终HTTPS形式
如果HTTPS形式,浏览器有HTTPS证书报错,那么坚决不继续。这一点可以对抗非静默的DNS劫持攻击。
对于静默劫持的情况,不管是DNS劫持、还是项目方服务器被黑、内部作恶、项目前端代码被供应链攻击投等,其实站在用户角度来看,最终的体现都一样。浏览器侧不会有任何异常,直到有用户的资产被盗才可能发现。
那么这种情况下用户如何防御呢?用户除了保持每一步操作的警惕外。
我推荐一个在Web2时代就非常知名的浏览器安全扩展:@noscript(推特虽然很久很久没更新,不过惊喜发现官网更新了,扩展也更新了),是@ma1的作品。
NoScript默认拦截植入的JavaScript文件。
但是NoScript有一点的上手习惯门槛,有时候可能会很烦,我的建议是对于重要的域名访问可以在安装了NoScript的浏览器(比如Firefox)上进行,其他的尽管在另一个浏览器(如Chrome)上进行。
隔离操作是一个很好的安全习惯。许多你可能觉得繁琐的,驾驭后、习惯后,那么一切都还好。
但是这并不能做到完美防御,比如这次@CurveFinance的攻击,攻击者更改了其DNSA记录,指向一个IP_BAD,然后污染了前端页面的
植入了盗币有关的恶意代码。
如果我们之前NoScript信任了Curve,那么这次也可能中招。
可能有人会说了要不要多安装一些浏览器安全扩展,我的看法之前已经提过
这个话题我暂时先介绍到这,目的是尽可能把其中要点进行安全科普。至于其他一些姿势,后面有机会我再展开。
如果你觉得对你有帮助或有什么要补充的,欢迎参与讨论。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。