$\require{mediawiki-texvc}$

연합인증

연합인증 가입 기관의 연구자들은 소속기관의 인증정보(ID와 암호)를 이용해 다른 대학, 연구기관, 서비스 공급자의 다양한 온라인 자원과 연구 데이터를 이용할 수 있습니다.

이는 여행자가 자국에서 발행 받은 여권으로 세계 각국을 자유롭게 여행할 수 있는 것과 같습니다.

연합인증으로 이용이 가능한 서비스는 NTIS, DataON, Edison, Kafe, Webinar 등이 있습니다.

한번의 인증절차만으로 연합인증 가입 서비스에 추가 로그인 없이 이용이 가능합니다.

다만, 연합인증을 위해서는 최초 1회만 인증 절차가 필요합니다. (회원이 아닐 경우 회원 가입이 필요합니다.)

연합인증 절차는 다음과 같습니다.

최초이용시에는
ScienceON에 로그인 → 연합인증 서비스 접속 → 로그인 (본인 확인 또는 회원가입) → 서비스 이용

그 이후에는
ScienceON 로그인 → 연합인증 서비스 접속 → 서비스 이용

연합인증을 활용하시면 KISTI가 제공하는 다양한 서비스를 편리하게 이용하실 수 있습니다.

자바스크립트에 특화된 프로그램 종속성 그래프를 이용한 표절 탐지
Plagiarism Detection Using Dependency Graph Analysis Specialized for JavaScript 원문보기

정보과학회논문지. Journal of KIISE. 소프트웨어 및 응용, v.37 no.5, 2010년, pp.394 - 402  

김신형 (한국과학기술원 전산학과) ,  한태숙 (한국과학기술원 전산학과)

초록
AI-Helper 아이콘AI-Helper

자바스크립트는 현재 웹 사이트, 웹 어플리케이션에서 가장 많이 사용되는 스크립트 언어 중 하나이다. 자바스크립트로 작성된 프로그램은 원본 프로그램 형태로 클라이언트에게 전송되므로 무단 복제, 도용에 쉽게 노출된다. 때문에 자바스크립트 프로그램의 도용을 탐지하기 위한 연구가 필요하다. 현재 일반적으로 프로그램 표절 탐지를 위해 사용되는 자동화 도구들의 경우 고수준의 표절 기법에 적절히 대응하지 못한다. 반면에 프로그램 종속성 그래프에 기반을 둔 기존 연구들의 경우 자바스크립트의 동적인 특징을 적절히 반영하지 못한다. 또한 지나친 일반화로 인해 일부 틀린 판정(false positive)을 보이며 대상 프로그램의 크기가 클 경우 탐지 속도에 문제를 보이고 있다. 본 논문에서는 자바스크립트에 특화된 프로그램 종속성 그래프(이하 JS PDG)와 이를 사용한 도용 탐지 기법을 제안하여 이러한 문제를 해결하고자 한다. 본 논문에서 제안하는 JS PDG는 세분화된 노드 타입을 가지고 있어 기존 PDG와 비교해 보다 정확한 그래프 간 비교를 할 수 있도록 하며 포함하고 있는 노드 타입에 따라 정의되는 JS PDG의 타입은 탐색 범위를 분할을 가능하게 해 전체 도용 탐지 속도가 개선 될 수 있도록 한다. 실험 결과 기존 PDG에서 나타나는 틀린 판정을 확인할 수 있었으며 PDG간 비교 횟수가 줄어들어 도용 탐지 속도가 개선됨을 확인할 수 있었다.

Abstract AI-Helper 아이콘AI-Helper

JavaScript is one of the most popular languages to develope web sites and web applications. Since applicationss written in JavaScript are sent to clients as the original source code, they are easily exposed to plagiarists. Therefore, a method to detect plagiarized JavaScript programs is necessary. T...

주제어

AI 본문요약
AI-Helper 아이콘 AI-Helper

* AI 자동 식별 결과로 적합하지 않은 문장이 있을 수 있으니, 이용에 유의하시기 바랍니다.

문제 정의

  • JS PDG는 자바스크립트의 동적인 특징을 반영하여 에지(edge)을 구성하며 노드(node)의 타입 정보를 가지고 있어 보다 정확한 자바스크립트 프로그램의 의미를 나타낼 수 있다. 또한 각 JS PDG가 포함하고 있는 특수 노드를 이용하여 한정된 탐색 범위를 제공함으로써 전체적인 도용 탐지의 속도를 향상 시킬 수 있는 방법을 제시한다.
  • 본 논문에서는 앞에서 발견된 문제점들을 해결하기 위해 자바스크립트에 특화된 프로그램 종속성 그래프(이하 JS PDG라 칭함)와 이를 이용한 도용 탐지 기법을 제안한다. JS PDG는 자바스크립트의 동적인 특징을 반영하여 에지(edge)을 구성하며 노드(node)의 타입 정보를 가지고 있어 보다 정확한 자바스크립트 프로그램의 의미를 나타낼 수 있다.
  • 본 논문에서는 특수 노드의 타입 정보를 포함하고 있는 JS PDG와 이를 이용한 도용 탐지 기법을 제안했다. JS PDG에서 사용된 특수 노드들은 다른 객체, 값으로 대체 불가능한 특징을 가진 것들로 이들의 타입 정보를 이용해 보다 정확한 도용 탐지가 이루어질 수 있도록 추가적인 정보를 제공하는 역할을 한다.
  • 본 실험에서는 4.1 과 4.2에서 언급한 JS PDG가 가지고 있는 특징 즉, 속도와 정확도 개선에 대한 검증을 하고자 하였다.
  • 우리는 향후 본 논문에서 제안하는 JS PDG와 이를 활용한 자바스크립트 도용 탐지 기법을 바탕으로 웹 사이트, 웹 어플리케이션 간의 도용 여부를 합리적인 시간 안에 탐지할 수 있는 자동화 시스템을 구축하고자 한다.

가설 설정

  • 현재 많이 사용되는 자바스크립트 라이브러리①brary) 중 3 개를 선택한 후 각 프로그램에 대해 2개의 버전 (version)을 대상 프로그램으로 선정하여 하위 버전을 원본 프로그램으로, 상위 버전을 도용이 의심되는 도용프로그램으로 가정했다. 일반적으로 상위 바전에서 하위 버전에서 사용하던 함수를 그대로 사용하거나 약간의 변경을 하되 본래의 기능 그대로 사용하는 경우가 많이 있기 때문에 그러한 함수 쌍을 원본과 도용이 의심되는 함수 쌍으로 찾고자 하는 것이다.
본문요약 정보가 도움이 되었나요?

참고문헌 (18)

  1. Paulson, L. D. et al., "Building rich web applications with Ajax," In Computer, vol.38. pp.14-17, 2005. 

  2. J. W. Michael, "YAP3: improved detection of similarities in computer program and other texts," SIGCSE Bulletin, vol.28, pp.130-134, 1996. 

  3. L. Prechelt, et al., "Finding plagiarisms among a set of programs with JPlag," J. of Universal Computer Science, vol.8, pp.1016-1038, 2002. 

  4. T. Kamiya, et al., "CCFinder: A Multilinguistic Token-Based Code Clone Detection System for Large Scale Source Code," IEEE TSE, vol.28, no.7, pp.654-670, 2002. 

  5. S. Schleimer, et al., "Winnowing: local algorithms for document fingerprinting," In Proc. of ACM SIGMOD Int. Conf. on Mgmt. of Data, 2003. 

  6. S. Bellon, et al., "Comparison and Evaulation of Clone Detection Tools," IEEE Trans. on Software Engineering, vol.33, no.9, September 2007. 

  7. J. Krinke, "Identifying similar code with program dependence graphs," In Proc. WCRE'01. IEEE, 2001. 

  8. R. Komondoor and S. Horwitz, "Using Slicing to Identify Duplication in Source Code," In Proc. of the 8th Int. Sym. on Static Analysis, pp.40-56, 2001. 

  9. Liu, C. et al., "GPLAG: detection of software plagiarism by program dependence graph analysis," In Proc. of the 12th ACM SIGKDD Int. Conf. on Knowledge discovery and data mining, pp.872-881, 2006. 

  10. Dongseok Jang et al., "Points-to analysis for JavaScript," In Proc. of the 2009 ACM sym. on Applied Computing, pp.1930-1937. 

  11. I. Baxter et al., "Clone Detection Using Abstract Syntax Trees," In ICSM, pp.368-377, 1998. 

  12. R. Koschke et al., "Clone Detection Using Abstract Syntax Suffix Trees," In Proc. WCRE'06. IEEE, 2006. 

  13. Lanubile F. et al., "Finding Function Clones in Web Applications," In Software Maintenance and Reengineering, 2003. Proc. 7th European Conf., pp.379-386. 

  14. Jeanne Ferrante et al., "The Program Dependence Graph and its use in optimtization," In ACM Trans. on Programming Languages and Systems, vol.9, no.3, pp.319-349, July 1987. 

  15. Alfred V. Aho, Ravi Sethi, Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison- Wesley Longman Publishing Co., Inc., Boston, MA, 1986. 

  16. ECMAScript Language Specification Edition 3 

  17. J. R. Ullmann, "An algorithm for subgraph isomorphism," J. of the Association for Computing Machinery, vol.23, pp.31-42, 1976. 

  18. Luigi P. Cordella et al., "A (Sub)Graph Isomorphism Algorithm for Matching Large Graphs," IEEE Trans. on Pattern Analysis and Machine Intelligence, vol.26, no.10, pp.1367-1372, Oct. 2004. 

저자의 다른 논문 :

LOADING...
섹션별 컨텐츠 바로가기

AI-Helper ※ AI-Helper는 오픈소스 모델을 사용합니다.

AI-Helper 아이콘
AI-Helper
안녕하세요, AI-Helper입니다. 좌측 "선택된 텍스트"에서 텍스트를 선택하여 요약, 번역, 용어설명을 실행하세요.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.

선택된 텍스트

맨위로