即使您离开攻击页面 MarioNET攻击也使黑客能够控制您的浏览器
Web技术的兴起为Internet开辟了新的可能性。随着新API的出现和对某些功能的支持,浏览器变得越来越强大。
发现这种情况的研究人员将其称为MarioNET,这是一种新的攻击,它突显出,如果没有适当的保护措施,API也可能会被滥用(目前就是这种情况)。
该攻击依赖于所有现代Web浏览器都支持的现有HTML5 API。它不需要安装软件或用户交互,并且即使在用户离开发起攻击的网页后仍然存在。
攻击者可能将计算机的资源用于各种活动,包括DDOS攻击,加密挖掘操作或密码破解。
更新:您会发现一种批评的声音,与本文研究论文所述的情况背道而驰。批评的主要要点是攻击方法依赖于称为PeriodicSync的功能,目前还不属于任何规范。结束
MarioNET使用Service Workers来在攻击中与访问的网页分开运行并在后台运行的脚本。Service Workers的主要思想是将某些计算移到单独的线程中,以免阻塞或减慢与用户交互的应用程序或网页的速度。
Service Workers的生命周期完全独立于其创建的页面。服务人员无法访问网页的DOM(文档对象模型)以及父页面变量和函数。
木偶
Service Worker的使用将系统与原始网站隔离开来,为攻击者提供了持久的控制权,并使得用户很难检测到正在发生的事情。
特别是,我们的系统实现了三个重要目标:
(i)与所访问的网站隔离,以便对所使用的资源进行细粒度的控制;(ii)持久性,即使在关闭父选项卡之后,也可以在后台不间断地继续其操作;(iii)规避行为,避免被试图监视网页活动或传出通讯的浏览器扩展程序检测到。
当用户访问网页时,MarioNET会注册服务工作者。传播攻击的可能性包括创建恶意网站,黑客网站或使用广告。
浏览器向用户提供的关于Service Worker的信息很少;实际上,浏览器并没有向用户强调在网站上创建新的服务工作者。创建服务工作者时,没有警报,没有提示,甚至没有显示提示来询问用户权限的选项。
揭示服务工作人员存在的唯一请求是在用户首次访问网站时(服务工作人员最初注册时)的初始GET请求。尽管在该GET请求期间,监视扩展可以观察服务工作者的内容,但它仍将不会观察任何可疑代码-将会执行与恶意任务有关的代码的服务程序仅在与Puppeteer进行首次通信后才交付给Servant。该通信在浏览器扩展中是隐藏的
使MarioNET特别麻烦的是,它在用户关闭发起攻击的网站后继续在后台运行。当关闭Web浏览器时,该控件结束。研究人员也找到了一种克服此问题的方法,但是它需要使用Web Push API进行用户交互。
保护
服务人员禁用
大多数现代浏览器都包含显示现有Service Worker的选项。Firefox用户可以加载 about:serviceworkers或 about:debugging#workers,而Chrome用户可以加载chrome:// serviceworker-internals /。
您可以使用这些页面上提供的功能注销任何Service Worker。Firefox用户可能会进一步完全禁用Service Worker。
请注意,这可能会影响将其用于合法目的的网站上的功能。您需要在about:config 上将首选项dom.serviceWorkers.enabled设置为false。
某些浏览器扩展,例如Chrome和Firefox的 Service Worker检测器,会在网页注册Service Worker时通知用户。