본문 바로가기 주메뉴 바로가기
국회도서관 홈으로 정보검색 소장정보 검색

목차보기

표제지

요약

목차

제1장 서론 9

제1절 연구 배경 및 목적 9

제2절 연구 범위 및 방법 11

제2장 관련 연구 13

제1절 인공지능 13

1. 기본 개념 13

2. 합성곱 신경망 13

제2절 특성 선택 17

1. 기본 개념 17

2. Filter Method 18

3. Wrapper Method 19

4. Embedded Method 20

제3절 선행 연구 고찰 21

1. 정적 분석 기반 연구 22

2. 동적 분석 기반 연구 23

제3장 API Call 차원 축소 방안 26

제1절 제안 모델 및 데이터세트 26

1. 제안 모델 26

2. 데이터세트 27

제2절 API Call 차원 축소 30

제3절 합성곱 신경망 33

제4장 실험 및 평가 36

제1절 실험 목적 및 환경 36

1. 실험 목적 36

2. 실험 환경 37

제2절 실험 결과 및 분석 38

1. 이진 분류 38

2. 카테고리 분류 42

3. Wrapper Method를 적용한 분류 45

4. 선택된 특성 분석 53

제5장 결론 56

참고문헌 57

Abstract 60

표목차

〈표 1〉 EntopLyzer를 이용한 Family 분류 결과 24

〈표 2〉 CICAndMal2020 Malware 카테고리별 세부정보 28

〈표 3〉 CICAndMal2020 Benign 세부정보 30

〈표 4〉 CNN 주요 계층별 옵션 및 활성화 함수 34

〈표 5〉 CICAndMal2020 Benign 세부정보 36

〈표 6〉 이진 분류에 대한 특성 선택 및 분류 학습 결과 38

〈표 7〉 이진 분류에 대한 특성 선택 및 분류 학습 소요 시간 39

〈표 8〉 카테고리 분류에 대한 특성 선택 및 분류 학습 결과 42

〈표 9〉 카테고리 분류에 대한 특성 선택 및 분류 학습 소요 시간 43

〈표 10〉 Wrapper Method를 적용한 이진 분류 결과 45

〈표 11〉 Wrapper Method 특성 선택 및 분류 학습 소요 시간 46

〈표 12〉 Wrapper Method를 적용한 카테고리 분류 결과 49

〈표 13〉 Wrapper Method 특성 선택 및 분류 학습 소요 시간 53

〈표 14〉 Filter Method를 통해 선택된 특성 정보 54

그림목차

〈그림 1〉 안드로이드 악성코드 총 누적 수 9

〈그림 2〉 월 단위 탐지된 안드로이드 악성코드 수 10

〈그림 3〉 인공지능, 머신러닝 및 딥러닝 관계 14

〈그림 4〉 CNN의 구조 14

〈그림 5〉 컨볼루션 연산 과정 15

〈그림 6〉 풀링 계층 연산 과정 16

〈그림 7〉 Filter Method 과정 18

〈그림 8〉 Wrapper Method 과정 19

〈그림 9〉 Embedded Method 과정 20

〈그림 10〉 제안 모델의 API Call 차원 축소 및 분류 절차 27

〈그림 11〉 실험_1 : 이진 분류를 위한 차원 축소 31

〈그림 12〉 실험_2 : 카테고리 분류를 위한 차원 축소 32

〈그림 13〉 실험_3 : Wrapper Method를 적용한 차원 축소 32

〈그림 14〉 소프트맥스 함수를 통한 카테고리 출력 과정 35

〈그림 15〉 이진 분류 결과(ANOVA(위), LASSO(아래)) 40

〈그림 16〉 이진 분류 오차행렬(ANOVA(위), LASSO(아래)) 41

〈그림 17〉 카테고리 분류 결과(ANOVA) 43

〈그림 18〉 카테고리 분류 오차행렬(ANOVA) 44

〈그림 19〉 이진 분류 결과(Forward(위), Backward(아래)) 47

〈그림 20〉 이진 분류 오차행렬(Forward(위), Backward(아래)) 48

〈그림 21〉 카테고리 분류 결과(Forward(위), Backward(아래)) 50

〈그림 22〉 카테고리 분류 오차행렬(Forward Selection) 51

〈그림 23〉 카테고리 분류 오차행렬(Backward Elimination) 52

초록보기

전 세계 모바일 운영체제 중 안드로이드가 가장 큰 규모를 차지하고 있으며, 오픈 소스 기반이기에 사용자가 쉽게 접근할 수 있다. 이러한 안드로이드 시장의 확대는 안드로이드 악성코드의 증가와도 비례하고 있으며, 악성코드에 의한 정보 유출을 막고자 방어 및 탐지 기법 또한 계속해서 등장하고 있다. 이 중 다양한 특성 정보를 이용한 악성코드 탐지 기법이 지속해서 연구되고 있는데, 악성코드와 같은 응용프로그램의 동작 시 반드시 API(Application Programming Interface)를 호출하기 때문에, API Call을 통한 탐지 기법 또한 연구되고 있다.

그러나 API Call을 포함한 데이터는 많은 특성을 포함하고 있기에 크기가 매우 크고, 차원의 크기가 커질수록 데이터를 분석하고 학습시키는 것은 일반적인 컴퓨팅 환경에서 많은 처리시간과 자원을 필요로 한다. 또한, 불필요한 특성에 의해 분류의 정확도를 낮추므로 효과적인 분류가 제한된다. 따라서, 본 논문에서는 안드로이드 악성코드 중 가장 최근에 발표된 CICAndMal2020 데이터세트를 이용하여 특성 선택 방법인 Filter Method, Wrapper Method, Embedded Method를 사용하여 특성의 차원을 축소시켰으며, 축소된 데이터를 CNN을 사용하여 이진 분류와 카테고리 분류 성능을 확인하였다. 실험 결과 이진 분류는 전체 특성 집합 중 최대 15% 크기로, 카테고리 분류는 최대 8% 크기로 축소되었으며, 축소된 특성 집합을 이용한 분류 실험에서는 이진 분류 97%, 카테고리 분류는 83% 수준의 높은 정확도를 달성하였다. 또한, 각 특성 선택 방법에 따라 선택되는 특성을 비교하였다.