Skip to main content
QUICK REVIEW

[논문 리뷰] WaterRPG: A Graph-based Dynamic Watermarking Model for Software Protection

Ioannis Chionis, Maria Chroni|arXiv (Cornell University)|2014. 03. 17.
Advanced Steganography and Watermarking Techniques참고 문헌 21인용 수 4
한 줄 요약

이 논문은 기능 호출 관계를 이용해 프로그램 실행 추적을 동형 감소 가능한 순열 그래프로 구조화함으로써 소프트웨어 워터마크를 삽입하는 그래프 기반 동적 워터마킹 모델인 WaterRPG을 제안한다. 이 모델은 비밀 키 입력 하에 런타임 호출 그래프를 통해 워터마크를 동적으로 삽입하며, 변형, 최적화, 역분석 공격에 대해 높은 내성을 보이며 낮은 오버헤드와 완벽한 추출 정확도를 달성한다.

ABSTRACT

Software watermarking involves embedding a unique identifier or, equivalently, a watermark value within a software to prove owner's authenticity and thus to prevent or discourage copyright infringement. Towards the embedding process, several graph theoretic watermarking algorithmic techniques encode the watermark values as graph structures and embed them in application programs. Recently, we presented an efficient codec system for encoding a watermark number $w$ as a reducible permutation graph $F[π^*]$ through the use of self-inverting permutations $π^*$. In this paper, we propose a dynamic watermarking model, which we call WaterRPG, for embedding the watermark graph $F[π^*]$ into an application program $P$. The main idea behind the proposed watermarking model is a systematic use of appropriate calls of specific functions of the program $P$. More precisely, for a specific input $I_{key}$ of the program $P$, our model takes the dynamic call-graph $G(P, I_{key})$ of $P$ and the watermark graph $F[π^*]$, and produces the watermarked program $P^*$ having the following key property: its dynamic call-graph $G(P^*, I_{key})$ is isomorphic to the watermark graph $F[π^*]$. Within this idea the program $P^*$ is produced by only altering appropriate calls of specific functions of the input application program $P$. We have implemented our watermarking model WaterRPG in real application programs and evaluated its functionality under various and broadly used watermarking assessment criteria. The evaluation results show that our model efficiently watermarks Java application programs with respect to several watermarking metrics like data-rate, bytecode instructions overhead, resiliency, time and space efficiency. Moreover, the embedded watermarks withstand several software obfuscation and optimization attacks.

연구 동기 및 목표

  • 코드 변형과 역공학 공격에 저항할 수 있는 강력한 동적 워터마킹을 통해 소프트웨어 위조 유통의 증가하는 도전에 대응한다.
  • 고정된 코드 구조에 워터마크를 인코딩하는 정적 워터마킹의 한계를 극복하기 위해 실행 추적에 워터마크를 인코딩한다.
  • 일반적인 소프트웨어 공격인 변형, 최적화, 역분석 공격에 대해 워터마크의 무결성을 유지할 수 있는 모델을 개발한다.
  • 실제 자바 애플리케이션에서 강력한 은밀성과 내성을 유지하면서도 높은 데이터율과 낮은 계산 오버헤드를 달성한다.
  • 비밀 키 입력을 통해 동적 호출 그래프의 동형성에 기반해 워터마크를 신뢰성 있게 추출함으로써, 변조되지 않은 프로그램에서 0%의 거짓 양성 또는 음성 결과를 보장한다.

제안 방법

  • 자기 역전치 순열 $ \pi^{*} $ 를 사용하여 워터마크를 감소 가능한 순열 그래프 $ F[\pi^{*}] $ 로 표현함으로써 워터마크 정수의 효율적 인코딩을 가능하게 한다.
  • 비밀 키 입력 $ I_{key} $ 하에서 원본 프로그램 $ P $ 의 동적 호출 그래프 $ G(P, I_{key}) $ 를 구축하며, 이는 런타임 실행 추적으로 기능한다.
  • 워터마크 그래프 $ F[\pi^{*}] $ 를 함수 호출을 수정하여 삽입함으로써, 결과적으로 $ I_{key} $ 하에서 수신된 워터마크 프로그램 $ P^{*} $ 가 $ F[\pi^{*}] $ 와 동형인 호출 그래프를 생성하도록 한다.
  • 코덱 알고리즘을 사용해 워터마크 값과 그래프 구조를 매핑함으로써, 워터마크가 함수 호출 순서의 구조적 변화를 통해만 삽입되도록 보장한다.
  • 구조적 성질이 유지되도록 하여, 의미 유지 변환 또는 코드 최적화가 적용된 경우에도 워터마크가 그대로 유지되도록 보장한다.
  • 삽입 과정에서 새로운 코드와 호스트 코드를 모두 활용함으로써 은밀성을 향상시키고, 워터마크를 프로그램의 기능적 행동의 일부로 통합한다.

실험 결과

연구 질문

  • RQ1동적 워터마킹 모델이 낮은 계산 및 메모리 오버헤드를 유지하면서도 동형 런타임 호출 그래프를 통해 워터마크를 삽입할 수 있는가?
  • RQ2워터마크가 표현 재정렬, 루프 재정렬, ProGuard 변형, 의미 유지 최적화와 같은 일반적인 소프트웨어 공격에 얼마나 내성적인가?
  • RQ3워터마킹 후 프로그램의 기능성과 실행 효율성이 어느 정도 유지되는가?
  • RQ4변경되지 않은 프로그램에서 워터마크가 거짓 양성 또는 음성 결과 없이 신뢰성 있게 추출될 수 있는가?
  • RQ5모델의 데이터율이 워터마크 그래프의 크기와 사용된 함수 수에 따라 어떻게 스케일링되는가?

주요 결과

  • WaterRPG 모델은 변조되지 않은 프로그램에서 100%의 워터마크 추출 정확도를 달성하며, 거짓 양성 또는 음성 결과가 전혀 없으며, 이는 동적 호출 그래프 $ G(P^{*}, I_{key}) $ 가 항상 $ F[\pi^{*}] $ 와 동형이기 때문이다.
  • 모델은 워터마크 그래프 $ F[\pi^{*}] $ 의 크기에 비례하는 선형 시간 및 공간 오버헤드를 보이며, 바이트코드 명령어 오버헤드가 최소한이다.
  • WaterRPG는 표현 재정렬, 루프 재정렬, ProGuard 변형, 의미 유지 최적화 등 다양한 공격에 대해 성공적으로 저항한다.
  • Java Decompiler와 같은 도구를 사용한 역분석 후에도 워터마크가 그대로 유지되며, $ G(P^{*}, I_{key}) $ 와 $ F[\pi^{*}] $ 간의 동형성이 유지되기 때문이다.
  • 원본 프로그램이 클 경우, 사용된 함수 수가 워터마크 그래프의 크기와 직접적으로 관련되므로 높은 데이터율을 유지한다.
  • 삽입 과정에서 워터마크 논리를 호스트 코드에 자연스럽게 통합함으로써 은밀성을 향상시키고, 프로그램 전체 이해 없이 제거하는 것을 어렵게 한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.