DOI QR코드

DOI QR Code

Detecting Software Similarity Using API Sequences on Static Major Paths

정적 주요 경로 API 시퀀스를 이용한 소프트웨어 유사성 검사

  • 박성수 (성균관대학교 전자전기컴퓨터공학과) ;
  • 한환수 (성균관대학교 컴퓨터공학과)
  • Received : 2014.07.21
  • Accepted : 2014.09.23
  • Published : 2014.12.15

Abstract

Software birthmarks are used to detect software plagiarism. For binaries, however, only a few birthmarks have been developed. In this paper, we propose a static approach to generate API sequences along major paths, which are analyzed from control flow graphs of the binaries. Since our API sequences are extracted along the most plausible paths of the binary codes, they can represent actual API sequences produced from binary executions, but in a more concise form. Our similarity measures use the Smith-Waterman algorithm that is one of the popular sequence alignment algorithms for DNA sequence analysis. We evaluate our static path-based API sequence with multiple versions of five applications. Our experiment indicates that our proposed method provides a quite reliable similarity birthmark for binaries.

소스코드가 없이 실행코드만으로 소프트웨어 간의 유사성을 비교하기위해 소프트웨어 버스마크를 이용한다. 소프트웨어 버스마크란 그 소프트웨어만의 고유한 특징으로 소프트웨어 식별에 사용된다. 본 논문에서는 정적 주요경로 상의 API 함수 시퀀스를 이용하여 소프트웨어 간의 유사성을 산정하는 방법을 제시한다. 바이너리코드에서 소프트웨어의 특성이 뚜렷하게 나타나는 API 함수만을 사용하여 소프트웨어 유사성 검사의 신뢰성을 높이고, 정적 분석 기법에 동적 분석 기법의 특징을 적용하여 강인성을 높이는 방법을 모색하였다. 정적 분석으로 바이너리코드의 주요경로를 추출하고, API 함수 시퀀스 간의 효과적인 유사성 측정을 위해 서열정렬 알고리즘인 Smith-Waterman 알고리즘을 이용한 유사성 척도를 제안한다. 버스마크의 신뢰성을 평가하기 위하여 같은 프로그램의 여러 버전을 대상으로 실험하였고, 강인성을 평가하기 위해 오픈소스 소프트웨어의 소스코드를 다양한 컴파일환경으로 바꾸어 실험하였다.

Keywords

Acknowledgement

Supported by : 문화체육관광부, 한국저작권위원회

References

  1. H. Tamada, M. Nakamura, A. Monden, and K. Matsumoto, "Java birthmark Detecting the software theft," IEICE Transactions on Information and Systems, Vol. 88, No. 9, pp. 2148-2158, Sep. 2005.
  2. G. Myles and C. Collberg, "k-gram Based Software Birthmarks," Proceeding of the 2005 ACM Symposium on Applied Computing, pp. 314-318, 2005.
  3. S. Park, S. Ryu, and H. Han, "Software similarity comparison using API sequences on static major path," Proc. of KIISE Korea Computer Congress 2014, pp. 71-73, Jun. 2014. (in Korean)
  4. G. Myles, "Software Theft Detection Through Program Identification," Ph.D. Thesis, Dept. of Computer Science, The Univ. of Arizona, 2006.
  5. S. Park, S. Ko, and H. Han, "Binary Similarity comparison using trace-based function sequences," KIISE Workshop on Dependable Computing System, pp. 14-18, Aug. 2013. (in Korean)
  6. Smith T. F., and Waterman M. S., "Identification of Common Molecular Subsequences," Journal of Molecular Biology, Vol. 147, No. 1, pp. 195-197, 1981. https://doi.org/10.1016/0022-2836(81)90087-5
  7. Rognes, T., "Faster Smith-Waterman database searches with inter-sequence SIMD parallelisation," BMC Bioinformatics, Vol. 12, No. 1, pp. 221, 2011. https://doi.org/10.1186/1471-2105-12-221
  8. Brudno M., Malde S., Poliakov A., Do CB., Couronne O., Dubchak I., and Batzoglou S., "Glocal Alignment : finding rearrangements during alignment," Bioinformatics, Vol. 19, Suppl. 1, pp. i54-i62, 2003. https://doi.org/10.1093/bioinformatics/btg1005
  9. S. Schleimer, D. S. Wilkerson, and A. Aiken, "Winnowing: Local algorithms for document fingerprinting," Proceedings of the 2003 ACM SIGMOD International Conference on Management of Data, pp. 76-85, 2003.
  10. S. Choi, H. Park, H. Lim, and T. Han, "A static birthmark of binary executables based on API call structure," Advances in Computer Science-ASIAN 2007, Computer and Network Security, pp. 2-16, 2007.
  11. Wang, X., Jhi, Y., Zhu, S., and Liu, P., "Detecting software theft via system call based birthmarks," Proceedings of 25th Annual Computer Security Applications Conference, pp. 149-158, 2009.

Cited by

  1. Software Similarity Detection Using Highly Credible Dynamic API Sequences vol.43, pp.10, 2016, https://doi.org/10.5626/JOK.2016.43.10.1067
  2. Software Birthmark Design and Estimation: A Systematic Literature Review pp.2191-4281, 2019, https://doi.org/10.1007/s13369-019-03718-9