skip to main content
10.1145/2995306.2995313acmconferencesArticle/Chapter ViewAbstractPublication PagesccsConference Proceedingsconference-collections
research-article

StIns4CS: A State Inspection Tool for C#

Published: 28 October 2016 Publication History

Abstract

Software protection aims to prevent unauthorized use, analysis, modification and distribution of software. This goal is hard to achieve, especially for a program running on a platform (e.g. physical device) controlled by an adversary also known as man-at-the-end (MATE) attacker. Self-checking is one technique for protecting the integrity of software by having the code check itself. In this paper, we present the design and implementation of a self-checking tool called StIns4CS. Our tool implements self-checking via state inspection by source code transformations of programs written in the C# language. More specifically, StIns4CS augments code by adding runtime checkers to it. We discuss the effectiveness of StIns4CS by implementing attacks targeting our approach, and measuring different aspects of the effectiveness, stealth and cost of the protection. Based on the evaluation we show the trade-off between the efficiency and effectiveness of StIns4CS in protecting software against unauthorized modification. We propose an approach to improve stealth of the code added by StIns4CS and we show further improvements of stealth by combining selfchecking with virtualization obfuscation.

References

[1]
J. Cappaert, B. Preneel, B. Anckaert, M. Madou, and K. De Bosschere. Towards tamper resistant code encryption: Practice and experience. lecture notes in Computer Science, 4991:86--100, 2008.
[2]
H. Chang and M. J. Atallah. Protecting software code by guards. In Security and privacy in digital rights management, pages 160--175. Springer, 2002.
[3]
Y. Chen, R. Venkatesan, M. Cary, R. Pang, S. Sinha, and M. H. Jakubowski. Oblivious hashing: A stealthy software integrity verification primitive. In Information Hiding, pages 400--414. Springer, 2003.
[4]
C. Collberg and J. Nagra. Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection. Pearson Education, 2009.
[5]
D. Dolev and A. Yao. On the security of public key protocols. IEEE Transactions on information theory, 29(2):198--208, 1983.
[6]
P. Falcarin, C. Collberg, M. Atallah, and M. Jakubowski. Guest editors' introduction: Software protection. Software, IEEE, 28(2):24--27, 2011.
[7]
J. T. Giffin, M. Christodorescu, and L. Kruger. Strengthening software self-checksumming via self-modifying code. In Computer Security Applications Conference, 21st Annual, pages 10--pp. IEEE, 2005.
[8]
Globalstudy.bsa.org. Bsa global software survey: The compliance gap: Home, 2013.
[9]
P. Godefroid, P. De Halleux, A. V. Nori, S. K. Rajamani, W. Schulte, N. Tillmann, and M. Y. Levin. Automating software testing using program analysis. Software, IEEE, 25(5):30--37, 2008.
[10]
B. Horne, L. Matheson, C. Sheehan, and R. E. Tarjan. Dynamic self-checking techniques for improved tamper resistance. In Security and privacy in digital rights management, pages 141--159. Springer, 2002.
[11]
M. Jacob, M. H. Jakubowski, and R. Venkatesan. Towards integral binary execution: Implementing oblivious hashing using overlapped instruction encodings. In Proceedings of the 9th workshop on Multimedia & security, pages 129--140. ACM, 2007.
[12]
K. Jamrozik, G. Fraser, N. Tillman, and J. De Halleux. Generating test suites with augmented dynamic symbolic execution. In Tests and Proofs, pages 152--167. Springer, 2013.
[13]
J. Leitch. Iat hooking revisited, 2011.
[14]
L. Martignoni, R. Paleari, and D. Bruschi. Conqueror: tamper-proof code execution on legacy systems. In Detection of Intrusions and Malware, and Vulnerability Assessment, pages 21--40. Springer, 2010.
[15]
N. Mavrogiannopoulos, N. Kisserli, and B. Preneel. A taxonomy of self-modifying code for obfuscation. Computers & Security, 30(8):679--691, 2011.
[16]
M. D. Network. Attributes (c# programming guide).
[17]
J. Qiu, B. Yadegari, B. Johannesmeyer, S. Debray, and X. Su. Identifying and understanding self-checksumming defenses in software. In Proceedings of the 5th ACM Conference on Data and Application Security and Privacy, pages 207--218. ACM, 2015.
[18]
A. Seshadri, M. Luk, E. Shi, A. Perrig, L. van Doorn, and P. Khosla. Pioneer: verifying code integrity and enforcing untampered code execution on legacy systems. ACM SIGOPS Operating Systems Review, 39(5):1--16, 2005.
[19]
G. Tan, Y. Chen, and M. H. Jakubowski. Delayed and controlled failures in tamper-resistant systems. In In Proceedings of 8th Information Hiding Workshop. Citeseer, 2006.
[20]
N. Tillmann and J. De Halleux. Pex--white box test generation for. net. In Tests and Proofs, pages 134--153. Springer, 2008.
[21]
N. Tillmann and W. Schulte. Unit tests reloaded: Parameterized unit testing with symbolic execution. Software, IEEE, 23(4):38--47, 2006.
[22]
G. Wurster, P. C. Van Oorschot, and A. Somayaji. A generic attack on checksumming-based software tamper resistance. In Security and Privacy, 2005 IEEE Symposium on, pages 127--138. IEEE, 2005.

Cited By

View all
  • (2024)A Framework to Quantify the Quality of Source Code ObfuscationApplied Sciences10.3390/app1412505614:12(5056)Online publication date: 10-Jun-2024
  • (2021)Measuring Software Obfuscation Quality–A Systematic Literature ReviewIEEE Access10.1109/ACCESS.2021.30945179(99024-99038)Online publication date: 2021
  • (2018)Practical Integrity Protection with Oblivious HashingProceedings of the 34th Annual Computer Security Applications Conference10.1145/3274694.3274732(40-52)Online publication date: 3-Dec-2018

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
SPRO '16: Proceedings of the 2016 ACM Workshop on Software PROtection
October 2016
100 pages
ISBN:9781450345767
DOI:10.1145/2995306
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 the author(s) 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].

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 28 October 2016

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. mate attacks
  2. software protection
  3. tamper proofing

Qualifiers

  • Research-article

Funding Sources

  • Bavarian Ministry of Economic Affairs and Media Energy and Technology (StMWi) through the Center Digitisation.Bavaria

Conference

CCS'16
Sponsor:

Acceptance Rates

SPRO '16 Paper Acceptance Rate 8 of 14 submissions, 57%;
Overall Acceptance Rate 8 of 14 submissions, 57%

Upcoming Conference

CCS '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Mar 2025

Other Metrics

Citations

Cited By

View all
  • (2024)A Framework to Quantify the Quality of Source Code ObfuscationApplied Sciences10.3390/app1412505614:12(5056)Online publication date: 10-Jun-2024
  • (2021)Measuring Software Obfuscation Quality–A Systematic Literature ReviewIEEE Access10.1109/ACCESS.2021.30945179(99024-99038)Online publication date: 2021
  • (2018)Practical Integrity Protection with Oblivious HashingProceedings of the 34th Annual Computer Security Applications Conference10.1145/3274694.3274732(40-52)Online publication date: 3-Dec-2018

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media