KR102541888B1 - 이미지 기반 악성코드 탐지 방법 및 장치와 이를 이용하는 인공지능 기반 엔드포인트 위협탐지 및 대응 시스템 - Google Patents

이미지 기반 악성코드 탐지 방법 및 장치와 이를 이용하는 인공지능 기반 엔드포인트 위협탐지 및 대응 시스템 Download PDF

Info

Publication number
KR102541888B1
KR102541888B1 KR1020210160542A KR20210160542A KR102541888B1 KR 102541888 B1 KR102541888 B1 KR 102541888B1 KR 1020210160542 A KR1020210160542 A KR 1020210160542A KR 20210160542 A KR20210160542 A KR 20210160542A KR 102541888 B1 KR102541888 B1 KR 102541888B1
Authority
KR
South Korea
Prior art keywords
image
file
analysis
deep learning
malicious code
Prior art date
Application number
KR1020210160542A
Other languages
English (en)
Other versions
KR20220073657A (ko
Inventor
한승철
방효섭
선동환
Original Assignee
주식회사 엔피코어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔피코어 filed Critical 주식회사 엔피코어
Priority to US18/038,709 priority Critical patent/US20230418943A1/en
Priority to JP2023532354A priority patent/JP2023550974A/ja
Priority to PCT/KR2021/017116 priority patent/WO2022114689A1/ko
Publication of KR20220073657A publication Critical patent/KR20220073657A/ko
Application granted granted Critical
Publication of KR102541888B1 publication Critical patent/KR102541888B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/20Ensemble learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Medical Informatics (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Image Analysis (AREA)

Abstract

알려지지 않은 보안위협의 사전대응을 위한 인공지능 기반 차세대 엔드포인트 위협탐지 및 대응(EDR) 시스템과, 지속적인 표적형 공격인 지능형 지속 위협(advanced persistent threat, APT) 공격에 대해 침해지표(indicator of compromise, IOC) 기반으로 퍼스널 컴퓨터, EDR 시스템 등의 컴퓨팅 장치에서 발생하는 프로세스의 주요 행위를 모니터링하고 이미지 기반으로 분석하여 침해 위협에 대응할 수 있는 악성코드 분석 방법 및 장치가 개시된다. 악성코드 분석 방법은, EDR 시스템이나 엔드포인트 또는 이에 대응하는 컴퓨팅 장치와 연관된 프로세서, 메모리 또는 저장 장치에서 탐지된 파일 생성 이벤트 로그로부터 얻어지는 생성 파일의 파일 경로에 위치하는 실행 파일이나 실행 파일의 적어도 일부의 코드를 부호 없는 일정 비트의 정수로 된 바이트로 읽어와 바이트 배열로 변환하는 단계, 바이트 배열에서 2바이트씩을 읽어오는 단계, 2바이트의 데이터를 미리 설정된 사이즈의 이미지의 좌표로 활용하여 해당 좌표 값을 증가시키고 RGB 채널을 추가하여 이미지 배열을 저장하는 단계; 및 이미지 배열에 대하여 이미지 딥러닝 모델을 이용한 딥러닝 분석을 수행하는 단계를 수행하도록 구성된다.

Description

이미지 기반 악성코드 탐지 방법 및 장치와 이를 이용하는 인공지능 기반 엔드포인트 위협탐지 및 대응 시스템{IMAGE-BASED MALICIOUS CODE ANALYSIS METHOD AND APPARATUS AND ARTIFICIAL INTELLIGENCE-BASED ENDPOINT DETECTION AND RESPONSE SYSTEM USING THE SAME}
본 발명은 알려지지 않은 보안위협의 사전대응을 위한 인공지능 기반 차세대(next generation) 엔드포인트 위협탐지 및 대응(endpoint detection and response, EDR) 시스템에 관한 것으로, 보다 상세하게는, 지속적인 표적형 공격인 지능형 지속 위협(advanced persistent threat, APT) 공격에 대해 침해지표(indicator of compromise, IOC) 기반으로 퍼스널 컴퓨터, EDR 시스템 등의 컴퓨팅 장치에서 발생하는 프로세스의 주요 행위를 모니터링하고 이미지 기반으로 분석하여 침해 위협에 대응할 수 있는 악성코드 분석 방법 및 장치에 관한 것이다.
정보통신 인프라가 지속적으로 확대됨에 따라, 정보통신(IT) 인프라를 이용한 다양한 형태의 보안 위협인 지능형 지속 위협(Advanced Persistent Threat, 이하 APT)이 급증하고 있다.
특히 최근 악성코드를 이용한 기업 내 주요 정보 유출 사고 및 내부사용자들의 비업무 사이트 접근으로 인한 업무 집중도 약화 및 이로 인한 정보 유출 사고 방지를 위한 대책이 절실히 요구되고 있는 상황이다.
따라서 지속적으로 피해가 발생되고 있는 보안 위협에 대응하기 위해서는 방대한 양의 악성코드와 위협 관련 데이터를 분석할 필요가 있고, 효과적인 분석을 위해 자동 학습을 통해 이미지를 분석하는 악성코드 학습 및 분류 모듈에 대한 개발 요구가 상당하다.
한편, 기존의 악성코드 탐지 및 대응 기술과 관련된 해외 및 국내 APT 솔루션 제조사는 신종 또는 변종 악성코드에 대응하기 위하여 각 업체별로 다양한 형태로 대응솔루션을 제시하고 있으나 점차 방대해지고 지능화되는 보안 위협에 실시간 대응하기가 어려운 실정이다.
이에, 머신러닝을 활용한 악성코드 탐지 기술을 연구하고 있는 EDR 솔루션 개발 업체에서는 인공지능(artificial intelligence, AI) 기술을 적극 활용하여 시그니처 기반, 룰 기반 등의 기존 솔루션에서 탐지하지 못하는 일부 사이버 위협들을 탐지하고 있다.
또한, 엔드포인트 기기에서 정보를 수집하여 사이버 공격의 징후를 상관분석 및 머신러닝으로 실시간으로 자동 탐지하고 대응하기 위한 엔드포인트 침해사고 대응 솔루션 또한 적극 도입되고 있는 상황이다.
또한, 업무용 퍼스널 컴퓨터(personal computer, PC)에서 악성행위에 대한 사전 대응 기술로 분산 원격 포렌식에 대한 다양한 위협 인텔리전스 도구들을 개발하고 있고, 일부 종래 기술에서는 시그니처 및 행위분석에만 의존하고 있는 상황이며, 또한 개발자들이 C/C++, 루비, 파이썬 등 다양한 언어로 개발한 소프트웨어 어플리케이션의 보안을 테스트할 수 있는 SAST(static application security testing) 도구도 다양하게 개발 진행 중인 상황이다.
그러나, 전술한 악성코드나 위협공격에 대한 분석 및 대응을 효과적으로 하기 위해서는 PC, 단말, 서버 등에 설치된 에이전트 내부에서 악성코드를 직접 분석하는 형태가 가장 바람직하나, 아직까지 그러한 형태의 솔루션은 제안되지 못하고 있다.
본 발명은 전술한 종래 기술의 요구에 부응하기 위해 도출된 것으로, 본 발명의 목적은 차세대 엔드포인트 위협탐지 및 대응(endpoint detection and response, EDR) 시스템과 같은 목표 시스템뿐만 아니라, 퍼스널 컴퓨터, 단말기, 서버 등에 설치된 에이전트 내부에서 이미지 기반으로 악성 코드를 효과적으로 분석할 수 있는, 악성코드 탐지 방법 및 장치를 제공하는 데 있다.
본 발명의 다른 목적은, 엔드포인트에서 발생하는 모든 이벤트 행위를 IOC(침해지표) 기반으로 지속적인 모니터링 및 분석을 통하여 분석하고 침해 위협에 대해 대응하며, 이를 이용하여 에이전트 및 빅데이터 기반 지능형 포렌식 분석 시스템으로 사용할 수 있는, 이미지 기반 악성코드 탐지 방법 및 장치를 제공하는 데 있다.
본 발명의 또 다른 목적은, 시스템 부하 방지를 위해 메모리 리소스 할당을 최소화한 멀티 플랫폼용 에이전트에서 고수준의 악성코드 학습 및 분류를 수행할 수 있는 이미지 기반 악성코드 탐지 방법 및 장치를 제공하는데 있다.
본 발명의 또 다른 목적은 악성코드 이미지화 알고리즘 및 이미지화된 악성코드 학습/분류 기법을 통해, 그리고 머신러닝 기반의 정적 및 동적 분석 또는 유사도 분석을 통해 수집한 빅데이터에서 신종 및 변종 악성코드를 탐지하는, 이미지 기반 악성코드 탐지 방법 및 장치를 제공하는 데 있다.
본 발명의 또 다른 목적은 안티바이러스(anti-virus, 백신)를 바이패스하는 신종 및 변종 악성코드에 대해서 시그니처리스(signature-less) 방식으로 탐지하여 로컬 PC 등의 엔드포인트의 감염 전 사전대응을 수행할 수 있고, 가상 및 리얼 환경 단계 분석을 통해 원격 행위 기반 악성코드를 동적으로 분석할 수 있는, 이미지 기반 악성코드 탐지 방법 및 장치를 제공하는데 있다.
본 발명의 또 다른 목적은 사용자의 운영체계(operating system, OS)에서 발생하는 악의적인 행위 탐지를 통해 내부 데이터에 대한 자동 순간 백업 및 원본 파일 복구를 위한 백업 엔진을 탑재한, 이미지 기반 악성코드 탐지 방법 및 장치를 제공하는데 있다.
본 발명의 또 다른 목적은 각종 분석을 통해 수집한 침해지표(indicator of compromise, IOC), 악성코드 패턴, 야라(YARA) 규칙(rule), 악성코드 유포지, C&C(command & control) 서버 등의 최신 위협정보(Threat Intelligence, TI)를 실시간 수집 및 배포할 수 있고, 수집된 위협정보를 토대로 악성코드를 탐지할 수 있는, 이미지 기반 악성코드 탐지 방법 및 장치를 제공하는데 있다.
본 발명의 또 다른 목적은 전술한 이미지 기반 악성코드 탐지 방법 및 장치를 이용하는, 엔드포인트 에이전트나 인공지능 기반 엔드포인트 위협탐지 및 대응(endpoint detection and response, EDR) 시스템을 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 측면에 따른 이미지 기반 악성코드 탐지 방법은, 컴퓨팅 장치에 결합된 악성코드 탐지 장치에 의해 수행되는 이미지 기반 악성코드 탐지 방법으로서, 상기 컴퓨팅 장치와 연관된 프로세서, 메모리 또는 저장 장치에서 탐지된 파일 생성 이벤트 로그로부터 얻어지는 생성 파일의 파일 경로에 위치하는 실행 파일이나 상기 실행 파일의 적어도 일부의 코드를 부호 없는 일정 비트의 정수로 된 바이트로 읽어와 바이트 배열로 변환하는 단계; 상기 바이트 배열에서 2바이트씩을 읽어오는 단계; 상기 2바이트의 데이터를 미리 설정된 사이즈의 이미지 상의 좌표(x, y)로 활용하여 해당 좌표 값을 증가시키고 RGB 채널을 추가하여 이미지 배열을 저장하는 단계; 및 상기 이미지 배열에 대하여 이미지 딥러닝 모델을 이용한 딥러닝 분석을 수행하는 단계를 포함한다.
일실시예에서, 상기 딥러닝 분석을 수행하는 단계는, 상기 이미지 배열의 분석을 위한 입력 레이어(input layer)의 크기를 조정하고, 기학습된 딥러닝 모델을 호출하고, 상기 딥러닝 모델에 상기 이미지 배열을 입력할 수 있다.
일실시예에서, 상기 딥러닝 분석을 수행하는 단계는, 상기 딥러닝 모델의 분석 후에 미리 설정된 임계치를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정할 수 있다.
일실시예에서, 상기 딥러닝 분석을 수행하는 단계는, 상기 딥러닝 모델의 분석 후에 상기 실행 파일이나 상기 코드의 다른 섹션 또는 바이너리 조각의 이미지 텍스쳐를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정할 수 있다.
일실시예에서, 상기 바이트 배열로 변환하는 단계는, 상기 실행 파일의 실행 시, 메모리에 올라간 실행 파일에 대한 메모리 덤프를 진행하여 해제된 패킹 파일을 상기 바이트 배열로 변환하여 저장할 수 있다.
일실시예에서, 상기 이미지 배열로 저장하는 단계는, 상기 미리 설정된 사이즈의 이미지 상에 상기 바이트 배열을 2바이트씩 미리 설정된 순서대로 넣고, 상기 좌표 값의 증가 거리를 거리(distance) 파라미터에 지정하고, 상기 좌표에서 증가하는 값의 배열 각도를 각도(angles) 파라미터를 활용하여 지정할 수 있다.
일실시예에서, 이미지 기반 악성코드 탐지 방법은, 상기 실행 파일이나 상기 코드를 자동 분석이나 머신러닝에 의해 분석하여 정상 판정된 경우, 상기 실행 파일이나 상기 코드의 특정 칼라 이미지를 화이트리스트에 등록하는 단계를 더 포함할 수 있다.
일실시예에서, 이미지 기반 악성코드 탐지 방법은, 자동 분석 대상이나 머신러닝 분석 대상 또는 그레이리스트에 등록된 파일이 실행되면, 상기 파일 및 상기 파일의 프로세스에 대한 추적 또는 감시를 수행하고, 상기 파일이 미리 설정된 악성 행위를 하는 것으로 판단될 때, 상기 파일이나 상기 파일의 적어도 일부의 코드에 대한 이미지 기반 악성코드 탐지 프로세스의 진행을 결정하는 단계를 더 포함할 수 있다.
일실시예에서, 이미지 기반 악성코드 탐지 방법은, 악성코드가 포함된 파일 및 정상 파일로 상기 이미지 딥러닝 모델을 학습시키는 단계를 더 포함할 수 있다. 상기 딥러닝 분석을 수행하는 단계는, 상기 학습된 이미지 딥러닝 모델을 이용하여, 상기 실행 파일의 기본적인 특징 정보로 학습된 유사성 해싱 함수를 토대로 의심스러운 파일의 정상 또는 악성을 분류하거나, 상기 실행 파일에서 추출 가능한 모든 특징 정보로 학습된 유사성 해싱 함수를 토대로 상기 의심스러운 파일의 정상 또는 악성을 분류하거나, 악성코드 이미지 분석 알고리즘을 통해 상기 의심스러운 파일의 정상 또는 악성을 분류하거나, 또는 이들 조합의 분류 방법을 이용하여 상기 의심스러운 파일의 정상 또는 악성을 분류하거나 탐지할 수 있다.
일실시예에서, 상기 악성코드 이미지 분석 알고리즘은, 상기 학습된 이미지 딥러닝 모델에 입력되는 이미지 배열에 대하여 머신러닝 기반 유사도 분류를 수행할 수 있다. 상기 머신러닝 기반 유사도 분류는 악성코드 간 동종, 변종 또는 유사계열의 상관관계를 판별하도록 구성될 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 측면에 따른 이미지 기반 악성코드 탐지 장치는, 특정 컴퓨팅 장치와 연관된 프로세서, 메모리 또는 저장 장치에서 탐지된 파일 생성 이벤트 로그로부터 얻어지는 생성 파일의 파일 경로에 위치하는 실행 파일이나 상기 실행 파일의 적어도 일부의 코드를 부호 없는 일정 비트의 정수로 된 바이트로 읽어와 바이트 배열로 변환하는 바이트 배열 변환부; 상기 바이트 배열에서 2바이트씩을 읽어오는 좌표 매핑부; 상기 2바이트의 데이터를 미리 설정된 사이즈의 이미지 상의 좌표(x, y)로 활용하여 해당 좌표 값을 증가시키고 RGB 채널을 추가하여 이미지 배열을 저장하는 좌표 RGB채널 증가부; 및 상기 이미지 배열에 대하여 이미지 딥러닝 모델을 이용한 딥러닝 분석을 수행하는 이미지 딥러닝 분석부를 포함한다.
일실시예에서, 상기 이미지 딥러닝 분석부는, 기학습된 딥러닝 모델을 호출하는 딥러닝 모델 호출부, 상기 딥러닝 모델에 상기 이미지 배열을 입력하여 분석하는 딥러닝 모델 분석부, 및 상기 이미지 배열의 악성코드 여부를 판단하는 악성코드 판단부를 구비할 수 있다.
일실시예에서, 상기 악성코드 판단부는, 상기 딥러닝 모델 분석부의 분석 결과에 대하여 미리 설정된 임계치를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정할 수 있다.
일실시예에서, 상기 악성코드 판단부는, 상기 딥러닝 모델 분석부의 분석 결과에 대하여 상기 실행 파일이나 상기 코드의 다른 섹션 또는 바이너리 조각의 이미지 텍스쳐를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정할 수 있다.
일실시예에서, 상기 바이트 배열 변환부는, 상기 실행 파일의 실행 시, 메모리에 올라간 실행 파일에 대한 메모리 덤프를 진행하여 해제된 패킹 파일을 상기 바이트 배열로 변환하여 저장할 수 있다.
일실시예에서, 상기 좌표 RGB채널 증가부는, 상기 바이트 배열의 2바이트씩을 토대로 상기 미리 설정된 사이즈의 이미지 상에 해당 좌표의 수치 범위를 그레이스케일 범위에서 RGB의 최대 범위로 증가시켜 지정하고, 상기 좌표의 수치를 1씩 증가시키며, RGB 채널 범위의 수치가 소정의 기준값을 초과할 때 먼저 녹색(Green) 채널 범위의 수치를 증가시키고, 녹색(Green) 채널의 범위 초과시 청색(Blue) 채널을 증가시킬 수 있다.
일실시예에서, 이미지 기반 악성코드 탐지 장치는, 상기 이미지 딥러닝 분석부에서 랜섬웨어의 행위 분석이 감지된 경우, 상기 이미지 딥러닝 분석부의 악성코드 판단부의 신호에 따라 상기 특정 컴퓨팅 장치의 드라이버 상에서 상기 드라이버의 파일을 임시저장 폴더에 백업하는 저장부 또는 저장관리시스템을 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 측면에 따른 인공지능 기반 엔드포인트 위협탐지 및 대응(endpoint detection and response, EDR) 시스템은, 특정 컴퓨팅 장치와 연관된 프로세서, 메모리 또는 저장 장치에서 파일 생성 이벤트를 감지하고 파일 생성 이벤트 로그로부터 생성 파일의 파일 경로를 추출하는 데이터 수집부; 상기 데이터 수집부로부터 받은 상기 파일 경로에 위치하는 실행 파일이나 상기 실행 파일의 적어도 일부의 코드를 부호 없는 일정 비트의 정수로 된 바이트로 읽어와 바이트 배열로 변환하는 바이트 배열 변환부; 상기 바이트 배열에서 2바이트씩을 읽어오는 좌표 매핑부; 상기 2바이트의 데이터를 미리 설정된 사이즈의 이미지 상의 좌표(x, y)로 활용하여 해당 좌표 값을 증가시키고 RGB 채널을 추가하여 이미지 배열을 저장하는 좌표 RGB채널 증가부; 및 상기 이미지 배열에 대하여 이미지 딥러닝 모델을 이용한 딥러닝 분석을 수행하는 이미지 딥러닝 분석부를 포함한다.
일실시예에서, 상기 데이터 수집부는 원격지의 다른 컴퓨팅 장치에 설치되는 엔드포인트 에이전트를 포함할 수 있다.
일실시예에서, 엔드포인트 위협탐지 및 대응 시스템은, 상기 엔드포인트 에이전트가 연결된 네트워크 상의 복수의 컴퓨팅 장치들을 관리하는 클라우드 관리 시스템을 더 포함할 수 있다.
본 발명에 의하면, 침해지표(IOC) 기반 포렌식 분석을 통한 사이버 위협 대응체계 구축으로 샌드박스 우회 악성코드의 위협 예를 들어, 가상환경 회피, 시간 지연 및 트리거 공격, 다단계 공격 등에 대해 효과적으로 대응할 수 있다.
또한, 본 발명에 의하면, 머신러닝, 악성코드 이미지 분석기법을 적용한 인공지능 기반의 자동화된 분석시스템을 통해 룰(rule) 생성 및 배포로 자율진화형 위협대응 시스템을 효과적으로 구축할 수 있다.
또한, 본 발명에 의하면, 타기관 및 타시스템과의 최신 위협정보 공유를 통해 신뢰성 있는 정보 생성 및 배포가 가능하고, 이를 통해 악성코드의 대응시간을 단축하여 사이버 피해를 최소화할 수 있다.
또한, 본 발명에 의하면, 기존 백신의 한계를 뛰어넘은 차세대 백신의 기술로 국가 안보를 위협하는 사이버 공격을 미연에 예방하고 사이버 위기 발생 시 신속하고 적극적으로 대처하여 개인과 국가의 안전 보장과 이익 보호에 이바지할 수 있다.
또한, 본 발명에 따른 이미지 기반 악성코드 탐지 방법 및 장치를 이용하면, 고도화된 사이버위협에 대응하는 제품으로 안티바이러스(anti-virus)를 대체하는 차세대 보안 솔루션으로 활용할 수 있다.
또한, 본 발명에 의하면, 정부기관 및 기업 내부 보안을 위한 구축형 플랫폼(On-premise) 제품으로 기관 및 기업 내부망의 모든 단말기를 대상으로 설치되어 차세대 EDR 서비스를 효과적으로 제공할 수 있다.
또한, 개인 사용자를 위한 SECaaS(Security As a Service, 보안서비스)의 차세대 EDR로서 엔드포인트에 에이전트를 설치하고 서버측 시스템에서 클라우드 형태로 운영 및 관리가 가능하여 구축형(On-premise) 방식 외에 국내외 통신사와 제휴하여 온라인 보안 서비스 형태로 혹은 구독형 과금 서비스 형태로 제공할 수 있는 장점이 있다.
도 1은 본 발명의 일실시예에 따른 알려지지 않은 보안위협의 사전대응을 위한 인공지능(AI) 기반 차세대 엔드포인트 위협탐지 및 대응(endpoint detection and response, EDR) 시스템의 개략적인 구성도이다.
도 2는 도 1의 EDR 시스템에 채용할 수 있는 침해지표(IOC) 및 위협정보 관리 시스템과 엔드포인트 에이전트를 설명하기 위한 도면이다.
도 3은 도 1의 EDR 시스템에 채용할 수 있는 이미지 기반 악성코드 탐지 과정을 설명하기 위한 도면이다.
도 4는 도 1의 EDR 시스템에 채용할 수 있는 악성코드 탐지 프로세스를 설명하기 위한 순서도이다.
도 5는 도 1의 EDR 시스템의 분석 시스템과 엔드포인트 에이전트 간의 연동을 설명하기 위한 도면이다.
도 6은 도 1의 EDR 시스템에 채용할 수 있는 머신러닝 기반 악성코드 탐지 과정을 설명하기 위한 도면이다.
도 7은 도 1의 EDR 시스템에 채용할 수 있는 이미지 기반 악성코드 탐지 과정을 설명하기 위한 도면이다.
도 8은 도 1의 EDR 시스템에 채용할 수 있는 분석 시스템에서 위협 모델링에 대한 신뢰성 향상 과정을 설명하기 위한 도면이다.
도 9a는 도 1의 EDR 시스템에 채용할 수 있는 다차원 분석을 위한 보안 API(application programming interface) 연동 작업을 설명하기 위한 도면이다.
도 9b는 도 9a의 보안 API 연동 작업의 주요 작동 원리를 설명하기 위한 흐름도이다.
도 10은 도 1의 EDR 시스템의 적어도 일부에 대응하는 엔드포인트 에이전트의 악성코드 분류 과정을 설명하기 위한 도면이다.
도 11은 도 10의 엔드포인트 에이전트에 채용할 수 있는 분석 시스템의 침해지표(IOC) 기반 분석 모듈의 설계 과정을 설명하기 위한 도면이다.
도 12는 본 발명의 다른 실시예에 따른 이미지 기반 악성코드 탐지 장치와 이를 탑재한 컴퓨팅 장치를 설명하기 위한 블록도이다.
도 13은 도 12의 악성코드 탐지 장치를 위한 클라우드 기반 가상화 시스템의 물리적 리소스 추가 증설 과정을 설명하기 위한 도면이다.
도 14는 도 12의 악성코드 탐지 장치에 채용할 수 있는 악성코드 탐지 프로세스의 분석 정보에 대한 사용자 인터페이스를 설명하기 위한 도면이다.
도 15는 도 12의 악성코드 탐지 장치를 탑재할 수 있는 엔드포인트 에이전트를 설명하기 위한 블록도이다.
도 16은 도 15의 엔드포인트 에이전트의 내부 악성코드 탐지 구조를 설명하기 위한 개략적인 블록도이다.
도 17은 도 15의 엔드포인트 에이전트의 내부 분석 모듈구성을 나타낸 블록도이다.
도 18은 도 15의 엔드포인트 에이전트의 엔드포인트 보안 동작을 설명하기 위한 사용자 인터페이스 화면의 예시도이다.
도 19는 도 15의 엔드포인트 에이전트에 의해 실행되는 악성코드 탐지 방법에서 악성코드 시각화 과정을 설명하기 위한 흐름도이다.
도 20은 도 15의 엔드포인트 에이전트에서 실행 파일의 코드를 미리 설정한 바이트의 폭(width) 사이즈로 정의하여 코드를 이미지화한 이미지를 얻는 과정을 설명하기 위한 변환 소스코드의 예시도이다.
도 21은 도 15의 엔드포인트 에이전트에서의 코드 이미지화에 대한 결과 이미지의 예시도이다.
도 22는 도 15의 엔드포인트 에이전트의 주요 악성코드 탐지 과정을 설명하기 위한 흐름도이다.
도 23은 도 22의 악성코드 탐지 과정에 채용할 수 있는 명암도 동시발생 행렬(gray-level co-occurrence matrix, GLCM) 변환 이미지 모듈을 설명하기 위한 변환 소스코드의 예시도이다.
도 24는 도 23의 GLCM 변환 이미지 모듈을 이용한 코드 이미지화의 적용 전과 후의 이미지들에 대한 예시도이다.
도 25는 본 발명의 또 다른 실시예에 따른 이미지 기반 악성코드 탐지 장치의 주요 구성을 설명하기 블록도이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는 데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. "및/또는"이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
본 출원에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
이하, 첨부한 도면들을 참조하여, 본 발명의 바람직한 실시예를 보다 상세하게 설명하고자 한다. 본 발명을 설명함에 있어 전체적인 이해를 용이하게 하기 위하여 도면상의 동일한 구성요소에 대해서는 동일한 참조부호를 사용하고 동일한 구성요소에 대해서 중복된 설명은 생략한다.
도 1은 본 발명의 일실시예에 따른 알려지지 않은 보안위협의 사전대응을 위한 인공지능(artificial intelligence, AI) 기반 차세대 엔드포인트 위협탐지 및 대응(endpoint detection and response, EDR) 시스템의 개략적인 구성도이다.
도 1을 참조하면, AI 기반 차세대 EDR 시스템(100)은 분석 시스템(110), 클라우드 관리 시스템(120), 악성코드 동적분석시스템(150), 악성코드 학습 및 분류 시스템(160), 침해지표(indicator of compromise, IOC) 및 위협정보 관리시스템 등을 포함한다. 분석 시스템(110)은 데이터 수집부(130) 및 이미지 변환부(140)를 구비하고, 지능형 포렌식 분석시스템이나 위협분석 서버로 지칭될 수 있다. 이미지 변환부(140)는 이미지화 모듈(141)과 이미지분류 모듈(142)을 구비할 수 있다. 그리고 악성코드 동적분석시스템(150)은 행위기반 악성코드 동적분석시스템을 포함할 수 있다.
본 실시예에서 악성코드 동적분석시스템(150)과 악성코드 학습 및 분류 시스템(160)과 IOC 및 위협정보 관리시스템(170)을 별도의 구성으로 설명하지만, 본 발명은 그러한 구성으로 한정되지 않고, 분석 시스템(110)이 악성코드 동적분석시스템(150)과 악성코드 학습 및 분류 시스템(160)과 IOC 및 위협정보 관리시스템(170)을 포함하도록 구성될 수 있음은 물론이다. 이 경우, 악성코드 동적분석시스템(150)과 악성코드 학습 및 분류 시스템(160)과 IOC 및 위협정보 관리시스템(170) 각각은 기재된 순서대로 악성코드 동적분석모듈과 악성코드 학습 및 분류 모듈과 IOC 및 위협정보 관리모듈로 각각 지칭될 수 있다.
주요 구성요소들을 좀더 구체적으로 살펴보면, 분석시스템(110)은 엔드포인트와 연관된 네트워크, 파일, 프로세스, 레지스트리 등에서 발생하는 주요 행위에 대해서 IOC 기반으로 수집하는 에이전트 기능을 구비할 수 있다. 이러한 에이전트 기능은 엔드포인트에서의 침해위협 수집을 통한 지능형 포렌식 분석을 위한 것일 수 있다.
또한, 분석 시스템(110)은 수집된 모니터링 데이터를 빅데이터 분석이 가능한 형태로 저장하고 수집된 행위정보를 활용하여 지능형 포렌식 분석 및 악성행위 탐지를 수행한다.
악성코드 동적분석시스템(150)은 리얼 및 가상 환경을 동시 운영 가능한 행위기반 악성코드 동적분석시스템을 포함할 수 있다. 악성코드 동적분석시스템(150)은 악성코드의 네트워크, 파일, 프로세스, 레지스트리 등에서의 행위에 대해서 행위룰 기반으로 탐지하고 탐재된 악성코드의 정적 및 동적 분석을 통해 수집한 데이터를 분석 가능한 형태로 저장할 수 있다. 이러한 수집 데이터는 분석 가능한 형태로 저장되는 빅데이터일 수 있다.
또한, 악성코드 동적분석시스템(150)은 가상머신을 회피하는 악성코드에 대응하기 위하여 물리적으로 구성된 리얼머신 기반 샌드박스 환경에서 파일을 실행하여 악성행위를 분석할 수 있다. 이를 위해, 악성코드 동적분석시스템(150)은 가상머신(virtual machine, VM) 및 리얼머신(real machine)에서 행위 기반으로 악성코드를 동적 분석하도록 구현딜 수 있다.
악성코드 학습 및 분류 시스템(160)은 악성코드 이미지 분석 기법을 적용한 악성코드 학습 및 분류 모듈을 구비할 수 있다. 악성코드 학습 및 분류 시스템(160)은 악성코드 이미지화 알고리즘을 사용하고 이미지 학습용 머신러닝 파라미터를 조정(tuning)할 수 있다. 또한, 악성코드 학습 및 분류 시스템(160)은 머신러닝 알고리즘을 활용한 악성코드 이미지 학습를 학습하고 분류할 수 있다. 즉, 시스템(160)은 악성코드의 정적 및 동적 분석을 통해 수집한 빅데이터를 머신러닝 기반으로 유사도 분석하고 원본 악성코드에서 파생한 악성코드를 모델링 기법으로 분석하여 악성코드를 탐지할 수 있다.
침해지표(IOC) 및 위협정보 관리시스템(170)은 각종 분석을 통해 수집한 침해지표(IOC), 악성코드 패턴, 야라(YARA) 룰, 악성코드 유포지, C&C(command & control) 서버, 악성코드의 해시(hash) 등의 최신 위협정보에 대해서 OpenIOC, STIX(structured threat information expression) 등의 포맷으로 관리하고 TAXII(trusted automated exchange of intelligence information) 등의 표준 프로토콜을 통해 타시스템과 공유하거나 배포할 수 있다. 즉, IOC 및 위협정보 관리시스템(170)은 엔드포인트에서 랜섬웨어 공격에 대비한 순간 백업 및 복원 기능을 수행하거나, 시스템에서 생성된 최신 침해지표와 위협정보에 대해서 표준 프로토콜을 통해 한국인터넷진흥원(KISA)의 사이버 안전 센터 등의 공공시스템과 최신 위협정보를 공유하거나 배포할 수 있다.
본 실시예의 AI 기반 차세대 EDR 시스템(100)은 주요 기능을 설명하면 다음과 같다.
먼저, EDR 시스템(100)은 수집 모듈(collecting module, COL)을 통해 엔드포인트에서의 네트워크, 파일, 프로세스, 레지스트리 등의 주요 행위에 대해서 IOC 기반으로 침해위협을 수집한다(S11). 이러한 에이전트의 수집 기능은 엔드포인트에서의 주요행위에 대해서 IOC 기반으로 침해위협을 수집하면서 랜섬웨어 공격 감지시 순간 백업 기능과 연동되도록 설치될 수 있다.
또한, EDR 시스템(100)은 포렌식 분석 모듈을 통해 지능형 포렌식 분석 및 악성행위 검색을 수행할 수 있다.
또한, EDR 시스템(100)은 가상머신을 회피하는 악성코드에 대응하기 위하여 물리적으로 구성된 리얼머신 기반 샌드박스 환경에서 파일을 실행하여 악성행위를 분석할 수 있다.
또한, EDR 시스템(100)은 악성코드의 정적 및 동적 분석을 통해 수집한 빅데이터를 이미지화한 후, 머신러닝 전처리(machine learnign preprocessing, ML-PreP, S12), 이미지 학습, 이미지 분류, 그룹화 과정들을 기재된 순서대로 거쳐 원본 악성코드에서 파생한 변종 악성코드에 대해서 효율적으로 탐지할 수 있다. 수집된 데이터나 이미지화 결과, 전처리 결과, 학습 결과, 분류 결과, 그룹화 결과, 탐지 결과 등의 데이터는 저장부에 저장(stroing, STO, S13)될 수 있다. 또한, 저장된 데이터는 이미지 분석 등의 후처리(postprecessing PostP, S14)를 통해 처리된 후 다시 저장부에 저장될 수 있다.
또한, EDR 시스템(100)은 엔드포인트에서 발생하는 랜섬웨어의 행위 분석을 통해 비인가 프로세스에 의한 암호화가 이루어지는 것을 감지한 경우, 원본 파일에 대해서 드라이버 상에서 순간적으로 임시저장 폴더에 백업하고, 랜섬웨어 판명 시에 임시저장 폴더에 저장된 원본 파일로 데이터를 복원하도록 구성될 수 있다.
또한, EDR 시스템(100)은 각종 분석을 통해 수집한 IOC, 악성코드 패턴, YARA 규칙, 악성코드 유포지, C&C 서버 등의 최신 침해지표와 위협정보에 대해서 OpenIOC, STIX 등의 포맷으로 관리하고 TAXII 등 표준 프로토콜을 통해 타 시스템과 공유하거나 타 시스템으로 배포할 수 있다.
표 1은 EDR 시스템(100)의 데이터 수집부(120)에 수집되는 데이터의 수집 경로별 주요 성능치를 나타낸 테이블이다.
데이터
수집경로
변종 악성코드
분석시간
유사행위
탐지 정확도
위험 프로세스
탐지율
에이전트
지원플랫폼
에이전트
동시 처리수
5가지 이상 0.08초 이하 90% 이상 60% 이상 3플랫폼 이상 100개
도 2는 도 1의 EDR 시스템에 채용할 수 있는 침해지표(IOC) 및 위협정보 관리 시스템과 엔드포인트 에이전트를 설명하기 위한 도면이다. 도 3은 도 1의 EDR 시스템에 채용할 수 있는 이미지 기반 악성코드 탐지 과정을 설명하기 위한 도면이다.
도 2를 참조하면, IOC 및 위협정보 관리시스템(170)과 엔드포인트 에이전트(200)은 지능형 포렌식 분석을 위해 침해지표(IOC)를 공유하여 악성코드를 시각화하고 고도화시킬 수 있다.
즉, IOC 및 위협정보 관리 모듈을 포함하는 분석 시스템은 IOC 및 위협정보 관리 모듈을 통해 의심파일이나 소스정보를 수집하거나(S21), C&C 서버나 악성코드 유포지에 대한 정보를 수집하고(S22), 클라우드 상에서 수집된 악성코드 및 정보수집 결과(S23) 중 의심파일을 샌드박스 분석 모듈로 전송하고(S24), 정보수집 결과 보고서를 소스 데이터베이스(DB)에 저장할 수 있다(S26). 이때, 샌드박스 분석 모듈에서 분석된 데이터도 소스 DB에 저장될 수 있다(S25).
그런 다음, 분석 시스템은 소스 DB에 저장된 데이터를 받아(S27), 1차 검증하여 출력하고(S28), 1차 검증 결과를 자체 검증 및 분류하여 점수를 부여(scoring)할 수 있다(S29). 점수가 부여된 데이터는 IOC DB에 저장된 후 엔드포인트 에이전트(200)로 전송되거나 공유될 수 있다.
엔드포인트 에이전트(200)는 엔드포인트에 대응하는 특정 컴퓨팅 장치에서 수집한 에이전트 데이터(agent data)를 내부 분석시스템(210)을 통해 앞서 전달받은 침해지표(IOC)와 비교 분석(compare and analyze, CA)할 수 있다.
좀더 자세히 설명하면, 도 3에 나타낸 바와 같이, 분석 시스템 수집된 악성코드(malware binary, 30)에 대해 부호 없는 8비트 정수로 된 벡터 또는 바이트로 읽어 2D 배열로 구성하고(S31) 2D 배열의 폭(width) 사이즈를 기초로 하는 이미지 형태로 이미지화할 수 있다(S32, S33). 여기서 2D 배열은 바이트 배열로 지칭될 수 있고, 이미지 형태는 0(검정색) 내지 225(흰색) 범위의 그레이스케일 이미지로 시각화된 것을 포함할 수 있다.
본 실시예에 의하면, 실행 파일의 여러 부분에 대하여 예를 들어 text, rdata, data, rsrc 등의 악성코드의 다른 섹션 혹은 바이너리 조각에 대하여 독특한 이미지 텍스처(35)를 가진 이미지 배열을 생성할 수 있다.
도 4는 도 1의 EDR 시스템에 채용할 수 있는 악성코드 탐지 프로세스를 설명하기 위한 순서도이다.
도 4를 참조하면, EDR 시스템 또는 그 분석 시스템은 행위기반 화이트리스트 예외 처리 절차(그레이리스트 기능)를 수행할 수 있다.
보다 구체적으로, EDR 시스템 또는 분석 시스템에 채용할 수 있는 행위기반 화이트리스트 예외 처리 기술은 사용자가 수동으로 등록했던 화이트리스트를 제외하고 좀비제로(ZombieZERO) 시스템 등의 툴에 의한 자동 분석이나 머신러닝에 의한 분석이 수행되어 정상 판정이 된 파일이나 코드를 그레이리스트(graylist)로 등록하고 이를 토대로 엔드포인트 에이전트에서 계속적으로 추적 및 감시를 수행하도록 구성될 수 있다.
예를 들어, 시간, 장소, 사용자, 가상 회피 등의 특정 조건에서만 작동되는 악성코드를 방어하기 위해 엔드포인트의 사용자 단에 설치된 에이전트(agent)에서 해당 악성코드를 계속적으로 추적 또는 감시하도록 설정될 수 있다.
그레이리스트에 의한 악성코드 탐지 시나리오 구성을 살펴보면 다음과 같다.
먼저, 엔드포인트 에이전트(이하 간략히 에이전트)는 사용자가 자동 분석이나 머신러닝 대상이거나 그레이리스트에 등록된 파일을 실행(file execution)하면, 화이트리스트(whitelist)에 등록된 파일인지(S42), 사용자가 등록한(manually register) 파일인지(S43)를 판단하고, 실행 자체를 제한하지는 않는다(run the file, S44).
그리고 파일이나 이 파일에 의한 프로세스가 실행될 때, 에이전트는 계속적으로 파일이나 프로세스에 대한 추적과 감시를 진행한다. 추적과 감시 과정에서 하이트리스트에 등록된 파일이 아니면(S42의 No), 블랙리스트에 등록된 파일인지(S45)를 판단한다. 블랙리스트에 등록된 파일이면, 해당 파일을 차단한다(block file, S46). 한편, 블랙리스트에 등록된 파일이 아니면, 분석 요청 대상인지를 판단하고(S47), 특별한 경우 분석 요청 대상이 아니면 현재의 프로세스를 종료하고, 분성 요청 대상이면, 해당 파일의 실행을 보류하고(pending execution(holding), S48), 좀비제로(ZombieZERO) 보안솔루션 등에 해당 파일에 대한 분석 요청(analysis request, S49)을 진행할 수 있다. 좀비제로 보안솔루션은 분석 시스템이나 IOC 및 위협정보 관리모듈 등에 결합되거나 포함되는 보안솔루션의 일종이다.
한편, 화이트리스트에 등록되어 있지만 사용자가 등록한 파일이 아닌 경우(S43의 No), 에이전트는 해당 파일을 그레이리스트(graylist)에 등록하고 해당 파일의 실행시 추적(tracking)과 감시(monitoring)를 수행할 수 있다(S50).
또한, 에이전트는 랜섬웨어 행위, MBR(master boot record) 손상 등의 악성 행위를 감지한 시점에서 해당 파일이나 해당 프로세스를 차단하고, 분석 시스템이나 대응 서버로 요청하여 그레이리스트에서 목록을 삭제하고 블랙리스트에 해당 파일을 등록할 수 있다.
도 5는 도 1의 EDR 시스템의 분석 시스템과 엔드포인트 에이전트 간의 연동을 설명하기 위한 도면이다.
도 5를 참조하면, 서버측 분석 시스템(110)은 수동 분석(manually analysis) 모듈(143), 자동 분석(antomatic analysis) 모듈(144), 화이트리스트(WL) DB(145), 블랙리스트(BL) DB(146), 그레이리스트(GL) DB(147)을 구비할 수 있다. 수동 분석 모듈(143)은 관리자 분석, 화이트리스트 등록, 블랙리스트 등록 등을 수행할 수 있고, 자동 분석 모듈(144)은 백신(antivirus) 기능, 정적 분석, 동적 분석, 머신러닝 분석을 수행할 수 있다. 동적 분석에는 가상머신이나 리얼머신이 이용될 수 있다. 전술한 구성의 분석 시스템(110)은 인공지능 기반의 분석 플랫폼을 구비하고, 에이전트(200)에 악성코드 탐지 정책(policy)을 제공할 수 있다(S51).
에이전트(200)는 차세대 EDR 장치로서 기능할 수 있으며, 사전 탐지(proactive detection) 모듈(220) 및 사후 탐지(post detection) 모듈(230)을 구비하고, 엔드포인트 또는 특정 컴퓨팅 장치에서 실행되는 파일에 대한 추적(tracking) 및 감시(sureillance) 기능(240)을 수행할 수 있다. 에이전트(200)는 추적 및 감시 결과에 따라 특정 파일(file)에 대한 정보나 해당 파일의 실행 이벤트 로그 등의 로그(log)를 분석 시스템(110)으로 전송할 수 있다(S52).
도 6은 도 1의 EDR 시스템에 채용할 수 있는 머신러닝 기반 악성코드 탐지 과정을 설명하기 위한 도면이다.
도 6을 참조하면, EDR 시스템이나 그 분석 시스템은 머신러닝 기반으로 악성코드를 탐지하기 위해 정상적으로 입력되는 파일(60) 중 포터블 실행 파일(portable executable file, PE file) 등의 실행 파일의 특징 정보를 추출할 수 있다(S61). 특징 정보는, 제1 특징(f1)은 5, 제2 특징(f2)는 7 그리고 제k 특징(fk)은 2와 같이 각 특징이 정수 값을 갖도록 저장될 수 있다. 일정 사이즈 또는 일정 폭의 정수 값은 소정의 벡터 또는 바이트에 대응될 수 있다.
다음, 분석 시스템은 저장된 특징 정보로부터 유사성 해싱(hashing)을 수행할 수 있다(S62). 유사성 해싱은 유사성 검색을 위한 딥 해싱 등의 유사성 기반 해싱 절차를 포함할 수 있다. 유사성 해싱에서는 동일한 데이터는 동일한 해싱 값을 생성하고, 유사한 데이터의 경우, 해싱 값의 차이가 데이터의 유사도와 반비례 관계를 갖도록 구현될 수 있다. 예를 들어 특정 실행 파일(000.exe)의 데이터 포인트를 버킷(bucket)으로 하여 해싱을 수행할 수 있다.
다음, 분석 시스템은 유사성 해싱 결과를 미리 설정되거나 미리 훈련된 복수의 분류 모델들(model 1, model L 등)과 비교하여 매칭 여부를 판단할 수 있다(S63).
유사성 해싱 결과 중 분류 모델들과 매칭되는 것이 없으면, 즉 악성코드가 탐지되지 않은 경우, 분석 시스템은 심화 탐지를 위해 특징 정보를 확장하고 결정 트리(decision tree, DT) 앙상블 등의 머신러닝 모델을 통해 유사성 해싱 결과의 매칭 여부를 확인함(S64)으로써 정상 파일(67)과 악성 파일(68)을 분류할 수 있다. 여기서, 확장된 특징 정보는 전술한 특징 정보(기본 특징 정보)에 더하여 해당 파일에서 추가적으로 추가 특징 정보를 추출하거나 추출한 후 포함시키지 않은 나머지 특징 정보를 부가하여 심화 탐지 대상 특징 정보를 개수를 기본 특징 정보 대비 일정 배수(1보다 큰 정수배)로 증가시킨 것을 지칭할 수 있다. 그리고, DT 앙상블은 여러 개의 결정 트리를 결합하여 하나의 모델을 사용한 경우보다 더 높은 성능을 나타내도록 한 특정 모델을 가리킬 수 있다.
본 실시예에 의하면, 머신러닝 기반의 악성코드 분석을 고도화하고 에이전트 기능을 고도화할 수 있다. 즉, 본 실시예의 머신러닝 모델은 정상파일 및 악성코드가 포함된 파일로 모델을 학습 시킨 후, 학습된 모델로 의심스러운 파일의 악성 여부를 탐지하도록 구성될 수 있다. 또한, 머신러닝 모델은 실행파일의 기본적인 특징 정보로 유사성 해싱 함수를 학습시킨 후 정상 파일과 악성 파일을 분류하고, 또한 실행 파일에서 추출 가능한 모든 특징 정보로 유사성 해싱 함수를 학습시킨 후 정상 파일과 악성 코드를 분류하도록 구현될 수 있다.
도 7은 도 1의 EDR 시스템에 채용할 수 있는 이미지 기반 악성코드 탐지 과정을 설명하기 위한 도면이다.
도 7을 참조하면, EDR 시스템의 분석 시스템은 악성코드 이미지분석(malware image analysis) 알고리즘 적용하여 악성코드를 탐지할 수 있다.
구체적으로, 분석 시스템은 실행 파일이나 그 적어도 일부의 코드를 2D 벡터(2D vector)로 변환한다(S70, S71). 그런 다음, 2D 벡터를 그레이스케일로 이미지화한다(grayscale imaging, S72).
다음, 분석 시스템은 전처리(preprocessing, S73)를 통해 2D 벡터를 이미지화한 데이터 또는 이미지 배열을 딥러닝의 입력으로 사용할 수 있도록 이미지 배열의 이미지 크기를 조정한다.
다음, 그 크기가 조정되고 이미지화된 데이터를 머신러닝 모델에서 분류하여 악성코드 간 동종 또는 유사계열 상관관계를 판별한다(S74). 머신러닝 모델은 입력과 출력 사이에 컨볼루션, CI 특징 맵, 서브샘플링, S1 특징 맵, 컨볼루션, S2 특징 맵, 서브샘블링, 컨볼루션, 완전 연결층을 구비한 오픈소스 기반 유사도 분류 모델 등을 이용할 수 있다.
머신러닝 모델을 이용한 판별 결과, 즉 악성코드의 분류 결과는 여러 이미지 텍스쳐의 이미지들로 표현될 수 있다(S75). 이러한 악성코드 분류 결과는 분석자를 위한 별도의 사용자 분석시스템과 연동(interlocking)될 수 있고(S76), 특정 DB로 변환(converting)되고(S77) 저장될 수 있다.
본 실시예에 의하면, 이미지화된 데이터를 이용하여 악성코드 분류기술의 정확도를 향상시킬 수 있고, 악성코드 관계분석 기반으로 유포행위의 파급력 분석을 통해 위험도 측정 정확도를 개선할 수 있다.
도 8은 도 1의 EDR 시스템에 채용할 수 있는 분석 시스템에서 위협 모델링에 대한 신뢰성 향상 과정을 설명하기 위한 도면이다.
도 8을 참조하면, 분석 시스템은 인공지능 기반 악성코드 분석 시스템으로서 악성코드 동적 분석시스템(150) 등을 포함할 수 있고, 다음과 같이 설계될 수 있다. 즉, 분석 시스템은 분석 시스템 성능 검증을 위해 악성코드 데이터셋(malware dataset, 152) 등의 악성코드 샘플을 이용할 수 있고(S81), 성능 검증 결과를 머신러닝 회피 위협 모델링에 반영할 수 있다(S83).
악성코드 동적 분석시스템(150)은 분류(classification) 모듈, 그룹화(clustering) 모듈, 딥러닝(deep learning) 모델을 구비하고, 포터블 실행 포맷 파일(PE format files)의 특징 추출(feature extraction) 후 멀웨어 분석(malware analysis)을 통해 멀웨어 검출(malware detection)과 멀웨이 계열 분류(malware family classification)를 수행할 수 있다.
악성코드 데이터셋(152)은 리얼 데이터셋(real dataset)을 멀웨어 라벨링(malware labeling, S82)하여 생성한 데이터셋을 포함할 수 있다.
분석 시스템은 멀웨어 분석 시스템(malware anslysis system)으로서 중독 공격(poisoning attack), 회피 공격(evasion attack) 등에 대한 분석으로써 머신러닝 회피 위협 모델링을 수행하도록 구성될 수 있다.
본 실시예에 의하면, 악성코드 분석에 다양한 분류 및 군집 알고리즘을 이용하여 효과적인 악성코드 분석 시스템을 설계할 수 있다. 또한, 악성코드와 정상 파일에 대한 분류뿐만 아니라 세부적인 악성코드 변종 그룹 분류를 수행할 수 있고, 정상코드와 악성코드 샘플뿐만 아니라 다양한 변종 그룹으로 레이블링된 악성코드 샘플을 시스템 성능 검증에 활용할 수 있다. 또한, 엔드포인트에 설치되는 에이전트와의 호환성을 고려한 악성코드 분석 시스템을 설계할 수 있고, 머신러닝 모델 회피 공격 관점에서 인공지능 기반 악성코드 분석 시스템을 대상으로 수행할 수 있는 각종 공격에 대한 위협 모델을 효과적으로 수립할 수 있다.
도 9a는 도 1의 EDR 시스템에 채용할 수 있는 다차원 분석을 위한 보안 API(application programming interface) 연동 작업을 설명하기 위한 도면이다. 도 9b는 도 9a의 보안 API 연동 작업의 주요 작동 원리를 설명하기 위한 흐름도이다.
도 9a를 참조하면, EDR 시스템은 악성코드 연동 분석시스템(180)을 더 포함할 수 있다. 연동 분석시스템(180)은 EDR 시스템의 분석 시스템(도 1의 110 참조)에 포함될 수 있고, 이 경우 연동 분석모듈로 지칭될 수 있다.
연동 분석시스템(180)은 제3자(3rd party) 평판분석 모듈, 파일확장자 검증 모듈, 파일 정적행위 분석 모듈, 샌드박스 관리자, 파일 동적행위 분석 모듈, 파일 DB, 정적 또는 동적 악성코드 탐지 야라룰(Yara rule) DB, 파일 분석결과 DB, PCAP(packet capture) DB, 해시(hash) DB 등을 구비할 수 있다.
파일 DB는 포터블 실행(PE) 파일, 오피스(office) 파일, 한글(HWP) 파일, 이메일(eml) 파일 등을 저장하고 관리할 수 있다. 파일 정적행위 분석 모듈은 파일 확장자 검증 모듈과 악성코드 탐지 야라룰 모듈과 샌드박스 관리자에 연결되고, 파일 속성, PE 분석, 야라룰 탐지를 위한 적어도 하나의 서브모듈을 구비하고, 파일분석결과 DB에 연결될 수 있다.
파일 동적행위 분석 모듈은 샌드박스 관리자와 악성코드 탐지 야라룰 모듈에 연결되고, 레지스트리, 파일, 메모리, 네트워크 등에서의 위협 행위를 분석하기 위한 적어도 하나 이상의 서브모듈을 구비하고, 파일분석결과 DB, PCAP DB 및 해시 DB에 연결될 수 있다. PCAP DB는 네트워크 트래픽 포착용 API(application programming interface)를 구비할 수 있다.
샌드박스 관리자는 가상 샌드박스(191)와 리얼머신 샌드박스(192)에 연결될 수 있다. 가상 샌드박스(191)는 가상머신 샌드박스로서 복수의 악성코드 분석 가상머신들(가상머신1 내지 가상머신n)을 구비하고, 리얼머신 샌드박스(192)는 복수의 악성코드 분석 리얼머신들(리얼머신1 내지 리얼머신n)을 구비할 수 있다.
본 실시예에 의하면, 보안 API 연동을 통해 침해지표(IOC), 악성코드 패턴, 탐지룰, 악성코드 유포지, C&C 서버 등의 최신 위협정보(threat intelligence, TI)의 실시간 수집 및 배포 시스템을 구축할 수 있다. 또한, 정적/동적 분석 고도화와 에이전트 기능 고도화를 위해, 수집된 파일에 대해 가상머신이나 리얼머신을 이용한 악성코드 분석 프로세스 연동 설계를 효과적으로 구현할 수 있다.
또한, 본 발명에 의하면, 다차원 분석을 위한 보안 API 연동 작업을 통해 백신(antivirus) 엔진 배포, 평판 분석, URL(uniform resource locator) 접속 탐지, 행위기반 분석 등을 효과적으로 수행할 수 있다. 아울러, 가상 머신 우회 탐지 프로세스를 통해 엔드포인트의 중앙처리장치(CPU) 식별자(ID), 가상머신 행위여부, 프로세스 탐색(searching) 동작 기준 등을 설정하여 악성코드 탐지에 이용할 수 있다.
또한, 본 발명에 의하면, 엔드포인트에서 발생하는 랜섬웨어의 실시간 행위 분석을 통해 드라이버 상에서 순간적으로 임시저장 폴더에 데이터를 백업하여 랜섬웨어 판명 시에 원본 파일로 데이터를 복원할 수 있는 환경을 제공할 수 있다.
예를 들어, 도 9b에 나타낸 바와 같이, 알려진 파일인 경우(S91의 N), 파일 실행을 제한하지 않지만(S92), 알려지지 않은 파일이 실행되려고 할 때(S91의 Y), EDR 시스템은 해당 파일의 실행을 보류시키고(S93), 파일을 분석 시스템으로 업로드하고(S94), 분석 시스템을 통해 해당 파일을 분석하고(S95), 실행가능 해쉬값을 다운로드하여(S96) 분석 시스템의 분석 결과와 비교함으로써 해당 파일의 실행 여부를 결정(S97)할 수 있다.
도 10은 도 1의 EDR 시스템의 적어도 일부에 대응하는 엔드포인트 에이전트의 악성코드 분류 과정을 설명하기 위한 도면이다.
도 10을 참조하면, 엔드포인트 에이전트는 변종 또는 신종 악성코드 문제를 해결하기 위해 악성코드 학습 및 분류 모듈을 통해 변종(malware variants), 신종(new malware groups) 악성코드에 대하여 이상치 탐지(outlier detection)를 수행하고 모델 재훈련(model retraining)을 수행하도록 구성될 수 있다(S101).
이상치 탐지는 문제 혹은 이상이 있는 데이터를 탐지하는 것을 가리키고, 모델 재훈련은 변종, 신종 악성코드에 대응할 수 있도록 정상 이미지 텍스쳐와 추가된 악성 이미지 텍스처 등으로 다시 훈련하는 것을 가리킬 수 있다.
또한, 엔드포인트 에이전트는 다중 플랫폼에 설치가능한 멀웨어 분석 시스템(malware aanlysis system)을 구비할 수 있다. 엔드포인트 에이전트는 멀웨어 분석 시스템을 통해 매킨토시(macintosh, MAC), 윈도우즈(windows), 리눅스(linux) 등의 다중 플랫폼(multi-platform)를 형성할 수 있다(S103).
엔드포인트 에이전트는 다중 플랫폼 상에서 리얼 데이터셋(real dataset)의 중독(poisoning) 등과 같은 데이터셋 공격(attack dataset)을 기계학습 대상 공격으로 설정하여 공격 시뮬레이션(attack simulation)을 수행하고 이를 통해 인공지능 모델을 학습시킬 수 있다(S105).
본 실시예에 의하면, 인공지능 기반으로 악성코드 분류 시스템을 구현하고 회피 기술을 효과적으로 학습할 수 있다.
또한, 윈도우, 매킨토시, 리눅스 등의 특정 플랫폼 기반의 악성코드에 대해 단일 분석 시스템에서 악성코드를 분석할 수 있고, 악성코드 샘플을 활용하여 구현 시스템의 성능을 검증할 수 있다. 예컨대, 기존 그룹의 변종 악성코드와 신종 그룹의 악성코드가 등장하는 시나리오를 고려하여 모델을 학습시킬 수 있다. 또한, 신종, 변종 악성코드 분석의 검증을 위해 기존 레이블링된 악성코드 그룹 정보 및 시계열 데이터를 활용할 수 있다. 또한, 머신러닝을 대상으로 하는 중독 공격, 회피 공격 등의 각종 공격 기법을 기존 샘플에 적용해 변형시킨 공격 데이터셋을 구축하고 이러한 공격 데이터셋을 활용해 악성코드 분석 시스템을 학습시켜 악성코드 탐지 성공률을 향상시킬 수 있다.
도 11은 도 10의 엔드포인트 에이전트에 채용할 수 있는 분석 시스템의 침해지표(IOC) 기반 분석 모듈의 설계 과정을 설명하기 위한 도면이다.
도 11을 참조하면, 엔드포인트 에이전트는 지능형 포렌식 분석을 위해 에이전트 내부에 안티바이러스(antivirus, AV) 엔진을 적용할 수 있다.
좀더 구체적으로 설명하면, 에이전트가 실행(Agent execution)되어 전처리(preprocessing) 과정이 수행될 수 있다.
전처리 과정에서, 파일(File), 프로세스(Process) 또는 레지스트리(Registry) 이벤트를 수집하는 특정 매니저(CIOCMgr)가 실행(start)되고(S1101), 또한 네트워크(Network) 이벤트를 수집하는 특정 트래픽 모니터(CTrafficMonitor)가 실행(start)되어(S1110) 엔드포인트(EndPoint) 또는 특정 컴퓨팅 장치의 이벤트를 수집할 수 있다.
이벤트 발생 시 특정 제1 함수(DoDynamic 함수)를 통해 해당 이벤트의 로그에 대해 룰(Rule) 비교를 수행하고(S1102, S1111), 비교한 결과를 각각의 특정 제2 함수(Insert 함수)를 통해 DB에 해당 로그 및 분석 결과를 저장하고(S1103, S1105, S1107, S1112), 그런 다음 저장된 로그 및 분석 결과를 관리자(Manager)로 전달하기 위해 각각의 특정 제3 함수(DoNofity 함수)를 통해 해당 데이터를 Json 형태로 변환(S1104, S1106, S1108, S1113)한 후 소정 메시지(DoNofity_Send)를 통해 Json 형태의 데이터를 관리자로 전달(S1120)할 수 있다. 관리자에게 전달된 데이터는 사용자 인터페이스(user interface, UI)에 표시될 수 있다.
표 2는 침해표지(IOC) 기반 악성코드 분석 기능을 위한 인터페이스 구성 내역에 대한 예시이다.
모듈 IOC 모듈 모듈 IOC 모듈
함수 CIOCMgr::Start 함수 CTrafficMonitor::Start
목적 Event(File,Process, Registry)수집 시작 목적 Event(Network)수집 시작
파라미터 없음 파라미터 없음
리턴값 Boolean 리턴값 Boolean
모듈 IOC 모듈 모듈 IOC 모듈
함수 DoDynamic 함수 Insert_File
목적 로그 분석(Rule 비교) 목적 File Event DB 저장
파라미터 CDynLogData* pLogData 파라미터 CFileItem &item
리턴값 Boolean 리턴값 없음
모듈 IOC 모듈 모듈 IOC 모듈
함수 Insert_Process 함수 Insert_Registry
목적 Process Event DB 저장 목적 Registry Event DB 저장
파라미터 CProcessItem &item 파라미터 CRegDBItem &item
리턴값 없음 리턴값 없음
모듈 IOC 모듈 모듈 IOC 모듈
함수 Insert_Network 함수 DoNotify_Network
목적 Network Event DB 저장 목적 Network Event 로그화(Json)
파라미터 CNetworkItem &item 파라미터 없음
리턴값 없음 리턴값 Boolean
모듈 IOC 모듈 모듈 IOC 모듈
함수 DoNotify_File 함수 DoNotify_Process
목적 File Event 로그화(Json) 목적 Process Event 로그화(Json)
파라미터 없음 파라미터 없음
리턴값 Boolean 리턴값 Boolean
모듈 IOC 모듈 모듈 IOC 모듈
함수 DoNotify_Registry 함수 DoNotify_Send
목적 Registry Event 로그화(Json) 목적 로그 Manager로 전달
파라미터 없음 파라미터 vector<string>& jsons
리턴값 Boolean 리턴값 Boolean
에이전트에 탑재할 수 있는 침해지표 기반 분석 모듈은 수집된 이벤트(event)를 형식에 맞게 수정한 후 에이전트의 응용프로그램(Application) 측으로 전달할 수 있다. 이후, 에이전트는 전달 받은 이벤트 내용을 DB에 저장하거나 프로세스 부분만을 추출하고 추출한 부분을 Json 포맷 등으로 로그화하여 관리자에게 전달할 수 있다. 여기서 Json 포맷은 추출한 부분을 관리자에게 전달하기 위해 포맷 변경 구성으로써 다른 구성을 대체가능하다.
에이전트는 야라 룰 등의 규칙을 통한 침해지표의 분석 결과인 로그(log) 정보를 제공할 수 있다. 에이전트는 악성 행위에 대한 동작 로그 분석 후 해당 악성 행위 동작 기반으로 제작된 야라 룰(Yara rule)을 이용할 수 있다. 또한, 에이전트는 마이터 어택(Mitre ATT&CK) 기반으로 해당 룰에 대한 공격 분류 및 공격 방식을 추가적으로 작성하여 해당 정보를 제공할 수 있도록 제작된 야라 룰을 이용하도록 구성될 수 있다.
에이전트는 MITRE ATT&CK T_ID 정보와 수집된 로그 분석을 통해 로그의 공격 방식에 대한 분류 및 기술 정보 제공하고, 해당 ID와 링크된 URL을 제공하여 MITRE ATT&CK 사이트의 도움말 참조가 가능하도록 구성될 수 있다.
에이전트는 침해지표(IOC) 규칙 적용 및 해당 규칙을 통한 정적 분석으로 레지스트리 로그(registry log) 분석을 수행할 수 있다. 에이전트는 레지스트리 로그 분석을 통해 디스크 접근(disk access) 및 드라이버 접근(driver access)에 대한 레지스트리 경로(registry path)를 집중 탐지하고, 디스크 접근 및 드라이버 접근 탐지 보안을 진행할 수 있다. 이때, 디스크 접근 관련 로그 내용 및 관련 규칙을 통해 악성 행위를 탐지할 수 있다.
에이전트는 API 후킹(hooking)을 통해 내부적으로 동작하는 프로세스(process) 및 WMI(windows management instrumentation) 분석을 수행할 수 있다. 즉, 에이전트는 API 후킹을 통한 프로세스 및 WMI 분석을 통해 메모리 기반 공격 탐지를 보완하고, 모듈 동작 부분 탐지를 보완하며, 스크립트(script) 기반 악성 행위 탐지를 보완하고, 명령 라인(command line)을 통한 악성 행위를 탐지하고, 스크립트 기반 악성 행위를 탐지할 수 있다.
또한, 에이전트는 네트워크 모니터링 기능 강화를 위해, 네트워크 통신 중인 패킷 페이로드(packet payload) 탐지 기능을 구비할 수 있고, 포트 스캔(port scan) 등 네트워크를 이용한 사전 공격 준비를 감지하도록 설치될 수 있다.
도 12는 본 발명의 다른 실시예에 따른 이미지 기반 악성코드 탐지 장치와 이를 탑재한 컴퓨팅 장치를 설명하기 위한 블록도이다.
도 12를 참조하면, 이미지 기반 악성코드 탐지 장치(이하 간략히 악성코드 탐지 장치)는, EDR 시스템(100)의 일종으로서 엔드포인트 또는 이에 대응하는 특정 컴퓨팅 장치에 설치될 수 있고, 분석 시스템(110), 데이터 수집부(130), 이미지 변환부(140), 이미지 분석 시스템(150) 및 저장부(190)를 구비할 수 있다. 분석 시스템(110)은 이미지 분석 시스템(150)과 구별되도록 메인 분석 시스템으로 지칭될 수 있다.
데이터 수집부(130)는 특정 컴퓨팅 장치에서 파일 생성 이벤트를 감지하고 파일 생성 이벤트 로그로부터 생성 파일의 파일 경로를 추출하도록 구성될 수 있다. 여기서 파일 생성 이벤트 또는 파일 생성 이벤트 로그는 특정 컴퓨팅 장치와 연관된 프로세서, 메모리 또는 저장 장치에서 실행되는 프로세스, 파일, 레지스트리로부터 탐지될 수 있다.
또한, 데이터 수집부(130)는, 자동 분석 대상이나 머신러닝 분석 대상 또는 그레이리스트에 등록된 파일이 실행될 때, 해당 파일 및 파일의 프로세스에 대한 추적 또는 감시를 요청하는 신호를 이미지 변환부(140)나 분석 시스템(150)으로 전달할 수 있다.
또한, 데이터 수집부(130)는, 특정 파일이 미리 설정된 특정 행위를 하는 것으로 감지될 때, 해당 파일이나 파일의 적어도 일부의 코드에 대한 이미지 기반 악성코드 탐지 프로세스의 진행을 위한 신호를 이미지 변환부(140)나 이미지 분석 시스템(150)으로 전달하도록 구성될 수 있다.
이미지 변환부(140)는 이미지 처리부에 대응될 수 있다. 이미지 변환부(140)는 바이트 배열 변환부(1410, 좌표 매핑부(142) 및 좌표 RGB채널 증가부(142a)를 구비할 수 있다.
바이트 배열 변환부(141)는 파일 생성 이벤트 로그로부터 얻어지는 생성 파일의 파일 경로에 위치한 실행 파일이나 실행 파일의 적어도 일부의 코드를 부호 없는 일정 비트의 정수로 된 벡터 또는 바이트로 읽어와 바이트 배열로 변환한다. 바이트 배열은 2D 벡터에 대응한다.
또한, 바이트 배열 변환부(141)는, 실행 파일의 실행 시, 메모리에 올라간 실행 파일에 대한 메모리 덤프를 진행하여 해제된 패킹 파일을 바이트 배열로 변환하여 저장할 수 있다.
좌표 매핑부(142)는 바이트 배열에서 2바이트씩을 읽어와 미리 설정된 사이즈의 가상 이미지 상에 매핑된다. 이때, 2바이트씩 읽어진 데이터는 가상 이미지 상의 좌표 (x,y)로 사용된다.
좌표 RGB채널 증가부(142a)는 2바이트의 데이터를 미리 설정된 사이즈의 이미지의 좌표(x, y)으로 활용하여 해당 좌표의 값을 증가시키고 해당 이미지에 RGB 채널을 추가하거나 증가시켜 바이트 배열의 실질적인 모든 정보를 담은 이미지 또는 이미지 배열을 저장한다. 미리 설정된 사이즈는 256 x 256 x 3 사이즈를 포함할 수 있다.
또한, 좌표 RGB채널 증가부(142a)는, 미리 설정된 사이즈의 이미지 상에 바이트 배열을 2바이트씩 미리 설정된 순서대로 넣고, 좌표 값의 증가 거리를 거리(distance) 파라미터에 지정하고, 상기의 좌표에서 증가하는 값의 배열 각도를 각도(angles) 파라미터를 활용하여 지정할 수 있다.
또한, 좌표 RGB채널 증가부(142a)는, 바이트 배열의 2바이트씩을 토대로 미리 설정된 사이즈의 이미지 상의 해당 좌표에서 수치 범위를 그레이스케일 범위(0~255)에서 최대 범위 RGB{(0,0,0)~(255, 255, 255)}로 증가시켜 지정하고, 상기의 좌표의 수치를 1씩 증가시키며, RGB 채널 범위의 수치가 기설정된 소정의 기준값을 초과할 때 먼저 녹색(Green) 채널 범위의 수치를 증가시키고, 녹색(Green) 채널의 범위 초과시 청색(Blue) 채널을 증가시키도록 구성될 수 있다.
전술한 이미지 변환부(140)는, 예를 들어, 포터블 실행(PE) 파일을 바이트로 읽어와 바이트 배열로 변환하고, 바이트 배열을 256 x 256 x 1 크기의 이미지에 2바이트씩 가져오고, 2바이트의 값을 (x, y) 좌표로 활용한 (x, y) 좌표의 이미지의 적어도 하나의 픽셀 값을 증가시킨 후 RGB 채널을 추가하여 이미지 저장부로 256 x 256 x 3 크기의 이미지 배열을 저장하도록 구성될 수 있다.
또한, 이미지 변환부(140)는 바이트 배열 변환 모듈과 좌표 매핑 모듈을 통해 특정 폴더 내의 PE파일 생성 이벤트 로그를 탐지하여 파일 경로를 추출하고 파일을 바이트로 읽어와 배열로 변환을 수행하고, 좌표 RGB채널 증가 모듈이나 RGB 이미지 변환모듈을 통해 앞서 변환된 바이트 배열을 RGB 기법을 적용하여 이미지 변환을 수행한 후 이미지 배열을 DB로 전송하여 DB에 저장되도록 구성될 수 있다.
이미지 분석 시스템(150)은 이미지 딥러닝 분석부에 대응하며, 이미지 배열에 대하여 이미지 딥러닝 모델을 이용한 딥러닝 분석을 수행한다. 아마자 분석 시스템(150)은 기학습된 딥러닝 모델을 호출하는 딥러닝 모델 호출부(151), 딥러닝 모델에 이미지 배열을 입력하여 분석하는 딥러닝 모델 분석부(152), 및 이미지 배열에서의 악성코드 여부를 판단하는 악성코드 판단부(153)를 구비할 수 있다.
딥러닝 모델 호출부(151)는 이미지 배열의 분석을 위한 입력 레이어(input layer)의 크기를 조정하고, 기학습된 딥러닝 모델을 호출하고, 딥러닝 모델에 이미지 배열을 입력할 수 있다.
딥러닝 모델 분석부(152)는 딥러닝 모델에 입력되는 이미지 배열을 분석하여 이미지 기반 악성코드 분석 결과를 출력한다. 딥러닝 모델은 전이학습된 resnet 모델 등을 포함할 수 있다.
또한, 딥러닝 모델 분석부(152)는 학습된 이미지 딥러닝 모델에 입력되는 이미지 배열에 대하여 머신러닝 기반 유사도 분류를 수행하고, 머신러닝 기반 유사도 분류를 통해 악성코드 간 동종, 변종 또는 유사계열의 상관관계를 판별하도록 구성될 수 있다.
또한, 딥러닝 모델 분석부(152)는 악성코드가 포함된 파일 및 정상 파일로 학습시킨 이미지 딥러닝 모델을 이용할 수 있다. 이 경우, 딥러닝 모델 분석부(152)는 학습된 이미지 딥러닝 모델을 이용하여, 실행 파일의 기본적인 특징 정보로 학습된 유사성 해싱 함수를 토대로 의심스러운 파일의 정상 또는 악성을 분류하거나, 실행 파일에서 추출 가능한 모든 특징 정보로 학습된 유사성 해싱 함수를 토대로 의심스러운 파일의 정상 또는 악성을 분류하거나, 악성코드 이미지 분석 알고리즘을 통해 의심스러운 파일의 정상 또는 악성을 분류하거나, 또는 이들 조합의 분류 방법을 이용하여 의심스러운 파일의 정상 또는 악성을 분류하거나 탐지하도록 구성될 수 있다.
악성코드 판단부(153)는, 딥러닝 모델 분석부(152)의 분석 결과에 대하여 미리 설정된 임계치를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정할 수 있다.
또한, 악성코드 판단부(153)는, 딥러닝 모델 분석부(152)의 분석 결과에 대하여 실행 파일이나 코드의 다른 섹션 또는 바이너리 조각의 이미지 텍스쳐를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정할 수 있다.
전술한 이미지 분석 시스템(150)은 이미지 저장부에서 제공받은 이미지의 분석을 위한 인풋 레이어(Input Layer)의 크기를 조정하여 기학습된 딥러닝 모델의 호출을 수행하고, 이미지 저장부에서 제공받은 이미지를 딥러닝 모델에 입력하여 분석을 진행하고, 특정 임계치에 따른 악성 판단과 악성일 확률을 결과 저장부로 제공하여 JSON 포맷으로 저장하도록 구성될 수 있다.
또한, 전술한 이미지 분석 시스템(150)에서 딥러닝 모델을 이용하여 분석을 진행하기 위해 이미지 사이즈의 크기를 딥러닝 모델의 입력 레이어(input layer)의 차원과 동일하게 해야 한다. 이때 RGB 이미지 변환 기법을 이용한 이미지를 이용하여 분석을 진행하면, 이미지의 크기를 조정할 때 악성코드 파일의 바이트 배열 특징이 누락되는 것을 방지할 수 있고, RGB 기법을 이용한 이미지 변환 기능을 채용함으로서 색감 표현으로 인해 그레이스케일 대비 사람이 눈으로 판별하기가 더욱 용이해지는 장점이 있다.
또한, RGB 이미지 변환 기능을 통해 악성코드 데이터의 이미지에 RGB 채널을 증가하여 색상 데이터로 처리함으로써 악성코드 파일의 바이트 배열 특징을 확대하여 탐지 성능을 향상시킬 수 있다.
저장부(190)는 이미지 저장부, 결과 저장부 또는 저장관리시스템에 대응할 수 있으며, 분석 시스템(150) 또는 이미지 딥러닝 분석부에서 랜섬웨어의 행위가 감지된 경우, 악성코드 판단부(153)의 신호에 따라 특정 컴퓨팅 장치의 드라이버 상에서 드라이버의 파일을 임시저장 폴더에 백업하도록 구성될 수 있다.
또한, 분석 시스템(110)은 실행 파일이나 코드를 자동 분석이나 머신러닝에 의해 분석하여 정상 판정된 경우, 해당 실행 파일이나 코드의 특정 칼라 이미지를 화이트리스트에 등록하는 등록부(미도시)를 더 포함할 수 있다.
전술한 바와 같이 RGB을 활용한 이미지 기반 악성코드 탐지 장치를 이용하면, 내부 네트워크로부터 전송된 파일을 RGB 변환 기법으로 좌표의 RGB 채널을 증가시키고 고정 이미지 사이즈로 변환하고, 탐지 모델의 인풋 레이어(input layer) 차원을 RGB 변환기법을 이용한 이미지 사이즈와 동일하게 설정하여 앞서 변환한 이미지를 탐지모델에 입력하고, 탐지모델 분석 결과를 json파일로 저장하고, 이를 통해 칼라 이미지로 악성코드를 효과적으로 탐지할 수 있다.
또한, 전술한 악성코드 탐지 장치를 이용하면, 패킹된 PE파일의 이미지 변환시 파일의 바이트 배열이 달라져 전혀 다른 이미지가 생성되고, 그에 따라 딥러닝 모델의 탐지율이 저하될 수 있는 문제를 해결할 수 있다. 즉, PE파일의 실행에 따라 메모리에 올라간 PE파일에 대해 메모리 덤프를 진행함으로써, PE파일의 패킹을 해제하여 그 바이트 배열이 덤프되도록 할 수 있고, 이를 이용하여 파일의 동일한 바이트 배열을 유지하는 이미지로 변환하여 이미지를 생성할 수 있다. 이와 같이, 메모리 덤프 파일을 이미지 변환하여 분석을 진행하면 악성코드의 정탐율을 향상할 수 있다. RGB 이미지 변환 기능을 통해 이미지를 생성하여 분석을 진행하면 동일한 사이즈의 이미지가 생성되며 그레이스케일 이미지 대비 더많은 특징 정보를 추가로 추출할 수 있으므로 이미지 변환을 활용한 악성코드 탐지에서 그 정탐율을 크게 향상시킬 수 있다.
또한, 본 실시예에 의하면, 그레이스케일(gray scale) 방식 이외에 RGB 기술을 추가로 적용하여 파일 이미지 변환 시 파일 배열의 좌표를 확대하고 변환 이미지의 특징을 보다 자세하게 표현하여 이미지 기반의 악성코드 탐지기법을 정확도와 탐지 범위를 향상시킬 수 있다.
또한, 그레이스케일 이미지 기반의 악성코드 탐지 방법에서 이미지 크기 조정 시 파일의 정보 누락이 존재하여 정탐율이 저하되는 문제를 개선할 수 있다. 그리고 모델 학습 진행을 위해 데이터 라벨링을 진행할 때 그레이스케일 이미지로는 사람의 시각으로 정상 이미지와 악성 이미지의 차이점을 구분이 쉽지 않다는 문제를 개선할 수 있다.
또한, 그레이스케일 이미지 기반의 악성코드 탐지 방법에서 큰 사이즈 파일의 경우에 좌표의 수치가 최대값에 도달하여 식별이 어려운 경우가 다수 존재하고 그에 의해 정탐율이 저하될 수 있으나, 본 실시예에서는 그러한 문제를 자체 개선할 수 있도록 RGB 이미지 변환 기능을 추가로 적용할 수 있도록 하여 기존의 제한적인 그레이스케일의 1채널에서의 이미지 표현 방식에서 RGB의 3채널의 이미지 표현 방식으로 변경할 수 있으며, 이를 통해 좌표 안의 수치값의 범위가 늘어나 큰 사이즈의 파일의 식별 문제와 정탐율을 더욱 향상시킬 수 있다.
또한, GLCM 변환 기법을 도입하여 파일 이미지를 변환할 때, 이미지 사이즈를 고정하여 누락된 파일 정보의 손상을 방지할 수 있지만 파일 용량이 점점 증가 시 이미지의 특징이 점차적으로 감소하며 일정 사이즈 이상의 파일 이미지 변환 시, 그 특징 추출이 불가능하여 특징 추출을 통한 분석에 한계가 존재하는 문제를 해결할 수 있다.
또한, 본 실시예에 의하면, 자체 서비스 포털 및 자체 클라우드 환경 개발을 통해 지능형 지속 위협(APT) 대응 보안서비스 기술을 효과적으로 확보하고, 확보된 기술을 통하여 실시간 악성행위분석, 사용자간 실시간 위협정보 공유, TI정보 생성 등의 보안서비스 품질을 고도화할 수 있다. 또한, 기업 내부 정보에 대한 보호 및 알려지지 않은 신종, 변종 악성코드 대응에 대하여 적정한 솔루션을 제공할 수 있다.
또한, 본 실시예에 의하면, 악성행위 탐지를 위한 이미지 기반의 악성코드 탐지 장치나 이를 이용하는 EDR 시스템에 빅 데이터 분석을 적용하여 다양한 탐지 지점에서 최신 악성코드 정보를 가져올 수 있고, 이를 통해 365일 24시간 대응 가능한 보안서비스를 제공할 수 있다.
도 13은 도 12의 악성코드 탐지 장치를 위한 클라우드 기반 가상화 시스템의 물리적 리소스 추가 증설 과정을 설명하기 위한 도면이다.
도 13을 참조하면, EDR 시스템(100)의 적어도 일부에 대응하는 악성코드 탐지 장치의 관리자(manager, 110a)는 서비스 웹 서버 영역을 모니터링하는(S1301) 클라우드 관리 서버(cloud manage server)에 연결된 알람 서버(alarm server, 600)로부터 경고 메일을 받고(S1302), 그에 따라 서비스 웹 서버 영역(service web server zone) 내에 가상머신(virtual machine, Vm) 서버를 추가 리소스로 증설(S1303)하거나 데이터베이스 서버 영역(DB server zone) 내에 슬래이브 DB 서버(slave db serve)를 추가 리소스로 증설(S1303)하도록 구성될 수 있다.
여기서, 서비스 웹 서버 영역에서 복수의 가상머신 서버 각각은 단일 그룹을 형성하는 웹 서버(web server), 분석기(analyzer) 및 동적 에이전트들(dynamic agents)과 각각 연결된다. 분석기 또는 동적 에이전트들 각각은 악성파일 해쉬값, 정상파일 해쉬값, 악성 URL 등을 수집하여 웹 서버를 통해 EDR 시스템(100)이나 에이전트로 전송하여 그 분석 시스템과 연동할 수 있다.
또한, 복수의 가상머신 서버들(Vm servers)은 L4 스위치(switch) 및 L2 스위치를 통해 알람 서버(600)와 클라우드 관리 서버에 연결된다. 그리고 DB 서버 영역에서 L2 스위치에 연결되는 마스터 DB 서버(master DB server)이 복수의 슬래이브 DB 서버들과 연결된다.
또한, 특정 컴퓨팅 장치에 대응하는 EDR 시스템(100)과 각 서버는 보안 웹(HTTPS Web) 통신을 기반으로 클라우드 서비스에 접근할 수 있다. 서비스 관리를 위한 서비스 웹 서버(Service Web Server)와 데이터 관리를 위한 DB 서버(Server)는 사용자 증가로, 다수 사용자에 의한 서비스 과부하에 의해 물리적 리소스 부족현상이 발생할 수 있다. 이를 해결하기 위해 본 실시예에서는 에이전트(agent) 설치 후 에이전트 내 관리자(110a)가 서비스 웹 서버와 통신하고 정보를 주고받을 수 있다.
또한, 복수의 웹 서버의 로드밸런싱을 위해 L4 스위치를 이용하여 부하를 분산시킬 수 있다. 클라우드 관리 서버(cloud manage server)는 서비스 웹 서버 영역 내 서버들 각각의 CPU, 메모리(memory), 입출력(I/O)을 모니터링하고, 미리 설정된 임계치 예컨대, 사용율 70% 이상인 경우, 알람 서버(600)를 통해 관리자(110a)에게 경보를 보내 물리적 리소스를 추가 증설하도록 동작할 수 있다.
본 실시예에 의하면, 악성코드 탐지를 위한 클라우드 기반 가상화 시스템에 적용 가능한 클라우드 기반 보안 에이전트를 EDR 시스템이나 이에 대응하는 특정 컴퓨팅 장치에 설치할 수 있다.
이 경우, 클라우드 기반 보안 에이전트는 사용자의 개인용 컴퓨터(PC)의 보호를 위해, PC에서 실행되는 파일을 모니터링하여 악성 파일이 실행되지 못하도록 차단하고, 네트워크를 모니터링하여 악성 URL로/로부터의 접근을 차단하도록 구성될 수 있다. 이러한 에이전트는 클라우드 기반 웹 그래픽 유저 인터페이스(GUI)를 구비할 수 있다. 또한, 에이전트는 랜섬웨어 대응을 위한 기능으로 파일 암호화 행위를 탐지하여 차단하는 기능을 구비하고, 랜섬웨어 피해 방지를 위해 순간 백업 기능을 구비할 수 있다.
전술한 에이전트는 고객사별로 관리되도록 구성될 수 있고, 가입 및 결재 서버인 등록 웹 서버(register web server)를 통해 고객의 키(key) 값이 등록된 에이전트로서 생성될 수 있고, 네트워크를 통해 사용자 단말로 다운로드될 수 있다.
또한, 본 실시예에 의하면, 클라우드 기반 가상화 시스템은 이미지 기반 악성코드 탐지를 위한 분석 시스템을 채용함으로써 지능형 지속 위협(APT)에 대한 효과적인 대응 서비스를 제공할 수 있다.
도 14는 도 12의 악성코드 탐지 장치에 채용할 수 있는 악성코드 탐지 프로세스의 분석 정보에 대한 사용자 인터페이스를 설명하기 위한 도면이다.
도 14를 참조하면, 악성코드 탐지 장치는 제1 사용자 인터페이스(1401)를 통해 아이콘화된 프로세스 분석 정보를 제공할 수 있다. 프로세스 분석 정보는 부모와 자식과 같은 프로세스 상관 관계 정보를 포함할 수 있다.
또한, 악성코드 탐지 장치는 악성 행위 시 최초의 프로세스 및 악성 행위 흐름 파악하며 제1 사용자 인터페이스(1401)를 통해 표시하면서, 특정 분석 정보에 대한 상세 악성 행위 정보를 제2 사용자 인터페이스(1402)를 통해 사용자에게 제공할 수 있다.
도 15는 도 12의 악성코드 탐지 장치를 탑재할 수 있는 엔드포인트 에이전트를 설명하기 위한 블록도이다. 도 16은 도 15의 엔드포인트 에이전트의 내부 악성코드 탐지 구조를 설명하기 위한 개략적인 블록도이다.
도 15를 참조하면, 엔드포인트 에이전트(endpoint agent, 200)는 특정 컴퓨팅 장치(300)에 탑재될 수 있다. 이때, 엔드포인트 에이전트(200)는 그 내부에 안티바이러스(antivirus, AV) 모듈(250)을 탑재할 수 있다.
컴퓨팅 장치(300)는 윈도우즈 운영체계(windows OS, 320), 리눅스(linux) 운영체계(330), 안드로이드(android) 운영체계(340) 중 적어도 어느 하나와 엔드포인트 단말 하드웨어(endpoint terminal hardware, 310)를 구비할 수 있다.
컴퓨팅 장치(300)에 탑재되는 엔드포인트 에이전트(200)는 도 16에 나타낸 바와 같이 안티바이러스 서버(antivirus server, 500)에 연결되는 EDR 시스템(100)으로부터 악성코드 탐지와 관련된 정보나 데이터를 받고, 악성코드 탐지 결과를 EDR 시스템(100)으로 전송하도록 구성될 수 있다.
이 경우, 엔드포인트 에이전트(200)는 복수의 수집모듈들(261)과, 각 수집모듈로부터 블랙리스트를 받아 저장 및 관리는 복수의 블랙리스트 DB(262)와, 각 블랙리스트 DB의 정보를 토대로 실행 파일의 정상 또는 악성을 탐지하고 차단하는 분석 모듈(270)을 구비할 수 있다. 분석 모듈(270)은 도 1의 분석 시스템(110 참조)의 적어도 일부 기능부나 구성부에 대응할 수 있다.
도 17은 도 15의 엔드포인트 에이전트의 내부 분석 모듈구성을 나타낸 블록도이다.
도 17을 참조하면, 엔드포인트 에이전트는 내부 분석 모듈 구성으로서 데이터베이스부(260), 분석기(analyzer, 280) 및 분석기 에이전트(analyzer agent, 290)를 구비한다.
데이터베이스부(260)는 구성 DB(config DB, 261), 파일 DB(file DB, 262), 로그 DB(log DB, 263)를 포함할 수 있다. 구성 DB(261)는 보안 정책을 저장할 수 있고, 파일 DB(262)는 분석기(280)에 정적 분석이나 비트디펜더 분석을 위한 파일을 제공할 수 있다(ZB003). 로그 DB(263)는 분석기(280)의 악성코드 정적 분석 결과와 비트디펜더 분석 결과를 저장할 수 있고(ZB002), 분석기 에이전트(290)의 악성코드 동적 분석 결과를 저장할 수 있다(ZD001). 로그 DB(263)는 분석 결과 저장 시 분석기(280)나 분석기 에이전트(290)의 보안 감사를 받을 수 있다.
분석기(280)는 보안정책 적용 모듈(281), 비트디펜더 분석 모듈(282), 악성코드 정적분석 모듈(283), 제1 보안 감사 모듈(284) 및 분석기 에이전트 관리 모듈(285)을 구비할 수 있다. 분석기(280)는 ESM 웹(enterprise security manager web) 등을 통해 설정된 보안정책을 구성 DB(261)에서 읽어와 적용할 수 있다(ZB001). 또한, 분석기(280)는 파일 DB(263)에서 파일을 읽어와 정적 분석이나 비트디펜더 분석을 수행할 수 있다(ZB003). 또한, 분석기(280)는 분석기 에이전트 관리 모듈(285)을 통해 분석기 에이전트(290)로 파일을 보내고, 해당 파일의 분석이 완료되면, 분석기 에이전트(290)의 상태가 분석 전 상태로 복원되도록 기능할 수 있다.
분석기 에이전트(290)는 제2 보안 감사 모듈(291) 및 악성코드 동적 분석 모듈(292)를 구비할 수 있다. 악성코드 동적 분석 모듈(292)의 분석 결과는 로그 DB(263)로 전달되어 저장될 수 있다(ZD001).
전술한 엔드포인트 에이전트의 내부 분석 인터페이스를 정리하여 나타내면 하기의 표 3과 같다.
인터페이스명 내부/외부 설명
ZB001 내부 보안정책 적용
ZB002 내부 정적 분석결과나 비트디펜더 분석결과를 DB에 전송
ZB003 내부 정적 분석나 비트디펜더 분석을 위한 파일 수신
ZC001 내부 파일 전달 및 동적분석 완료시 상태 복원
ZD001 내부 동적분석결과를 DB로 전송
도 18은 도 15의 엔드포인트 에이전트의 엔드포인트 보안 동작을 설명하기 위한 사용자 인터페이스 화면의 예시도이다.
도 18을 참조하면, 엔드포인트 에이전트는 AV 분석 기능이 적용된 에이전트로서 실행 파일의 악성코드 분석을 통해 블랙리스트 정책 예컨대 악성코드 탐지, 차단, 격리를 수행하도록 구성될 수 있다.
예를 들어, 윈도우즈 10 기반 엔드포인트 에이전트로 구현될 수 있다. 이 경우, 컴퓨팅 장치의 사용자 환경에서 소정 형태의 인터페이스(1810)를 통해 분석 현황 및 분석 결과를 확인할 수 있도록 구성될 수 있고, 분석 파일별 세부설정 인터페이스(1820)에서 블랙리스트(blacklist) 처리나 허용(allow) 처리에 대한 사용자 선택과 적용 버튼 등에 대한 사용자 입력(1830)이 가능하도록 구성될 수 있다.
한편, 프로세스 모니터링 및 에이전트용 수집 모듈과 관련하여, 엔드포인트 에이전트는 프로세스 모니터링 및 에이전트 수집 모듈을 위한 외부 인터페이스를 구비할 수 있다.
외부 인터페이스는 퍼스널 컴퓨터(PC) 등의 엔드포인트에서 실행되는 파일정보를 수집하고, 수집한 실행 파일정보를 악성패턴과 비교하여 실행되려는 악성파일을 차단하거나 실행보류 후 관리자 웹서비스(manager web service)로 업로드하여 분석을 요청하는 역할을 수행하도록 구성될 수 있다.
이러한 외부 인터페이스를 예시하면 아래의 표 4와 같다.
XC.CheckProcess 파일정보 수집, 악성패턴 비교 등
또한, 엔드포인트 에이전트는 설치된 PC에서 실행되는 파일정보를 수집한다. 해당 인터페이스를 통한 설정 과정을 예시하면 다음의 표 5와 같다.
매개변수 설명
실행파일 정보 설명: 실행파일의 경로정보를 수집한다.
입력 방법: -
또한, 엔드포인트 에이전트는 수집된 파일 정보를 관리하거나 다른 구성요소와 상호작용하기 위한 내부 인터페이스를 구비할 수 있다. 내부 인터페이스는 로그 수신(ReceiveLog), 파일 수신(RecevieFile), 키 요청(KeyRelease) 등을 위한 인터페이스를 포함할 수 있다.
로그 수신(ReceiveLog) 인터페이스는 에이전트가 에이전트에서 보안 기능 수행으로 발생되는 로그를 관리자 웹 서비스(manager web service, MWS)로 전송할 수 있다.
파일 수신(RecevieFile) 인터페이스는 에이전트가 에이전트에서 분석이 필요한 파일을 관리자 웹 서비스로 업로드하여 분석을 요청할 수 있다.
키 요청(KeyRelease) 인터페이스는 에이전트가 관리자 웹 서비스에 암호키 값의 전달 요청을 보내고 암호키 값을 받아 저장하고 초기화한 후에 서브 프로세스의 상태를 점검하고 실행할 수 있다.
내부 인터페이스의 구성을 예시하면 다음의 표 6과 같다.
ReceiveLog 로그 전송
REceiveFile 파일 업로드 / 분석 요청
KeyRelease 암호키 값 수신 및 저장 / 초기화 후 서브 프로세스 상태 점검
로그 수신(ReceiveLog) 인터페이스에서의 보안 감사와 관련하여, 에이전트는 표 7과 같이 에이전트에서 보안기능 수행으로 발생되는 로그를 관리자 웹 서비스로 전송할 수 있다.
요청 모듈 응답 모듈 수행 설명
Agent MWS MWS 감사데이터를 MWS에서 받아 저장
파일 수신(ReceiveFile) 인터페이스에서의 실행 보류 파일 업로드와 관련하여, 에이전트는 표 8에서와 같이 에이전트에서 분석이 필요한 파일을 관리자 웹 서비스로 업로드하여 분석을 요청할 수 있다.
요청 모듈 응답 모듈 수행 설명
Agent MWS MWS MWS로 전달할 파일을 수집하여 저장
또한, 에이전트는 아래의 표 9와 같이 키 요청(KeyRelease) 인터페이스를 통해 관리자 웹 서비스(MWS)에 암호키 값의 전달 요청을 보내 암호키 값을 받아 저장하고 초기화한 후 서브 프로세스의 상태를 점검하고 실행할 수 있다.
요청 모듈 응답 모듈 수행 설명
Agent MWS MWS 암호화에 사용하는 키 정보를 MWS에 요청하여 받음
전술한 프로세스 모니터링 및 에이전트 수집 모듈은 사용자 PC의 보안을 위한 엔드포인트 에이전트로서 윈도우즈 환경 등에서 설치가 가능하도록 해당 설치 파일 형태로 구성될 수 있다.
도 19는 도 15의 엔드포인트 에이전트에 의해 실행되는 악성코드 탐지 방법에서 악성코드 시각화 과정을 설명하기 위한 흐름도이다. 도 20은 도 15의 엔드포인트 에이전트에서 실행 파일의 코드를 미리 설정한 바이트의 폭(width) 사이즈로 정의하여 코드를 이미지화한 이미지를 얻는 과정을 설명하기 위한 변환 소스코드의 예시도이다. 도 21은 도 15의 엔드포인트 에이전트에서의 코드 이미지화에 대한 결과 이미지의 예시도이다.
도 19를 참조하면, 파일을 입력하고(S1910), 입력된 파일에서 제1 함수(os.path.split)를 통해 파일명을 추출하고(S1920), 입력된 파일에서 제2 함수(conversion_vector)를 통해 파일을 2D 벡터로 변환하고(S1930), 제3 함수(np.reshape)를 통해 2D 벡터를 이미지 변환을 위해 형상 변환하고(S1940), 제4 함수(imageio.imwrite)를 통해 형상 변환된 이미지 배열을 메모리에 저장할 수 있다(S1950).
각 함수의 목적, 파라미터 및 리턴 값을 나타내면 다음의 표 10 및 표 11과 같다.
모듈 이미지 변환 모듈 모듈 이미지 변환 모듈
함수 os.path.split 함수 conversion_vector
목적 파일명 추출 목적 파일을 2D 벡터로 변환
파라미터 path 파라미터 path
리턴 값 stirng 리턴 값 array, int
모듈 이미지 변환 모듈 모듈 이미지 변환 모듈
함수 np.reshape 함수 imageio.imwrite
목적 2D 벡터의 형상 변환 목적 파일 입력
파라미터 (int,int,int) 파라미터 string, ndarray
리턴 값 ndrray 리턴 값 없음
본 실시예에 의하면, 수집된 악성코드를 부호 없는 8비트 정수로 된 벡터로 읽어 2D 배열로 구성하고 2D 배열의 폭(width) 사이즈로 악성코드를 이미지화할 수 있다.
악성코드를 폭 사이즈로 이미지화하기 위한 인터페이스의 변환 소스코드를 예시하면 도 20의 (a) 및 (b)과 같으며 그 세부 사항을 나타내면 다음과 같다.
- os.path.split(): 이미지 변환을 수행할 파일명을 파일 경로에서 추출.
적용된 예) file = path.split(“\\”)[-1]
- conversion_img(): 파일 경로를 conversion_img 파라미터에 입력.
이 경우, os.path.getsize 함수에 파일 경로(path)가 입력되고 이미지의 폭(width) 값을 구하기 위해 파일의 크기를 자연로그(ln) 변수에 저장.
- width 값은 파일의 제곱근으로 지정하며 파일의 형식을 부호가 없는 8비트 정수로 변환하기 위해 array.array('B')를 a 변수에 저장.
- 2D 벡터 또는 2D 배열로 변환해줄 a.fromfile(f, ln - rem) 함수를 활용하여 변환을 수행하고 array 타입인 a와 width 값을 반환
- np.resahpe(): conversion_img()에서 반환한 array 타입 a와 width 값을 이용해 이미지 모양(shape)으로 형상 변형(reshape)하여 g 변수에 저장
- imageio.imwrite(): 마지막으로 변환하여 저장한 g 변수와 저장할 파일명을 imageio.imwrite()에 파라미터로 넣어 이미지를 저장.
전술한 이미지는 도 21에 예시한 바와 같이 0(검정색) 내지 255(흰색) 범위의 그레이스케일 이미지(35)로 시각화될 수 있다. 이 경우, 이미지 변환 모듈은 255 범위의 그레이스케일 이미지 시각화 모듈 인터페이스에 대응할 수 있다.
또한, 본 실시예의 악성코드 탐지 장치나 엔드포인트 에이전트는, 그레이스케일 이미지 외에 좌표 RGB 채널 증가부를 통해 그레이스케일 이미지로 변환되기 전에 이미지 배열에 RGB채널을 추가하여 칼라 이미지를 생성하고, 이에 기초하여 악성코드를 탐지하도록 구성될 수 있다.
도 22는 도 15의 엔드포인트 에이전트의 주요 악성코드 탐지 과정을 설명하기 위한 흐름도이다. 도 23은 도 22의 악성코드 탐지 과정에 채용할 수 있는 명암도 동시발생 행렬(gray-level co-occurrence matrix, GLCM) 변환 이미지 모듈을 설명하기 위한 변환 소스코드의 예시도이다. 도 24는 도 23의 GLCM 변환 이미지 모듈을 이용한 코드 이미지화의 적용 전과 후의 이미지들에 대한 예시도이다.
도 22 및 도 23을 참조하면, 엔드포인트 에이전트(간략히, 에이전트)는, GLCM 변환 이미지 모듈 인터페이스를 통해, 입력되는 파일(S2210)의 파일 경로에서 파일명을 추출한다(S2212). 즉, 에이전트는 제1 함수(os.path.basename)를 통해 입력되는 파일 경로에서 파일명을 추출할 수 있다.
다음, 에이전트는 파일 내용을 소정 사이즈의 벡터 또는 바이트의 바이트어레이(bytearray) 함수로 읽어와 특정 제1 변수(img_array 또는 np.array)에 저장한다(S2214).
다음, 파일 내용이 저장된 제1 변수(np.array 또는 img_array)가 비어 있으면(if not list), 해당 변수에 파일 내용이 없으므로, 에이전트는 제3 함수(f.write)를 통해 텍스트에 파일명(filename)을 저장 후 제4 함수(os.remove)를 통해 해당 변수의 값 또는 해당 파일 경로(filepath)를 삭제한다(S2222, S2224).
한편, 파일 내용이 저장된 제1 변수(np.array 또는 img_array)가 비어 있지 않으면, 에이전트는 해당 변수를 다차원 형렬 자료구조 클래스인 ndarray로 변환한 후 부호가 없는 정수(예컨데 2바이트 정수)로 그 타입을 변환하고 제2 변수(img_byte)에 저장한다(S2232).
다음, 에이전트는 제5 함수(grecomatrix)를 통해 제2 변수(img_byte)를 image 파라미터에 넣고 값 증가 거리를 distances 파라미터에 지정하며 angles 파라미터를 활용하여 증가하는 값의 배열 각도를 지정한다(S2234).
다음, 에이전트는 제6 함수(np.squeeze)를 통해 앞서 제5 함수를 통해 생성된 matrix 행렬에서 (1,)차원인 것을 삭제한다(S2236). 그리고, 에이전트는 특정 차원이 삭제된 matrix 행렬의 이미지 저장 경로를 제3 변수(filepng)에 저장한다.
다음, 에이전트는 제7 함수(image.format)를 통해 matrix 행렬을 리틀엔디안 형식으로 변환하여 제4 변수(img)에 저장한다(S2238).
다음, 에이전트는 제8 함수(img.convert)를 활용하여 제4 변수에 저장된 파일 내용을 단일 채널인 그레이스케일로 변환한 후 제9 함수(save)를 활용하여 제4 변수에 저장된 파일 경로에 저장한다(S2240).
전술한 악성코드 탐지 과정에 사용할 수 있는 변환 소스코드를 예시하면 도 23과 같으며, 각 행의 의미를 정리하면 다음과 같다.
- filename = os.path.basename(path) : 파일 경로에서 파일명 추출
- with open(path, ‘rb’as f: img_array = np.array(bytearray(f.read())) : 파일 내용을 bytearray로 읽어와 img_array 변수안에 저장
- if not list(img_array): img_array가 비어있으면 파일의 내용이 없으므로 텍스트에 파일명 저장후 삭제
- img_byte = np.array([img_array]).astype(dtype=’unit8’): img_array를 ndarray로 변환한 후, 부호가 없는 정수로 타입을 변환하고 img_byte에 저장
- matrix = greycomatrix(image=img_byte, distances=[1], angles=[0]): image 파라미터에 img_byte를 넣고 값 증가 거리를 distances 파라미터에 지정하며 anlges 파라미터를 활용하여 증가하는 값의 배열 각도를 지정
- matrix = np.squeeze(matrix): matrix 행렬에 (1,)차원인 것을 삭제
- filepng = save_path + '/'+ filename + 'png': 이미지 저장 경로를 filepng에 저장
- img = Image.fromarray(matrix.astype(‘<i4’)): matrix의 행렬을 리틀엔디안 형식으로 변환하여 img 변수에 저장
- img.convert(“L").save(filepng): img.convert함수를 활용하여 단일채널인 그레이스케일로 변환한후 .save 함수를 활용하여 filepng 경로에 저장
본 실시예에 의하면, 악성코드의 다른 섹션 또는 바이너리 조각을 독특한 이미지 텍스처로 구현할 수 있다. 도 24의 (a)는 Glcm 변환 모듈 또는 Glcm 변환 소스코드로 변환하기 전의 이미지(35a)이고, 도 24의 (b)는 변환 후의 결과 이미지(35b)이다.
전술한 Glcm 변환 이미지 모듈 인터페이스에 사용할 수 있는 함수들을 정리하여 나타내면 하기의 표 12 내지 표 17과 같다.
모듈 glcm 변환 모듈 모듈 glcm 변환 모듈
함수 os.path.basename 함수 np.array()
목적 파일명 추출 목적 파일의 내용을 바이트
배열로 저장후 ndarray로 변환
파라미터 path 파라미터 bytearray(f.read())
리턴 값 Stirng 리턴 값 ndarray
모듈 glcm 변환 모듈 모듈 glcm 변환 모듈
함수 if not list() 함수 f.write()
목적 파일내용 존재 여부 목적 파일내용이 없으면 파일명 기록
파라미터 image_array 파라미터 filename
리턴 값 boolean 리턴 값 None
모듈 glcm 변환 모듈 모듈 glcm 변환 모듈
함수 os.remove() 함수 np.array().astype()
목적 파일 내용이 없으면 삭제 목적 파일내용이 없으면 파일명 기록
파라미터 filepath 파라미터 [image_array], dtype=’unit8’
리턴 값 None 리턴 값 ndarray
모듈 glcm 변환 모듈 모듈 glcm 변환 모듈
함수 greycomatrix() 함수 np.squeeze()
목적 glcm 알고리즘 적용 목적 1차원인 차원 삭제
파라미터 image_array 파라미터 matrix
리턴 값 matrix 리턴 값 matrix
모듈 glcm 변환 모듈 모듈 glcm 변환 모듈
함수 image.format() 함수 np.squeeze()
목적 glcm 알고리즘 적용 목적 1차원인 차원 삭제
파라미터 matrix.astype('<i4') 파라미터 matrix
리턴 값 matrix 리턴 값 matrix
모듈 glcm 변환 모듈
함수 image.convert().save()
목적 이미지 단일 색상 변환후 저장
파라미터 L, file_save_path
리턴 값 None
도 25는 본 발명의 또 다른 실시예에 따른 이미지 기반 악성코드 탐지 장치의 주요 구성을 설명하기 블록도이다.
본 실시예의 이미지 기반 악성코드 탐지 장치(1000)(간략히 악성코드 탐지 장치)는 서버측 EDR 시스템의 적어도 일부 구성부로서 설치되거나, 엔드포인트 에이전트의 적어도 일부 구성부로서 설치될 수 있다.
도 25를 참조하면, 악성코드 탐지 장치(1000)는, 적어도 하나의 프로세서(1100), 메모리(1200) 및 네트워크와 연결되어 통신을 수행하는 송수신 장치(1300)를 포함할 수 있다. 또한, 악성코드 탐지 장치(1000)는 입력 인터페이스 장치(1400), 출력 인터페이스 장치(1500), 저장 장치(1600)를 더 포함할 수 있다. 악성코드 탐지 장치(1000)에 포함된 각각의 구성 요소들은 버스(bus)(1700)에 의해 연결되어 서로 통신을 수행할 수 있다.
다만, 악성코드 탐지 장치(1000)에 포함된 각각의 구성요소들은 공통 버스(1700)가 아니라, 프로세서(1100)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다. 예를 들어, 프로세서(1100)는 메모리(1200), 송수신 장치(1300), 입력 인터페이스 장치(1400), 출력 인터페이스 장치(1500) 및 저장 장치(1600) 중에서 적어도 하나와 전용 인터페이스를 통하여 연결될 수도 있다.
프로세서(1100)는 메모리(1200) 및 저장 장치(1600) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(1100)는 중앙 처리 장치(central processing unit, CPU), 그래픽 처리 장치(graphics processing unit, GPU), 또는 본 발명의 실시예들에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다.
메모리(1200) 및 저장 장치(1600) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(1200)는 읽기 전용 메모리(read only memory, ROM) 및 랜덤 액세스 메모리(random access memory, RAM) 중에서 적어도 하나로 구성될 수 있다.
메모리(1200) 또는 저장 장치(1600)에 저장되거나 프로세서(1100)에 탑재되어 실행되는 적어도 하나의 명령은 프로세서가; EDR 시스템이나 엔드포인트 또는 이에 대응하는 컴퓨팅 장치와 연관된 프로세서, 메모리 또는 저장 장치에서 탐지된 파일 생성 이벤트 로그로부터 얻어지는 생성 파일의 파일 경로에 위치하는 실행 파일이나 실행 파일의 적어도 일부의 코드를 부호 없는 일정 비트의 정수로 된 바이트로 읽어와 바이트 배열로 변환하는 단계; 바이트 배열에서 2바이트씩을 읽어오는 단계; 2바이트의 데이터를 미리 설정된 사이즈의 이미지의 좌표(x, y)로 활용하여 해당 좌표 값을 증가시키고 RGB 채널을 추가하여 이미지 배열을 저장하는 단계; 및 이미지 배열에 대하여 이미지 딥러닝 모델을 이용한 딥러닝 분석을 수행하는 단계를 수행하도록 구성될 수 있다.
또한, 전술한 본 발명의 실시예들에 따른 방법의 동작은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 프로그램 또는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의해 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어 분산 방식으로 컴퓨터로 읽을 수 있는 프로그램 또는 코드가 저장되고 실행될 수 있다.
또한, 컴퓨터가 읽을 수 있는 기록매체는 롬(rom), 램(ram), 플래시 메모리(flash memory) 등과 같이 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함할 수 있다. 프로그램 명령은 컴파일러(compiler)에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터(interpreter) 등을 사용해서 컴퓨터에 의해 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
본 발명의 일부 측면들은 장치의 문맥에서 설명되었으나, 그것은 상응하는 방법에 따른 설명 또한 나타낼 수 있고, 여기서 블록 또는 장치는 방법 단계 또는 방법 단계의 특징에 상응한다. 유사하게, 방법의 문맥에서 설명된 측면들은 또한 상응하는 블록 또는 아이템 또는 상응하는 장치의 특징으로 나타낼 수 있다. 방법 단계들의 몇몇 또는 전부는 예를 들어, 마이크로프로세서, 프로그램 가능한 컴퓨터 또는 전자 회로와 같은 하드웨어 장치에 의해(또는 이용하여) 수행될 수 있다. 몇몇의 실시예에서, 가장 중요한 방법 단계들의 하나 이상은 이와 같은 장치에 의해 수행될 수 있다.
실시예들에서, 프로그램 가능한 로직 장치(예를 들어, 필드 프로그머블 게이트 어레이)가 여기서 설명된 방법들의 기능의 일부 또는 전부를 수행하기 위해 사용될 수 있다. 실시예들에서, 필드 프로그머블 게이트 어레이는 여기서 설명된 방법들 중 하나를 수행하기 위한 마이크로프로세서와 함께 작동할 수 있다. 일반적으로, 방법들은 어떤 하드웨어 장치에 의해 수행되는 것이 바람직하다.
이상 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (20)

  1. 컴퓨팅 장치에 결합된 악성코드 탐지 장치에 의해 수행되는 이미지 기반 악성코드 탐지 방법으로서,
    상기 컴퓨팅 장치와 연관된 프로세서, 메모리 또는 저장 장치에서 탐지된 파일 생성 이벤트 로그로부터 얻어지는 생성 파일의 파일 경로에 위치하는 실행 파일의 실행 시, 메모리에 올라간 실행 파일에 대한 메모리 덤프를 진행하여 해제된 패킹 파일을 부호 없는 일정 비트의 정수로 된 바이트 배열로 변환하는 단계;
    상기 바이트 배열에서 2바이트씩을 읽어와 미리 설정된 사이즈의 가상의 이미지 상에 매핑하는 단계-상기 2바이트씩 읽어오는 데이터는 상기 이미지의 각 좌표에 미리 설정된 순서대로 매핑됨-;
    상기 2바이트의 데이터를 미리 설정된 사이즈의 이미지 상의 좌표(x, y)로 활용하여 해당 좌표 값을 1씩 증가시키고 RGB 채널을 추가하여 이미지 배열을 저장하는 단계; 및
    상기 이미지 배열에 대하여 이미지 딥러닝 모델을 이용한 딥러닝 분석을 수행하는 단계;를 포함하고,
    상기 저장하는 단계는, 상기 바이트 배열의 2바이트씩을 토대로 미리 설정된 사이즈의 이미지 상의 해당 좌표에서 수치 범위를 그레이스케일 범위에서 최대 범위 RGB로 증가시켜 저장하고, 저장되는 RGB 채널 범위의 수치가 기설정된 기준값을 초과할 때, 먼저 녹색 채널 범위의 수치를 증가시키고, 상기 녹색 채널 범위의 초과시, 청색 채널 범위의 수치를 증가시키는, 이미지 기반 악성코드 탐지 방법.
  2. 청구항 1에 있어서,
    상기 딥러닝 분석을 수행하는 단계는, 상기 이미지 배열의 분석을 위한 입력 레이어(input layer)의 크기를 조정하고, 기학습된 딥러닝 모델을 호출하고, 상기 딥러닝 모델에 상기 이미지 배열을 입력하는, 이미지 기반 악성코드 탐지 방법.
  3. 청구항 1에 있어서,
    상기 딥러닝 분석을 수행하는 단계는, 상기 딥러닝 모델의 분석 후에 미리 설정된 임계치를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정하는, 이미지 기반 악성코드 탐지 방법.
  4. 청구항 1에 있어서,
    상기 딥러닝 분석을 수행하는 단계는, 상기 딥러닝 모델의 분석 후에 상기 실행 파일이나 상기 실행 파일의 적어도 일부의 코드의 다른 섹션 또는 바이너리 조각의 이미지 텍스쳐를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정하는, 이미지 기반 악성코드 탐지 방법.
  5. 삭제
  6. 청구항 1에 있어서,
    상기 좌표 값의 증가 거리를 거리(distance) 파라미터에 지정하고, 상기 좌표에서 증가하는 값의 배열 각도를 각도(angles) 파라미터를 활용하여 지정하는 단계를 더 포함하는, 이미지 기반 악성코드 탐지 방법.
  7. 청구항 1에 있어서,
    상기 실행 파일이나 상기 실행 파일의 적어도 일부의 코드를 자동 분석이나 머신러닝에 의해 분석하여 정상 판정된 경우, 상기 실행 파일이나 상기 코드의 특정 칼라 이미지를 화이트리스트에 등록하는 단계를 더 포함하는, 이미지 기반 악성코드 탐지 방법.
  8. 청구항 1에 있어서,
    자동 분석 대상이나 머신러닝 분석 대상 또는 그레이리스트에 등록된 파일이 실행되면, 상기 파일 및 상기 파일의 프로세스에 대한 추적 또는 감시를 수행하고, 상기 파일이 미리 설정된 악성 행위를 하는 것으로 판단될 때, 상기 파일이나 상기 파일의 적어도 일부의 코드에 대한 이미지 기반 악성코드 탐지 프로세스의 진행을 결정하는 단계를 더 포함하는, 이미지 기반 악성코드 탐지 방법.
  9. 청구항 1에 있어서,
    악성코드가 포함된 파일 및 정상 파일로 상기 이미지 딥러닝 모델을 학습시키는 단계를 더 포함하며,
    상기 딥러닝 분석을 수행하는 단계는, 상기 학습된 이미지 딥러닝 모델을 이용하여, 상기 실행 파일의 기본적인 특징 정보로 학습된 유사성 해싱 함수를 토대로 의심스러운 파일의 정상 또는 악성을 분류하거나, 상기 실행 파일에서 추출 가능한 모든 특징 정보로 학습된 유사성 해싱 함수를 토대로 상기 의심스러운 파일의 정상 또는 악성을 분류하거나, 악성코드 이미지 분석 알고리즘을 통해 상기 의심스러운 파일의 정상 또는 악성을 분류하거나, 또는 이들 조합의 분류 방법을 이용하여 상기 의심스러운 파일의 정상 또는 악성을 분류하거나 탐지하는, 이미지 기반 악성코드 탐지 방법.
  10. 청구항 9에 있어서,
    상기 악성코드 이미지 분석 알고리즘은, 상기 학습된 이미지 딥러닝 모델에 입력되는 이미지 배열에 대하여 머신러닝 기반 유사도 분류를 수행하며,
    상기 머신러닝 기반 유사도 분류는 악성코드 간 동종, 변종 또는 유사계열의 상관관계를 판별하는, 이미지 기반 악성코드 탐지 방법.
  11. 특정 컴퓨팅 장치와 연관된 프로세서, 메모리 또는 저장 장치에서 탐지된 파일 생성 이벤트 로그로부터 얻어지는 생성 파일의 파일 경로에 위치하는 실행 파일의 실행 시, 메모리에 올라간 실행 파일에 대한 메모리 덤프를 진행하여 해제된 패킹 파일을 부호 없는 일정 비트의 정수로 된 바이트 배열로 변환하는 바이트 배열 변환부;
    상기 바이트 배열에서 2바이트씩을 읽어와 미리 설정된 사이즈의 가상의 이미지 상에 매핑하는 좌표 매핑부-상기 2바이트씩 읽어오는 데이터는 상기 이미지의 각 좌표에 미리 설정된 순서대로 매핑됨-;
    상기 2바이트의 데이터를 미리 설정된 사이즈의 이미지 상의 좌표(x, y)로 활용하여 해당 좌표 값을 1씩 증가시키며 RGB 채널을 추가하여 이미지 배열을 저장하는 좌표 RGB채널 증가부; 및
    상기 이미지 배열에 대하여 이미지 딥러닝 모델을 이용한 딥러닝 분석을 수행하는 이미지 딥러닝 분석부;를 포함하고,
    상기 좌표 RGB채널 증가부는, 상기 바이트 배열의 2바이트씩을 토대로 상기 미리 설정된 사이즈의 이미지 상에 해당 좌표의 수치 범위를 그레이스케일 범위에서 RGB의 최대 범위로 증가시켜 저장하고, 저장되는 RGB 채널 범위의 수치가 소정의 기준값을 초과할 때 먼저 녹색(Green) 채널 범위의 수치를 증가시키고, 녹색(Green) 채널 범위의 초과시 청색(Blue) 채널을 증가시키는, 이미지 기반 악성코드 탐지 장치.
  12. 청구항 11에 있어서,
    상기 이미지 딥러닝 분석부는, 기학습된 딥러닝 모델을 호출하는 딥러닝 모델 호출부, 상기 딥러닝 모델에 상기 이미지 배열을 입력하여 분석하는 딥러닝 모델 분석부, 및 상기 이미지 배열의 악성코드 여부를 판단하는 악성코드 판단부를 구비하는, 이미지 기반 악성코드 탐지 장치.
  13. 청구항 12에 있어서,
    상기 악성코드 판단부는, 상기 딥러닝 모델 분석부의 분석 결과에 대하여 미리 설정된 임계치를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정하는, 이미지 기반 악성코드 탐지 장치.
  14. 청구항 12에 있어서,
    상기 악성코드 판단부는, 상기 딥러닝 모델 분석부의 분석 결과에 대하여 상기 실행 파일이나 상기 실행 파일의 적어도 일부의 코드의 다른 섹션 또는 바이너리 조각의 이미지 텍스쳐를 토대로 악성코드를 검출하거나 알려진 위협 또는 알려지지 않은 위협의 발생 가능성을 결정하는, 이미지 기반 악성코드 탐지 장치.
  15. 삭제
  16. 삭제
  17. 청구항 11에 있어서,
    상기 이미지 딥러닝 분석부에서 랜섬웨어의 행위 분석이 감지된 경우, 상기 이미지 딥러닝 분석부의 악성코드 판단부의 신호에 따라 상기 특정 컴퓨팅 장치의 드라이버 상에서 상기 드라이버의 파일을 임시저장 폴더에 백업하는 저장부를 더 포함하는, 이미지 기반 악성코드 탐지 장치.
  18. 인공지능 기반 엔드포인트 위협탐지 및 대응(endpoint detection and response, EDR) 시스템으로서,
    특정 컴퓨팅 장치와 연관된 프로세서, 메모리 또는 저장 장치에서 파일 생성 이벤트를 감지하고 파일 생성 이벤트 로그로부터 생성 파일의 파일 경로를 추출하는 데이터 수집부;
    상기 데이터 수집부로부터 받은 상기 파일 경로에 위치하는 실행 파일의 실행 시, 메모리에 올라간 실행 파일에 대한 메모리 덤프를 진행하여 해제된 패킹 파일을 부호 없는 일정 비트의 정수로 된 바이트 배열로 변환하는 바이트 배열 변환부;
    상기 바이트 배열에서 2바이트씩을 읽어와 미리 설정된 사이즈의 가상의 이미지 상에 매핑하는 좌표 매핑부-상기 2바이트씩 읽어오는 데이터는 상기 이미지의 각 좌표에 미리 설정된 순서대로 매핑됨-;
    상기 2바이트의 데이터를 미리 설정된 사이즈의 이미지 상의 좌표(x, y)로 활용하여 해당 좌표 값을 1씩 증가시키며 RGB 채널을 추가하여 이미지 배열을 저장하는 좌표 RGB채널 증가부; 및
    상기 이미지 배열에 대하여 이미지 딥러닝 모델을 이용한 딥러닝 분석을 수행하는 이미지 딥러닝 분석부;를 포함하고,
    상기 좌표 RGB채널 증가부는, 상기 바이트 배열의 2바이트씩을 토대로 미리 설정된 사이즈의 이미지 상의 해당 좌표에서 수치 범위를 그레이스케일 범위에서 최대 범위 RGB로 증가시켜 저장하고, 저장되는 RGB 채널 범위의 수치가 기설정된 기준값을 초과할 때, 먼저 녹색 채널 범위의 수치를 증가시키고, 상기 녹색 채널 범위의 초과시, 청색 채널 범위의 수치를 증가시키는, 엔드포인트 위협탐지 및 대응 시스템.
  19. 청구항 18에 있어서,
    상기 데이터 수집부는 원격지의 엔드포인트 에이전트를 포함하는, 엔드포인트 위협탐지 및 대응 시스템.
  20. 청구항 19에 있어서,
    상기 엔드포인트 에이전트가 연결된 네트워크 상의 복수의 컴퓨팅 장치들을 관리하는 클라우드 관리 시스템을 더 포함하는, 엔드포인트 위협탐지 및 대응 시스템.
KR1020210160542A 2020-11-26 2021-11-19 이미지 기반 악성코드 탐지 방법 및 장치와 이를 이용하는 인공지능 기반 엔드포인트 위협탐지 및 대응 시스템 KR102541888B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US18/038,709 US20230418943A1 (en) 2020-11-26 2021-11-19 Method and device for image-based malware detection, and artificial intelligence-based endpoint detection and response system using same
JP2023532354A JP2023550974A (ja) 2020-11-26 2021-11-19 イメージ基盤悪性コード検知方法および装置とこれを利用する人工知能基盤エンドポイント脅威検知および対応システム
PCT/KR2021/017116 WO2022114689A1 (ko) 2020-11-26 2021-11-19 이미지 기반 악성코드 탐지 방법 및 장치와 이를 이용하는 인공지능 기반 엔드포인트 위협탐지 및 대응 시스템

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20200161665 2020-11-26
KR1020200161665 2020-11-26

Publications (2)

Publication Number Publication Date
KR20220073657A KR20220073657A (ko) 2022-06-03
KR102541888B1 true KR102541888B1 (ko) 2023-06-13

Family

ID=81983344

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210160542A KR102541888B1 (ko) 2020-11-26 2021-11-19 이미지 기반 악성코드 탐지 방법 및 장치와 이를 이용하는 인공지능 기반 엔드포인트 위협탐지 및 대응 시스템

Country Status (2)

Country Link
EP (1) EP4254241A1 (ko)
KR (1) KR102541888B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102189361B1 (ko) * 2019-12-02 2020-12-09 주식회사 파고네트웍스 엔드포인트에 기반한 관리형 탐지 및 대응 시스템과 방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10162967B1 (en) * 2016-08-17 2018-12-25 Trend Micro Incorporated Methods and systems for identifying legitimate computer files

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10162967B1 (en) * 2016-08-17 2018-12-25 Trend Micro Incorporated Methods and systems for identifying legitimate computer files

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Jianwen Fu et al., "Malware Visualization for Fine-Grained Classification"(2018.04.)*
Yusheng Dai et al., "A malware classification method based on memory dump grayscale image"(2018.09.)*
김형겸 외, "딥러닝 기술을 활용한 멀웨어 분류를 위한 이미지화 기법"(2018.10.)*

Also Published As

Publication number Publication date
EP4254241A1 (en) 2023-10-04
KR20220073657A (ko) 2022-06-03

Similar Documents

Publication Publication Date Title
US10609079B2 (en) Application of advanced cybersecurity threat mitigation to rogue devices, privilege escalation, and risk-based vulnerability and patch management
US11218510B2 (en) Advanced cybersecurity threat mitigation using software supply chain analysis
CN105868635B (zh) 用于应对恶意软件的方法和装置
CN102171657B (zh) 实体信誉评分的简化传送
CN110383278A (zh) 用于检测恶意计算事件的系统和方法
CN106789964B (zh) 云资源池数据安全检测方法及系统
US10079835B1 (en) Systems and methods for data loss prevention of unidentifiable and unsupported object types
CN109155774B (zh) 用于检测安全威胁的系统和方法
CN112685737A (zh) 一种app的检测方法、装置、设备及存储介质
CN113660224B (zh) 基于网络漏洞扫描的态势感知防御方法、装置及系统
CN105493060A (zh) 蜜端主动网络安全
US20230418943A1 (en) Method and device for image-based malware detection, and artificial intelligence-based endpoint detection and response system using same
US20220210202A1 (en) Advanced cybersecurity threat mitigation using software supply chain analysis
US20140195793A1 (en) Remotely Establishing Device Platform Integrity
CN104067283A (zh) 识别移动环境的木马化应用程序
CN113489713A (zh) 网络攻击的检测方法、装置、设备及存储介质
US11916964B2 (en) Dynamic, runtime application programming interface parameter labeling, flow parameter tracking and security policy enforcement using API call graph
CN109726601A (zh) 违规行为的识别方法及装置、存储介质、计算机设备
CN113132318A (zh) 面向配电自动化系统主站信息安全的主动防御方法及系统
CN113411297A (zh) 基于属性访问控制的态势感知防御方法及系统
CN111316272A (zh) 使用行为和深度分析的先进网络安全威胁减缓
KR102541888B1 (ko) 이미지 기반 악성코드 탐지 방법 및 장치와 이를 이용하는 인공지능 기반 엔드포인트 위협탐지 및 대응 시스템
US20220272111A1 (en) Cloud-platform push for known data breaches
CN117032894A (zh) 容器安全状态检测方法、装置、电子设备及存储介质
KR102530083B1 (ko) 악성행위 탐지를 위한 클라우드 기반 가상화 장치, 시스템 및 운영 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant