'정적 분석'에 해당되는 글 1건

목차

1. 악성코드 정적 탐지 프로그램 

1.1 분석 사용도구 

1.2 분석 목적 

1.3 수행 기간 

1.4 결과 

1.5 악성코드 탐지 제작 

1.5.1 C언어 소스코드 


프로젝트명

악성코드 정적 탐지 프로그램

수행기간

20

사용 도구

Microsoft Visual Studio 2010 - C언어

목적

정적패턴을 통하여 악성코드 탐지

1.결과

- 만들면서 여러 가지 오류가 많았고 오류의 수정에 대해 중점을 두었지만 아직까진 미흡한 부분이 있습니다. 검사파일 용량이 너무 많을 경우 속도가 오래 걸리는 단점이 있어서 이 점을 보완하기 위하여, 검사할 수 있는 파일용량 사이즈를 임의로 정한 사이즈 수까지 나눠서 검사하도록 하였지만, 악성코드의 패턴이 제가 정한 사이즈의 범위에 있다는 전제 하에 탐지하는 방식이기에 범위를 벗어난 악성코드 패턴인식은 불가능하다는 점입니다.

<!--[if !supportEmptyParas]--> <!--[endif]-->

- Suicide.bat, Sxstrace.exe, SystemPropertiesRemote.exe 이 세 개의 프로그램을 악성코드로 지정하고 패턴을 저장시킵니다.

- Suicide.bat 감지 패턴 77 73 63 72 69 70 74 2e 65 78 65


- Sxstrace.exe 감지 패턴 45 6e 61 62 6c 65 54 72 61 63 65 45 78


- SystemPropertiesRemote.exe 감지 패턴 53 79 73 74 65 6d 50 72 6f 70 65 72 74 69 65 73 52 65 6d 6f 74 65 2e 70 64 62


- 악성코드 탐지 파일목록


- 악성코드 검사 대상 파일 목록

(지정된 악성코드 파일들을 제외한 나머지 파일들은 Windows 파일)


- 악성코드 검사

 

2.악성코드 탐지 구조

<!--[if !supportEmptyParas]--> <!--[endif]-->

- 재귀 함수를 통하여 디렉토리 구분을 하고 하위 디렉토리까지 검사가 가능하며, 탐지 방식은 16진수 패턴을 만들어 탐지합니다.

- 검사 대상의 파일 사이즈를 얻어고 사이즈의 크기만큼 cch1,cch에 동적으로 할당해줌 cch1,cch는 임의로 크기를 지정하기엔 너무 많은 빈공간이 발생 또는 공간이 부족할 수도 있다고 생각하여 동적으로 할당함

- 패턴.txt 안에 담겨진 비교할 16진수 패턴 내용을 buffer에 동적 할당을 합니다.


- 사이즈 크기가 55000바이트를 넘어가버리면 시간이 너무 오래 걸리게 되어버려서 사이즈 체크를 함 55000바이트 미만일 경우 정상 작동 ch에 검사대상파일의 한 문자열을 정수형으로 바꿔서 적용 strcat함수를 이용하여 itoa는 진수 변환시켜주는 함수이며 정수인 ch16진수로 cch에 저장 cch에 저장된 하나의 문자열 16진수를 cch1에 문자열 하나하나씩 연결 해주어 검사대상 사이즈의 모든 데이터가 cch1에 저장되도록 함


- strstr 함수는 문자열 검색을 도와주는 함수로서 buffer 패턴내용을 cch1 검사대상 데이터중에 존재하는지 검색하고 존재하지 않는다면 NoVirusCh 설정을 통하여 감염되지 않았다는 메시지 전달.


- 위에 대상파일이 55000 이상일 경우 for문을 통하여 사이즈 크기를 50000미만일때가지 나누고 나눈 사이즈 만큼 문자열 데이터를 cch1에 연결하여 악성코드 패턴을 이용하여 위와 같이 반복




블로그 이미지

_B_G_

,