By using GPU's vulnerability it is possible to steal entire contents of the web page displayed on the browser


by Diego Torres Silvestre

The GPU built into the computer is used not only for graphics rendering but also for efficient parallel computation. It has been pointed out that it is possible to steal the whole web page rendered on the browser by using vulnerabilities that have been noted for a long time in this GPU but continue to be ignored without being modified.

Stealing Webpages Rendered on Your Browser by Exploiting GPU Vulnerabilities - IEEE Conference Publication
https://ieeexplore.ieee.org/document/6956554

Programmers can access the GPU using two kinds of APIs: graphics API ( DirectX , OpenGL, etc.) and computing API ( CUDA , OpenCL etc). The graphics API provides functions for graphics operations such as projection, shading, and texture mapping, and computing APIs are used for non-graphics applications such as query optimization, packet routing, intrusion detection system, cryptographic engine It provides functions.

The biggest difference between the graphics API and the computing API is memory manageability. Computing APIs allow different users to share the same GPU, but the graphics API only supports a single user. Because the computing API does not require a dedicated screen and supports only sequential execution of different GPU processes, multiple users can use the computing API to share the same GPU. There are also technologies (VirtualGL) that enable remote users to share the same GPU when using the graphics API, but using them is said to be at risk from keyloggers and others.

The GPU driver uses the graphics API to manage GPU memory, but programmers can manually manage data transfer, deallocation, etc. between CPU and GPU using the computing API. Also, GPUs have several types of memory (global, local, private memory, etc.) but they can be controlled using the computing API, except graphics related memory (such as frame buffer and Z buffer) . In contrast, the graphics API does not have the ability to manage such memory and provides functions optimized solely for performing memory-efficient graphics operations.


by Rafael Pol

However, researchers point out that there is a problem that GPUs do not initialize newly allocated memory buffers due to the highly shared nature of computing APIs, which can lead to serious security threats . Many studies have pointed out that memory is not initialized, but in the latest research, we can use GPU memory not initialized vulnerability, so that GPU memory It is shown that it will be possible to attack the data held in the data.

According to the report, in the browser using "GPU acceleration" using the GPU to speed up the rendering of web pages such as Chromium and Firefox , dump data of the web page rendered in the GPU memory will remain . When it detects and analyzes this dump data, it seems that it becomes possible to guess the contents displayed on the web page. In addition, texture analysis using both pixel sequence matching and RGB histogram matching is done for analysis.

In order to confirm the accuracy of the analysis, we randomly visited 100 pages from Alexa 's Top 1000 website using Chromium on a PC equipped with GPU made by NVIDIA, 95.4% Have you been browsing? "Successfully guessed.

Dump data that the bottom of the following image can be detected from the GPU memory. By analyzing this it will be possible to guess exactly that the top Google logo was displayed.


The performance of the GPU is becoming stronger, and many applications aim at improving the performance using the computing power of the GPU. However, as you can see from the results of this research, it is obvious that the GPU has a security problem, so GPU makers and programmers should take measures to deal with this vulnerability, It is written in the report of.

in Security, Posted by logu_ii