Download presentation
Presentation is loading. Please wait.
1
MlVirus 행위[패턴] 기반 악성코드 분석 KIS KIS 양효영 강성묵
2
목 차 Machine Learning Deep Learning Cuckoo Sandbox LSTMCell 학습 결과
향후 보완점 Q&A
3
Machine Learning? 기계를 “학습” 시킨다.
4
기계 데이터 학습 알고리즘 간단하게 말해서 가 일일이 코드로 명시하지 않은 동작을 로부터 하여 실행할 수 있는
Machine Learning – 개요 기계 가 일일이 코드로 명시하지 않은 동작을 데이터 로부터 학습 하여 실행할 수 있는 알고리즘 Experience $E$ Task $T$ Performance Measer $P$ $E$를 사용하여 $T$의 $P$가 개선되도록 하는 프로그램(알고리즘)
5
Deep Learning? 사람처럼 “생각” 한다.
6
뉴런 독립변수 출력 알고리즘 간단하게 말해서 이라는 다중계층의 노드들을 통해 와 가중치를 이용하여 연산,
Deep Learning – 개요 뉴런 이라는 다중계층의 노드들을 통해 독립변수 와 가중치를 이용하여 연산, 출력 된 뉴런의 값을 다음으로 넘겨 알고리즘 사람처럼 판단하게 만드는 Experience $E$ Task $T$ Performance Measer $P$ $E$를 사용하여 $T$의 $P$가 개선되도록 하는 프로그램(알고리즘)
7
Cuckoo Sandbox 샌드박스 기반 악성코드 분석 자동화 시스템.
분리된 가상머신 환경에서 해당 파일을 실행한 뒤에 가상 환경에서 어떤 행위가 일어나는 지 관찰 가상머신 환경에서 분석한 악성 프로그램의 구체적인 정보 획득 가능
8
Cuckoo Sandbox - 분석 결과 1
9
Cuckoo Sandbox - 2
10
Cuckoo Sandbox - 3 로드된 DLL 파일들의 정보를 습득 가능 *함수호출리스트* 를 똑같이 나열하자
11
초기 구상 Cuckoo Sandbox를 통해 사용 API 함수들의 목록 습득 가능
ML_Virus Cuckoo Sandbox를 통해 사용 API 함수들의 목록 습득 가능 API 함수들의 나열(행위)을 기반으로 악성여부를 판단할 수는 없을까? 프로그램의 특정 실행점(API 함수 호출) 순서를 순차학습 시켜보면… VEH(Vectored Exception Handler)를 이용하여 프로그램의 분기점을 추출하고 LSTMCell 모델을 사용하여 악성코드의 함수호출 패턴(행위)을 학습
12
로그 추출 – 로직 ML_Virus
13
로그 추출 ML_Virus VEH를 등록하여 BP(중단점)가 set되어 있으면 호출 주소를 확인 파일에 로그 출력
14
로그 Example ML_Virus 분기점들의 나열
15
LSTMCell 결과적으로 순차 데이터 학습에 적합하다고 판단 RNNs의 변형으로 90년대 중반에 처음으로 등장
각 게이트는 0에서 1사이의 아날로그 값을 가지며 값에 비례하여 여러가지 작동을 한다. 이전 과거의 출력값까지 기억하여 총 2개의 입력값을 가지는 RNNs와 달리 LSTM 유닛은 결과적으로 1000단계 이상 과거 출력을 기억할 수 있다. 결과적으로 순차 데이터 학습에 적합하다고 판단
16
로그 Example ML_Virus 입력 데이터 – 악성코드.File 뉴런 판단에 영향을 미치는 미지의 수, 가중치 최적화
17
최적화의 필요성 연산 수를 줄여 속도를 높이고 원하는 결과에 도달할 수 있다.
딥러닝이 심화되면 수 만개의 뉴런들이 수 백만개의 선들에 의해 연결되고 각각 뉴런들에 적당한 값들을 할당해야 한다. (parameter training) 최적화 알고리즘이 위 내용을 해결하는데, 최적화의 결과가 잘못된 최적값이라면? 데이터의 전처리과정(pre-training)을 통해 해결 인공신경망의 각 층들을 비지도 학습 방법(unsupervised learning)을 통해 다듬고, 전처리한 데이터들을 쌓아올려 인공신경망의 최적화를 수행 연산 수를 줄여 속도를 높이고 원하는 결과에 도달할 수 있다.
18
RMSProp Adagrad는 시간에 따른 그래디언트 제곱값을 추적해 학습률을 조정하는 알고리즘
19
실행 결과 – 악성 INPUT : 트로이목마.agent OUTPUT : 악성도 98.4
20
실행 결과 – 정상 INPUT : 메모장.exe OUTPUT : 악성도 7.1
21
향후 보완 ML_Virus 파일을 Cuckoo Sandbox를 통해 전달할 경우 Submit 명령어를 사용하지 않고 자동으로 불특정 다수의 악성프로그램을 분석하여 dataset으로 전환 로그를 추출하는 LogTracer의 경우 누락율 보완 Cuckoo Sandbox의 Web Submit을 이용하여 명령행콘솔이 아니여도 파일 업로드가 가능하도록 연계
22
분석 자료 ML_Virus
23
Q&A
24
End - 감사합니다! KIS KIS 양효영 강성묵
Similar presentations