Legacy device drivers implement both device resource management and isolation. This results in a large code base with a wide high-level interface making the driver vulnerable to security attacks. This is particularly problematic for increasingly popular accelerators like GPUs that have large, complex drivers. We solve this problem with library drivers, a new driver architecture. A library driver implements resource management as an untrusted library in the application process address space, and implements isolation as a kernel module that is smaller and has a narrower lower-level interface (i.e., closer to hardware) than a legacy driver. We articulate a set of device and platform hardware properties that are required to retrofit a legacy driver into a library driver. To demonstrate the feasibility and superiority of library drivers, we present Glider, a library driver implementation for two GPUs of popular brands, Radeon and Intel. Glider reduces the TCB size and attack surface by about 35% and 84% respectively for a Radeon HD 6450 GPU and by about 38% and 90% respectively for an Intel Ivy Bridge GPU. Moreover, it incurs no performance cost. Indeed, Glider outperforms a legacy driver for applications requiring intensive interactions with the device driver, such as applications using the OpenGL immediate mode API.
翻译:遗留设备驱动器既实施设备资源管理, 也实施隔离 。 这导致一个大型代码基点, 其界面高度广泛, 使驱动器易受安全攻击。 这对像GPU这样的越来越受欢迎的加速器来说尤其成问题。 我们用图书馆驱动器解决了这个问题, 新的驱动器结构。 图书馆驱动器在应用过程中的地址空间中将资源管理作为不受信任的图书馆实施, 将孤立作为内核模块实施, 该模块较小, 并且比遗留驱动器更窄, 其界面( 即, 更接近硬件) 。 我们阐述了将遗留驱动器改装成图书馆驱动器所需的一套设备和平台硬件属性。 为了展示图书馆驱动器的可行性和优越性, 我们介绍Glider, 图书馆驱动器对两个流行品牌GPU( Radeon 和 Intel ) 的应用程序实施这一问题。 Glider 将Radeon HD 6450 GPUPU 的TC 尺寸和攻击表面分别减少35% 和84%, 以及 Intel Ivy Bridge GPUP 的界面分别减少38%和90%。 此外, 而且, 它不需要需要将驱动器快速应用软件与直截路。 事实上要求。 。