[go: up one dir, main page]

KR102284646B1 - 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템 - Google Patents

문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템 Download PDF

Info

Publication number
KR102284646B1
KR102284646B1 KR1020190133448A KR20190133448A KR102284646B1 KR 102284646 B1 KR102284646 B1 KR 102284646B1 KR 1020190133448 A KR1020190133448 A KR 1020190133448A KR 20190133448 A KR20190133448 A KR 20190133448A KR 102284646 B1 KR102284646 B1 KR 102284646B1
Authority
KR
South Korea
Prior art keywords
macro
function
document file
malicious code
execution
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020190133448A
Other languages
English (en)
Other versions
KR20210049308A (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 KR1020190133448A priority Critical patent/KR102284646B1/ko
Priority to JP2020178133A priority patent/JP7657415B2/ja
Priority to US17/078,908 priority patent/US20210124827A1/en
Publication of KR20210049308A publication Critical patent/KR20210049308A/ko
Application granted granted Critical
Publication of KR102284646B1 publication Critical patent/KR102284646B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Document Processing Apparatus (AREA)

Abstract

본 발명은 악성코드에 감염된 문서의 매크로를 보안하는 악성코드 감염 확인 방법과 안내 시스템에 관한 것으로, 좀 더 구체적으로는 매크로에 탑재된 악성코드를 확인해서 사용자에게 통지하고 매크로가 선택적으로 실행되도록 해서 융통성 있는 보안 기능을 실현한 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 안내 시스템에 관한 것으로, 컴퓨터 OS와 연동하는 매크로 검출모듈이 입력 프로세서로 입력되는 문서파일을 확인하는 제1 확인 단계; 상기 매크로 검출모듈이 문서파일에 구성된 매크로 함수를 탐색해서 추출하는 추출 단계; 추출된 상기 매크로 함수의 악성코드를 매크로 검출모듈이 검출하는 검출 단계; 보안처리모듈이 악성코드가 검출된 매크로 함수를 커스텀 함수로 변경하는 함수 설정 단계; 워드프로세서에 의한 상기 문서파일 실행 후, 상기 보안처리모듈이 매크로의 실행 이벤트를 인터럽트해서 해당 매크로 함수의 정책을 확인하는 제2 확인 단계; 상기 정책 확인 결과, 상기 매크로 함수가 실행이 차단된 대상이면, 상기 보안처리모듈이 매크로 함수의 실행을 중단하고 UI모듈을 통해 알림을 표출하는 매크로 함수 차단 단계;를 포함하는 것이다.

Description

문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템{MALIGNANT CODE OF MACRO IN DOCUMENT DETECT METHOD AND SYSTEM}
본 발명은 악성코드에 감염된 문서의 매크로를 보안하는 악성코드 감염 확인 방법과 안내 시스템에 관한 것으로, 좀 더 구체적으로는 매크로에 탑재된 악성코드를 확인해서 사용자에게 통지하고 매크로가 선택적으로 실행되도록 해서 융통성 있는 보안 기능을 실현한 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 안내 시스템에 관한 것이다.
워드프로세서는 문서를 작성, 편집, 저장 및 인쇄할 때 사용하는 소프트웨어를 말한다. 대표적인 워드프로세서로는 한글과 컴퓨터에서 출시한 한컴오피스, Microsoft에서 출시한 Microsoft Office, Apache재단에서 개발하고 있는 Apache OpenOffice, Microsoft에서 출시한 RTF(Rich Text Format), Adobe에서 출시한 PDF(Portable Document Format) 등이 있다.
한편, 매크로(macro)는 자주 사용하는 여러 개의 명령어를 묶어서 하나의 키 입력 동작으로 만든 일종의 기록이고, 워드프로세서는 해당 기록을 프로세싱하기 위한 프로그램을 세팅한다.
따라서 워드프로세서를 이용한 작업 중에 작업자가 특정한 명령어들을 일정한 순서에 따라 반복 사용하는 번거로움을 매크로 기능을 활용해서 최소화할 수 있다.
그런데, 매크로가 일반 업무용으로 외부에서 유통되는 경우가 잦고, EXCEL®과 같은 워드프로세서는 재무, 회계 분야나 금융권에서 업무적으로 많이 사용되므로, 해커들이 매크로에 악성코드를 탑재해서 악의적으로 사용하는 경우가 빈번했다.
이러한 문제를 해소하기 위해서 종래에는 매크로에 탑재된 악성코드를 검출해서 실행을 차단하는 보안 기술이 제안되었다.
하지만, 종래 기술은 악성코드가 검출되면 모든 매크로의 기능을 차단하므로, 작업자는 워드프로세서를 사용하는 중에 자신이 사용하던 매크로의 미동작 상황을 영문도 모른채 인식해서 받아들여야 하는 불편이 있었다. 또한, 다수의 매크로들 중에서도 악성코드가 미탑재된 매크로까지도 기능이 차단되므로, 작업자는 비효율적인 업무 환경에서 작업을 해야 하는 불합리함이 있었다.
선행기술문헌 1. 특허등록번호 제10-1745873호(2017.06.27 공고)
이에 본 발명은 상기의 문제를 해소하기 위한 것으로, 매크로에 탑재된 악성코드를 확인해서 사용자에게 통지하고 매크로가 선택적으로 실행되도록 해서 융통성 있는 보안 기능을 실현할 수 있게 하는 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템의 제공을 해결하고자 하는 과제로 한다.
상기의 과제를 달성하기 위하여 본 발명은,
컴퓨터 OS와 연동하는 매크로 검출모듈이 입력 프로세서로 입력되는 문서파일을 확인하는 제1 확인 단계;
상기 매크로 검출모듈이 문서파일에 구성된 매크로 함수를 코드정보 저장부에 저장된 악성코드 정보에 따라 탐색해서 추출하는 추출 단계;
추출된 상기 매크로 함수의 악성코드를 매크로 검출모듈이 검출하는 검출 단계; 및
보안처리모듈이 악성코드가 검출된 매크로 함수를 커스텀 함수로 변경하는 함수 설정 단계;
를 포함하는 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법이다.
상기의 다른 기술적 과제를 달성하기 위하여 본 발명은,
악성코드 정보를 저장하는 코드정보 저장부;
입력 프로세서의 문서파일 입력 이벤트를 확인해서, 상기 문서파일의 매크로 함수를 추출하고 악성코드를 검출하는 매크로 검출모듈;
악성코드가 검출된 매크로 함수를 커스텀 함수로 변경하고, 저장 처리하는 보안처리모듈; 및
상기 매크로 검출모듈의 프로세싱 과정에서 이루어지는 알림 표출 기능의 UI모듈;
을 포함하는 문서 파일에 구성된 매크로의 악성코드 감염 확인 시스템이다.
상기의 본 발명은, 매크로에 탑재된 악성코드를 확인해서 사용자에게 통지하고 매크로가 선택적으로 실행되도록 해서 융통성 있는 보안 기능을 실현할 수 있으며, 차단된 매크로 수행 시 차단되었음을 사용자에게 알려주어 업무처리의 연속성을 보정할 수 있는 한편, 매크로를 포함한 정상적인 업무 파일을 허용함으로써 안전하면서도 편리한 업무 환경을 제공하는 효과가 있다.
도 1은 본 발명에 따른 감염 확인 시스템의 일 실시예를 도시한 블록도이고,
도 2는 본 발명에 따른 감염 확인 방법의 일 실시 예가 보안대상 문서파일을 확인해서 해당 매크로 함수를 커스텀 함수로 변경하는 과정을 순차로 도시한 플로차트이고,
도 3은 본 발명에 따른 감염 확인 방법의 일 실시 예가 보안대상 문서파일을 실행하는 과정을 순차로 도시한 플로차트이고,
도 4는 본 발명에 따른 감염 확인 방법에 따른 프로세싱 중에 표출된 알림 UI의 일 예를 보인 이미지이다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나 이는 본 발명을 특정한 개시형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다.
일반적으로 워드프로세서나 문서관리시스템은 하드웨어(hardware)와 소프트웨어(software) 구성의 조합으로 구현된다. 하드웨어는 중앙처리장치(CPU), 기억장치(memmory unit), 입출력장치(input-output unit), 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), FPGA(field programmmable gate array), PLU(programmable logic unit) 등의 처리장치를 포함하며, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터로 구현된다. 그리고 상기 처리 장치는 운영체제(OS)나 상기 운영 체제 상에서 수행되는 하나 이상의 애플리케이션을 구동하며, 소프트웨어 실행에 응답하여 데이터를 접근, 저장, 조작, 처리 및 생성한다. 이러한 처리장치는 하나가 독립적으로 구성될 수도 있으나 복수개의 처리요소 및/또는 복수 유형의 처리요소를 포함할 수 있다. 또한, 소프트웨어는 운영체제(OS), 입출력 제어프로그램(input-output control program), 응용 프로그램(application program)을 포함하며, 일련의 명령(istruction) 등의 조합으로 처리 장치가 동작하도록 한다. 소프트웨어 및/또는 데이터는 처리 장치에 의하여 물리적 장치나 가상장치, 저장매체, 전송되는 신호 파(signal wave)에 의해 영구적으로 또는 일시적으로 구체화(embody)될 수 있으며, 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서 분산된 방법으로 저장되거나 실행될 수 있다. 이와 같은 하드웨어나 소프트웨어에 기반하여 본 발명에 따른 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템은 그 구현이 가능하며, 공지된 바의 상기 일반적인 기술은 구성요소의 설명과 이해의 편의 및 불필요한 중복 설명 등을 피하기 위해 자세한 설명은 생략한다.
이하, 본 발명을 구체적인 내용이 첨부된 도면에 의거하여 상세히 설명한다.
도 1은 본 발명에 따른 감염 확인 시스템의 일 실시예를 도시한 블록도이다.
도 1을 참조하면, 본 실시의 악성코드 감염 확인 시스템(100)은, 매크로 함수 정책 및 악성코드 정보를 저장하는 코드정보 제1,2저장부(110, 110'); 보안부(S)의 코드정보 제1저장부(110)에 저장된 악성코드를 기준으로 입력 프로세서(300)의 문서파일 입력 이벤트를 확인해서, 상기 문서파일의 매크로 함수를 추출하고 악성코드를 검출하는 매크로 검출모듈(120); 악성코드가 검출된 매크로 함수를 커스텀 함수로 변경하는 제1보안처리모듈(140); 실행부(P)의 코드정보 제2저장부(110')에서 매크로 함수 정책과 악성코드 정보를 검색하며, 상기 검색 결과에 따라 해당 매크로 함수의 차단 여부를 결정하는 제2보안처리모듈(140'); 매크로 검출모듈(120) 및 제1보안처리모듈(140)과, 제2보안처리모듈(140')의 프로세싱 과정에서 이루어지는 알림 표출 기능의 UI모듈(130);을 포함한다.
여기서 본 실시의 악성코드 감염 확인 시스템(100)은 보안부(S)와 실행부(S)로 분리되어서 각 부(S, P)가 독립적으로 프로세싱되고, 보안부(S)는 코드정보 제1저장부(110)와 매크로 검출모듈(120)과 제1보안처리모듈(140)과 UI모듈(130)로 구성되며, 실행부(P)는 코드정보 제2저장부(110')와 제2보안처리모듈(140)과 UI모듈로 구성된다. 따라서 보안부(S)와 실행부(P)는 하나의 단말(컴퓨터 또는 서버)에 구성될 수도 있고, 서로 다른 단말에 분리해 구성될 수도 있다(제1실시 예).
하지만 이에 한정하지 않고, 본 발명의 악성코드 감염 확인 시스템(100)은 보안부(S)와 실행부(S)가 구분없이 일체로 구성되고, 코드정보 제1,2저장부(110, 110')와 제1,2보안처리모듈(140, 140')과 UI모듈(130) 각각이 상호 구분없이 악성코드 감염 확인 시스템(100)에 구성될 수도 있다(제2실시 예).
하기 청구항의 청구권리에서는 코드정보 제1,2저장부(110, 110')와 제1,2보안처리모듈(140, 140')과 UI모듈(130)을 '제1'과 '제2'로 구분하지 않았고, 보안부(S)와 실행부(S)도 구분하지 않았다. 하지만, 이러한 하기 청구권리의 구성은 '제2실시 예'로 한정한 것은 아니며 '제1실시 예'도 청구권리에 포함됨을 분명히 한다.
각 구성 모듈을 좀 더 설명하면, 코드정보 제1,2저장부(110, 110')는 매크로 함수에 설정된 보안 정책 정보와 악성코드에 관한 정보 등을 저장하며, 특히 보안 정책 정보는 매크로 함수가 실행 차단 대상인지 여부와, 차단 대상인 경우 차단 정도는 어느 정도인지 등의 정보를 포함한다. 또한 코드정보 제1,2저장부(110, 110')에 저장된 악성코드 정보는 지속적으로 업데이트 되어서, 매크로 검출모듈(120)이 지속해서 생성 및 발전하는 신생 악성코드를 검출할 수 있도록 한다.
매크로 검출모듈(120)은 컴퓨터의 OS(200; Operating System)와 통신하며 입력 프로세서(300)를 통한 문서파일의 입력 이벤트를 확인하고, 입력 이벤트 대상인 문서파일의 매크로 함수를 추출한다. 또한, 매크로 검출모듈(120)은 추출된 매크로 함수에서 악성코드 여부를 검출하고, 악성코드가 검출되면 해당 매크로 함수에 보안 정책을 설정해서 코드정보 제1저장부(110)에 저장한다. 여기서 입력 프로세서(300)는 CD 드라이브, USB 드라이브, 온라인 다운로드를 위한 웹브라우저, PtP 장치 등 다양한 종류의 하드웨어 및 소프트웨어일 수 있고, OS(200)는 입력 프로세서(300)와 연동하며 문서파일의 입력 이벤트를 매크로 검출모듈(120)에 전달한다.
보안부(S)의 제1보안처리모듈(140)은 매크로 함수에서 악성코드가 검출되면, 해당 매크로 함수를 커스텀 함수로 변경하여 분류한다. 이후 실행부(P)에서 후속으로 매크로 함수의 실행이 시도되면 제2보안처리모듈(140')은 해당 매크로 함수의 보안 대상 여부를 확인할 수 있고, 필요한 경우에는 해당 매크로 함수의 보안 등급도 확인할 수 있다. 매크로 함수의 보안 대상 여부 및 보안 등급 등이 확인되면 해당 매크로 함수의 차단 여부를 결정하고, 해당 매크로 함수의 차단 등급이 지정 등급 범위 이내인 경우에는 작업자의 선택에 의존해서 실행 차단을 위한 후속 프로세싱을 진행한다.
UI모듈(130)은 OS(200) 및 워드프로세서(400)와 연동해서 악성코드 보안에 대한 안내멘트 등을 표출한다. 일반적으로 시각적 알림을 위하여 알림창(도 3 참조)을 표시할 수도 있고, 경고음 및 기타 다양한 방식으로 매크로 함수의 악성코드 감염 사실을 작업자에게 통지할 수 있다.
도 2는 본 발명에 따른 감염 확인 방법의 일 실시 예가 보안대상 문서파일을 확인해서 해당 매크로 함수를 커스텀 함수로 변경하는 과정을 순차로 도시한 플로차트이다.
도 1 내지 도 2를 참조해서 설명한다.
S10; 문서파일 수신 단계
작업자는 문서파일을 이용한 작업을 위해서 새로운 문서파일을 작성하거나 외부로부터 작업 대상 문서파일을 입력할 수 있다. 매크로의 설정이 없는 새로운 문서파일을 시작으로 작업할 경우에는 매크로 함수의 악성코드 감염 가능성이 없거나 낮으므로, 신생 문서파일의 매크로 보안에 대한 설명은 생략한다.
매크로 검출모듈(120)은 입력 프로세서(300)를 통한 문서파일의 입력 이벤트를 OS(200)로부터 확인한다. 문서파일의 입력 이벤트는 입력 대상 파일의 포맷과 확장자 등을 통해 문서파일임을 확인하고, 매크로 검출모듈(120)은 해당 문서파일의 분석을 위한 후속 프로세스를 진행한다.
S11; 매크로 포함 여부 확인 단계
매크로 검출모듈(120)은 확인된 문서파일의 포맷과 확장자와 헤더 구조 등을 분석해서 문서파일 구성요소들의 구조를 확인하고, 상기 확인을 통해 해당 문서파일의 매크로 포함 여부를 판단한다.
해당 문서파일이 매크로를 미포함한 것으로 확인되면, 상기 문서파일은 보안 대상이 아닌 것으로 설정하고, 해당 시스템에 저장한다(S111). 본 문서파일은 이후 문서파일 실행 시에 보안 처리를 위한 프로세스를 진행하지 않는다.
S12; 매크로 함수 추출 단계
매크로 검출모듈(120)은 문서파일의 매크로를 분석해서 매크로 함수를 추출한다. 지정된 진법으로 인코딩된 매크로의 코드를 디코딩해서 함수 형태로 표현할 수 있고, 이를 토대로 매크로 검출모듈(120)은 문서파일의 매크로를 매크로 함수로 추출한다.
S13; 악성코드 검출 단계
매크로 검출모듈(120)은 추출된 매크로 함수를 코드정보 제1저장부(110)의 악성코드 정보와 비교해서 악성 행위에 주로 사용되는 매크로 함수가 해당 문서파일에 포함된 매크로 함수에 사용되었는지 여부를 확인한다. 좀 더 설명하면, 악성코드에 감염된 매크로 함수는 특정 함수 형태로 변형되고, 따라서 동일한 매크로 기능을 하더라도 정상적인 매크로 함수와 악성 매크로 함수는 함수 형태가 달라질 수 있다. 그러므로, 매크로 검출모듈(120)은 악성코드에 감염된 매크로 함수의 형태와 동일한 매크로 함수를 확인해서 문서파일의 매크로 함수 감염 여부를 판단한다.
참고로, 악성코드에 감염된 매크로 함수는 특정 형식을 유지하며 확산되므로, 코드정보 제1저장부(110)는 해당 형식의 매크로 함수를 저장하고, 매크로 검출모듈(120)은 코드정보 제1저장부(110)에 저장된 악성 매크로 함수와 문서파일의 매크로 함수를 비교해서 매크로 함수의 악성코드 감염 여부를 체크한다.
판단 결과, 해당 문서파일의 매크로 함수에 악성코드가 미검출되면, 상기 문서파일은 보안 대상이 아닌 것으로 설정하고, 해당 시스템에 저장한다(S111). 이후 문서파일 실행 시에 보안 처리를 위한 프로세스를 진행하지 않는다.
한편, 매크로 검출모듈(120)은 매크로 함수에서 검출된 악성코드를 위험정도에 따라 등급화할 수 있다. 일 예를 들어 설명하면, 매크로 함수에 구성된 악성코드가 돌(Stoned) 바이러스나 예루살렘(Jerusalem) 바이러스 등과 같이 원시적인 악성코드이거나 시스템에 큰 영향을 주지 않는 악성코드 등으로 분류된 경우에는, 매크로 검출모듈(120)이 매크로 함수의 실행 여부를 작업자가 결정할 수 있도록 하고, 랜섬웨어 및 기타 시스템에 큰 영향을 주는 악성코드 등인 경우에는 작업자의 결정과는 상관없이 해당 매크로 함수의 실행 제한을 강제한다. 이러한 차별화를 통해서 문서파일 작업자는 현재 자신의 상황에 맞춰서 매크로 함수의 실행 여부를 결정할 수 있다.
그런데, 매크로 검출모듈(120)의 등급화는 문서파일 실행 시에 이루어질 수도 있다.
S14; 커스텀 함수로 변경하는 단계
한편, 보안부(S)의 제1보안처리모듈(140)은 해당 문서파일의 매크로 함수에 악성코드가 검출되면, 상기 문서파일이 보안 대상인 것으로 설정하고 해당 문서파일의 매크로 함수를 커스텀 함수로 변경한다. 커스텀 함수로 변경된 매크로 함수는 실행부(P)에서 문서파일 및 매크로 함수 실행 시 제2보안처리모듈(140')에 의해 인식되어서 실행 여부 등이 직접 제어될 수 있다.
이상 설명한 바와 같이, 전술한 절차에 따라 가공된 매크로 함수를 갖는 문서파일은 해당 시스템에 저장 및 관리된다.
도 3은 본 발명에 따른 감염 확인 방법의 일 실시 예가 보안대상 문서파일을 실행하는 과정을 순차로 도시한 플로차트이고, 도 4는 본 발명에 따른 감염 확인 방법에 따른 프로세싱 중에 표출된 알림 UI의 일 예를 보인 이미지이다.
도 1 내지 도 4를 참조하여 설명한다.
S15; 문서파일 실행 단계
실행부(P)에서 작업자는 시스템에 저장 및 관리되는 문서파일을 워드프로세서(400)를 통해 검색 및 실행한다.
전술한 바와 같이, 보안대상으로 확인된 매크로 함수를 갖는 문서파일은 해당 매크로 함수를 커스텀 함수로 변경해 저장하므로, 이후 작업자는 필요한 문서파일을 관련 워드프로세서(400)를 통해 로딩할 수 있다.
S151; 매크로 확인 단계
제2보안처리모듈(140')은 검색된 문서파일의 매크로 변경 여부를 확인해서 미변경 매크로로 확인되면, 워드프로세서(400)는 후속 절차 없이 해당 문서파일을 실행한다(S152).
S16; 지정 매크로 확인 단계
제2보안처리모듈(140')은 검색된 문서파일의 매크로가 변경된 매크로로 확인되면, 워드프로세서(400)의 프로세싱을 실시간으로 체크하며 매크로 함수의 실행 이벤트를 확인한다. 확인 결과, 매크로 함수의 실행 이벤트가 발생하면, 상기 이벤트를 인터럽트해서 해당 매크로 함수의 커스텀 함수 변경 여부를 체크한다.
체크 결과, 제2보안처리모듈(140')은 상기 매크로 함수가 커스텀 함수가 아닌 일반 매크로 함수인 경우에는 그 실행을 속행한다. 하지만, 상기 매크로 함수가 커스텀 함수인 경우에는 매크로 함수가 악성인 것으로 간주하고 후속 프로세스를 진행한다.
S17; 매크로 함수 정책 확인 단계
제2보안처리모듈(140')은 악성인 것으로 확인되어 커스텀 함수로 변경된 매크로 함수를 분석하고 코드정보 제2저장부(110') 또는 자체 보안 정책을 검색한다.
일 예를 들어 좀 더 구체적으로 설명하면, 제2보안처리모듈(140')은 워드프로세서(400)의 실행 대상 매크로 함수가 악성인 것으로 인지하고 커스텀 함수로 변경했으나, 코드정보 제2저장부(110')에서 확인한 결과 실행 제한 대상이 아닌 경우로 판정될 수 있다. 이 경우 제2보안처리모듈(140')은 실행 대상 매크로 함수를 정상으로 판단하고 매크로 함수의 실행을 속행한다. 하지만, 코드정보 제2저장부(110')에서 확인한 결과 실행 제한 대상인 경우로 판정되면, 실행 대상 매크로 함수를 위험으로 판단하고 매크로 함수의 실행 제한을 속행한다.
이외에도 상기 보안 정책은 악성 매크로 함수의 위험도가 등급화되도록 설정되어서, 제2보안처리모듈(140')이 커스텀 함수로 변경된 매크로 함수의 위험도 등급을 보안정책에 따라 확정할 수 있다. 본 실시에서 매크로 함수의 위험도 등급은 실행을 강제로 차단하는 등급과, 작업자에 의해 선택적으로 차단하는 등급과, 정상적으로 실행시키는 등급으로 분류했다. 따라서 제2보안처리모듈(140')은 실행 대상 매크로 함수의 위험도 등급을 상기 보안 정책에 따라 확인해서 확정한다.
이상 설명한 악성 매크로 함수에 감염된 악성코드의 위험도를 등급화해서 분류하는 프로세싱은 본 단계(S17)에서 제2보안처리모듈(140')에 의해 이루어질 수도 있으나, 전술한 바와 같이 악성코드 검출 단계(S13)에서 보안부(S)의 매크로 검출모듈(120)에 의해 이루어질 수도 있다.
S18; 차단 대상 확인 단계
제2보안처리모듈(140')의 확인 결과, 실행 대상 매크로 함수의 위험도가 실행을 강제로 차단하는 등급으로 확정되면, 제2보안처리모듈(140')은 해당 마크로 함수의 실행을 강제 차단하고, 실행부(P)의 UI모듈(미도시함)은 도 4의 (a)도면과 같이 알림창을 팝업해서 작업자에게 강제 차단과 차단 이유 등을 통지한다(S191).
S19; 실행 여부 선택 단계
제2보안처리모듈(140')의 확인 결과, 실행 대상 매크로 함수의 위험도가 실행을 선택적으로 차단하는 등급으로 확정되면, 제2보안처리모듈(140')은 해당 매크로 함수의 실행을 중단하고, 상기 UI모듈은 도 4의 (b)도면과 같이 알림창을 팝업해서 작업자에게 해당 매크로 함수의 실행 여부를 질의한다.
질의 결과, 작업자가 실행 차단을 선택하면, 제2보안처리모듈(140')은 해당 매크로 함수의 실행을 중단하고, 상기 UI모듈은 도 4의 (a)도면과 같이 알림창을 팝업해서 작업자에게 강제 차단과 차단 이유 등을 통지한다(S191).
S20; 매크로 함수 실행 단계
상기 질의 결과, 작업자가 실행 허용을 선택하면, 제2보안처리모듈(140')은 매크로 함수의 중단을 해제하고, 워드프로세서(400)는 해당 매크로 함수를 실행한다.
이후 지속적인 워드 작업 과정에서 매크로 함수의 실행이 후속으로 시도되면(S21), 제2보안처리모듈(140')은 매크로 실행 단계(S16)을 반복해 진행한다.
앞서 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예들을 참조해 설명했지만, 해당 기술분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술될 특허청구범위에 기재된 본 발명의 사상 및 기술영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.

Claims (7)

  1. 컴퓨터 OS와 연동하는 매크로 검출모듈이 입력 프로세서로 입력되는 문서파일을 확인하는 제1 확인 단계;
    상기 매크로 검출모듈이 문서파일에 구성된 매크로 함수를 코드정보 저장부에 저장된 악성코드 정보에 따라 탐색해서 추출하는 추출 단계;
    추출된 상기 매크로 함수의 악성코드를 매크로 검출모듈이 검출하는 검출 단계;
    보안처리모듈이 악성코드가 검출된 매크로 함수를 커스텀 함수로 변경하는 함수 설정 단계;
    상기 보안처리모듈이 문서파일 실행 시 문서파일에 커스텀 함수의 존재 여부를 확인해서 커스텀 함수가 미확인되면 후속 절차 없이 문서파일을 실행하고, 상기 커스텀 함수가 확인되면 해당하는 매크로 함수의 실행 이벤트를 확인해서 위험도에 따라 강제 차단 등급과 선택적 차단 등급과 정상 실행 등급으로 분류해 확정하는 제2 확인 단계;
    상기 보안처리모듈이 실행 대상 매크로 함수의 등급을 확인해서 강제 차단 등급으로 확인되면 매크로 함수의 실행을 강제 차단하고, 실행 대상 매크로 함수의 등급이 선택적 차단 등급으로 확인되면 해당 매크로 함수의 실행 여부를 질의하여 실행 여부를 결정하는 실행 선택 단계; 및
    상기 실행 선택 단계에서 해당 매크로 함수의 실행이 선택값으로 수집되면, 상기 보안처리모듈은 매크로 함수의 중단을 해제하고, 워드프로세서는 상기 문서파일의 해당 매크로 함수를 실행하는 단계;
    를 포함하는 것을 특징으로 하는 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 삭제
  7. 삭제
KR1020190133448A 2019-10-25 2019-10-25 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템 Active KR102284646B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020190133448A KR102284646B1 (ko) 2019-10-25 2019-10-25 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템
JP2020178133A JP7657415B2 (ja) 2019-10-25 2020-10-23 文書ファイルに構成されたマクロのマルウェア感染確認方法及びシステム
US17/078,908 US20210124827A1 (en) 2019-10-25 2020-10-23 Method and system for checking malware infection of macro included in document file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190133448A KR102284646B1 (ko) 2019-10-25 2019-10-25 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템

Publications (2)

Publication Number Publication Date
KR20210049308A KR20210049308A (ko) 2021-05-06
KR102284646B1 true KR102284646B1 (ko) 2021-08-03

Family

ID=75585906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190133448A Active KR102284646B1 (ko) 2019-10-25 2019-10-25 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템

Country Status (3)

Country Link
US (1) US20210124827A1 (ko)
JP (1) JP7657415B2 (ko)
KR (1) KR102284646B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114065203B (zh) * 2021-11-29 2025-02-14 绿盟科技集团股份有限公司 富文本文档的风险检测方法、装置及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018508054A (ja) * 2014-11-26 2018-03-22 グラスウォール・(アイピー)・リミテッド ファイルベースコンテンツが持つリスク判定のための統計分析手法
KR101851233B1 (ko) * 2018-02-13 2018-04-23 (주)지란지교시큐리티 파일 내 포함된 악성 위협 탐지 장치 및 방법, 그 기록매체

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080083012A1 (en) * 2006-06-26 2008-04-03 Dachuan Yu Program instrumentation method and apparatus for constraining the behavior of embedded script in documents
US8713584B2 (en) * 2009-08-13 2014-04-29 Google Inc. Event-triggered server-side macros
CN102663296B (zh) 2012-03-31 2015-01-07 杭州安恒信息技术有限公司 面向网页JavaScript恶意代码的智能检测方法
CN103810428B (zh) * 2014-02-24 2017-05-24 珠海市君天电子科技有限公司 一种宏病毒检测方法及装置
JP6297425B2 (ja) 2014-06-25 2018-03-20 エヌ・ティ・ティ・コミュニケーションズ株式会社 攻撃コード検出装置、攻撃コード検出方法、及びプログラム
KR101745873B1 (ko) 2015-12-18 2017-06-27 고려대학교 산학협력단 악성 문서 파일 식별 시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018508054A (ja) * 2014-11-26 2018-03-22 グラスウォール・(アイピー)・リミテッド ファイルベースコンテンツが持つリスク判定のための統計分析手法
KR101851233B1 (ko) * 2018-02-13 2018-04-23 (주)지란지교시큐리티 파일 내 포함된 악성 위협 탐지 장치 및 방법, 그 기록매체

Also Published As

Publication number Publication date
KR20210049308A (ko) 2021-05-06
US20210124827A1 (en) 2021-04-29
JP2021068452A (ja) 2021-04-30
JP7657415B2 (ja) 2025-04-07

Similar Documents

Publication Publication Date Title
Yakura et al. Malware analysis of imaged binary samples by convolutional neural network with attention mechanism
JP7023259B2 (ja) 悪意あるファイルを検出するためのシステムおよび方法
US11188649B2 (en) System and method for classification of objects of a computer system
US9553889B1 (en) System and method of detecting malicious files on mobile devices
WO2020108357A1 (zh) 一种程序分类模型训练方法、程序分类方法及装置
US10956151B2 (en) Apparatus and method for identifying constituent parts of software binaries
Rohith et al. A comprehensive study on malware detection and prevention techniques used by anti-virus
CN111651768B (zh) 计算机二进制程序的链接库函数名识别方法及装置
US12493693B2 (en) Systems and methods for selecting client backup files for maliciousness analysis
EP3792799B1 (en) System and method of reducing a number of false positives in classification of files
US20200257811A1 (en) System and method for performing a task based on access rights determined from a danger level of the task
EP3113065A1 (en) System and method of detecting malicious files on mobile devices
KR102284646B1 (ko) 문서 파일에 구성된 매크로의 악성코드 감염 확인 방법과 시스템
EP3767507A1 (en) Data processing method against ransomware, program for executing same, and computer-readable recording medium with program recorded thereon
US11366902B2 (en) System and method of detecting malicious files based on file fragments
Rimon et al. Malware detection and classification using hybrid machine learning algorithm
JP7314243B2 (ja) マルウェアの悪意ある行為フィーチャー情報を生成する方法
US11222113B1 (en) Automatically generating malware definitions using word-level analysis
US11941118B2 (en) System and method to build robust classifiers against evasion attacks
WO2022264331A1 (ja) 攻撃検知装置、敵対的サンプルパッチ検知システム、攻撃検知方法、及び、攻撃検知プログラム
CN113110986A (zh) 一种WebShell脚本文件的检测方法及系统
KR101880689B1 (ko) 악성코드 진단장치 및 방법
JP7101920B2 (ja) 攻撃検知システム、攻撃検知方法および攻撃検知プログラム
EP3694176A1 (en) System and method for performing a task based on access rights determined from a danger level of the task
CN118916880B (zh) 一种u盘隔离病毒数据传输方法、系统和u盘

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PN2301 Change of applicant

St.27 status event code: A-3-3-R10-R13-asn-PN2301

St.27 status event code: A-3-3-R10-R11-asn-PN2301

D13-X000 Search requested

St.27 status event code: A-1-2-D10-D13-srh-X000

D14-X000 Search report completed

St.27 status event code: A-1-2-D10-D14-srh-X000

PE0902 Notice of grounds for rejection

St.27 status event code: A-1-2-D10-D21-exm-PE0902

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000