$\require{mediawiki-texvc}$

연합인증

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

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

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

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

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

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

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

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

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

[국내논문] 에지 확장을 통한 제어 흐름 그래프의 효과적인 비교 방법
An Effective Method for Comparing Control Flow Graphs through Edge Extension 원문보기

정보처리학회논문지. KIPS transactions on computer and communication systems 컴퓨터 및 통신 시스템, v.2 no.8, 2013년, pp.317 - 326  

임현일 (경남대학교 컴퓨터공학과)

초록
AI-Helper 아이콘AI-Helper

본 논문에서는 바이너리 프로그램의 정적인 구조를 표현하는 제어 흐름 그래프를 비교하는 방법을 제안한다. 제어 흐름 그래프를 비교하기 위해서 기본 블록에 포함된 프로그램의 명령어 및 구문 정보를 비교한 후 기본 블록 사이의 유사한 정도를 측정한다. 또한, 에지 확장을 통해 기본 블록들 간의 제어 흐름을 표현하는 그래프 에지의 유사성을 함께 반영한다. 각 기본 블록 사이의 유사도 결과를 기반으로 기본 블록을 서로 매칭하고, 기본 블록 사이의 매칭 정보를 이용해서 전체 제어 흐름 그래프의 유사도를 측정한다. 본 논문에서 제안한 방법은 자바 프로그램으로부터 추출한 제어 흐름 그래프를 대상으로 제어 흐름 구조의 유사성에 따라 두 가지 기준으로 실험을 수행하였다. 그리고, 성능을 평가하기 위해서 기존의 구조적 비교 방법을 함께 실험하였다. 실험 결과로부터 에지 확장 방법은 서로 다른 프로그램에 대해 충분한 변별력을 가지고 있음을 확인할 수 있다. 프로그램 비교에 좀 더 많은 시간이 소요되지만, 구조가 유사한 프로그램에 대한 매칭 능력에서 기존의 구조적 비교 방법에 비해 우수한 결과를 보였다. 제어 흐름 그래프는 프로그램의 분석에 다양하게 활용될 수 있으며, 제어 흐름 그래프의 비교 방법은 프로그램의 유사성 비교를 통한 코드의 최적화, 유사 코드 검출, 코드의 도용 탐지 등 다양한 분야에서 응용될 수 있을 것이라 기대된다.

Abstract AI-Helper 아이콘AI-Helper

In this paper, we present an effective method for comparing control flow graphs which represent static structures of binary programs. To compare control flow graphs, we measure similarities by comparing instructions and syntactic information contained in basic blocks. In addition, we also consider s...

Keyword

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

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

문제 정의

  • 본 논문에서는 바이너리 프로그램의 제어 흐름 그래프사이에 유사도를 검출하기 위해서 우선 기본 블록간의 유사한 정도를 측정한다. 기본 블록 간의 유사성은 에지 확장을 통해 블록 간의 변별력을 크게 가질 수 있다.
  • 이 수식을 통해 비교한 결과는 하나의 기본 블록에 대해서 그 블록의 실행 전후에 실행되는 기본 블록들에 동일한 구문이 얼마나 많이 포함되어 있는가를 측정한다. 기본 블록의 유사한 정도를 측정하기 위해서 그 연속적으로 실행되는 블록을 비교한 결과를 함께 고려할 수 있도록 에지를 확장한 것이다. 이는 제어 흐름 그래프 상에서 기본 블록 간의 선후 관계를 반영할 수 있고, 제어 흐름 그래프의 비교에 프로그램의 실행 절차를 반영할 수 있다.
  • 본 논문에서 제안한 비교 방법과 기존의 구조적 비교 방법 [12, 13]을 이용해서 총 19,306 쌍에 대한 비교를 수행하였으면 결과를 분석하였다. 본 실험은 다른 제어 흐름 그래프 사이의 비교 결과에서 얼마나 변별력 있는 유사도 결과를 보여주는지 평가한다. 그래서 서로 다른 제어 흐름 그래프라면 충분히 낮은 유사도 분포를 보이는 것이 효과적이다.
  • 본 실험은 서로 유사한 구조를 가진 제어 흐름 그래프를 비교할 때 높은 유사도를 결과로 보일 수 있는지를 평가한다. 실험을 위해서 유사한 구조의 프로그램은 원본 프로그램을 변형한 프로그램을 고려하였으며, 난독화 도구인 Smokescreen [14]과 Zelix KlassMaster(ZKM) [15]를 사용 하였다.
  • 본 논문에서는 바이너리 프로그램의 제어 흐름 그래프를 비교하기 위해서 기본 블록의 유사도와 더불어 에지 확장을 통해 제어 흐름 그래프의 구조적인 특성을 비교한다. 각 기본 블록들은 서로간의 유사성 순서에 따라 매칭함으로써 전체 제어 흐름 그래프 사이의 매칭 관계를 확인하고 유사도를 구할 수 있다.
  • 프로그램의 제어 흐름 그래프는 프로그램의 정적인 구조와 동작 특성을 효과적으로 기술할 수 있기 때문에 정적 분석과 동적 분석 등에서 광범위하게 사용되고 있다. 본 논문에서는 바이너리 프로그램의 구조를 표현하는 제어 흐름 그래프를 비교하는 방법을 제안하였다.
  • 그래서, 프로그램의 특성을 이해하고 분석 정보를 활용하기 위해서 정적 분석, 동적 분석 등에서 광범위하게 사용되고 있다. 본 논문에서는 프로그램의 유사성을 판단하기 위해서 제어 흐름 그래프의 에지 확장을 통해 효과적으로 구조를 비교하는 방법을 제안한다. 제어 흐름 그래프의 비교를 위해서 그래프를 구성하는 기본 블록(basic block)들의 특성을 비교하는 방법을 사용하고 있다.

가설 설정

  • 1에서는 두 개의 제어 흐름 그래프에서 각각 기본 블록 A와 B를 보여주고 있으며, A와 B는 연결된 에지를 통해 제어 흐름으로 연결된 기본 블록간의 관계를 보여주고 있다. 각각의 기본 블록 내에 표기된 알파벳 소문자는 기본 블록을 구성하는 프로그램 명령어를 나타낸다고 가정한다. 본 예제에서 기본 블록 A에는 3개의 명령 구문 {f, g, h}가 포함되어 있고, 기본 블록 B에는 명령 구문 {f, h, b}가 포함되어 있다.
본문요약 정보가 도움이 되었나요?

질의응답

핵심어 질문 논문에서 추출한 답변
바이너리 프로그램의 제어 흐름 그래프는 무엇인가? 바이너리 프로그램의 제어 흐름 그래프는 프로그램의 정적인 구조를 효과적으로 기술할 수 있는 자료 구조이다. 그래서, 프로그램의 특성을 이해하고 분석 정보를 활용하기 위해서 정적 분석, 동적 분석 등에서 광범위하게 사용되고 있다.
최대 공통 부분 그래프를 찾는 문제를 실제 환경에 활용하기 어려운 이유는 무엇인가? 일반적인 그래프의 비교 방법으로 두 그래프의 동일성을 비교하기 위해서 최대 공통 부분 그래프(maximum common subgraph) [6]를 이용하는 방법이 있는데, 최대 공통 부분 그래프를 찾는 문제는 NP-Hard 문제로 그 계산의 복잡도가 비효율적이기 때문에 실제 환경에 직접 활용하기 어렵다. 이를 보완하기 위해서 최대 공통 부분 그래프를 활용한 근사 비교 방법 [7, 8]에 관한 연구가 수행되고 있다.
비교 대상이 되는 그래프의 노드들이 레이블을 가지고 있지 않을 때 노드 간의 비교는 어떻게 하는가? 첫 번째는 비교 대상이 되는 그래프의 노드들이 레이블(label)을 가지고 있지 않는 경우이다. 이 경우 각 노드는 어떤 값을 가지고 있지 않는 경우이며, 노드간의 비교는 연결된 에지의 동일성 여부로 판단하게 된다. 두 번째는 그래프의 노드가 레이블을 가지고 있는 경우이다.
질의응답 정보가 도움이 되었나요?

참고문헌 (15)

  1. Renhard Wilhelm and Dieter Maurer, Compiler Design, Addison-Wesley, 1995. 

  2. Ruben Smelik, Arend Rensink, and Harmen Kastenberg, Specification and Construction of Control Flow Semantics, In Proceedings of IEEE Symposium on Visual Languages and Human-Centric Computing, pp.65-72, Sept., 2006. 

  3. Danilo Bruschi, Lorenzo Martignoni, and Mattia Monga, Detecting Self-Mutating Malware Using Control-Flow Graph Matching, In Proceedings of Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA 2006), LNCS 4064, pp.129-143, 2006. 

  4. Guillaume Bonfante, Matthieu Kaczmarek, and Jean-Yves Marion, Control Flow to Detect Malware, Inter-Regional Workshop on Rigorous System Development and Analysis 2007. 

  5. Guillaume Bonfante, Matthieu Kaczmarek, and Jean-Yves Marion, Control Flow Graphs as Malware Signatures, International Workshop on the Theory of Computer Viruses, 2007. 

  6. Alfred V. Aho, John E. Hopcroft, and Jeffrey D. Ullman, The Design and Analysis of Computer Algorithms, Addison-Wesley, 1974. 

  7. John W. Raymond1 and Peter Willett, Maximum common subgraph isomorphism algorithms for the matching of chemical structures, Journal of Computer-Aided Molecular Design, 16: pp.521-533, 2002. 

  8. Faisal N. Abu-Khzam, Nagiza F. Samatova, Mohamad A. Rizk, and Michael A. Langston, The Maximum Common Subgraph Problem: Faster Solutions via Vertex Cover, In IEEE/ACS International Conference on Computer Systems and Applications (AICCSA 2007), pp.367-373, May, 2007. 

  9. Zhiping Zeng, Anthony K. H. Tung, Jianyong Wang, Jianhua Feng, and Lizhu Zhou, Comparing Stars: On Approximating Graph Edit Distance, International Conference on Very Large Data Bases (VLDB 2009), 2009. 

  10. Laura Zager, Graph similarity and matching, MS Thesis, Dept of EECS, MIT, 2005. 

  11. Python Programming Language, http://www.python.org/ 

  12. Halvar Flake, Structural Comparison of Executable Objects, In Proceedings of the IEEE Conference on Detection of Intrusions and Malware & Vulnerability Assessment (DIMVA), pp.161-173, 2004 

  13. Thomas Dullien and Rolf Rolles, Graph-based comparison of executable objects, University of Technology in Florida, 2005. 

  14. Smokescreen Java Obfuscator, http://www.leesw.com/smokescreen/ 

  15. Zelix KlassMaster, http://www.zelix.com/klassmaster/ 

저자의 다른 논문 :

활용도 분석정보

상세보기
다운로드
내보내기

활용도 Top5 논문

해당 논문의 주제분야에서 활용도가 높은 상위 5개 콘텐츠를 보여줍니다.
더보기 버튼을 클릭하시면 더 많은 관련자료를 살펴볼 수 있습니다.

관련 콘텐츠

오픈액세스(OA) 유형

BRONZE

출판사/학술단체 등이 한시적으로 특별한 프로모션 또는 일정기간 경과 후 접근을 허용하여, 출판사/학술단체 등의 사이트에서 이용 가능한 논문

저작권 관리 안내
섹션별 컨텐츠 바로가기

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

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

선택된 텍스트

맨위로