DOI QR코드

DOI QR Code

Software Similarity Detection Using Highly Credible Dynamic API Sequences

신뢰성 높은 동적 API 시퀀스를 이용한 소프트웨어 유사성 검사

  • 박성수 (성균관대학교 정보통신대학) ;
  • 한환수 (성균관대학교 정보통신대학)
  • Received : 2016.02.12
  • Accepted : 2016.07.04
  • Published : 2016.10.15

Abstract

Software birthmarks, which are unique characteristics of the software, are used to detect software plagiarism or software similarity. Generally, software birthmarks are divided into static birthmarks or dynamic birthmarks, which have evident pros and cons depending on the extraction method. In this paper, we propose a method for extracting the API sequence birthmarks using a dynamic analysis and similarity detection between the executable codes. Dynamic birthmarks based on API sequences extract API functions during the execution of programs. The extracted API sequences often include all the API functions called from the start to the end of the program. Meanwhile, our dynamic birthmark scheme extracts the API functions only called directly from the executable code. Then, it uses a sequence alignment algorithm to calculate the similarity metric effectively. We evaluate the birthmark with several open source software programs to verify its reliability and credibility. Our dynamic birthmark scheme based on the extracted API sequence can be utilized in a similarity test of executable codes.

실행코드만으로 소프트웨어 간의 유사성을 비교하거나 표절을 검사하기 위해 소프트웨어만의 고유한 특징인 소프트웨어 버스마크를 이용한다. 일반적으로 소프트웨어 버스마크는 추출 방법에 따라 정적 버스마크와 동적 버스마크로 구분되고, 추출된 방법에 따라 장단점이 뚜렷하게 나타난다. 본 논문에서는 동적 분석을 이용하여 API 시퀀스 버스마크를 추출하고 실행코드 간의 유사성 검사에 이용하는 방법을 제안한다. 제안하는 동적 시퀀스 버스마크는 프로그램이 실행되는 과정에서 호출되는 모든 API 함수 및 시스템 호출을 포함하는 기존의 방법과는 다르게 실행코드 내에 정의되어 있는 API 함수만으로 구성된 API 시퀀스를 이용한다. 추출된 동적 버스마크는 프로그램의 시작에서 종료까지 호출되는 API 시퀀스이며 이를 효율적으로 비교하기 위해 서열정렬 알고리즘을 활용한 유사성 척도를 사용한다. 여러 오픈소스 소프트웨어를 비교하여 버스마크의 신뢰성과 강인성을 검증하였다. 제안하는 동적 API 시퀀스 버스마크는 실행코드의 유사성 검사에 용이하게 활용될 수 있을 것으로 기대된다.

Keywords

Acknowledgement

Grant : 스마트TV 2.0 소프트웨어 플랫폼

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," Proc. of the 2005 ACM Symposium on Applied Computing, pp. 314-318, 2005.
  3. H. Tamada, K. Okamoto, M. Nakamura, A. Monden, and K. Matsumoto, "Design and evaluation of dynamic software birthmarks based on api calls," Info. Science Technical Report NAIST-IS-TR2007011, ISSN(2007), 0919-9527.
  4. D. Kim, Y. Han, S. Cho, H. Yoo, J. Woo, Y. Nah, M. Park, and L. Chung, "Measuring similarity of windows applications using static and dynamic birthmarks," Proc. of the 28th Annual ACM Symposium on Applied Computing, pp. 1628-1633, ACM, Mar. 2013.
  5. 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
  6. 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
  7. S. Park, and H. Han, "Software Similarity Detection Using Integration of Static and Dynamic Birthmarks," KIISE Winter Conference 2015, Dec. 2015.
  8. Wang, X., Jhi, Y., Zhu, S., and Liu, P., "Detecting software theft via system call based birthmarks," Proc. of 25th Annual Computer Security Applications Conference, pp. 149-158, 2009.
  9. S. Park, and H. Han, "Detecting Software Similarity Using API Sequences on Static Major Paths," Journal of KIISE, Vol. 41, No. 12, pp. 1007-1012, Dec. 2014. https://doi.org/10.5626/JOK.2014.41.12.1007
  10. Intel Pin. [Online]. Available: https://software.intel.com/en-us/articles/pin-a-dynamic-binary-instrumentation-tool
  11. S. Schleimer, D. S. Wilkerson, and A. Aiken, "Winnowing: Local algorithms for document fingerprinting," Proc. of the 2003 ACM SIGMOD International Conference on Management of Data, pp. 76-85, 2003.
  12. A System for Detecting Software Plagiarism - MOSS, [Online]. Available: http://theory.stanford.edu/-aiken/moss/