MlVirus 행위[패턴] 기반 악성코드 분석 KIS KIS 양효영 강성묵.

Slides:



Advertisements
Similar presentations
제철고 프로그래밍언어 2015 가을학기 연습 #1 Python 연산식 이다훈 POSTECH 컴퓨터공학과 2015 년 9 월 23 일.
Advertisements

1 차시 : SW 코딩으로 배우는 3D 기초작품 및 톱니바퀴 만들기 1)SPL3D 프린팅 툴 설치하기 2) 도형 추가하기 3) 도형 연산 명령어 익히기 4)3D 프린터 출력을 위한 STL 파일 내보내기 5) 하트모양 만들기 6) 하트모양 열쇠고리 만들기 7) 변수와 수식.
컴퓨터와 인터넷.
Deep Learning.
Deep Learning.
예비보고서1 : 8개의 푸시버튼 스위치가 있다. 이 스위치에 각각 0~7개까지의 번호를 부여하였다고 하자
아두이노 센서의 연결 디지털 및 아날로그 센서값의 특징 디지털 센서 핀 구조 및 연결하기 아날로그 센서 핀 구조 및 연결하기
연결리스트(linked list).
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
뇌를 자극하는 Windows Server 2012 R2
데이터 파일 C 데이터 파일과 스트림(Stream) 텍스트 파일 처리
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
오브젝트 조합 회로 IT CookBook, VHDL을 이용한 디지털 회로 입문.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
11장. 포인터 01_ 포인터의 기본 02_ 포인터와 Const.
8장 함수 함수의 필요성 라이브러리 함수와 사용자 정의 함수 함수의 정의, 원형, 호출 배열을 함수 인자로 전달 재귀호출.
FTP 프로그램 채계화 박재은 박수민.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
DK-128 ADC 실습 아이티즌 기술연구소
보고서 #5(제출기한: 10/14) 다음 문제를 해결하시오.
Chapter 03 : 서블릿 ( Servlet ) 개요. chapter 03 : 서블릿 ( Servlet ) 개요.
KIM HEESANG PL/SQL 2 KIM HEESANG
공학컴퓨터프로그래밍 Python 염익준 교수.
소프트컴퓨팅 연구실 소개자료 . 소프트컴퓨팅연구실 조성배.
Grade Server Team14. Attention Seeker
Deep Learning.
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
사용자 함수 사용하기 함수 함수 정의 프로그램에서 특정한 기능을 수행하도록 만든 하나의 단위 작업
프로그래밍 개요
자바응용.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
군집 분석.
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
문자 인식 개요 NR-LAB 강 동 구.
2018년 11월 05일 박성진 Web & Internet [08] 레이아웃 P1 2018년 11월 05일 박성진
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
Homework #6 (1/3) 다음을 수행한 후, 화면(혹은 파일)을 출력하여 제출한다.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
컴퓨터 프로그래밍 기초 - 10th : 포인터 및 구조체 -
3D 프린팅 프로그래밍 05 – 반복패턴 만들기 강사: 김영준 목원대학교 겸임교수.
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
PSD센서 명령어 이해하기 목차 재료준비 및 브레드 보드 배선 구성하기 PSD센서 명령어 이해 및 실습 응용 작품 만들기.
자바 5.0 프로그래밍.
LabVIEW WiznTec 주임 박명대 1.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
메모리 타입 분석을 통한 안전하고 효율적인 메모리 재사용
Canary value 스택 가드(Stack Guard).
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
알고리즘 알고리즘이란 무엇인가?.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
AT MEGA 128 기초와 응용 I 기본적인 구조.
함수, 모듈.
TVM ver 최종보고서
발표자 : 이지연 Programming Systems Lab.
3.2 분기 명령어.
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
RPTree 코드분석 (월) Dblab 김태훈.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
교량 구조물의 개념 설계 및 프로토타입 제작 과정
Homework #7 (1/3) 1. 다음 순서에 따라 수행하고, 그 과정의 화면을 캡쳐한다.
CODE INJECTION 시스템B 김한슬.
Docker Study 6~7.
Ch12. Deep Learning (Backpropagation)
버스와 메모리 전송 버스 시스템 레지스터와 레지스터들 사이의 정보 전송을 위한 경로
교착 상태 해결 : 교착 상태 탐지 교착 상태 탐지(Deadlock Detection)
C++ Espresso 제15장 STL 알고리즘.
7 생성자 함수.
Presentation transcript:

MlVirus 행위[패턴] 기반 악성코드 분석 KIS KIS 양효영 강성묵

목 차 Machine Learning Deep Learning Cuckoo Sandbox LSTMCell 학습 결과 향후 보완점 Q&A

Machine Learning? 기계를 “학습” 시킨다.

기계 데이터 학습 알고리즘 간단하게 말해서 가 일일이 코드로 명시하지 않은 동작을 로부터 하여 실행할 수 있는 Machine Learning – 개요 기계 가 일일이 코드로 명시하지 않은 동작을 데이터 로부터 학습 하여 실행할 수 있는 알고리즘 Experience $E$ Task $T$ Performance Measer $P$ $E$를 사용하여 $T$의 $P$가 개선되도록 하는 프로그램(알고리즘)

Deep Learning? 사람처럼 “생각” 한다.

뉴런 독립변수 출력 알고리즘 간단하게 말해서 이라는 다중계층의 노드들을 통해 와 가중치를 이용하여 연산, Deep Learning – 개요 뉴런 이라는 다중계층의 노드들을 통해 독립변수 와 가중치를 이용하여 연산, 출력 된 뉴런의 값을 다음으로 넘겨 알고리즘 사람처럼 판단하게 만드는 Experience $E$ Task $T$ Performance Measer $P$ $E$를 사용하여 $T$의 $P$가 개선되도록 하는 프로그램(알고리즘)

Cuckoo Sandbox 샌드박스 기반 악성코드 분석 자동화 시스템. 분리된 가상머신 환경에서 해당 파일을 실행한 뒤에 가상 환경에서 어떤 행위가 일어나는 지 관찰 가상머신 환경에서 분석한 악성 프로그램의 구체적인 정보 획득 가능

Cuckoo Sandbox - 분석 결과 1

Cuckoo Sandbox - 2

Cuckoo Sandbox - 3 로드된 DLL 파일들의 정보를 습득 가능 *함수호출리스트* 를 똑같이 나열하자

초기 구상 Cuckoo Sandbox를 통해 사용 API 함수들의 목록 습득 가능 ML_Virus Cuckoo Sandbox를 통해 사용 API 함수들의 목록 습득 가능 API 함수들의 나열(행위)을 기반으로 악성여부를 판단할 수는 없을까? 프로그램의 특정 실행점(API 함수 호출) 순서를 순차학습 시켜보면… VEH(Vectored Exception Handler)를 이용하여 프로그램의 분기점을 추출하고 LSTMCell 모델을 사용하여 악성코드의 함수호출 패턴(행위)을 학습

로그 추출 – 로직 ML_Virus

로그 추출 ML_Virus VEH를 등록하여 BP(중단점)가 set되어 있으면 호출 주소를 확인 파일에 로그 출력

로그 Example ML_Virus 분기점들의 나열

LSTMCell  결과적으로 순차 데이터 학습에 적합하다고 판단 RNNs의 변형으로 90년대 중반에 처음으로 등장 각 게이트는 0에서 1사이의 아날로그 값을 가지며 값에 비례하여 여러가지 작동을 한다. 이전 과거의 출력값까지 기억하여 총 2개의 입력값을 가지는 RNNs와 달리 LSTM 유닛은 결과적으로 1000단계 이상 과거 출력을 기억할 수 있다.  결과적으로 순차 데이터 학습에 적합하다고 판단

로그 Example ML_Virus 입력 데이터 – 악성코드.File 뉴런 판단에 영향을 미치는 미지의 수, 가중치 최적화

최적화의 필요성  연산 수를 줄여 속도를 높이고 원하는 결과에 도달할 수 있다. 딥러닝이 심화되면 수 만개의 뉴런들이 수 백만개의 선들에 의해 연결되고 각각 뉴런들에 적당한 값들을 할당해야 한다. (parameter training) 최적화 알고리즘이 위 내용을 해결하는데, 최적화의 결과가 잘못된 최적값이라면? 데이터의 전처리과정(pre-training)을 통해 해결 인공신경망의 각 층들을 비지도 학습 방법(unsupervised learning)을 통해 다듬고, 전처리한 데이터들을 쌓아올려 인공신경망의 최적화를 수행  연산 수를 줄여 속도를 높이고 원하는 결과에 도달할 수 있다.

RMSProp Adagrad는 시간에 따른 그래디언트 제곱값을 추적해 학습률을 조정하는 알고리즘

실행 결과 – 악성 INPUT : 트로이목마.agent OUTPUT : 악성도 98.4

실행 결과 – 정상 INPUT : 메모장.exe OUTPUT : 악성도 7.1

향후 보완 ML_Virus 파일을 Cuckoo Sandbox를 통해 전달할 경우 Submit 명령어를 사용하지 않고 자동으로 불특정 다수의 악성프로그램을 분석하여 dataset으로 전환 로그를 추출하는 LogTracer의 경우 누락율 보완 Cuckoo Sandbox의 Web Submit을 이용하여 명령행콘솔이 아니여도 파일 업로드가 가능하도록 연계

분석 자료 ML_Virus

Q&A

End - 감사합니다! KIS KIS 양효영 강성묵