本研讨是首批抵消费者沉浸式虚拟理想 (VR) 系统中止保险剖析的工作。本文运用了两种最普遍采用的沉浸式 VR 系统,HTC Vive 和 Oculus Rift。更细致地说,经过创建可能运用户迷失方向的攻击,在他们不知情的状况下翻开他们的头戴式显现器 (HMD) 摄像头,在他们的视野中叠加图像,并修正迫使他们撞击物理对象和墙壁。最后,经过一项人类参与者诈骗研讨来阐明能够胜利应用 VR 系统来控制沉浸式用户并将他们移动到物理空间中的某个位置而他们不知情,将此称为虚拟环境支配(Human Joystick)攻击。 1 Introduction 虚拟理想 (VR) 已进入人们的生活。固然盘绕 VR 和特别是沉浸式 VR 的兴奋不时增加,但必须关注这些平台的保险性。固然关于保险研讨人员来说,沉浸式 VR 需求保险是显而易见的,但在探求沉浸式对人的影响时,先前的工作并没有以系统的方式对其中止检查。本文工作不只发明和假定潜在的 VR 攻击,而且还实施它们。此外,经过一项人类参与者诈骗研讨阐明,的确能够在物理空间中将 VR 用户移动到攻击者喜欢的位置,而无需他们的学问或同意。希望这项工作能促进该范畴未来的研讨,特别是由于沉浸式 VR 对其用户具有心理和生理影响。 VR 正疾速成为一种家居用品,为各种应用提供平台。目前,虚拟现真实游戏、社交、康复和职业培训中得到了普遍的应用,但还有许多其他应用。VR 技术曾经以可接受的价钱变得更容易取得,但其功效尚未完整完成。人们估量 VR 将变得无处不在。由于图形技术、移动 VR 的改进,VR 稳定了其在消费市场的位置。 2017年,国际数据协作组织估量VR设备投资114亿美圆,预测未来四年每年增加 100% 的支出。推进 VR 市场增长的两个关键要素是消费者对沉浸式的盼望和 3D 用户界面的新颖性。诸如 Google Cardboard 之类的小型便携式 VR 完成为兼容的智能手机提供了经济实惠的 VR 环境。一个简单的硬纸板VR能够以大约 15 美圆的价钱置办,以容纳用户的手机。作为 VR 系统,运用谷歌软件的手机将呈现两个平面视图,便于携带和运用。移动 VR 的其他选择包含谷歌 Daydream 和三星的 GearVR,这是最受欢送的,2016 年售出 451 万台。包含运动控制器和红外跟踪等功用的完整沉浸式系统也越来越受欢送,其中最常见的是 Playstation VR (PSVR)、Oculus Rift 和 HTC Vive。这些系统完整设身处地的特性提供了共同的体验。一切 VR 体验的共同点是它们能够创建虚拟环境 (VE)。 2 Background A.虚拟理想组件 由于完整沉浸式的特性,本文工作重点是沉浸式 VR 系统;HTC Vive 和 Oculus Rift。这些系统经过复杂的跟踪系统提供真切的虚拟体验,允许在 VE 中实时复制用户的动作。Oculus Rift 头戴式设备 (HMD) 有一系列发光二极管 (LED),由一个称为Constellation跟踪系统的小型相机跟踪。这是由相邻理想跟踪器 (ART) 弥补的,它具有惯性丈量单元 (IMU)、磁力计、加速度计和陀螺仪。HTC Vive 经过将跟踪传感器放置在头显上并从基站或Lighthouse发射红外 (IR) 光束来反转这些角色。Lighthouse以同步脉冲开端跟踪周期,然后是两次垂直的 IR 扫描。传感器丈量脉冲和扫描之间的时间,以肯定它们与Lighthouse的角度。Vive 还包含一个 IMU,以填补由于障碍物构成的跟踪空白。 跟踪技术的进步带来了房间范围的 VR 体验。房间范围为体验增加了另一个维度,允许 VR 用户在游乐区自由走动。由于玩家的视野完整被HMD封装,所以必须有维护措施来维护玩家免受障碍物(墙壁)的影响。两个系统都完成了相似的处置计划,触及用户在运用控制器玩游戏之前跟踪房间的边疆。Vive 防碰撞维护被称为 Chaperone,是概念考证攻击的目的,而 Oculus Rift 运用术语 Guardian。人们能够将这些视为 VR 假半透明墙,当用户接近真实墙时,它们会在 VR 体验中呈现。 B.OpenVR:攻击层 OpenVR 由 Valve Software 为 SteamVR 设备开发,旨在让开发人员无需依赖供给商特定的软件开发工具包 (SDK) 即可设计应用程序。这是经过提供虚拟功用来完成的,其中兼容的 SDK 能够与初始化的系统相匹配。下图显现了 OpenVR 如何充任 Oculus Rift 的包装器,以允许开发人员在 VR 系统之间完成兼容性。固然目前分发仅限于 HTC Vive 和 Oculus Rift,但在撰写本文时,微软还宣布他们的 VR 耳机将与 Steam 兼容,这意味着它们可能会适用于 OpenVR,由于 Steam 基于开放式虚拟理想。OpenVR 中发现的漏洞可能会影响一切兼容设备。本研讨中描画的攻击是在 OpenVR软件接口级别实施的;固然狐疑硬件层和特定应用程序存在其他保险漏洞,但针对 OpenVR 提供了普遍的攻击面。 SteamVR 是管理 VR 硬件并提供启动应用程序界面的应用程序。HTC Vive 很大水平上依赖于 SteamVR 提供的效劳,例如 Chaperone。Steam 经过充任 Oculus Rift Manager 的包装器为 Oculus Rift 提供兼容性。这在避免抵触的状况下提供了效劳冗余。Oculus Rift Manager 特地提供的效劳不是概念考证攻击的目的,但 Guardian 和 Oculus Manager 的功用十分相似,需求同等的保险评价。在本研讨中,一切对 Chaperone 的援用都特地针对 SteamVR 生成的防撞系统。 3 Apparatus 本节概述了在下表中测试运用的系统和 VR 设备。重要的是要留意这些是现成的设备,提供了细致的细节。一切需求中止这项工作的是一台游戏电脑、HTC Vive 和 Oculus Rift,也构建了自己的工具。 4 Discovery and Attack Implementation 虚拟理想系统的保险剖析有几个主要目的,研讨试图回答以下问题: · VR 用户的保险会遭到要挟吗? · VR 用户会迷失方向吗? · VR用户能够被支配吗? 为了初步了解系统,运用 SteamVR 生成了系统讲演。这产生了边疆数据的位置、默许和当前系统设置、可执行途径位置以及许多其他功用。以纯文本方式存储,没有中止完好性检查,这被以为是一个漏洞。为了完好性,对 Steam、SteamVR 和应用程序工件中止了手动检查。经过检查 API 文档来熟习 OpenVR。小范围的开发工作招致发现缺乏对 VR 资源的访问控制。发现未经检查的应用程序能够访问和修正 VE。无法监管和考证对 VR 系统的访问也被以为是一个漏洞。 A.对立模型 在研讨和发现阶段,采用了强大的对立模型;不限制攻击者的才干。这样做是为了促进强大的保险剖析。由于范围仅限于 VR 系统及其应用程序,假定攻击者以某种方式破坏了目的机器,允许用户之后运用。另一方面,对立性目的是由假定指导的,特别是与沉浸式 VR 相关的假定。与假定分歧并表明攻击胜利,强加了其他几个次要对立性目的: · 目的 VR 用户不会立刻有迹象表明他们的隐私遭到损伤。 · 攻击不会中缀正在中止的 VR 应用程序或表明发作了歹意活动,除非这是攻击的目的。 · VR 用户无需采取任何行动即可发起攻击。 对攻击实施的发现和请求(以下部分)允许进一步完善对立性请求。修正 VE 的攻击需求能够启动 OpenVR 应用程序的实例,或者对 VR 系统配置文件具有有意义的写入权限。配置文件可用性自身不是必须的,但会降低攻击的复杂性并提供其他几个有价值的控制点。影响持续用户体验的才干还需求能够生成 OpenVR 实例,而仅修正配置文件将阻止实时攻击。此外,影响 VR 场景或从运转时央求信息的攻击也需求 OpenVR 实例。普通来说,对手需求修正保险边疆或房间范围配置的才干。 B.攻击分类 将沉浸式攻击定义为任何针对沉浸式 VR 的共同属性和相关沉浸式用户漏洞的攻击。沉浸式攻击会招致 VE 被歹意修正,从而构成身体或肉体伤害和/或干扰用户。依据攻击的结果对沉浸式攻击中止分类,针对沉浸式攻击的细致完成发明了以下新术语: · 迷失攻击(Disorientation Attack):用于惹起沉浸式 VR 用户头晕和困惑感的任何攻击。 · 虚拟环境支配(Human Joystick Attack):用于在用户不知情的状况下控制沉浸式用户的物理移动到预定物理位置的任何攻击。在工作中,经过支配用户的虚拟环境来完成这一点。 · 叠加攻击(Overlay Attack):任何在玩家的 VR 视图上叠加不需求的图像/视频/内容的攻击。播放器将无法删除内容。这种攻击包含耐久图像以及在虚拟空间中坚持固定的内容。 C.工具 支配 Steam 配置文件关于陪伴攻击和迷失方向攻击至关重要。为了解析和修正配置文件,运用了 Python 3.6,特别是 JSON 模块。为了复制场景并证明远程黑客能够实施攻击,整合了一个能够远程执行攻击有效载荷的反向 shell。为了从 HTC Vive 搜集从设备正面 HMD 捕获的图像,应用了运用简单快速多媒体库 (SFML) API构建的用户数据报协议 (UDP) 流。 D.场景 为了向读者提供一些背景信息,在攻击实施之前运用了一个通用场景(下图),在该场景中可能会运用这些要挟。关于有效载荷托付的假定依赖于目的机器的初始妥协以及具有恰当 OpenVR 驱动程序的 VR 系统的存在(默许由 SteamVR 和 Oculus 提供)。任何可能招致用户土地有效载荷执行的漏洞应用或社会工程战略都足以满足此阶段的需求。特地针对这些攻击开发了一个命令和控制 (C2) 侦听器,但是任何后期开发工具(例如 meterpreter)都能够运用。一旦执行, C2 将用于操作必要的配置文件并启动 OpenVR 的实例。这些最小的应用程序会将攻击者的命令转发到 VR 运转时。由于 OpenVR 应用程序是独立的,因而正在中止的 VR 应用程序能够不连续地继续执行。最后,任何提取的信息都会转发回攻击者。 E.陪伴攻击 经过手动系统检查发现了一个 JSON 文件,其中存储了房间设置的细致信息,如下表。每个房间设置或空间都包含代表房间边疆的 3D 几何数据。创建了一个工具来解析和修正 Chaperone 工件中的边疆。该工件描画了一个保险漏洞,其中关键保险特征数据(物理墙边疆)以明文、未加密且易于访问的方式存储。 经过修正 JSON 配置文件开端攻击。HTC Vive 和 Oculus Rift 分别创建了包含工件的目录。假如文件操作发作在用户沉浸在 VR 环境中时,则此修正将无效,直到 VR 系统重新启动。为了应对这一应战,将 OpenVR 实例初始化为后台应用程序(下图,第 1 行)。此应用程序类型无权访问渲染器,也不会启动 SteamVR,但能够向 Steam 进程发送命令。请求 Steam 从磁盘重新加载配置文件(第 2 行)。这会将数据加载到流程的 Chaperone 工作副本中。然后将副本提交给系统,作为活动的 Chaperone(第 3 行)。这种变更在 VR 沉浸期间无缝发作。假如 VR 用户没有认识到 Chaperone,这可能会被忽视并且不会影响渲染。沉浸式用户对不再有效的界线的自信心可能会招致身体伤害。 实施该攻击是由于能够轻松访问 Chaperone 数据及其简单性,但是,需求留意的是,能够在 OpenVR 中完整修正 Chaperone。函数 SetWorkingCollisionBound sInfo 可用于修正 Chaperone 的工作副本的边疆。然后调用 CommitWorkingCopy 将应用更改。假如攻击者的企图是简单地躲藏碰撞边疆,则能够将 opacity 属性设置为透明或 forceVisible 为 false。 F.迷失攻击 迷失攻击与陪伴攻击相似,由于整个过程是相同的。这种攻击会调整沉浸在 VR 中的用户在虚拟游戏空间中的位置和旋转。当用户在没有身体运动的状况下遭到视觉运动提示时,可能会发作视觉诱发运动病 (VIMS) 。经过鼎力和随机地应用平移和旋转,复制了一种晕船的觉得。应用 Python JSON 解析脚本,修正了 Chaperone 配置文件。两个空间特征控制着玩家的方向:偏航战争移。调整平移会招致横向移动,而偏航会影响用户面对的方向。中止小的调整并调用 Chaperone 重新加载,能够控制玩家的方向。 由于实施的攻击运用与陪伴攻击相同的配置文件,因而在 Oculus Rift 上的胜利水平相似于 HTC Vive 中的陪伴攻击。当 Oculus Rift 从 Steam 启动时,能够应用平移和旋转。将在后文讨论驱动程序级攻击,留意到经过 OpenVR 自定义驱动程序能够将跟踪处置计划从一个设备映射到另一个设备。例如,用控制器的跟踪处置计划交流 HMD 的跟踪处置计划可能会招致快速和迷失方向的运动。这种攻击的实施经过运用系统跟踪自身并招致更流利的中缀来减少延迟。 G.虚拟环境支配攻击 对虚拟环境支配攻击的实施在一切方面都与迷失方向攻击相似,只是执行的速度和控制不同。但是,攻击对沉浸式 VR 用户的影响十分明显,足以保障单独分类。攻击试图经过复合难以察觉的 VE 转换将玩家引导到攻击者定义的方向和位置。VE 的逐步转变旨在让玩家将他们的位置重新调整到新的虚拟中心点。 为了在 VR 用户不知情的状况下引导和控制他们的动作,必须首先消弭任何可能的犯规迹象。任何方向的连续平移都会招致玩家越过第一层,因而在大多数状况下,经过禁用或扩展 Chaperone 来开端攻击。攻击者有可能同时访问屏幕数据和前置摄像头,这能够通知攻击者必要的信息,以决议他们打算移动玩家的方向以及应用的最佳时间。然后,以小到让沉浸式 VR 用户察觉不到的量逐步向所需方向应用平移。重复此操作,直到玩家抵达障碍物或所需的物理终点。在某些状况下,有必要应用旋转的变更,但是,这取决于应用程序(VR 体验)。由于一切其他攻击实质上都是技术性的,将中止了一项人类参与者诈骗研讨,以检查实施的虚拟环境支配攻击的有效性。 H.叠加攻击 叠加层是投影到渲染屏幕上的二维图像 。此功用旨在弥补沉浸式 VR 场景,不会惹起中缀。无论正在运转的 VR 应用程序如何,这都允许运用叠加层。能够创建无限叠加,但是,只能渲染一个高清叠加。掩盖通常用于应用程序菜单、信息显现和仪表板。与任何虚拟对象一样,叠加层能够绝对定位或相对定位。能够转换叠加层以匹配任何被跟踪设备的位置。经过将掩盖层链接到 HMD 或 VR 控制器,攻击者能够确保歹企图像将持续可见。 没有允许用户强迫关闭叠加层的内置 VR 应用程序功用。这与从任何应用程序调用掩盖的才干相分离,使其特别容易被误用。一旦执行了攻击,玩家关闭掩盖层的独一措施就是重新启动应用程序。此功用由 Valve 软件提供,作为渲染图像的一种方便方式,但是,叠加层的某些方面可能会招致潜在的歹意行为。上图中提供了此攻击的参考代码。经过将类型初始化为 VRApplication Overlay(第 1 行)来开端攻击。假如尚未运转,这将招致 SteamVR 启动。然后创建叠加并提供一个键和句柄以供参考(第 2 行)。默许叠加可见性设置为躲藏。这种攻击将直接在用户面前显现图像并封装大部分 VR 视图。为此,首先在第 4 行捕获游戏空间的原点。然后应用平移将图像移动到玩家视野前方 1 米处(第 5 行)。然后将转换与 HMD 的跟踪联络起来(第 6 行)。最后,加载图像并将叠加层设置为可见(第 8-9 行)。 用常用的 VR 应用程序战略性地交流这种攻击播放负载可能是一种投放广告或完整阻止游戏作为敲诈软件方式的伎俩。经过有效载荷交流 SteamVR 工具的途径来完成这一点,请求读者思索在沉浸式体验期间攻击者叠加干扰图像的心理影响。 I.摄像头攻击 固然并非沉浸式独有,但以下攻击进一步应用了 VR 系统的答应性质。随着由内而外跟踪的呈现,摄像机可能是房间尺度沉浸的必要条件。此外,能够从系统中提取各种各样的信息,为攻击者提供摄像头不可见的信息。分离由此产生的高影响,包含以下概念考证攻击。 HTC Vive 与 Oculus Rift 的共同之处在于 HMD 有一个前置摄像头。这提供了另一个攻击面。请留意,SteamVR 的确支持启用和禁用摄像头。禁用此功用将阻止相机初始化和提供视频流。这是察看到的唯逐一次限制效劳权限的尝试。 与 Chaperone 配置文件相似,SteamVR 将配置设置存储在未加密的 JSON 文件中。修正包含常规设置的文件,添加属性相机:{enableCamera: True}。相反,短少该属性会禁用相机。要使更改生效,必须重新启动 SteamVR。OpenVR 在函数 vr::VR_Shutdown 中提供了关闭系统的功用。最后,系统能够经过以非后台方式暂时初始化系统来重新启动,例如 vr::VRAppliction_Overlay 或 vr::VRApplication_Scene。无论系统处于何种状态,这都允许攻击者访问摄像头。 访问摄像头不会产生渲染图像,也不需求特定场景,因而能够将攻击初始化为 OpenVR 后台进程(上图,第 1 行)。同样,这允许进程在不中缀当前场景应用程序的状况下影响 VR 系统。由于没有迹象表明相机已开机,否则用户将不会认识到攻击。央求访问将激活相机的视频流(第 4 行)。请留意,假如攻击是第一个调用视频效劳的客户端,则前几帧可能会由于相机旋转和自动曝光而延迟。调用 GetvideoStreamBuffer 将帧和标头复制到指定的缓冲区中(第 5 行)。倡议在帧之前接纳标头,以确保分配了恰当的内存量。应用UDP 流能够导出摄像机的视频流。OpenVR 还支持捕获许多其他数据点。以同样的方式能够导出跟踪处置计划,进一步刺激目的的物理行为或环境。重建泄露的跟踪信息,能够实时监控用户的动作。 5 Testing and Results A.陪伴攻击结果 针对 HTC Vive 的一切经过测试的 OpenVR 和 SteamVR 应用程序的概念考证攻击是胜利的。由于 SteamVR 是 HTC Vive 碰撞边疆的独一管理器,针对 Chaperone 配置文件影响了一切应用程序。发现修正工件的措施比完整在 OpenVR 中完成的更快的 Chaperone 工作副本措施具有老部性优势。这是由于工作副本无法依据 HMD 的状态提交。此外,快速修正招致 Chaperone 进入错误状态,从而阻止了进一步的 Chaperone 提交。发现假如系统闲暇或接近传感器没有检测到正在佩戴的耳机,Chaperone 也会处于非活动状态。相反,经过修正配置文件,更改将保存,下次加载 Chaperone 时,更改将生效。 当经过 Steam 启动时,Oculus Rift 将继承 Guardian 和 Chaper one。实施只会影响 Steam 生成的Chaperone。启动时,SteamVR 将加载 Guardian 边疆信息并创建一个包含空间的 JSON 文件,相似于 SteamVR 生成的房间设置。由于攻击针对的是 Steam 生成的文件,因而该完成不会改动 Guardian。估量 Oculus Rift 会生成一个包含此信息的工件,并且能够以相似的方式中止修正。发现将边疆扩展到玩家能够抵达的范围之外是躲藏陪伴者的更好措施。在某些状况下,降低 Chaperone 的不透明度并不会影响一切保险功用。假如启用,当玩家接近障碍物时,前置摄像头将继续激活。此外,一些 Chaperone 方式会继续在地板上显现轮廓,这个参数也能够修正。 B.迷失攻击和虚拟环境支配攻击结果 这些攻击的技术胜利率与 Chaperone Attack 的技术胜利率相同,由于针对的是相同的工件。发往常这两个系统中,VR 用户的方向都能够被支配。经过针对 HTC Vive 的 Steam 攻击,预期胜利,但 OculusVR 坚持独立的房间配置和方向。当 Rift 在 Steam 中初始化时,房间方向从 Oculus 检索并存储在 Chaperone 配置文件中。此文件随后会被经过 SteamVR 启动的一切应用程序援用。对此工件的更改将反映在一切 Steam 应用程序上,但不会被 Oculus 房间配置继承。从 SteamVR 生成的配置文件中更改用户位置和方向的才干表明 Oculus 完整放弃了其房间范围的配置。OpenVR 很可能会应用 Oculus SDK 中的功用,这表明这些攻击也可能仅经过 Oculus SDK 中止。固然是一个封锁系统,Oculus Rift 依旧允许第三方管理人员访问其某些功用。 发现迷失攻击的有效性与人工运动的速度和幅度有关。令人诧异的是,察看到较慢的流体正弦波比急速动摇更容易产生晕船感和降低均衡。经过更小、更频繁的更新,以及进程间通讯同步操作和提交,进步了攻击的活动性。可能存在用户将拒绝任何感知到的人工运动的量级点。需求进一步的测试来考证这种关系。 C.叠加攻击结果 在一切测试的应用程序中,胜利地在屏幕上填充图像。此外,发现无法在用户沉浸时移除图像。对受害者躲藏有效载荷进程将进一步躲藏担任的程序。这种攻击对 Oculus Rift 也很胜利,但是,OculusVR 的确会检查第三方应用程序。默许状况下,Oculus Rift Manager 将不允许启动非 Oculus 商店的应用程序。必须授予此权限才干运用 Steam 软件及其应用程序。鉴于某些内容只能在 Steam 上或从其他开发者处找到,因而许多用户会允许运用此功用。一旦有效载荷应用程序被执行,它就会出往常受害者的 Oculus 库中,从而降低透明度。需求进一步的开发和测试来避免这种基于用户诱导的权限模型。相比之下,Chaperone、Disorientation 和 Human Joystick 攻击没有被标记,由于它们没有产生渲染产品。 D.摄像头攻击结果 在撰写本文时,Oculus Rift 没有前置摄像头,因而结果仅适用于 HTC Vive。在一切经过测试的 VR 应用程序中,都能够初始化和提取视频流缓冲区。事实上,一个生动的场景是没有必要的。VR 系统的状态是一个要素,无论如何,在一切状况下,都能够发明条件来访问相机。在不知道系统状态的状况下,两个动作过程减轻了相机返回 NULL 的处置央求。第一个,由对 HMD 的失败央求指示,经过翻开系统电源来修复。为了确保系统在不中缀当前应用程序的状况下处于活动状态,能够将一个短期应用程序初始化为掩盖。依据假定,这将确保系统在运用时不会产生任何影响。其次,与经过配置文件启用的相机相关的权限授予了所需的访问权限。独一会干扰玩家的状况是系统正在运用且摄像头被禁用的状况。诱导系统重启可能会向受害者发出警报。假如攻击者需求有关可用硬件类型的更多信息,OpenVR 将运用 IVRSettings 类提供此信息。 6 Human Joystick Experiments 为了肯定虚拟环境支配攻击能否能够在沉浸式用户不知情的状况下支配他们的位置,应用 HTC Vive 设计并中止了一项诈骗研讨。在实验中,用户在 VR 中玩沉浸式街机作风游戏,而虚拟环境支配攻击试图将玩家导航到预定位置。攻击能否胜利经过玩家抵达攻击者创建的物理目的地和沉浸式 VR 用户讲演没有认识到攻击或异常运动来权衡,假定沉浸式玩家会跟随 VE。 A.措施 实验设计:设计了实验以及调查措施。该实验是一项诈骗性研讨,由于招募参与者的前提是他们将玩 VR 游戏。参与者没有被告知会支配他们的 VE 来影响他们的身体运动,直到他们在每次实验终了时得到汇报。 工具创建:在这个阶段,开发了软件来跟踪和可视化参与者的位置和 VE 的转换。 IRB 批准:提交了 IRB 央求并取得了诈骗性研讨的批准。 参与者招募:经过发送电子邮件、张贴海报,最后经过电子邮件向游戏俱乐部成员发送参与者来招募参与者。参与者的选择与性别、年龄或 VR 体验无关。 实验运转:参与者首先签署同意书,实验运转的第一阶段用于让参与者熟习 HTC Vive。然后请求他们玩 Arcade 作风的游戏,运用创建的工具记载数据。最后请求参与者完成沉浸后调查,并听取汇报。 B.实验设计 为了沿着攻击轴提供最大的游戏空间,实验开端时 VE 从物理房间的中心偏移,如下图所示。伴侣无法阻止参与者接纳有关物理房间的视觉提示( 3.4mx3.4m) 和工作站的位置,使得 HTC Vive 的系绳允许访问房间的一切区域。将参与者抵达表示攻击胜利的位置定义为沿 Y 轴在参与者前方 1.9 米处,半径为 20 厘米。到目的地的距离是经过察看参与者的典型领土来肯定的,以便中止测试。这确保了参与者不会由于不受影响的游戏而前往目的地,并且在大多数游戏中,虚拟墙和边疆不鼓舞这样做。选择游戏以快速了解为基础,玩家技艺不会对体验产生太大影响,平均游戏周期在5-15分钟之间。 参与者取得了一个快速的 HTC Vive 教程,并允许他们熟习该系统。当他们开端 VR 游戏时,开端运用开发的工具以 20x/秒的频率搜集 HMD 和 VE 位置数据。在开端攻击之前,参与者被允许玩至少一个游戏周期。这能够确认每个玩家的领土都没有延伸到目的地。 然后经过以 0.01 米/秒的速度沿 Y 轴移动 VE 来执行攻击。总攻击平移等于到目的地的距离,VE 以目的地为中心。数据搜集最多持续 15 分钟,或者直到参与者因接近物理房间边疆而中止。参与者完成了一项沉浸后调查,讯问他们在游戏中(沉浸式)对攻击的认识。 C.察看和结果 在本节中展示了对下表中显现的每个测试游戏的发现。测试了(n=5) 游戏并招募了 (n=64) 参与者。固然实验的目的是调查攻击的胜利与否,但还是针对多种类型的游戏测试了该攻击,以探求构建攻击的外部有效性。留意到这不是针对一切应用程序类型的这种攻击类型的全面剖析,但察看到有助于攻击胜利的游戏玩法趋向。 游戏 1-4 很常见,由于玩家要么被请求移动到给定位置以与虚拟对象交互,要么依据位置取得优势。这些游戏为玩家坚持以 VE 为中心提供了强大的动力,因而完成了 94.4% 的胜利率,能够将沉浸式 VR 用户移动到预定的位置。 第 5 个游戏之所以被选中,是由于玩家没有被迫与静态虚拟物体互动,并且只能站着玩。关于这款游戏,察看到了 50% 的胜利率。在这场竞赛中,参与者对攻击的反响各不相同,部分缘由可能是他们的竞赛作风。由于这个游戏没有明白提供让玩家坚持以 VE 为中心的动机,没有响应的参与者允许 VE 远离他们。相比之下,选择与景色互动的参与者的反响与游戏 1-4 相似。在三名参与者中察看到了第三种特殊的反响;它们不与静态虚拟对象交互,但倾向于坚持它们与左近对象的相对位置。这阐明有些玩家,不论玩法请求如何,都会下认识地对信息中止自我修正。固然攻击的胜利与游戏 1-4 不相上下,但这一发现表明,无论应用程序如何,一些受害者都容易遭到攻击。 对攻击(56/64)做出反响的参与者讲演说,在 VR 沉浸终了时对他们的位置感到诧异。下图显现了参与者在 VE 中采用的示例途径,这些途径坚持在游戏空间的中心。这是玩家在 VE 方面所阅历的可视化。玩家在 VE 中的稳定区域表明玩家对平移的无知,由于他们以为自己的整体位置是静态的。VE 中的途径与物理途径的对比表明向前移动是攻击的结果。 13 名参与者在与目的地的物理墙相撞时被重新定位,但是,据讲演,在碰撞之前,他们不知道他们曾经从起始位置走了很长一段路。在认识到 VE 变更的两个参与者中,一个留意到转换并恪守了,而另一个在 VR 中移动时感到不温馨,这次攻击的胜利将取决于受害者的才干和移动意愿,由于 VE 只是试图将玩家带到目的地。没有改动执行攻击的速度,但是,进一步伐查攻击的速度和幅度与认识之间的关系可能会进步胜利率。 由于参与者的确倾向于遵照虚拟中心点,察看到招致他们纠正 VE 变更的两种主要机制。Xortex、Surgeon Simulator 和 Guns’n’Stories 游戏让玩家频繁轮换。这招致参与者迈出了许多他们可能没有留意到他们曾经向前迈进的小步。与动作惧怕的参与者相比,在虚拟空间中自信地走动并积极参与游戏的参与者裤子常常更能反映。Xortex、Surgeon Simulator 和 Guns’n’Stories 途径显现玩家由于频繁旋转而逐步顺应平移。固然长弓游戏触及旋转,但事实证明这取决于参与者的游戏作风。不随意移动脚的参与者倾向于对与上图中的长弓和弹弓途径相似的平移做出反响。对 VE 平移的校正主要经过向前的大运动发作,然后是不完整的互惠移动。参与者讲演说他们觉得似乎他们必须比平常更远,但是,在完成动作后,他们觉得似乎回到了原来的位置。 参与者运动的水平可能代表他们之前对 VR 的体验,而在 VE 中移动的温馨度和自信心反映了参与者对 VR 的熟习水平。为了肯定先前的阅历能否影响参与者对攻击的反响速度,比较了讲演先前阅历的参与者与没有讲演先前阅历的参与者抵达目的地所需的时间。讲演先前运用 VR 的参与者(M = 183.0,SD = 62.9)与没有运用 VR 的参与者相比(M = 181.6,SD = 42.0)在抵达目的地的时间上没有差别,t(53) = -0.10,p = 0.919。p 值表示两组在统计上相似的概率为 91.9%。 由于在整个实验过程中攻击率坚持不变,这些初步结果表明攻击胜利的假定与玩家的阅历水平无关,固然需求更多的测试来考证这一说法。思索到平移率(0:01 m/s) 和距离(1.9m),到目的地的平均时间进一步强化了原始假定。由于目的地的半径为 (20 cm),与察看到的平均抵达目的地的平均时间为 182.4 秒相比,对攻击的理想反响将需求参与者 170 190 秒。两组的总体和每场竞赛时间相似性如下图所示。比较每个应用程序的时间可能会提示与玩家响应的关系,但是,这项初步研讨对样本量的限制扫除了这种剖析。 这些游戏在促进攻击方面有两个功用。假定持续的移动会淡化 VE 中的微小变更,并且游戏的目的会吸收用户。这能够提供必要的分心以避免攻击被察觉。其次,游戏为用户提供了移动的动力。通常,玩家被迫服从攻击以继续竞赛。上面描画的大幅向前移动偶尔是参与者伸手去拿虚拟对象或与玩家继续中止所需的菜单项交互的结果。因而,与 VE 中的特定空间有密切联络的游戏将迫使玩家移动。在这种状况下,攻击的胜利更多地取决于能否坚持秘密。另一方面,不为玩家位置提供优势的游戏必须依托玩家来维持他们的相对位置。本研讨中运用的游戏代表了沉浸式 VR 的多种应用程序中的一小部分,其中许多旨在让玩家坚持坐姿。由于每种应用方式的分心和动机水平不同,进一步伐查可能会得出沉浸水平和对攻击的易理性之间的关系。 7 Discussion 每次攻击的技术普遍胜利都归功于攻击层 OpenVR。有了合理的确定性,能够得出结论,一切 OpenVR 兼容系统都容易遭到这些类型的攻击。无论硬件接口如何,都以为 VR 系统的各个方面都需求遭到维护。歹意行为的结果被沉浸的物理和生理影响放大。固然特地针对 OpenVR,但本研讨中发现的潜在漏洞适用于一切 VR 系统。概念考证攻击表明,VR 保险战争安功用需求进一步开发和维护。鉴于一切完整沉浸式 VR 系统都需求某种方式的碰撞检测,因而应优先对这些保险功用中止全面评价。固然同意用户手动调整他/她的游戏区域的边疆有一些益处,但需求维护对这些数据的访问。SteamVR 以明文方式存储这些工件提供了一个严重漏洞。倡议加密此数据并限制其对创建个人和效劳的访问。由于必须坚持保险功用的完好性,同时也是可管理的,倡议应用Clark-Wilson完好性模型。必须经过 VR 运转时中止和考证买卖的中央。 Overlay 和 Camera Attacks 展示了该架构的答应结构。在测试过程中,运用了超越五个在场景后台运转的额外歹意应用程序。同样,SteamVR 明显缺乏应用程序控制,而 OculusVR 未能检查无渲染进程。OpenVR 为应用程序管理提供了一个 API 接口,但是,叠加攻击的胜利证明了应用程序隔离的应用缺乏。不受监管的应用程序招致 VR 系统失去控制和数据泄露。关闭或限制 VR 应用程序对其各自环境的访问可能合适避免歹意行为者中缀有效的应用程序。因而,倡议 VR 应用程序管理人员限制对经过检查的程序的访问,并在更大水平上请求用户批准第三方应用程序。固然超出了本文的范围,但发现 Steam 应用程序缺乏完好性检查。倡议树立应用程序签名以避免不用要的修正。 另一种处置计划是Arya 框架,用于实施管理 AR 理想输出的政策。这种战略管理应归入现有的沉浸式 VR 系统。相机攻击明显缺乏基于权限的访问。固然 Steam 允许用户限制相机的运用,但权限属性未加密存储且易于访问。这种透明度允许攻击者抑止相机限制。随着 VR 的继续传播,其功用和特性也将继续传播。例如,Android 曾经经过访问控制列表 (ACL) 完成了基于权限的保险性。一种具有 VR 系统特殊功用的相似措施,将它们的运用限制在指定的应用程序中,能够避免歹意的第三方软件滥用其访问权限。倡议扩展访问控制以考证一切访问 VR 资源的应用程序。假如树立来自受信任的开发人员的应用程序签名,其中许多能够得到考证。 8 Future Work 固然攻击集中在软件接口层,但在整个剖析过程中,发现了其他范畴的漏洞。OpenVR 提供了为附加硬件开发驱动程序的框架。这包含为 Vive 系统重载已有的驱动程序并创建虚拟控制器。菜单操作和交互掩盖主要接纳来自控制器指针的输入,并且经过歹意虚拟控制器,攻击者能够远程控制玩家的计算机系统。一个盛行的 VR 应用程序,如虚拟桌面,默许在启动时加载,允许用户在 VR 中访问他们的桌面。假如存在虚拟控制器,攻击者能够取得对客户端计算机的完整访问权限。虚拟控制用具有透明性的优点,其中控制器的 3D 模型表示不会被指定或呈现。应该留意的是,驱动程序的装置将使有效载荷的托付和执行变得越来越复杂。 HTC Vive 有一个共同的应用Lighthouse的跟踪系统。这些Lighthouse运用 IR 为被跟踪设备提供绝对定位。为了减少所需传感器的数量,跟踪处置计划由 IMU提供的相对跟踪弥补。仅基于 IMU 数据的跟踪不是很精确,但有助于在传感器受阻时填补空白。狐疑禁用绝对跟踪会招致跟踪处置计划偏离真实玩家的位置。需求进一步测试,但是,Lighthouse Redox HTC Vive 逆向工程项目反转了蓝牙低功耗 (LE) 通讯以唤醒并设置睡眠超时。 Lighthouse有自己的一组配置和日志文件,其中包含位置和正常信息。这些文件也以纯文本 JSON 格式存储。这些工件可能会提供额外的攻击途径。迷失方向攻击很可能是经过支配Lighthouse自身的位置来中止的,攻击了在房间设置期间树立的静态用户定义的空间。由于Lighthouse自行配置,这可能不太可行。此外,假如Lighthouse检测到它们遭到干扰,它们将立刻关闭转子。需求进一步测试以肯定能否能够经过支配这些伪像来惹起 IMU 漂移。社交应用程序允许沉浸式 VR 用户在 VR 中汇集和共享内容。Big Screen Beta 等应用程序以至能够共享用户的计算机屏幕、手势和音频。初步网络层剖析表明,这些信息中的大部分都是在未加密的状况下传送的。狐疑一种新方式的中间人 (MITM) 攻击可能允许攻击者参与聊天室并提取信息,以至可能支配客户端的环境,将此称为 Man-In-The-Room (MITR) 攻击。 - 结尾 - 【技术分享】SSO中的身份账户不分歧漏洞 【技术分享】基于编码注入的对立性NLP攻击 戳“阅读原文”查看更多内容 |