머신러닝이란 컴퓨터가 미래에 어떻게 동작할 것인지에 대한 결과 및 추 세를 예측하고 기존 데이터를 최대한 활용하여 분석하고 학습할 수 있도록 하는 알고리즘을 제공하며 이를 통해 예측모델을 실행할 수 있는 기술을 말한다.
즉 데이터를 분석하고 특정패턴을 찾아내 학습할 수 있도록 정교한 알고리즘을 만드는 것이 머신러닝의 핵심이다.
(가) 토폴로지와 활성화함수 결정
(나) 초기화
(다) 오차 계산
(라) 가중치 조정
1. 악성코드 이미지화
악성코드 바이트 코드는 그레이스케일 이미지로 시각화시키는 것이 가장 적절하다. 많은 악성코드 패밀리 군과 변종 패밀리 군의 경우 동일한 패밀 리에 속하는 이미지가 레이아웃과 텍스처면에서 매우 유사하게 나타난다. 이 시각적 유사성에 의해 동기 부여, 표준 이미지 특징을 사용하는 분류 방 법을 제안한다. 당연히 이러한 분류에는 정적분석 동적분석 등에서와 같은 코드의 분해나 코드 실행이 필요하지 않다.
2. 머신러닝 전처리
악성코드를 이미지로 생산한 후, 머신러닝에서 가장 좋은 성능을 낼 수 있는 환경으로 변환시키는 과정이다.
- 이미지의 Width를 통일한 직사각형 형태로 변환
- 머신러닝의 MNIIST의 경우와 같이 정사각형의 이미지로 생성 후 적절한 사이즈가 되도록 확대/축소
3. 악성코드 시각화 연구
주어진 악성코드 바이너리는 부호 없는 8비트 정수로 된 벡터로 읽혀진 2D 배열로 구성
많은 경우 악성코드의 다른 섹션 (바이너리 조각)은 독특한 이미지 텍스처를 나타낸다.
.text 섹션에는 실행 가능 코드가 들어 있다. 위 그림에서 .text 섹션의 첫 번째 부분은 텍스처가 세분화된 코드를 포함하고 있음을 알 수 있다. 나머지 부분은 0으로 채워지며 이 부분의 끝에는 역시 0으로 채워진다.
다음 .data 섹션에는 초기화되지 않은 코드 (검은 색 패치)와 초기화 된 데이터 (세밀한 텍스처)가 모두 들어 있다.
마지막 섹션은 모듈의 모든 리소스를 포함하는 .rsrc 섹션이다. 여기에는 응용 프로그램이 사용할 수 있는 아이콘도 포함될 수 있다.
알려지지 않은 악성 파일 탐지를 위한 시그니처 업데이트가 필요치 않다.
https://byline.network/2019/06/3-43/?mc_cid=dc6fad7c18&mc_eid=07cacc7415
'03.Security' 카테고리의 다른 글
부채널 공격 - MDS (0) | 2020.07.02 |
---|---|
사이퍼 스턴팅 (0) | 2020.07.02 |
정보보안 - 보안관제 - SOAR (0) | 2020.07.02 |
Dos - DDoS (Distributed Denial of Service) (0) | 2020.07.02 |
DNS, DNS 보안(DNSSec), Reverse DNS (0) | 2020.07.02 |