메뉴 건너뛰기
.. 내서재 .. 알림
소속 기관/학교 인증
인증하면 논문, 학술자료 등을  무료로 열람할 수 있어요.
한국대학교, 누리자동차, 시립도서관 등 나의 기관을 확인해보세요
(국내 대학 90% 이상 구독 중)
로그인 회원가입 고객센터 ENG
주제분류

추천
검색

논문 기본 정보

자료유형
학위논문
저자정보

최용석 (단국대학교, 단국대학교 대학원)

발행연도
2014
저작권
단국대학교 논문은 저작권에 의해 보호받습니다.

이용수1

표지
AI에게 요청하기
추천
검색

이 논문의 연구 히스토리 (3)

초록· 키워드

오류제보하기
오늘날 다양한 산업에서 소프트웨어 이용이 증대되면서, 소프트웨어 유사도 분석의 필요성 역시 급속히 증가하고 있다. 소프트웨어 도용 및 표절에 관한 법정 소송 및 인터넷 공유 사이트에 관한 지적재산권 분쟁이 발생되고 있다. 최근의 소프트웨어 유사도 분석은 두 가지의 필수적 특징, 즉 소스 코드 없이 바이너리를 기반으로 하는 조사 그리고 교묘한 난독화를 극복할 수 있는 능력을 필요로 한다. 일부 실행 가능한 증거들이 제시될 때까지 개입된 회사나 개인 들이 이들의 소스 코드를 밝히려 하지 않기 때문에 소송에서는 종종 바이너리 코드만을 이용한 소프트웨어 유사도를 평가할 것을 요구하게 된다. 아울러, 악의적인 개발자 들은 원래의 코드 들을 난독화 시킴으로써 지적재산권 침해를 위장하려고 시도한다.

본 논문에서, 우리는 프리즘이라는 하나의 새로운 바이너리 기반의 소프트웨어 유사도 분석 도구를 제안하고자 한다. 이는 두 가지 프로세스, 즉 정적 분석 및 동적 분석으로 구성된다. 우리의 정적 분석은 두 개의 바이너리가 얼마나 유사한지 뿐 아니라 어떤 부분이 유사한지 까지 확인할 수 있다. 이는 1) 바이너리로부터 함수 호출 그래프를 구성하며, 2) 유클리드 공간 Rn, 에서 각 함수의 형상 벡터를 생성하며, 3) 지역 민감 해싱 (Locality-sensitive hashing) 및 해밍 거리 (Hamming distance)를 이용하여 벡터 들을 군집화하는 세 개의 단계로 구성된다. 군집화는 유사도를 정량적으로 측정함으로써 유사하지 않은 것으로 감지되는 함수 들을 식별할 수 있도록 한다. (우리는 이들을 핵심 영역으로 지칭함). 아울러, 우리는 정확도 및 성능을 제고하기 위해 검증 및 치수 확장을 위한 ngram을 적용하는 것과 같은 여러 가지의 고급 기법을 채용한다.

동적 분석 프로세스는 다양한 난독화에 대응하기 위하여 의미 인식 분석을 실시하도록 고안되어 있다. 악의적 개발자들이 이들의 표절을 문장 재배치 및 제어 흐름 재구성을 이용하여 이들의 표절을 은폐하려 할지라도, 의미 인식 분석은 그러한 트릭에 취약하지 않다. 하나의 의미적 정보로서, 본 논문에서, 우리는 메모리 값에 초점을 맞추고자 한다. 동적 분석 프로세스는 1) 핵심 부분으로부터 메모리 업데이트 추적을 수집하고, 2) AMC (추상 메모리 문맥: Abstract memory context)를 생성하고, 3) 유사도 측정에 이르게 하는AMC를 비교하는 세 가지 단계로 구성된다. 정확도 개선을 위하여 지역 필터링 및 서열 정렬과 같은 여러 고급 기법 들이 채용되었다.

제안된 기법은 4개의 잘 알려진 오픈소스를 이용하여 유사도 분석 및 표절 감지가 실시된 x86 기반 64bit Linux 환경에서 시험되었다. 유사도 비교에서, 오픈소스 근접 버전은 94%~72%의 유사도를 보였으며, 상대적으로 큰 차이를 갖는 버전 들은49%~25%의 유사도를 보였다. 특히, 유사도 분석에 대한 제어 함수 블록 단위에서 정밀성을 나타내고 있다. 또한, 다양한 코드의 난독화 시도에도 불구하고 효과적으로 표절 위치를 감지하였다.

목차

I. 서론 1
II. 관련연구 6
1. 동적, 정적 유사도 관련 연구 6
1) 정적 분석 관련 연구 6
2) 동적 분석 관련 연구 8
2. 기존 유사도 분석 문제점과 Prism 분석도구 특징 10
III. 바이너리 유사도 분석을 위한 Prism 전체구조 11
1. Prism 유사도 분석 시스템 전체 구조 11
2. 정적 분석 도구 상세 설계 및 구현 13
1) 바이너리 특징정보 벡터 생성 13
2) 특징정보 벡터 클러스터링 16
3) 노드 구간별 순회 매칭 및 탐색 20
4) 핵심 분석 영역 추출 및 전체 유사도 23
3. 동적 분석 도구 상세 설계 및 구현 25
1) 메모리 트레이스 구현 25
2) 메모리 문맥의 추상화 33
IV. 효율적인 유사도 분석을 위한 향상된 기법 31
1. 정적 유사도 분석의 효율적인 전략 31
1) 특징정보 의존관계 기반 차원 확장 29
2) 지역 민감 해시를 이용한 거리 문제의 효율적 대응 31
3) 해밍 거리 연산을 위한 특징정보 색인 39
4) 거리 함수와 유클리드 거리 41
2. 동적 분석을 이용한 표절 분석 전략 43
1) 메모리 문맥의 추상화 원리 43
2) 영역별 필터링에 의한 추상화 메모리 문맥 47
V. 실험결과 50
1. 정적 유사도 측정 결과 52
1) Prism에 의한 전체 유사도 분석 결과 52
2) Prism에 의한 유사도 분석 결과 분포 54
3) 커널 개수에 따른 클러스터링 효과 56
4) 단계별 유사도 분석소요 시간 58
5) 동일 Category의 서로 다른 프로그램 유사도 비교 62
2. 동적 유사도 및 표절 검출 결과 64
1) 핵심 분석 범위 분석에 의한 표절 분석 결과 64
VI. 결론 65
참고문헌 67
표목차 71
그림목차 72
영문요약 74

최근 본 자료

전체보기

댓글(0)

0