入侵虚拟现实:研究员如何利用流行的 Bigscreen VR app
编译:代码卫士团队
纽黑文大学的研究团队发布了视频演示,说明了被多数程序员低估的漏洞如何可导致黑客影响用户的虚拟现实和真实世界的体验。
研究员 Ibrahim Baggili、Peter Casey 和 Martin Vondráček 指出,这些底层漏洞存在于流行的虚拟现实应用 Bigscreen 和其构建平台 Unity 游戏开发平台中。
Bigscreen 是一款流行的VR 应用,号称“虚拟客厅”,朋友们可以一起在虚拟世界中聚会、在虚拟影院中看电影、在走廊中聊天、搭建私密房间、一起协作做项目、在虚拟环境中共享电脑屏幕或控制等。
让虚拟体验变成恐怖体验
视频演示指出,Bigscreen 应用中存在的漏洞可导致研究人员远程劫持 Bigscreen 的 web基础设施(在桌面应用后台运行)并通过自定义命令和控制服务器执行多种攻击场景,包括:
发现私密房间
加入任何虚拟房间,包括私密房间在内
在虚拟房间中隐身但窃听用户
实时查看虚拟现实用户的电脑屏幕
秘密地接收受害者的屏幕分享、视频和麦克风音频
代表用户发送信息
删除/禁止用户出现在某个房间
设置自复制蠕虫,在 Bigscreen 社区传播等
更令人担忧的是,除此之外,Unity Engine 脚本 API 中还存在一个漏洞,可结合 Bigscreen缺陷,完全控制虚拟现实用户的计算机,方法是秘密下载并安装恶意软件或在无需更多交互的情况下运行恶意命令。
Bigscreen VR 应用和 Unity Engine 漏洞
根据研究人员分享的深入的技术详情可知,多个 Bigscreen 缺陷均属于持久性/存储型 XSS 问题,存在于本来供 VR 用户提交用户名、房间名、房间描述、房间类别的输入字段中。
由于易受攻击的输入箱并未被清洁,攻击者本可利用该缺陷在连接至 Bigscreen 走廊和 VR 房间的其它用户安装的应用上注入并执行恶意 JavaScript 代码。
研究人员指出,“基于浏览器的玩家进入房间时,payload 脚本将执行,从而影响房间的所有成员。该攻击向量允许在 Window 范围内执行修改/撤销任意变量/函数。总结而言,在受害者机器上执行 JavaScript 可造成其它很多种攻击如钓鱼弹出信息、伪造的信息和强制的桌面分享。我们在处理私密房间和 Bigscreen 信号服务器进行连接和通信时观测到缺乏验证的情况。结果就产生了多个潜在的漏洞,包括拒绝服务、公共房间操纵、保供给和服务器资源耗尽。”
该研究团队指出,攻击者还能将恶意的 JavaScript payload 注入以利用未经吉路的潜在危险的 Unity Scripting API 秘密地从互联网上下载恶意软件并在目标系统上执行或为所有用户执行。
研究人员指出,“函数 Unity.openLink() 能在默认的6款浏览器中启用 web 连接。包含 HTTP、FTP 或 SMB 连接的 XSS 攻击可导致任意文件遭获取并下载。”他们还认为多数使用 Unity API 的应用易受攻击。
该研究团队是在开展受国家科学基金会资助的一个项目时,测试VR 系统安全性时发现的这些漏洞。
中间房间攻击
如研究人员所述,中间房间攻击是攻击者秘密加入某个虚拟现实房间而对同一个房间其他人不可见的其中一种攻击场景。
研究人员发现,Bigscreen 应用在未执行完整性检查的情况下使用了 DLLs,允许研究员能够修改所选库的源代码并更改其行为,允许它们不可见于使用 XSS payload 的UI。
研究人员指出,“我们的 POC WebRTC 应用能够连接至合法的 Bigscreen 应用,这就导致音频/视频/麦克风/数据流的一端被完全控制。我们的应用在 VR 房间中不可见,因为它无法将任何数据发送至其他人。”
该研究团队负责任地将问题告知 Bigscreen 和 Unity。Bigscreen 证实称在“服务器和流系统”中存在这些安全漏洞,并发布补丁完全修复该问题。
Unity 仅在文档中增加了一项备注表示,其平台“可被用于除 web 页面以外的地方,因此用户必须意识到其重要的安全含义”,证实问题的存在。
推荐阅读
原文链接
https://thehackernews.com/2019/02/bigscreen-vr-hacking.html
本文由代码卫士编译,不代表其观点,转载请注明“转自代码卫士 www.codesafe.cn”。