Graphics Processing Units (GPUs) are a ubiquitous component across the range of today's computing platforms, from phones and tablets, through personal computers, to high-end server class platforms. With the increasing importance of graphics and video workloads, recent processors are shipped with GPU devices that are integrated on the same chip. Integrated GPUs share some resources with the CPU and as a result, there is a potential for microarchitectural attacks from the GPU to the CPU or vice versa. We believe this type of attack, crossing the component boundary (GPU to CPU or vice versa) is novel, introducing unique challenges, but also providing the attacker with new capabilities that must be considered when we design defenses against microarchitectrual attacks in these environments. Specifically, we consider the potential for covert channel attacks that arise either from shared microarchitectural components (such as caches) or through shared contention domains (e.g., shared buses). We illustrate these two types of channels by developing two reliable covert channel attacks. The first covert channel uses the shared LLC cache in Intel's integrated GPU architectures. The second is a contention based channel targeting the ring bus connecting the CPU and GPU to the LLC. Cross component channels introduce a number of new challenges that we had to overcome since they occur across heterogeneous components that use different computation models and are interconnected using asymmetric memory hierarchies. We also exploit GPU parallelism to increase the bandwidth of the communication, even without relying on a common clock. The LLC based channel achieves a bandwidth of 120 kbps with a low error rate of 2%, while the contention based channel delivers up to 400 kbps with a 0.8% error rate.
翻译:图形处理器( GPU) 是当今一系列计算平台( 从电话和平板电脑, 通过个人计算机, 到高端服务器级平台) 中一个无处不在的组成部分。 随着图形和视频工作量的日益重要性, 最近的处理器是用GPU设备装运的, 这些设备被整合在同一个芯片上。 集成的 GPU 与CPU共享一些资源, 结果, 可能会发生从 GPU到 CPU或反向的微结构化攻击。 我们认为, 跨过组件边界( GPU 到 CPU 或反向的平面) 的这种攻击类型是新颖的, 引入了独特的挑战, 但也为攻击者提供了新的能力。 我们设计了双轨( GPU) 和双轨( 反向) 双轨( GPU) 的双轨( 共享的公交) 。 我们用双端( 双端) 的双端( ) 双端( 或反向) 双端( 反向) ) 双端( ) 双端( ) 双端) 双端), 双端( GPLPLPLPLC 双端), 的( 双端) 双端) 也使用了双端( 双端) 双端( 双向) 双向) 双向) 双向) 双端( 双向) 双向) 双向) 双向( 我们( 双向) 双向) 双向) 双向) 双向) 双向( 双向) 。