OCEAN: Open-World Contrastive Authorship Identification

Felix Mächtle, Jan-Niclas Serr, Nils Loose, Jonas Sander, Thomas Eisenbarth
12/6/2024
cs.AIcs.CR

No official code found. Best implementation: UzL-ITS/OCEAN (4 stars, last commit 2025-06-19).

Abstract

In an era where cyberattacks increasingly target the software supply chain, the ability to accurately attribute code authorship in binary files is critical to improving cybersecurity measures. We propose OCEAN, a contrastive learning-based system for function-level authorship attribution. OCEAN is the first framework to explore code authorship attribution on compiled binaries in an open-world and extreme scenario, where two code samples from unknown authors are compared to determine if they are developed by the same author. To evaluate OCEAN, we introduce new realistic datasets: CONAN, to improve the performance of authorship attribution systems in real-world use cases, and SNOOPY, to increase the robustness of the evaluation of such systems. We use CONAN to train our model and evaluate on SNOOPY, a fully unseen dataset, resulting in an AUROC score of 0.86 even when using high compiler optimizations. We further show that CONAN improves performance by 7% compared to the previously used Google Code Jam dataset. Additionally, OCEAN outperforms previous methods in their settings, achieving a 10% improvement over state-of-the-art SCS-Gan in scenarios analyzing source code. Furthermore, OCEAN can detect code injections from an unknown author in a software update, underscoring its value for securing software supply chains.

View on arXivView PDF

Code Implementations(1)

UzL-ITS/OCEANCommunity100%

OCEAN: Open-World Contrastive Authorship Identification

40Shell, PythonNov 18, 20241 years ago

Similar Papers

Cite this paper

@article{mchtle2024ocean,
  title  = {OCEAN: Open-World Contrastive Authorship Identification},
  author = {Felix Mächtle and Jan-Niclas Serr and Nils Loose and Jonas Sander and Thomas Eisenbarth},
  year   = {2024},
  eprint = {2412.05049},
  archivePrefix = {arXiv},
  url    = {http://arxiv.org/abs/2412.05049v1}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2412.05049.svg)](https://codeofpaper.com/paper/2412.05049)

Discussion