English

I still know it's you! On Challenges in Anonymizing Source Code

Cryptography and Security 2024-04-11 v2 Machine Learning Programming Languages Software Engineering

Abstract

The source code of a program not only defines its semantics but also contains subtle clues that can identify its author. Several studies have shown that these clues can be automatically extracted using machine learning and allow for determining a program's author among hundreds of programmers. This attribution poses a significant threat to developers of anti-censorship and privacy-enhancing technologies, as they become identifiable and may be prosecuted. An ideal protection from this threat would be the anonymization of source code. However, neither theoretical nor practical principles of such an anonymization have been explored so far. In this paper, we tackle this problem and develop a framework for reasoning about code anonymization. We prove that the task of generating a kk-anonymous program -- a program that cannot be attributed to one of kk authors -- is not computable in the general case. As a remedy, we introduce a relaxed concept called kk-uncertainty, which enables us to measure the protection of developers. Based on this concept, we empirically study candidate techniques for anonymization, such as code normalization, coding style imitation, and code obfuscation. We find that none of the techniques provides sufficient protection when the attacker is aware of the anonymization. While we observe a notable reduction in attribution performance on real-world code, a reliable protection is not achieved for all developers. We conclude that code anonymization is a hard problem that requires further attention from the research community.

Keywords

Cite

@article{arxiv.2208.12553,
  title  = {I still know it's you! On Challenges in Anonymizing Source Code},
  author = {Micha Horlboge and Erwin Quiring and Roland Meyer and Konrad Rieck},
  journal= {arXiv preprint arXiv:2208.12553},
  year   = {2024}
}
R2 v1 2026-06-25T01:59:55.742Z