본문 바로가기

[프로젝트]/머신러닝&딥러닝 악성코드 구분 모델

[프로젝트] 머신러닝 악성코드 feature 요소

머신러닝
	Random Forest를 활용하여 딥러닝, 엘라스틱 서치 결과 상호보완
	XGBoost
	LightGBM
딥러닝
	CNN 기반 딥러닝 Image 학습 모델링
	Text CNN 기반 strings Feature 학습 모델링
	
엘라스틱서치
	특징 정보 추출하여 유사도 점수 확보
		M2Lab에서 했던거 적극 활용

정적 정보
	PE Header	
		다수 파일에 대한 통계적 분석으로 피처 선별
		
		Section Information
			출현 빈도가 높은 대상 선정
				section Name
		Resource
			출현 빈도가 높은 대상 선정
				Resouce Type
		Assmbly Instruction
			출현 빈도가 높은 대상 선정
				opcode Name			
		Byte-1-Gram
			PE 바이너리 내 출현하는 0~255 범위의 바이트 값의 빈도 수 및 비율 정보
			Packing 여부 관계 없이 악성코드 분류 효과적
		Import/Export API
			특징 api 및 string의 출현 여부를 Feature로 활용
		Rich Header
		PDB Path
		Version information Structure
			LegalCopyRight
			FileType
			FileVersion
			FileSubtype
			FileOs
			FileDescription
			CompnayName
		Tls Callback
			프로그램의 실행 진입점(Entry Point) 이전에 실행되는 서브루틴
				악성코드가 디버거에 Load될 경우, 진입점에 도달하기 전에 악성 행위 완료 가능
					

	disassemble information
		베이직 블록 내 어셈블리어 정보 -> M2Lab
	strings
		정규식을 적용한 필터된 strings
	블록해시
		ssdeep
		tlsh
		dhash -> 가장 높음
	dll/api
		import information
			IAT
		export information
			EAT
	MetaData
		File Size
		확장자
		생성시간
	section/entropy
		패킹 유형 별 피처 선별 및 엔트로피 계산
			aspack
			nspack
			pecompact
			petite
	Feature Extraction
		opcode sequence
			베이직 블록 정보 -> M2Lab
			frequency
			sequence
		Operation Code
			frequency
			sequence
		Bytes
			Symbol
			Strings Length
			Keyword -> 최종
			Byte-Ngram
			Byte to Image
		어셈블리
			API -> 최종
			파일 메타데이터 
			ASM to Image -> 최종
			Data Definition	 -> 최종
			Section Information -> 최종
			Instruction
			REgister
			DLL -> 최종
			Functions -> 최종
			Opcode 빈도, N-Gram -> 최종
			엔트로피 

		Multiple Feature Sets
			API,Mixed,String,Dump,ASM
				API
					Malware 데이터셋의 모든 PE 파일에서 IAT 조회
					가장 많이 호출되는 상위 API 약 1000개를 Feature Set으로 정의
					각 PE 파일에서 Feature Set에 정의된 API를 호출 시 1(True)아니면 0(False)
				Mixed
					PE 헤더 기반 Feature
					exe,dll 여부 표준 Section 사용 여부 부수적인 요소 추가(53개 항목)
					일부 데이터가 pefile 라이브러리를 통해 호출되지 않을 시 feature 추출 실패
						Feature Set 정의
							Printable 한 문자열 추출
				Dump
					Peframe 파이썬 라이브러리의 get_dump 모듈 사용 및 추출
					PE 파일에서의 각 주소 값에 대한 의미 해석 결과 얻음
				문자열 Feature 벡터화
					Sklearn 라이브러리의 TfidVectiorizer 모듈 사용
					단어의 수를 세 TF-IDF 방식으로 단어의 가중치를 조정해 벡터 생성
					
					
동적 정보(쿠쿠샌드박스)
	프로세스 별 API 호출 시퀀스 추출
	API Call Sequence