KR20100089245A - 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR20100089245A
KR20100089245A KR1020090008410A KR20090008410A KR20100089245A KR 20100089245 A KR20100089245 A KR 20100089245A KR 1020090008410 A KR1020090008410 A KR 1020090008410A KR 20090008410 A KR20090008410 A KR 20090008410A KR 20100089245 A KR20100089245 A KR 20100089245A
Authority
KR
South Korea
Prior art keywords
malicious code
code
behavior
malicious
level
Prior art date
Application number
KR1020090008410A
Other languages
English (en)
Other versions
KR101031786B1 (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 KR1020090008410A priority Critical patent/KR101031786B1/ko
Publication of KR20100089245A publication Critical patent/KR20100089245A/ko
Application granted granted Critical
Publication of KR101031786B1 publication Critical patent/KR101031786B1/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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2113Multi-level security, e.g. mandatory access control

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 프로그램이 수행하는 의심스러운 행위를 수준별로 분류하고, 분류 결과에 따라 격리 공간에서 실행함으로써 시스템을 보호하는 악성 코드 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. 본 발명의 일 측면은 프로그램이 시스템 내에서 수행하는 행위를 모니터링하고, 악성 코드 및 정상 코드의 특성에 기반하여 상기 행위를 수준별로 분류하며, 상기 수준별 분류 결과 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 분류된 행위를 상기 시스템과 격리하여 실행하는 악성 코드 사전 대응 방법을 제공한다. 본 발명에 의하면, 사용자의 사후 신고 없이 행위 기반으로 제로 데이 공격을 무력화하고, 사용자에 대한 질의가 필요 없이 의심 행위를 수준별로 분류하여 처리함으로써 실시간으로 실행하며, 격리 공간에서의 실행으로 시스템을 안전하게 보호할 수 있게 되는 효과가 있다.
악성 코드, 사전 대응, 행위 기반, 수준별 분류, 격리 실행

Description

의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체{Malicious code prevention apparatus and method using level classification of suspicious behavior and isolated execution, and computer-readable medium storing program for method thereof}
본 발명은 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. 구체적으로 본 발명은, 프로그램이 수행하는 의심스러운 행위를 수준별로 분류하고, 분류 결과에 따라 격리 공간에서 실행함으로써 시스템을 보호하는 악성 코드 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
오늘날 수많은 웹 사이트가 악성 코드(malicious code)에 의한 공격에 노출되어 있다. 악성 코드는 웹 사이트 자체뿐만 아니라 자신이 공격한 웹 사이트를 방문하는 다른 사용자에 대하여도 피싱(phishing) 또는 드라이브-바이-다운로드(drive-by-download) 등 다양한 형태의 공격을 실행하고 있다.
악성 코드로 인한 사용자의 피해를 막기 위하여 보안 프로그램 및 시스템이 개발되고 있다. 현재 널리 사용되는 드라이브-바이-다운로드 형태의 공격 차단 기술은, 시그니처(signature) 기반의 대응 방법과 사전 방역 방법 등 여러 가지가 있다.
시그니처 기반의 대응 방법은 사용자가 신고한 웹 사이트를 차단하거나 다운로드 되는 파일을 AV엔진(Anti-Virus engine) 등으로 검사하여 악성 코드를 배포하는 웹 사이트를 식별해 내는 기술이다. 이 방법은 악성 코드의 공격으로 피해를 입은 피해자들의 사후 신고에 의하여 샘플을 수집하거나 허니 팟(honey pot)을 통하여 악성 코드를 식별할 수 있는 시그니처를 추출한다. 따라서 시그니처 기반의 악성 코드 대응 방법은 사용자의 사후 신고에 이르기까지 일정한 수의 피해자가 발생할 수 밖에 없다는 문제점이 있다. 시스템 상의 보안 문제점의 존재가 공표되기 전에 이루어지는 제로 데이 공격(zero-day attack)에 대한 방어가 불가능한 것이다.
사전 방역 방법은 프로그램이 수행하는 행위에 기반하여 악성 코드 여부를 판단한다. 이 방법은 탐지된 행위가 의심스럽지만 정상 코드도 그러한 행위를 수행할 수 있는 경우가 많기 때문에 악성 코드 여부를 100% 확실하게 판단할 수는 없다. 따라서 이 방법은 의심스러운 행위를 발견했을 때 그 코드를 계속 실행할 것인지 여부를 알림 창 등을 통하여 사용자에게 묻는다. 사전 방역 방법으로 보호되는 시스템에서는 이러한 알림 창이 빈번하게 생성되므로 사용자는 불편함을 느끼게 된다. 또한 알림 창이 의심스러운 행위의 실행을 경고하더라도, 컴퓨터 보안 전문 가가 아닌 일반 사용자들이 악성 코드 여부를 판단하여 의심스러운 행위의 계속 실행 여부를 결정하는 것은 사실상 어렵다.
상기 문제점을 해결하기 위하여 본 발명은, 사용자의 사후 신고에 의한 취약점 정보 수집 없이 행위에 기반하여 악성 코드를 처리함으로써 제로 데이 공격에 대한 방어가 가능하게 하는 것을 목적으로 한다.
또한, 악성 코드 및 정상 코드의 특성에 기반하여 의심스러운 행위를 수준별로 분류하여 처리함으로써, 알림 창 등을 통한 사용자에 대한 질의가 필요 없는 실시간 방어를 제공하는 것을 목적으로 한다.
또한, 제한된 격리 공간에서 의심스러운 행위를 실행하여 시스템을 보호함으로써, 악성 코드의 공격을 무력화하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여 본 발명의 제 1 측면은, 프로그램이 시스템 내에서 수행하는 행위를 모니터링하는 행위 모니터링부와, 악성 코드 및 정상 코드의 특성에 기반하여 상기 행위를 수준별로 분류하는 행위 분류부, 및 상기 수준별 분류 결과 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 분류된 행위를 상기 시스템과 격리하여 실행하는 격리 실행부를 포함하는 악성 코드 사전 대응 장치를 제공한다.
또한, 상기 프로그램의 행위 정보를 로그 기록으로 저장하는 로그 기록 저 장부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.
또한, 상기 프로그램이 악성 행위를 수행할 경우 상기 로그 기록에 기반하여 상기 악성 행위 이전의 상태를 복원하는 행위 복원부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.
또한, 안전한 프로그램의 목록을 화이트리스트로 저장하는 화이트리스트 저장부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.
또한, 상기 프로그램의 샘플을 저장하는 샘플 저장부와, 상기 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석하는 악성 코드 분석 시스템, 및 상기 악성 코드 분석 시스템의 분석 결과를 반영하여 상기 화이트리스트를 업데이트하는 화이트리스트 관리부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.
또한, 상기 격리 실행부에서 실행되는 행위가 접근하는 데이터의 복사본을 상기 시스템과 격리하여 저장하는 접근 대상 복사본 저장부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.
또한, 상기 수준별 분류 결과는, 정상 코드에서만 사용되는 제 1 수준 행위와, 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 제 2 수준 행위와, 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하는 악성 코드 사전 대응 장치를 제공한다.
또한, 상기 제 1 수준 행위 및 상기 제 2 수준 행위에 대하여 통상의 실행 을 허용하고, 상기 제 4 수준 행위의 실행을 보류 또는 차단하는 제어부를 더 포함하는 악성 코드 사전 대응 장치를 제공한다.
또한, 상기 격리 실행부는 상기 분류된 행위의 실행에 사용되는 연동 프로그램을 상기 시스템과 격리하여 실행하는 악성 코드 사전 대응 장치를 제공한다.
또한, 의심스러운 행위를 전혀 하지 않는 것으로 확인된 정상 검증 코드를 저장하는 정상 검증 코드 저장부를 더 포함하고, 상기 격리 실행부는 상기 정상 검증 코드가 악성 코드에서 가끔이라도 사용되는 행위를 실행할 경우에 해당 행위를 상기 시스템과 격리하여 실행하거나 차단하는 악성 코드 사전 대응 장치를 제공한다.
상기 목적을 달성하기 위하여 본 발명의 제 2 측면은, 프로그램이 시스템 내에서 수행하는 행위를 모니터링하고, 악성 코드 및 정상 코드의 특성에 기반하여 상기 행위를 수준별로 분류하며, 상기 수준별 분류 결과 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 분류된 행위를 상기 시스템과 격리하여 실행하는 악성 코드 사전 대응 방법을 제공한다.
또한, 상기 프로그램의 행위 정보를 로그 기록으로 저장하는 악성 코드 사전 대응 방법을 제공한다.
또한, 상기 프로그램이 악성 행위를 수행할 경우 상기 로그 기록에 기반하여 상기 악성 행위 이전의 상태를 복원하는 악성 코드 사전 대응 방법을 제공한다.
또한, 안전한 프로그램의 목록을 화이트리스트로 저장하는 악성 코드 사전 대응 방법을 제공한다.
또한, 상기 프로그램의 샘플을 저장하고, 상기 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석하며, 상기 분석 결과를 반영하여 상기 화이트리스트를 업데이트하는 악성 코드 사전 대응 방법을 제공한다.
또한, 상기 격리하여 실행되는 행위가 접근하는 데이터의 복사본을 상기 시스템과 격리하여 저장하는 악성 코드 사전 대응 방법을 제공한다.
또한, 상기 수준별 분류 결과는, 정상 코드에서만 사용되는 제 1 수준 행위와, 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 제 2 수준 행위와, 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하는 악성 코드 사전 대응 방법을 제공한다.
또한, 상기 제 1 수준 행위 및 상기 제 2 수준 행위에 대하여 통상의 실행을 허용하고, 상기 제 4 수준 행위의 실행을 보류 또는 차단하는 악성 코드 사전 대응 방법을 제공한다.
또한, 상기 분류된 행위의 실행에 사용되는 연동 프로그램을 상기 시스템과 격리하여 실행하는 악성 코드 사전 대응 방법을 제공한다.
또한, 의심스러운 행위를 전혀 하지 않는 것으로 확인된 정상 검증 코드가 악성 코드에서 가끔이라도 사용되는 행위를 실행할 경우에 해당 행위를 상기 시스템과 격리하여 실행하거나 차단하는 악성 코드 사전 대응 방법을 제공한다.
또한, 상기 정상 검증 코드에 속하는 프로그램이 상기 악성 코드에서 가끔 이라도 사용되는 행위를 실행할 경우 상기 프로그램의 행위 정보를 조사하고, 상기 조사 결과로부터 악성 행위를 수행한 코드를 검출하며, 상기 검출된 코드의 샘플을 분석 시스템으로 보고하는 악성 코드 사전 대응 방법을 제공한다.
상기 목적을 달성하기 위하여 본 발명의 제 3 측면은, 상기 어느 하나의 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명에 의하면, 사용자의 사후 신고 없이 행위 기반으로 제로 데이 공격을 무력화할 수 있게 되는 효과가 있다.
또한, 사용자에 대한 질의가 필요 없이 의심 행위를 수준별로 분류하여 처리함으로써 실시간 실행을 보장할 수 있게 되는 효과가 있다.
또한, 격리 공간에서의 실행으로 시스템을 안전하게 보호할 수 있게 되는 효과가 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 악성 코드 사전 대응 장치의 개략적인 구성을 도시한 블록도이다.
행위 모니터링부(110)는 사용자 PC(Personal Computer)에서 발생하는 각종 행위 정보를 감시(monitoring)한다. 실시예에 따라 행위 모니터링 도구 설치부가 설치한 모니터링 도구에 의하여 구현되거나, 감시되는 각종 행위 정보를 저장하는 로그 기록 저장부(130)와 연동하도록 구현될 수도 있다. 모니터링 도구는 운영 체제의 각 부분에 설치되는 훅(hook), 또는 필터 드라이버(filter driver) 등이 될 수 있다. 모니터링되는 행위 정보는 행위 분류부(120)로 전달되어 분류된다.
행위 분류부(120)는 모니터링된 행위 정보를 악성 코드 및 정상 코드의 특성에 기반하여 수준별로 분류한다. 이러한 수준별 분류 결과는 정상 코드에서만 사용되는 제 1 수준 행위와, 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 제 2 수준 행위와, 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하도록 구현될 수 있다. 본 실시예에서는 4개의 수준으로 분류하였지만, 악성 코드가 수행하는 행위와 정상 코드가 수행하는 행위 사이의 중간 수준은 전혀 존재하지 않을 수도 있고 반대로 매우 자세하게 나뉠 수도 있다. 또한 일견 의심스러운 행위처럼 보이지만 실제로는 안전하다고 증명된 정상 코드의 목록을 별도의 화이트리스트로 관리하는 경우, 행위 분류부(120)가 화이트리스트를 검색하고 그 결과 화이트리스트에 존재하는 경우에는 행위 기반 분류에 의한 결과보다 낮은 수준으로 처리하도록 구현할 수도 있다. 행위 분류부(120)에서의 분류 과 정은 뒤에서 자세히 살핀다.
로그 기록 저장부(130)는 사용자 PC에서 발생하는 각종 행위 정보를 로그(log) 기록으로 저장한다. 실시예에 따라 행위를 발생시킨 모듈을 쓰레드(thread) 정보와 스택 역추적(stack back tracing) 등의 방법으로 식별하여 각 프로그램 내지 모듈(module)별로 관리하도록 구현할 수 있다. 이렇게 관리되는 행위 정보는 모듈이 나중에 악성 행위를 수행할 경우, 모듈에 의하여 수행된 모든 행위를 롤백(rollback)하는 데 사용된다.
행위 복원부(135)는 로그 기록 저장부(130)에 저장된 로그 기록을 바탕으로 하여, 이미 실행된 특정 모듈의 의심스러운 행위가 악성 행위임이 판명된 후 그 모듈에 의하여 수행된 모든 행위를 롤백 내지 복원한다.
격리 실행부(140)는 행위 분류부(120)에 의하여 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위로 분류된 행위를 격리하여 실행한다. 실행된 행위가 실제 악성 코드에 의한 행위라고 판명되더라도, 그것은 격리 공간에서 실행된 것에 불과하므로 메인 시스템은 악성 코드로부터 이론상 완전하게 보호된다. 격리 실행부(140)가 수행하는 행위는 뒤에서 더 자세히 살핀다.
접근 대상 복사본 저장부(145)는 제 3 수준 행위를 수행하는 모듈이 시스템 파일 등 중요한 데이터에 접근하는 경우 그 파일의 복사본이 저장되는 공간이다. 격리 실행부(140)는 접근 대상 파일의 복사본을 리다이렉션 폴더(redirection folder) 등에 저장하고 의심스러운 행위가 복사본만으로 수행되도록 한다. 접근 대상 복사본 저장부(145)는 메인 시스템과 물리적 또는 논리적으로 분리되거나 가 상화 기술 등에 의하여 격리되는 공간으로 구현될 수 있다. 접근 대상 복사본 저장부(145)는 내부의 리다이렉션 폴더에 접근 대상을 저장할 수 있다. 접근 대상의 형태에 따라 리다이렉션 키, 리다이렉션 경로, 또는 IP 및 포트(port) 번호 등 다양한 데이터의 복사본가 저장될 수 있다.
화이트리스트 관리부(150)는 이러한 행위 기반 사전 대응 후 악성 코드 분석 시스템(170)의 샘플 분석을 통하여 안전한 프로그램을 화이트리스트 저장부(155)에 저장할 수 있도록 한다. 샘플 분석 결과에 따라 화이트리스트를 업데이트하도록 처리하는 것이다.
화이트리스트 저장부(155)는 안전한 프로그램의 실행을 허용하기 위하여 그 목록을 화이트리스트로 저장한다.
샘플 저장부(160)는 시스템의 취약점 정보 또는 의심스러운 행위를 수행하는 프로그램 내지 모듈의 샘플을 저장한다. 이러한 샘플은 악성 코드 분석 시스템(170) 등으로 전송될 수 있다.
악성 코드 분석 시스템(170)은 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석한다. 사용자 PC의 의뢰를 통하여 악성 코드 여부의 분석이 시작되며, 그 분석 결과는 사용자 PC로 피드백(feedback)된다. 악성 코드 분석 시스템(170)은 실시예에 따라 사용자 PC의 내부 또는 외부에 구현될 수 있다.
정상 검증 코드 저장부(110)는 의심스러운 행위를 전혀 하지 않는 것으로 사전에 검증된 모듈(verified module)인 정상 검증 코드의 전부, 일부 또는 그 목 록을 저장한다. 정상 검증 코드 저장부(110)에 저장되어 있는 코드는 오직 정상 코드만이 수행하는 제 1 수준의 행위만으로 구성된 안전한 프로그램으로 간주된다. 예컨대 정상 검증 코드 저장부(110)에는 오피스 프로그램, 운영체제 서비스, 워드 프로세서(word processor) 프로그램 등, 널리 알려진 소프트웨어로서 제 1 수준의 행위만을 수행하는 프로그램의 목록이 저장될 수 있다. 정상 검증 코드로 분류된 프로그램이 악성 코드가 가끔이라도 수행하는 행위를 실행하는 경우는 오직 해킹을 당한 경우뿐이다. 따라서 정상 검증 코드로 분류된 코드가 조금이라도 의심스러운 행위를 실행하는 경우에는, 다시 말해 제 1 수준이 아닌 제 2 수준 이상의 행위를 수행하는 경우에는, 격리 실행부(140)가 해당 프로그램을 격리 실행한다. 예컨대 악성 코드가 포함된 워드 프로세서 문서 파일, 인젝션(injection) 된 DLL 등이 이러한 경우에 해당할 수 있다. 격리 실행부(140)가 수행하는 행위는 뒤에서 더 자세히 살핀다.
도 2는 본 발명의 악성 코드 사전 대응 방법이 수행되는 과정을 도시한 흐름도이다.
본 발명의 악성 코드 사전 대응 방법은 먼저 사용자 PC에 행위 모니터링 도구를 설치할 수 있다(S210). 그 후 사용자 PC에서 이루어지는 각종 행위 정보가 모니터링된다(S220).
모니터링이 진행되면서 악성 코드 및 정상 코드의 특성에 기반하여 수준별로 행위가 분류된다(S230). 본 실시예에서는 정상 코드의 행위로 분류되는 제 1 수준으로부터 악성 코드의 행위로 분류되는 제 4 수준까지 총 4개의 수준으로 분류 하였지만, 중간 수준의 다양한 분류 및 처리가 가능하다. 가장 안전한 제 1 수준의 행위는 통상의 실행을 허용(S248)하도록 한다. 다소 의심스러우나 오판의 가능성을 배제할 수 없는 제 2 수준의 행위는 통상의 실행을 허용(S246)한 후 화이트리스트 존재 여부 판단(S250)을 거쳐 화이트 리스트 처리(260)을 거치도록 한다. 상당히 의심스러우나 오판의 가능성을 배제할 수 없는 제 3 수준의 행위는 격리 공간에서 제한적으로 실행을 허용(S244)한 후 화이트리스트 존재 여부 판단(S250)을 거쳐 화이트 리스트 처리(260)을 거치도록 한다. 가장 의심스러운 제 4 수준의 행위는 실행 자체를 보류 또는 차단(S242)한 후 화이트리스트 존재 여부 판단(S250)을 거쳐 화이트 리스트 처리(260)을 거치도록 한다.
도 3은 수준별로 행위를 분류하여 처리하는 과정을 도시한 흐름도이다.
먼저 악성 코드에서만 사용되는 행위인지 여부를 판단한다(S232). 악성 코드에서만 사용되는 행위인 경우(Y), 이것은 제 4 수준 행위이므로, 실행을 보류 또는 차단한다(S242). 악성 코드에서만 사용되는 행위는 아닌 경우(N), 다음 단계(S234)를 처리한다.
다음으로 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위인지 여부를 판단한다(S234). 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위인 경우(Y), 이것은 제 3 수준 행위이므로, 격리 공간에서 제한적으로 실행을 허용한다(S244). 격리 실행 과정은 뒤에서 자세히 살핀다. 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위는 아닌 경우(N), 다음 단계(S236)를 처리한다.
다음으로 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 행위인지 여부를 판단한다(S236). 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 행위인 경우(Y), 이것은 제 2 수준 행위이므로, 일단 통상의 실행을 허용한다(S246). 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 행위는 아닌 경우(N), 이것은 제 1 수준 행위이므로, 통상의 실행을 허용한다(S248).
본 실시예에서 사용된 제 1 수준 내지 제 4 수준의 행위의 특성을 조금 더 살펴 보면, 아래와 같이 정리할 수 있다.
제 1 수준 행위는 전혀 의심스럽지 않은 행위이므로, 일반적인 정상 코드와 동일하게 그대로 통상의 실행을 허용하도록 처리할 수 있다.
제 2 수준 행위는 다소 의심스러운 행위이므로 실행을 허용하되, 로그를 남기고 샘플을 수집하도록 처리할 수 있다. 제 2 수준 행위의 예시로는 워드 파일(확장자 doc, docx), 엑셀 파일(확장자 xls, xlsx), 파워포인트 파일(확장자 ppt, pptx) 등 오피스 파일(office file)에의 접근, 또는 메시지 후킹(message hooking) 등이 있다.
제 3 수준 행위는 상당히 의심스러운 행위이므로, 실행 자체는 허용하되 의심 행위의 대상(target)을 리다이렉션(redirection)하여 격리 공간에서만 제한적으로 실행하면서 로그를 남기고 샘플을 수집하도록 처리할 수 있다. 악성 코드임이 의심되지만 오판의 가능성이 있기 때문에 메인 시스템에 대한 복구 가능성을 확보한 후 제한적으로만 실행을 허용하는 것이다. 제 3 수준 행위의 예시로는 자동 실 행 레지스트리(registry) 쓰기 등이 있다.
제 4 수준 행위는 악의적인 목적이 아닌 이상 필요하지 않은 행위이므로, 실행을 보류(pending) 또는 차단하며 로그를 남기고 샘플을 수집하도록 처리할 수 있다. 일반적인 경우 다른 처리 방법이 있음에도 불구하고 굳이 악의적인 행위를 수행하는 프로그램 내지 모듈은 악성 코드로 간주하여도 무방하기 때문이다. 제 4 수준 행위의 예시로는 svhost.exe 등의 서비스 프로그램에 의한 하드 디스크(hard disk) 또는 물리 메모리(physical memory)의 로 억세스(raw access), 사용자의 개입 없는 드라이버(driver) 설치, 또는 주소록 등 개인 정보의 외부 전송 등이 있다.
이 중 제 3 수준 행위의 격리 실행은 아래와 같은 과정을 통하여 이루어진다. 먼저 의심 행위의 대상의 위치를 변경함으로써 해당 타겟을 리다이렉션한다. 파일의 경우, 별도의 위치에 리다이렉션 폴더를 생성하고, 대상의 경로(path)를 리다이렉션 폴더의 하위로 변경한다. 레지스트리의 경우, 별도의 위치에 리다이렉션 키(key)를 준비하고, 대상의 경로를 리다이렉션 키의 하위로 지정한다. 커널 오브젝트(kernel object)의 경우, 별도의 위치에 리다이렉션 경로를 생성하고, 대상의 경로를 리다이렉션 경로의 하위로 변경한다. 네트워크의 경우에도, 이와 유사하게 IP 및 포트(port) 번호가 재할당된다.
이 때 제 3 수준 행위로 분류된 의심스러운 행위가 시스템 파일(system file) 등 보안 상 중요한 데이터에 접근하는 경우, 이 파일을 접근 대상 복사본 저장부(145)의 리다이렉션 폴더 등의 하위 또는 내부에 복사하여 격리 공간을 생성한 다. 격리 실행부(140)는 의심스러운 행위가 격리 공간 내의 복사본을 열고 실행하도록 그 실행 환경을 제한한다. 이에 따라 원래 접근 대상인 메인 시스템 내의 데이터는 열리지도, 실행되지도 않으므로 안전하게 보호된다. 이러한 방법으로 의심스러운 행위의 시스템의 자원에 대한 접근을 방어하여 중요한 데이터의 유출 가능성을 줄일 수 있다.
격리 실행부(140)는 제 3 수준 행위로 분류된 의심스러운 행위를 수행하는 모듈이 실행 파일(확장자 exe 등)이 아닐 경우, 실행에 사용되는 연동 프로그램을 시스템과 격리하여 실행하도록 구현될 수 있다. 예컨대 의심스러운 행위를 하는 주체가 dll 파일인 경우 연동되는 rundll을, 액티브 X(Active X) 파일인 경우 해당 연동 프로그램 및 웹 브라우저를, 오피스 파일(doc, xls, ppt 등)인 경우 연동되는 워드(doc), 엑셀(xls), 파워포인트(ppt) 등 오피스 프로그램을 격리 공간으로 불러 오고, 해당 연동 프로그램에 해당 파일을 로드하여 실행하도록 할 수 있다. 배치 파일(batch file), 레지스트리 파일(registry file), 각종 스크립트 파일(script file)의 경우도 해당 엔진 등을 사용하여 유사한 방법으로 검증할 수 있다.
한편, 정상 검증 코드로 분류된 코드가 조금이라도 의심스러운 행위를 실행하는 경우에는, 앞서 설명한 바와 같이 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 처리하여, 해당 프로그램을 격리 실행한다(S244). 이러한 경우, 해당 프로그램의 행위 정보 기록을 바탕으로 악성 행위를 수행한 코드를 찾고 그것을 내부 또는 외부의 분석 시스템으로 보고하도록 구현할 수 있다. 이러한 행위 정보에는 해당 프로그램이 열기(open)를 한 파일, 불러오기(load)를 한 모듈 등이 기록될 수 있다. 이러한 기록에 기반하여 악성 행위를 수행한 코드를 찾아내는 것이다.
도 4는 화이트리스트에 존재하지 않는 경우의 처리 과정을 도시한 흐름도이다.
먼저 추후 롤백에 사용될 로그 기록을 남기고(S262), 악성 코드 여부 분석에 사용할 샘플을 저장한다(S264). 그리고 샘플을 내부 또는 외부의 악성 코드 분석 시스템에 전송하여 악성 코드 여부를 분석하도록 한다(S266). 분석 결과, 안전한 프로그램으로 판단된 경우 화이트리스트를 업데이트한다(S268).
본 실시형태의 모듈, 기능 블록들 또는 수단들은 전자 회로, 집적 회로, ASIC (Application Specific Integrated Circuit) 등 공지된 다양한 소자들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수 있다.
이상과 같이 본 발명의 이해를 위하여 그 실시예를 기술하였으나, 당업자라면 알 수 있듯이, 본 발명은 본 명세서에서 기술된 특정 실시예에 한정되는 것이 아니라, 본 발명의 범주를 벗어나지 않는 범위 내에서 다양하게 변형, 변경 및 대체될 수 있다. 예를 들어, 문자 대신 기타 LCD 등 디스플레이에 의해 표시될 수 있는 그림, 영상 등에도 본 발명의 기술이 적용될 수 있다. 따라서, 본 발명의 진정한 사상 및 범주에 속하는 모든 변형 및 변경을 특허청구범위에 의하여 모두 포괄하고자 한다.
도 1은 본 발명의 악성 코드 사전 대응 장치의 개략적인 구성을 도시한 블록도이다.
도 2는 본 발명의 악성 코드 사전 대응 방법이 수행되는 과정을 도시한 흐름도이다.
도 3은 수준별로 행위를 분류하여 처리하는 과정을 도시한 흐름도이다.
도 4는 화이트리스트에 존재하지 않는 경우의 처리 과정을 도시한 흐름도이다.

Claims (22)

  1. 프로그램이 시스템 내에서 수행하는 행위를 모니터링하는 행위 모니터링부와,
    악성 코드 및 정상 코드의 특성에 기반하여 상기 행위를 수준별로 분류하는 행위 분류부, 및
    상기 수준별 분류 결과 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 분류된 행위를 상기 시스템과 격리하여 실행하는 격리 실행부
    를 포함하는 악성 코드 사전 대응 장치.
  2. 제 1항에 있어서,
    상기 프로그램의 행위 정보를 로그 기록으로 저장하는 로그 기록 저장부
    를 더 포함하는 악성 코드 사전 대응 장치.
  3. 제 2항에 있어서,
    상기 프로그램이 악성 행위를 수행할 경우 상기 로그 기록에 기반하여 상기 악성 행위 이전의 상태를 복원하는 행위 복원부
    를 더 포함하는 악성 코드 사전 대응 장치.
  4. 제 1항에 있어서,
    안전한 프로그램의 목록을 화이트리스트로 저장하는 화이트리스트 저장부
    를 더 포함하는 악성 코드 사전 대응 장치.
  5. 제 4항에 있어서,
    상기 프로그램의 샘플을 저장하는 샘플 저장부와,
    상기 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석하는 악성 코드 분석 시스템, 및
    상기 악성 코드 분석 시스템의 분석 결과를 반영하여 상기 화이트리스트를 업데이트하는 화이트리스트 관리부
    를 더 포함하는 악성 코드 사전 대응 장치.
  6. 제 1항에 있어서,
    상기 격리 실행부에서 실행되는 행위가 접근하는 데이터의 복사본을 상기 시스템과 격리하여 저장하는 접근 대상 복사본 저장부
    를 더 포함하는 악성 코드 사전 대응 장치.
  7. 제 1항에 있어서,
    상기 수준별 분류 결과는, 정상 코드에서만 사용되는 제 1 수준 행위와, 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 제 2 수준 행위와, 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하는
    악성 코드 사전 대응 장치.
  8. 제 7항에 있어서,
    상기 제 1 수준 행위 및 상기 제 2 수준 행위에 대하여 통상의 실행을 허용하고, 상기 제 4 수준 행위의 실행을 보류 또는 차단하는 제어부
    를 더 포함하는 악성 코드 사전 대응 장치.
  9. 제 1항에 있어서,
    상기 격리 실행부는 상기 분류된 행위의 실행에 사용되는 연동 프로그램을 상기 시스템과 격리하여 실행하는
    악성 코드 사전 대응 장치.
  10. 제 1항에 있어서,
    의심스러운 행위를 전혀 하지 않는 것으로 확인된 정상 검증 코드를 저장하는 정상 검증 코드 저장부를 더 포함하고,
    상기 격리 실행부는 상기 정상 검증 코드가 악성 코드에서 가끔이라도 사용되는 행위를 실행할 경우에 해당 행위를 상기 시스템과 격리하여 실행하거나 차단하는
    악성 코드 사전 대응 장치.
  11. 프로그램이 시스템 내에서 수행하는 행위를 모니터링하고,
    악성 코드 및 정상 코드의 특성에 기반하여 상기 행위를 수준별로 분류하며,
    상기 수준별 분류 결과 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 행위로 분류된 행위를 상기 시스템과 격리하여 실행하는
    악성 코드 사전 대응 방법.
  12. 제 11항에 있어서,
    상기 프로그램의 행위 정보를 로그 기록으로 저장하는
    악성 코드 사전 대응 방법.
  13. 제 12항에 있어서,
    상기 프로그램이 악성 행위를 수행할 경우 상기 로그 기록에 기반하여 상기 악성 행위 이전의 상태를 복원하는
    악성 코드 사전 대응 방법.
  14. 제 11항에 있어서,
    안전한 프로그램의 목록을 화이트리스트로 저장하는
    악성 코드 사전 대응 방법.
  15. 제 14항에 있어서,
    상기 프로그램의 샘플을 저장하고,
    상기 화이트리스트에 등록되지 않은 프로그램의 샘플을 전송 받아 악성 코드인지 여부를 분석하며,
    상기 분석 결과를 반영하여 상기 화이트리스트를 업데이트하는
    악성 코드 사전 대응 방법.
  16. 제 11항에 있어서,
    상기 격리하여 실행되는 행위가 접근하는 데이터의 복사본을 상기 시스템과 격리하여 저장하는
    악성 코드 사전 대응 방법.
  17. 제 11항에 있어서,
    상기 수준별 분류 결과는, 정상 코드에서만 사용되는 제 1 수준 행위와, 정상 코드에서 주로 사용되지만 악성 코드에서도 가끔 사용되는 제 2 수준 행위와, 악성 코드에서 주로 사용되지만 정상 코드에서도 가끔 사용되는 제 3 수준 행위, 및 악성 코드에서만 사용되는 제 4 수준 행위 중 어느 하나 이상을 포함하는
    악성 코드 사전 대응 방법.
  18. 제 17항에 있어서,
    상기 제 1 수준 행위 및 상기 제 2 수준 행위에 대하여 통상의 실행을 허용하고, 상기 제 4 수준 행위의 실행을 보류 또는 차단하는
    악성 코드 사전 대응 방법.
  19. 제 11항에 있어서,
    상기 분류된 행위의 실행에 사용되는 연동 프로그램을 상기 시스템과 격리하여 실행하는
    악성 코드 사전 대응 방법.
  20. 제 11항에 있어서,
    의심스러운 행위를 전혀 하지 않는 것으로 확인된 정상 검증 코드가 악성 코드에서 가끔이라도 사용되는 행위를 실행할 경우에 해당 행위를 상기 시스템과 격리하여 실행하거나 차단하는
    악성 코드 사전 대응 방법.
  21. 제 20항에 있어서,
    상기 정상 검증 코드에 속하는 프로그램이 상기 악성 코드에서 가끔이라도 사용되는 행위를 실행할 경우 상기 프로그램의 행위 정보를 조사하고,
    상기 조사 결과로부터 악성 행위를 수행한 코드를 검출하며,
    상기 검출된 코드의 샘플을 분석 시스템으로 보고하는
    악성 코드 사전 대응 방법.
  22. 제 11항 내지 제 21항 중 어느 한 항에 기재된 방법을 실행하기 위한 프로그램이 기록된
    컴퓨터로 읽을 수 있는 기록매체.
KR1020090008410A 2009-02-03 2009-02-03 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 KR101031786B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020090008410A KR101031786B1 (ko) 2009-02-03 2009-02-03 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090008410A KR101031786B1 (ko) 2009-02-03 2009-02-03 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Publications (2)

Publication Number Publication Date
KR20100089245A true KR20100089245A (ko) 2010-08-12
KR101031786B1 KR101031786B1 (ko) 2011-04-29

Family

ID=42755160

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090008410A KR101031786B1 (ko) 2009-02-03 2009-02-03 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Country Status (1)

Country Link
KR (1) KR101031786B1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101463873B1 (ko) * 2011-09-30 2014-11-20 주식회사 엔피코어 정보 유출 차단 장치 및 방법
KR101880686B1 (ko) * 2018-02-28 2018-07-20 에스지에이솔루션즈 주식회사 Ai 딥러닝 기반의 악성코드 탐지 시스템
WO2018182126A1 (ko) * 2017-03-29 2018-10-04 최승환 안전 소프트웨어 인증 시스템 및 방법
KR20190020999A (ko) * 2017-08-22 2019-03-05 주식회사 하우리 악성프로그램 처리장치 및 처리방법
WO2020189823A1 (ko) * 2019-03-20 2020-09-24 주식회사 하우리 리다이렉션 파일의 유효성 검증방식에 의한 악성프로그램 처리장치 및 처리방법
KR20210150771A (ko) 2020-06-04 2021-12-13 류영근 부스터 장치 및 그를 구비하는 탈것

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101427566B1 (ko) 2013-02-05 2014-09-23 주식회사 잉카인터넷 오진 처리 시스템 및 방법
CN103279707B (zh) * 2013-06-08 2016-07-13 北京奇虎科技有限公司 一种用于主动防御恶意程序的方法、设备

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10043008B2 (en) * 2004-10-29 2018-08-07 Microsoft Technology Licensing, Llc Efficient white listing of user-modifiable files
KR100791290B1 (ko) * 2006-02-10 2008-01-04 삼성전자주식회사 디바이스 간에 악성 어플리케이션의 행위 정보를 사용하는장치 및 방법
JP2007334536A (ja) 2006-06-14 2007-12-27 Securebrain Corp マルウェアの挙動解析システム
KR100910761B1 (ko) * 2006-11-23 2009-08-04 한국전자통신연구원 프로세스 행위 예측 기법을 이용한 비정형 악성코드 탐지방법 및 그 시스템

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101463873B1 (ko) * 2011-09-30 2014-11-20 주식회사 엔피코어 정보 유출 차단 장치 및 방법
WO2018182126A1 (ko) * 2017-03-29 2018-10-04 최승환 안전 소프트웨어 인증 시스템 및 방법
US11086983B2 (en) 2017-03-29 2021-08-10 Seung Hwan Choi System and method for authenticating safe software
KR20190020999A (ko) * 2017-08-22 2019-03-05 주식회사 하우리 악성프로그램 처리장치 및 처리방법
KR101880686B1 (ko) * 2018-02-28 2018-07-20 에스지에이솔루션즈 주식회사 Ai 딥러닝 기반의 악성코드 탐지 시스템
WO2020189823A1 (ko) * 2019-03-20 2020-09-24 주식회사 하우리 리다이렉션 파일의 유효성 검증방식에 의한 악성프로그램 처리장치 및 처리방법
KR20210150771A (ko) 2020-06-04 2021-12-13 류영근 부스터 장치 및 그를 구비하는 탈것

Also Published As

Publication number Publication date
KR101031786B1 (ko) 2011-04-29

Similar Documents

Publication Publication Date Title
US10984097B2 (en) Methods and apparatus for control and detection of malicious content using a sandbox environment
CN113661693B (zh) 经由日志检测敏感数据暴露
KR101031786B1 (ko) 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
US9372989B2 (en) Robust malware detector
US8434151B1 (en) Detecting malicious software
US8065728B2 (en) Malware prevention system monitoring kernel events
JP5265061B1 (ja) 悪意のあるファイル検査装置及び方法
JP6909770B2 (ja) ウィルス対策レコードを作成するシステムと方法
WO2014103115A1 (ja) 不正侵入検知装置、不正侵入検知方法、不正侵入検知プログラム及び記録媒体
Srivastava et al. Operating system interface obfuscation and the revealing of hidden operations
KR100745640B1 (ko) 커널 메모리를 보호하는 방법 및 그 장치
KR100745639B1 (ko) 파일 시스템 및 레지스트리를 보호하는 방법 및 그 장치
JP6407184B2 (ja) 攻撃対策判定システム、攻撃対策判定方法及び攻撃対策判定プログラム
Supriya et al. Malware detection techniques: a survey
KR100666562B1 (ko) 커널 드라이버 및 프로세스 보호 방법
RU2708355C1 (ru) Способ обнаружения вредоносных файлов, противодействующих анализу в изолированной среде
CN111538972A (zh) 用于验证文件的数字签名中的攻击复原的系统和方法
US9075991B1 (en) Looting detection and remediation
Xie et al. Lightweight examination of dll environments in virtual machines to detect malware
Yan et al. MOSKG: countering kernel rootkits with a secure paging mechanism
WO2008079899A1 (en) Anti-virus signature footprint
Gielen Prioritizing computer forensics using triage techniques
Saleh Malware detection model based on classifying system calls and code attributes: a proof of concept
Jayarathna et al. Hypervisor-based Security Architecture to Protect Web Applications.
Gilchrist Solitary Confinement: Using Artificial Cells to Protect Computer Systems

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140421

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150421

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160421

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170421

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180423

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190422

Year of fee payment: 9