Core Concepts
소스 코드에는 개발자의 코딩 스타일에 대한 미묘한 단서가 포함되어 있어, 기계 학습을 통해 개발자를 식별할 수 있다. 이는 검열에 반대되는 기술을 개발하는 개발자들에게 큰 위협이 된다. 소스 코드 익명화는 이러한 위협을 해결하기 위한 이상적인 방법이지만, 이에 대한 이론적 및 실용적 원칙은 아직 탐구되지 않았다.
Abstract
이 논문에서는 소스 코드 익명화에 대한 문제를 다루고 있다. 먼저 소스 코드 저자 식별 기술에 대해 설명하고, 개발자 익명성 확보를 위한 위협 모델을 제시한다. 이어서 소스 코드 익명화에 대한 이론적 프레임워크를 제안하고, 이를 바탕으로 k-익명성과 k-불확실성이라는 두 가지 개념을 소개한다.
k-익명성은 소스 코드가 k명의 저자 중 하나로 식별될 수 있음을 의미하지만, 이는 일반적으로 계산할 수 없는 문제로 밝혀졌다. 이에 따라 k-불확실성이라는 완화된 개념을 제안하였는데, 이는 k명의 저자 중 누구인지 확신할 수 없는 정도를 측정하는 것이다.
이 개념을 바탕으로 코드 정규화, 코딩 스타일 모방, 코드 난독화 등의 익명화 기법을 실험적으로 평가하였다. 정규화와 모방 기법은 정적 시나리오에서는 어느 정도 효과가 있었지만, 공격자가 이를 인지하고 적응하는 경우 효과가 크게 감소하였다. 난독화 기법 중 Tigress는 가장 강력한 보호 효과를 보였지만, 일부 개발자에 대해서는 여전히 식별이 가능했다.
결론적으로 소스 코드 익명화는 매우 어려운 문제로, 이에 대한 새로운 개념과 접근법이 필요하다고 제안한다.
Stats
저자 식별 정확도가 GCJ 데이터셋에서 최대 75.4%, GH 데이터셋에서 최대 34.6%에 달한다.
Tigress 난독화 기법을 적용하면 GCJ 데이터셋에서 정확도가 25% 이하로 떨어지고, GH 데이터셋에서는 8% 이하로 떨어진다.
Quotes
"소스 코드의 익명화는 이상적인 보호 방법이지만, 이에 대한 이론적 및 실용적 원칙은 아직 탐구되지 않았다."
"k-익명성을 달성하는 일반적인 방법은 계산할 수 없는 문제로 밝혀졌다."
"소스 코드 익명화는 매우 어려운 문제로, 이에 대한 새로운 개념과 접근법이 필요하다."