Strategies for protecting intellectual property when using CUDA applications on graphics processing units

Bellekens, Xavier and Paul, Greig and Tachtatzis, Christos and Irvine, James and Atkinson, Robert; (2016) Strategies for protecting intellectual property when using CUDA applications on graphics processing units. In: SIN'16 proceedings to be published under ACM International Conference Proceeding Series (ICPS). ACM Press, USA. ISBN 978-1-4503-4764-8 (In Press) (https://doi.org/10.1145/2947626.294763)

[thumbnail of Bellekens-etal-ICSIN-2016-Strategies-for-protecting-intellectual-property-when-using-CUDA]
Preview
Text. Filename: Bellekens_etal_ICSIN_2016_Strategies_for_protecting_intellectual_property_when_using_CUDA.pdf
Accepted Author Manuscript

Download (311kB)| Preview

Abstract

Recent advances in the massively parallel computational abilities of graphical processing units (GPUs) have increased their use for general purpose computation, as companies look to take advantage of big data processing techniques. This has given rise to the potential for malicious software targeting GPUs, which is of interest to forensic investigators examining the operation of software. The ability to carry out reverse-engineering of software is of great importance within the security and forensics fields, particularly when investigating malicious software or carrying out forensic analysis following a successful security breach. Due to the complexity of the Nvidia CUDA (Compute Unified Device Architecture) framework, it is not clear how best to approach the reverse engineering of a piece of CUDA software. We carry out a review of the different binary output formats which may be encountered from the CUDA compiler, and their implications on reverse engineering. We then demonstrate the process of carrying out disassembly of an example CUDA application, to establish the various techniques available to forensic investigators carrying out black-box disassembly and reverse engineering of CUDA binaries. We show that the Nvidia compiler, using default settings, leaks useful information. Finally, we demonstrate techniques to better protect intellectual property in CUDA algorithm implementations from reverse engineering.