如何保护您的网站免受cryptojacking攻击

据报道,在过去一个月中,包括美国和英国政府网站在内的4000多个网站(例如英国信息专员办公室(ICO))被报告为其用户提供CoinHive加密矿机。CoinHive crypto miner是一个JavaScript脚本,可以安装在任何网站上,并且以牺牲用户的CPU能力为代价来开发加密货币。

显然,这不是任何受影响的公司的意图。事实上,ICO是在英国成立的独立机构,旨在维护公众利益的信息权利,促进公共机构的公开和个人隐私。这种“加密”攻击是第三方提供商(TextHelp)的直接结果,该提供商在ICO的网站上被入侵,网站所有者以及第三方提供商并不知晓。这一事件最初是由安全专家斯科特•赫尔姆(Scott Helme)在与另一位安全专家伊恩•特朗普(Ian Trump)的密谈后提出的。

如何展开袭击

ICO的网站和与它有关联的网站之前加载了一个第三方网站的文件,这也是一切问题的源头。这些网站基本上会因为直接从第三方网站加载JavaScript文件而导致引入注入式网络攻击。这与所谓的攻击jQuert的内容分发网络没什么两样,因为之前RiskIQ声称它提供开发工具给任何网站的任何用户来直接从他们的内容分发网络加载jQuery。

这个独有的方式对于那些能够大规模损害用户的动态加载依赖项的攻击者非常具有吸引力。即使你相信第三方的提供者,他们仍可能在不知情的情况下被损害,事实上这相当于让那些攻击者坐上了一辆通往恶意侵入的列车。

可以做什么?

正如Scott Helme所指出的,一种可能的方法是将子资源完整性(SRI)属性添加到加载外部脚本的脚本元素中。他甚至建议采用内容安全策略(CSP)来强化SRI标签的使用。虽然这是一个很好的建议,但如果依赖脚本需要定期更新,那么这种方法效果欠佳。CSP有助于限制外部JavaScript(JS)被加载到网站中,但并不意味着确保它期望加载的脚本的完整性。

基于whitelist的CSP真的很难执行,而且熟练的攻击者可能会找到解决办法,因为它不会阻止注册来自白名单域中的外部源代码。关于CSP,谨慎地说,任何基于头部的Web安全控制都可以通过浏览器扩展来解除武装。

使用网页的实时监控进行缓解

如果没有可靠的方法阻止意外代码或标记被注入网站,那么接下来最好的事情就是了解它并能够实时做出反应。通过对网页DOM和JavaScript环境的监控,该网站能够向后台报告webhook,允许它检测到自己的任何变化,包括0天威胁,而不仅仅是已知的注入。

安全团队可以对所注入的内容进行提醒,在某些情况下,甚至可以在找到永久解决方案之前将恶意软件注入现场,从而限制受影响用户的数量。这种方法非常有用,因为它不仅可以识别注入的内容,还可以识别注入的内容。在此之后,可能找出注射是如何插入的,并采取适当的措施来永久解决这种情况。此方法比其他方法更快,因为它还可以检测到0天的威胁。

恶意修改后的脚本不再从browsealoud.com提供,但是可以通过将受感染的文件(而不是当前的文件)强制转换到ICO的网站来复制攻击。与此同时,一个嵌入式代理被手动注入到ICO的网站,以监视网页DOM。这里的目标是获取登陆ICO网页DOM的恶意脚本的输出,并演示如何成功减轻攻击。结果可以在这里找到

结论

当CSP和SRI不足时,实时监控网页的解决方案是一种有效的选择。他们能够搜索DOM修改,JS中毒攻击,JS事件劫持和XSS并报告回后端,从而允许Web应用程序立即作出反应。

随着加密货币日益普及,这些攻击的焦点转向加密,攻击者正试图窃取计算机的周期以获取现金。CBS的Showtime和海盗湾攻击是其他例子。

这一涉及TextHelp的最新事件仅仅是为了证明这种方法对攻击者是多么的有吸引力——特别是如果他们能够对第三方的依赖进行妥协,从而对许多网站进行一次打击。毫无疑问,随着Cryptojacking继续成为头条新闻,我们将在未来看到更多这样的攻击。

作为最后的警告,我们必须强调,在这种情况下,攻击者只关心使用最终用户的CPU来挖掘密码。如果他们的动机和意图不同,会发生什么?在网页中执行任意JavaScript的能力也允许攻击者收集用户访问的任何敏感信息,例如信用卡详细信息或银行信息。

攻击者还可以完全修改DOM并欺骗用户放弃他们的凭证或执行不符合他们最佳利益的操作。ICO和其他组织是否能够并准备好应对类似威胁,从而保护用户并维护其声誉?我们拭目以待。

  • 发表于:
  • 原文链接:https://thenextweb.com/contributors/2018/03/10/protect-website-cryptojacking-attacks

扫码关注云+社区

领取腾讯云代金券