skip to main content
10.1145/2947626.2947635acmotherconferencesArticle/Chapter ViewAbstractPublication PagessinConference Proceedingsconference-collections
research-article

Strategies for Protecting Intellectual Property when Using CUDA Applications on Graphics Processing Units

Published:20 July 2016Publication History

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.

References

  1. X. J. A. Bellekens, G. Paul, J. Irvine, C. Tachtatzis, R. C. Atkinson, C. Renfrew, and T. Kirkham. Data remanence and digital forensic investigation for CUDA graphics processing units. In Proceedings of the 1ST IEEE/IFIP Workshop on Security for Emerging Distributed Network Technologies, DISSECT 2015. IEEE, 2015.Google ScholarGoogle ScholarCross RefCross Ref
  2. X. J. A. Bellekens, C. Tachtatzis, R. C. Atkinson, C. Renfrew, and T. Kirkham. A highly-efficient memory-compression scheme for GPU-accelerated intrusion detection systems. In Proceedings of the 7th International Conference on Security of Information and Networks, SIN '14, pages 302:302--302:309, New York, NY, USA, 2014. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. S. Breß, S. Kiltz, and M. Schäler. Forensics on GPU coprocessing in databases - research challenges, first experiments, and countermeasures. In Datenbanksysteme für Business, Technologie und Web (BTW), - Workshopband, 15. Fachtagung des GI-Fachbereichs "Datenbanken und Informationssysteme" (DBIS), 11.-15.3.2013 in Magdeburg, Germany. Proceedings, pages 115--129, 2013.Google ScholarGoogle Scholar
  4. J. Cheng, M. Grossman, and T. McKercher. Professional CUDA C Programming. EBL-Schweitzer. Wiley, 2014. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. E. Chikofsky and I. Cross, J.H. Reverse engineering and design recovery: a taxonomy. Software, IEEE, 7(1):13--17, Jan 1990. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. S. Cook. CUDA Programming: A Developer's Guide to Parallel Computing with GPUs. Applications of GPU computing series. Morgan Kaufmann, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Distler. SANS institute - malware analysis: An introduction.Google ScholarGoogle Scholar
  8. Q. Dong, T. Li, S. Zhang, X. Jiao, and J. Leng. Ptx2kernel: Converting ptx code into compilable kernels. 2015.Google ScholarGoogle Scholar
  9. E. Eilam. Reversing: Secrets of Reverse Engineering. Wiley, 2011. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. G. Giunta, R. Montella, G. Agrillo, and G. Coviello. gVirtuS: A GPGPU transparent virtualization component.Google ScholarGoogle Scholar
  11. H. Huang, S. Zhu, P. Liu, and D. Wu. A framework for evaluating mobile app repackaging detection algorithms. In M. Huth, N. Asokan, S. Čapkun, I. Flechais, and L. Coles-Kemp, editors, Trust and Trustworthy Computing, volume 7904 of Lecture Notes in Computer Science, pages 169--186. Springer Berlin Heidelberg, 2013.Google ScholarGoogle Scholar
  12. E. Ladakis, L. Koromilas, G. Vasiliadis, M. Polychronakis, and S. Ioannidis. You can type, but you can't hide: A stealthy GPU-based keylogger. Proceedings of the 6th European Workshop on System Security (EuroSec), 2013.Google ScholarGoogle Scholar
  13. D. Low. Protecting Java code via code obfuscation. Crossroads, 4(3):21--23, Apr. 1998. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. K. Makan and S. Alexander-Bown. Android Security Cookbook. Packt Publishing, 2013. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. S. Manavski. CUDA compatible GPU as an efficient hardware accelerator for AES cryptography. In Signal Processing and Communications, 2007. ICSPC 2007. IEEE International Conference on, pages 65--68, Nov 2007.Google ScholarGoogle ScholarCross RefCross Ref
  16. G. Naumovich and N. Memon. Preventing piracy, reverse engineering, and tampering. Computer, 36(7):64--71, 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Nvidia. CUDA toolkit documentation v7.0.Google ScholarGoogle Scholar
  18. Nvidia. Using inline PTX assembly in CUDA.Google ScholarGoogle Scholar
  19. D. Reynaud. GPU powered malware. In Ruxcon, Sydney, Australia, 11 2008.Google ScholarGoogle Scholar
  20. P. Stewin, J.-P. Seifert, and C. Mulliner. Poster: Towards detecting DMA malware. In Proceedings of the 18th ACM Conference on Computer and Communications Security, CCS '11, pages 857--860, New York, NY, USA, 2011. ACM. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. T. Systä and U. Tamperensis. Static and dynamic reverse engineering techniques for Java software systems. 2000.Google ScholarGoogle Scholar
  22. G. Vasiliadis, M. Polychronakis, and S. Ioannidis. GPU-assisted malware. International Journal of Information Security, pages 1--9, 2010. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. N. Wilt. The CUDA Handbook: A Comprehensive Guide to GPU Programming. Pearson Education, 2013.Google ScholarGoogle Scholar

Recommendations

Comments

Login options

Check if you have access through your login credentials or your institution to get full access on this article.

Sign in
  • Published in

    cover image ACM Other conferences
    SIN '16: Proceedings of the 9th International Conference on Security of Information and Networks
    July 2016
    186 pages
    ISBN:9781450347648
    DOI:10.1145/2947626

    Copyright © 2016 ACM

    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    • Published: 20 July 2016

    Permissions

    Request permissions about this article.

    Request Permissions

    Check for updates

    Qualifiers

    • research-article
    • Research
    • Refereed limited

    Acceptance Rates

    SIN '16 Paper Acceptance Rate12of46submissions,26%Overall Acceptance Rate102of289submissions,35%

PDF Format

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader