News for hackers. Stuff that matters.
Re:Rendered Insecure: GPU Side Channel Attacks Are Practical... by kibwen on Wednesday November 14, 2018 @09:44AM (#18450132)
The browser password capture attack is awesome. To clarify though, that requires an external attacker-controlled process to monitor the GPU, yes? If you've already got a process running on the victim's computer, aren't there easier ways of installing a keylogger? Alternatively, are there legitimate programs that grant the ability to run arbitrary untrusted GPU code (WebGL springs to mind, but you'd think that if this attack were possible entirely from within the browser that they'd have been eager to show it off)? Or is the novelty here the ability to more easily guess which keystrokes represent passwords due to the website fingerprinting step? In any case, it suggests that websites could slightly frustrate the attack by making all the textboxes on their login page the same size, and that anyone using any password manager, including the one built in to their browser, is largely protected. Very cool nonetheless.
Re:Rendered Insecure: GPU Side Channel Attacks Are Practical... by EthanHeilman on Wednesday November 14, 2018 @10:38AM (#18450634)
>If you've already got a process running on the victim's computer, aren't there easier ways of installing a keylogger?

Now system designers have to very seriously consider this risk when building sandboxes or other forms of process isolation. Say the attacker controlled process is in a sandbox and would normally be assumed safe.

Re:Rendered Insecure: GPU Side Channel Attacks Are Practical... by loeg on Wednesday November 14, 2018 @01:31PM (#18452380)
If your sandbox gives unfettered access to the GPU, that's not a great sandbox, is it?
Re:Rendered Insecure: GPU Side Channel Attacks Are Practical... by IshKebab on Wednesday November 14, 2018 @01:36PM (#18452449)
Erm.. Many sandboxes allow access to the GPU. E.g. WebGL or Android apps.

Why would you think otherwise?

Re:Rendered Insecure: GPU Side Channel Attacks Are Practical... by EthanHeilman on Wednesday November 14, 2018 @03:04PM (#18453331)
Define unfettered?
Re:Rendered Insecure: GPU Side Channel Attacks Are Practical... by kangz on Wednesday November 14, 2018 @09:53AM (#18450207)
> To clarify though, that requires an external attacker-controlled process to monitor the GPU, yes?

Yes, they do it with high-speed probing of the amount allocated GPU memory. This requires access to native APIs (specific OpenGL extensions in this case). Like you said there seems there would be simpler ways to achieve this, but the demonstration of this side-channel is still very interesting.

Varying the size of the textboxes might not help because the rendering engine of browsers can have a memory allocation per letter for example.

Re:Rendered Insecure: GPU Side Channel Attacks Are Practical... by monocasa on Wednesday November 14, 2018 @12:49PM (#18451908)
Last time I checked on Vulkan, you took a lot of GPU memory allocation into your own hands. You allocate large chunks that you then write your own allocator for to carve up (sort of like the distinction between sbrk/mmap and malloc).

Is that still the case, and would that unintentionally avoid this side channel since the global GPU perf stats wouldn't necessarily see a difference on small allocations?

Re:Rendered Insecure: GPU Side Channel Attacks Are Practical... by DiabloD3 on Wednesday November 14, 2018 @09:57PM (#18456521)
That's not entirely true, and that's basically what all modern games do: switching buffers is an expensive context switch, so texture atlasses became the norm over a decade ago, as did stuffed vertex buffers.
Re:Rendered Insecure: GPU Side Channel Attacks Are Practical... by kllrnohj on Wednesday November 14, 2018 @03:56PM (#18453866)
Reading the attack it also only seems to work on browsers that are not doing very good GPU rendering. The process they described, a textbox being rendered on the CPU and uploaded to a texture on every update, is terribly inefficient. That's not what, for example, Android's text renderer does (described in detail here: https://medium.com/@romainguy/androids-font-renderer-c368bbd... )

If the renderer uses a glyph atlas, then there won't be any changes in GPU memory used as you type in a text box. There consequently won't be any time used to update glyphs, as they are already in the atlas (ignoring CJK locales for a minute).