머신러닝
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