1 |
1
악성코드 여부를 탐지하고자 하는 입력 파일을 어셈블리 코드로 변환하여 명령어 코드 시퀀스를 생성하는 단계;명령어 코드 임베딩(embedding)을 위해 미리 학습된 어셈블리 언어 모델을 이용하여 상기 명령어 코드 시퀀스를 임베딩하고, 상기 명령어 코드 시퀀스의 임베딩 결과를 출력하는 단계; 및상기 임베딩 결과를 입력으로 하는 미리 학습된 악성코드 분류 모델을 이용하여 악성코드 여부를 탐지하는 단계를 포함하는, 악성코드 탐지 방법
|
2 |
2
제1항에 있어서,상기 악성코드 탐지 방법은,명령어 코드를 정수로 인덱싱하기 위한 명령어 코드 사전을 이용하여, 상기 명령어 코드 시퀀스에 포함된 명령어 코드를 정수로 인덱싱함으로써, 상기 명령어 코드 시퀀스에 대응하는 인덱싱된 명령어 코드 시퀀스를 생성하는 단계를 더 포함하고,상기 임베딩 결과를 출력하는 단계는,상기 인덱싱된 명령어 코드 시퀀스를 임베딩하여 상기 인덱싱된 명령어 코드 시퀀스의 임베딩 결과를 출력하는, 악성코드 탐지 방법
|
3 |
3
제1항에 있어서,상기 명령어 코드 시퀀스를 생성하는 단계는, 상기 명령어 코드 시퀀스를 랜덤하게 선택된 길이로 분할하여 복수의 분할 명령어 코드 시퀀스를 생성하는, 악성코드 탐지 방법
|
4 |
4
제3항에 있어서,상기 명령어 코드 시퀀스를 생성하는 단계는, 상기 복수의 분할 명령어 코드 시퀀스 각각을 개별 파일로 생성하는, 악성코드 탐지 방법
|
5 |
5
제1항에 있어서,상기 명령어 코드 시퀀스를 생성하는 단계는, 상기 어셈블리 코드로부터 명령어를 추출하고, 상기 추출된 명령어의 명령코드(Opcode)와 오퍼랜드(Operand)를 조합하여 명령어 코드를 생성하며, 상기 명령어 코드를 이용하여 상기 명령어 코드 시퀀스를 생성하는, 악성코드 탐지 방법
|
6 |
6
복수의 실행 파일들 각각을 어셈블리 코드로 변환하여 명령어 코드 시퀀스를 생성하는 단계;상기 명령어 코드 시퀀스를 이용하여 명령어 코드 임베딩(embedding)을 위한 어셈블리 언어 모델을 학습하는 단계; 및상기 학습된 어셈블리 언어 모델을 기반으로 악성코드 여부를 탐지하기 위한 악성코드 분류 모델을 학습하는 단계를 포함하는, 악성코드 탐지 방법
|
7 |
7
제6항에 있어서,상기 악성코드 탐지 방법은,명령어 코드를 정수로 인덱싱하기 위한 명령어 코드 사전을 이용하여, 상기 명령어 코드 시퀀스에 포함된 명령어 코드를 정수로 인덱싱함으로써, 상기 명령어 코드 시퀀스에 대응하는 인덱싱된 명령어 코드 시퀀스를 생성하는 단계를 더 포함하고,상기 어셈블리 언어 모델을 학습하는 단계는,상기 인덱싱된 명령어 코드 시퀀스를 이용하여 상기 어셈블리 언어 모델을 학습하는, 악성코드 탐지 방법
|
8 |
8
제7항에 있어서,상기 어셈블리 언어 모델을 학습하는 단계는,상기 인덱싱된 명령어 코드 시퀀스를 이용하여 상기 어셈블리 언어 모델의 MLM(Masked Language Model) 작업과 이웃 문자 예측(Next Sentence Prediction) 작업을 수행함으로써, 상기 어셈블리 언어 모델을 학습하는, 악성코드 탐지 방법
|
9 |
9
제7항에 있어서,상기 어셈블리 언어 모델을 학습하는 단계는,상기 인덱싱된 명령어 코드 시퀀스를 문장(sentence)으로 취급하고, 각 명령어 코드를 토큰(token)으로 취급하여, 상기 어셈블리 언어 모델을 학습하는, 악성코드 탐지 방법
|
10 |
10
제9항에 있어서,상기 어셈블리 언어 모델을 학습하는 단계는,상기 인덱싱된 명령어 코드 시퀀스에 대한 토큰 임베딩, 명령어 코드의 위치에 대한 위치 임베딩과 두 개의 인덱싱된 명령어 코드 시퀀스를 구분하기 위한 분할 임베딩을 더한 벡터를 이용하여 상기 어셈블리 언어 모델을 학습하는, 악성코드 탐지 방법
|
11 |
11
제6항에 있어서,상기 명령어 코드 시퀀스를 생성하는 단계는, 상기 명령어 코드 시퀀스를 랜덤하게 선택된 길이로 분할하여 복수의 분할 명령어 코드 시퀀스를 생성하는, 악성코드 탐지 방법
|
12 |
12
제11항에 있어서,상기 명령어 코드 시퀀스를 생성하는 단계는, 상기 복수의 분할 명령어 코드 시퀀스 각각을 개별 파일로 생성하는, 악성코드 탐지 방법
|
13 |
13
제6항에 있어서,상기 명령어 코드 시퀀스를 생성하는 단계는, 상기 어셈블리 코드로부터 명령어를 추출하고, 상기 추출된 명령어의 명령코드(Opcode)와 오퍼랜드(Operand)를 조합하여 명령어 코드를 생성하며, 상기 명령어 코드를 이용하여 상기 명령어 코드 시퀀스를 생성하는, 악성코드 탐지 방법
|
14 |
14
악성코드 여부를 탐지하고자 하는 입력 파일을 어셈블리 코드로 변환하여 명령어 코드 시퀀스를 생성하는 수집부;명령어 코드 임베딩(embedding)을 위해 미리 학습된 어셈블리 언어 모델을 이용하여 상기 명령어 코드 시퀀스를 임베딩하고, 상기 명령어 코드 시퀀스의 임베딩 결과를 출력하는 출력부; 및상기 임베딩 결과를 입력으로 하는 미리 학습된 악성코드 분류 모델을 이용하여 악성코드 여부를 탐지하는 탐지부를 포함하는, 악성코드 탐지 장치
|
15 |
15
제14항에 있어서,상기 악성코드 탐지 장치는,명령어 코드를 정수로 인덱싱하기 위한 명령어 코드 사전을 이용하여, 상기 명령어 코드 시퀀스에 포함된 명령어 코드를 정수로 인덱싱함으로써, 상기 명령어 코드 시퀀스에 대응하는 인덱싱된 명령어 코드 시퀀스를 생성하는 변환부를 더 포함하고,상기 출력부는,상기 인덱싱된 명령어 코드 시퀀스를 임베딩하여 상기 인덱싱된 명령어 코드 시퀀스의 임베딩 결과를 출력하는, 악성코드 탐지 장치
|
16 |
16
제14항에 있어서,상기 수집부는,상기 명령어 코드 시퀀스를 랜덤하게 선택된 길이로 분할하여 복수의 분할 명령어 코드 시퀀스를 생성하는, 악성코드 탐지 장치
|
17 |
17
제16항에 있어서,상기 수집부는,상기 복수의 분할 명령어 코드 시퀀스 각각을 개별 파일로 생성하는, 악성코드 탐지 장치
|
18 |
18
제14항에 있어서,상기 수집부는,상기 어셈블리 코드로부터 명령어를 추출하고, 상기 추출된 명령어의 명령코드(Opcode)와 오퍼랜드(Operand)를 조합하여 명령어 코드를 생성하며, 상기 명령어 코드를 이용하여 상기 명령어 코드 시퀀스를 생성하는, 악성코드 탐지 장치
|