악성코드를 이용한 사이버 공격이 점차 악성화·지능화됨에 따라 기존 상용 백신 솔루션으로 대응하는 데에는 한계점에 도달하게 되었으며, 이를 극복하기 위한 방법으로 신종/변종 악성코드를 머신러닝 및 딥러닝 기술을 활용하여 분석하고 탐지하고자 하는 기술이 등장하였다. 본 기술 이전은 PE파일에서 추출된 Opcode를 활용하여 학습용 파일들을 전처리하고, 어셈블리 언어모델 기반의 악성코드 탐지 모델을 학습하며, 시험용 파일을 이용하여 PE파일의 악성여부를 탐지하는 내용을 포함한다.
본 기술이전은 정적분석 기법 중에서 PE 파일의 Opcode를 활용한 방식에 관한 것이다. Opcode는 컴퓨터에서 연산의 종류를 나타내기 위한 코드인 Operation Code를 줄여서 부르는 말로써, 덧셈을 ADD, 제곱근을 SQR 형태의 기호로 나타내는 코드이다. 본 기술이전은 Opcode의 정보를 활용하여 해당 파일의 악성여부를 탐지 및 분석하고자 하는 기술이다.
악성코드 탐지에 Opcode 시퀀스를 사용하면 악성코드 파일을 직접 실행하지 않고 악성코드의 행위 정보를 파악할 수 있는 장점이 있다.
본 기술은 크게 세 부분으로 구분되는데, 모델을 학습하기 위한 학습 데이터 전처리 블록, 전처리 결과를 바탕으로 학습을 진행하는 악성코드 탐지 모델 학습 블록, 학습 결과를 이용하여 악성 여부를 판단하는 악성코드 분석 및 탐지 블록으로 구분된다.
학습 데이터 전처리 블록은 정상파일 및 악성파일에서 어셈블리코드를 추출하는 ASM 추출 모듈, 어셈블리코드로부터 Opcode 시퀀스를 추출하는 Opcode 추출 모듈, Opcode 시퀀스를 정해진 길이로 분할하여 학습 모델에 입력할 Opcode 시퀀스 문장을 생성하는 Opcode 문장 생성 모듈로 구성된다.
악성코드 탐지 모델 학습 블록은 학습 데이터로부터 Opcode 사전을 구축하고, 학습에 사용되는 Opcode 시퀀스를 정수로 인덱싱한 후, 색인된 Opcode 시퀀스를 모델의 학습 데이터로 사용한다. 악성코드 탐지 모델은 자연어 처리 분야에서 문장 임베딩을 위해 사용되는 BERT(Bidirectional Encoder Representation Transformer)를 기반으로 구축되고 색인된 Opcode 시퀀스 데이터로 MLM(Masked Language Model) 작업을 수행해 사전학습을 진행한다. 사전학습이 완료된 후, 사전학습 모델에 전연결(fully connected) 계층을 추가해 악성코드 이진 분류기 모델을 구축하고, 악성/정상으로 라벨링된 Opcode 시퀀스 데이터를 이용하여 악성코드 이진 분류기 모델의 미세조정(fine-tunning) 학습을 수행한다.
악성코드 분석 및 탐지 블록은 분석 대상 PE 파일에 대해 동일한 전처리 과정을 거쳐서 생성된 Opcode 시퀀스 데이터를 입력 받아, 사전학습시 구축한 Opcode 사전을 이용해 Opcode 시퀀스를 인덱싱(indexing)하고, 색인된 Opcode 시퀀스를 사전학습된 악성코드 이진 분류기 모델에 입력하여 악성여부를 판단한다.
- 기존의 상용백신들이 시그니쳐(signature) 분석 등의 방식을 사용함으로써, 변종 및 신종의 악성코드를 실시간으로 분석하는 데에 어려움이 있었으나, AI 기반 악성코드 분석 기법은 변종 및 신종 악성코드의 실시간 분석이 가능한 장점이 있음
- 기존에는 신종 악성코드의 분석을 분석가의 수동적인 분석에 의존했으나, AI 기반 악성코드 분석은 자동 분석이 가능한 장점이 있음. 이를 통해서 분석가의 수동 분석 시간을 줄일 수 있는 장점이 있음
- AI기반 악성코드 분석 기술은 Opcode 시퀀스를 활용하여 악성코드 여부를 분석함으로써, 악성코드를 직접 실행하지 않고도 악성코드의 행위 정보를 일부 분석할 수 있는 장점이 있음.
- BERT 기반의 Opcode 시퀀스 임베딩 모델을 활용함으로써 기존 Opcode 분석 방식에 비해 Opcode 시퀀스에 대한 학습 모델의 표현력이 좋아져(더 세밀한 패턴 학습이 가능) 더 정확한 분석이 가능한 장점이 있음
본 기술이전은 Opcode를 활용하여 학습용 파일들을 전처리하고, 어셈블리 언어모델 기반의 악성코드 탐지 모델을 학습하며, 시험용 파일을 이용하여 악성여부를 탐지하는 내용을 포함한다.
- Opcode를 활용한 AI기반 PE 악성코드 분석을 위한 전처리 기능
- Opcode를 활용한 AI기반 PE 악성코드 분석을 위한 악성코드 탐지모델(어셈블리 언어모델 기반 악성코드 이진 분류기) 학습 기능
- Opcode를 활용한 AI기반 PE 악성코드 탐지모델을 이용한 악성코드 탐지 기능
- AI백신 서브시스템의 요구사항정의서
- Opcode를 활용한 AI기반 PE 악성코드 분석 기술의 구조설계서
- Opcode를 활용한 AI기반 PE 악성코드 분석 기술의 시험 절차서 및 결과서
- Opcode를 활용한 AI기반 PE 악성코드 분석 기술을 위한 소프트웨어 프로그램
- 차세대 백신 등 악성코드 대응 솔루션에 실시간으로 공격을 차단하고 악성코드 격리, 피해복구 기능 등을 자동화하는데 활용
- 기존 안티바이러스 제품 및 지능보안 분석 등의 서비스에 적용하여 기존 제품에 대한 보안성 강화
- 국방 및 기관에서 해당 기관의 네트워크로 유입되는 파일에 대한 악성여부를 판단하고 해당 네트워크 및 장비들을 보호하는 방법의 하나로 사용할 수 있음
- 패턴이 알려지지 않은 제로데이(zero-day)성 악성파일에 대해 대응할 수 있음
- 악성코드 분석 전문가의 분석 시간을 줄이는 방법으로 활용이 가능함