KR102017016B1 - 악성프로그램 처리장치 및 처리방법 - Google Patents

악성프로그램 처리장치 및 처리방법 Download PDF

Info

Publication number
KR102017016B1
KR102017016B1 KR1020170106037A KR20170106037A KR102017016B1 KR 102017016 B1 KR102017016 B1 KR 102017016B1 KR 1020170106037 A KR1020170106037 A KR 1020170106037A KR 20170106037 A KR20170106037 A KR 20170106037A KR 102017016 B1 KR102017016 B1 KR 102017016B1
Authority
KR
South Korea
Prior art keywords
file
program
redirection
monitored
malicious
Prior art date
Application number
KR1020170106037A
Other languages
English (en)
Other versions
KR20190020999A (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 KR1020170106037A priority Critical patent/KR102017016B1/ko
Publication of KR20190020999A publication Critical patent/KR20190020999A/ko
Application granted granted Critical
Publication of KR102017016B1 publication Critical patent/KR102017016B1/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/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/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Virology (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 컴퓨터 시스템에 접근하여 파일 오픈을 요청하는 프로그램(110)이 감시대상 프로그램인가 여부를 감시필터(130)가 확인하고, 확인 결과 감시대상 프로그램이 아닐 때에는 원본데이터 저장수단(150)이 보유하는 원본 파일에 대해 정상적으로 파일 수정을 할 수 있도록 하고, 반대로, 파일 오픈을 요청하는 프로그램이 감시대상 프로그램으로 판정된 때에는 감시필터(130)는 원본데이터 저장수단(150)에 저장된 원본 파일의 복사본인 리다이렉션 파일을 새로 생성하여 원본 파일의 저장경로와는 다른 경로인 리다이렉션 데이터 저장수단(160)에 저장하며, 감시대상 프로그램은 리다이렉션 데이터 저장수단(160)에 저장된 리다이렉션 파일에 대해서만 파일 수정을 할 수 있도록 한다. 또, 리다이렉션 파일에 대한 유효성 검증 결과, 유효성이 있으면 그 리다이렉션 파일을 원본 파일과 병합하고, 유효성이 없으면 리다이렉션 데이터 저장수단(160)에서 삭제한다.

Description

악성프로그램 처리장치 및 처리방법{APPARATUS AND METHOD FOR MALWARE}
본 발명은 악성프로그램 처리장치 및 처리방법에 관한 것으로, 특히, 컴퓨터 시스템으로 접근하는 파일이 악성코드 등에 감염된 악성프로그램으로 의심되어서 감시가 필요한 감시대상 프로그램일 경우에 이 감시대상 프로그램에 의해 수정된 파일을 리다이렉션 경로에서 관리하도록 함으로써 시스템을 악성프로그램으로부터 안전하게 보호하도록 하는 악성프로그램 처리장치 및 처리방법에 관한 것이다.
컴퓨터 바이러스, 웜, 트로이 목마, 또는 스파이웨어와 같이, 사용자 몰래 컴퓨터 시스템에 침투하여 피해를 주는 이른바 악성프로그램의 탐지방법으로 시그니처(signature) 기반의 정적 탐지방법과 악성프로그램의 행위를 기반으로 한 행위기반 탐지방법이 있다.
이들 방법 중 실행되는 프로그램의 행위를 분석하여 악성 여부를 탐지하는 행위기반 탐지방법으로 예를 들어 특허문헌 1, 2 등에 기재된 다양한 탐지방법이 있다.
특허문헌 1에서는 분석의 대상이 되는 파일(프로그램)의 실행 시에 호출되는 API와 파라미터를 분석하여 행위의 위험점수를 측정하고, 측정된 위험점수를 합산하여 파일의 위험정도를 계산함으로써 그 파일이 악성프로그램인가 여부를 확인하도록 하고 있다.
또, 특허문헌 2에서는 프로세스(프로그램)가 실행되는 과정에서 수집된 특성 인자 정보를 이용하여 특징벡터를 생성하고, 생성된 특징벡터를 이용하여 프로세스에 악성코드가 포함되어 있는가 여부를 탐지하도록 하고 있다.
그러나 특허문헌 1, 2를 포함한 공지의 행위기반 탐지방법에서는 실행되는 프로그램이 악성프로그램으로 확인되기 전에 수행한, 예를 들어 원본 파일의 수정이나 삭제, 경로 변경과 같은 행위들에 대해서는 치료나 복원이 어렵다는 문제가 있다.
등록특허 10-1404882호 공보(2014. 6. 11. 공고) 공개특허 10-2017-81386호 공보(2017.07.12. 공개)
본 발명은 종래기술의 상기 문제점을 감안하여 이루어진 것으로, 의심되는 프로그램의 시스템 리소스 조작 행위들에 대해서는 본래의 시스템 리소스와 분리시켜서 관리하고, 그 후에 그 프로그램이 악성프로그램으로 확인된 경우에는 분리되어 관리되던 리소스를 제거함으로써 악성프로그램이 실행되기 전의 환경으로 시스템을 유지시키도록 하는 악성프로그램 처리장치 및 처리방법을 제공하는 것을 목적으로 한다.
상기 과제를 해결하기 위한 본 발명의 악성프로그램 처리장치는, 컴퓨터 시스템으로 접근하여 파일 오픈 요청을 하는 프로그램이 악성프로그램으로 의심되는 감시대상 프로그램인가 여부를 확인하는 감시필터와, 상기 감시대상 프로그램 여부를 판단하기 위한 감시대상항목을 보유하는 감시대상항목 데이터베이스를 포함하며, 상기 감시필터는, 상기 파일 오픈 요청을 하는 프로그램이 상기 감시대상항목 중 어느 하나 이상에 해당하면 그 프로그램을 감시대상 프로그램으로 판정하고, 상기 감시대상 프로그램이 오픈 요청을 한 파일의 원본 파일을 복사하여 리다이렉션 파일을 생성하며, 생성한 상기 리다이렉션 파일을 상기 원본 파일의 파일 경로와는 다른 경로인 리다이렉션 경로에 저장한다.
또, 상기 과제를 해결하기 위한 본 발명의 악성프로그램 처리방법은, 컴퓨터 시스템으로 접근하여 파일 오픈 요청을 하는 프로그램이 악성프로그램으로 의심되는 감시대상 프로그램인가 여부를 판단하는 단계 a)와, 상기 단계 a)의 판단 결과 상기 파일 오픈 요청을 한 프로그램이 감시대상 프로그램인 때에는 그 프로그램이 오픈 요청한 파일의 원본 파일을 복사하여 리다이렉션 파일을 생성하는 단계 b)와, 생성한 상기 리다이렉션 파일을 상기 원본 파일의 파일 경로와는 다른 경로인 리다이렉션 경로에 저장하는 단계 c)를 포함한다.
이와 같이 본 발명은 정상프로그램에 의해 파일 수정이 이루어진 파일과 악성프로그램으로 의심되는 감시대상 프로그램에 의해 파일 수정이 이루어진 파일을 서로 다른 경로에 분리하여 보관하도록 함으로써 악성프로그램으로 의심되는 프로그램에 의해 수정된 파일과 정상프로그램에 의해 수정된 파일을 서로 분리하여 관리할 수 있는 동시에, 리다이렉션 파일의 유효성 검증 결과 유효성이 없는 것으로 판명된 때에는 유효성이 없는 리다이렉션 파일을 시스템으로부터 삭제하는 등에 의해 간단하게 처리할 수 있으므로 시스템을 악성프로그램으로부터 안전하게 보호할 수 있다.
도 1은 본 발명의 바람직한 실시형태의 악성프로그램 처리장치를 나타내는 블록도,
도 2는 본 발명의 바람직한 실시형태의 악성프로그램 처리방법의 흐름을 나타내는 플로차트,
도 3은 파일의 유효성을 검증하는 파일 유효성 검증방법의 흐름을 나타내는 플로차트이다.
이하, 본 발명의 바람직한 실시형태에 대해서 첨부 도면을 참조하면서 상세하게 설명한다.
먼저, 본 발명의 바람직한 실시형태의 악성프로그램 처리장치에 대해서 설명한다. 도 1은 본 발명의 바람직한 실시형태의 악성프로그램 처리장치를 나타내는 블록도이다.
본 실시형태에서의 악성프로그램 처리장치(100)는 정상프로그램(application)이 사용하는 리소스(resource)와 악성프로그램이 사용하는 리소스를 서로 분리하여 관리하는 리다이렉션(redirection) 기법을 이용하며, 이를 위해 사용자 모드(user mode)에서 실행되는 프로그램(110)과 커널 모드(kernel mode)의 실제 데이터 사이의 행위를 감시하는 기능을 하는 필터에 리다이렉션 기능을 추가하여 감시필터(130)를 구성하고, 이 감시필터(130)에 의해 실제 데이터와 악성프로그램이 사용하는 리소스를 분리하여 관리하도록 함으로써 컴퓨터 시스템 내의 리소스들을 안전하게 보호할 수 있도록 한다.
상기 기능을 실행하는 본 실시형태의 악성프로그램 처리장치(100)는 컴퓨터 시스템 내에 설치되며, 도 1에 나타내는 것과 같이, 감시필터(130)와 감시대상항목 데이터베이스(140)와 원본데이터 저장수단(150)과 리다이렉션 데이터 저장수단(160)과 리다이렉션 정보 메모리(170)를 포함한다.
감시필터(130)는 윈도 OS(Windows Operating System)에서 제공되는 미니필터에 리다이렉션 기능을 추가한 것이며, 컴퓨터 시스템에 접근하여 어떤 작업을 실행하기 위해 파일의 오픈(file open)을 요청하는 모든 프로그램(110)에 대해 그 프로그램(110)이 악성코드의 감염이 의심되는 프로그램, 즉, 감시대상 프로그램인가 여부를 판단하고, 감시대상 프로그램인 때에는 원본 파일을 복사한 리다이렉션 파일을 원본 파일의 경로와는 다른 경로인 리다이렉션 경로에 저장하고, 감시대상 프로그램에 의한 파일의 수정은 리다이렉션 파일에 대해서만 실행되도록 한다.
보다 상세하게는, 일반적으로 파일의 수정 등을 위해 리소스에 접근하는 프로그램(110)은 커널 모드(kernel mode)에서 수정하고자 하는 파일의 핸들을 얻어서 파일의 수정을 하게 되며, 감시필터(130)는 파일의 수정 등을 위해 사용자 모드로 접근하는 모든 프로그램 또는 스레드(thread)(본 명세서에서는 파일의 수정 등을 위해 사용자 모드로 접근하는 모든 프로그램 또는 스레드 등을 포괄하는 용어로 「프로그램」이라는 용어를 사용한다)에 대해 그 프로그램(110)이 악성코드 등에 감염된 악성프로그램일 가능성이 있어서 감시의 대상이 되는 프로그램(본 명세서에서는 이 프로그램을 「감시대상 프로그램」이라 하고, 감시대상 프로그램이 아닌 프로그램을 「정상프로그램」이라 한다)인가 여부를 판단한다.
이를 위해 악성프로그램 처리장치(100)는 감시대상항목 데이터베이스(140)를 가지고 있고, 감시대상항목 데이터베이스(140)에는 복수의 감시대상항목을 보유하고 있으며, 악성프로그램 처리장치(100)의 사용자 모드로 접근하는 프로그램(110)이 감시대상항목 데이터베이스(140)가 보유하고 있는 감시대상항목 중 어느 하나 이상에 해당하면 그 프로그램을 감시대상 프로그램으로 설정한다.
이하에 감시대상항목 데이터베이스(140)가 보유하는 감시대상항목의 예에 대해 간단하게 설명한다.
- 디지털 서명의 유무 : 대부분의 프로그램은 그 프로그램을 만든 제작사의 디지털 서명이 존재하므로, 사용자 모드로 접근하는 프로그램(110)에 디지털 서명이 있으면 정상프로그램으로 간주해도 좋다. 그러나 최근에는 디지털 서명 파일이 유출 등에 의한 디지털 서명의 변조도 이루어지고 있어서 디지털 서명이 있다는 것만으로는 무조건 신뢰할 수 없는 경우도 있으므로, 바람직하게는 디지털 서명의 유무와 함께 인증서의 서명자나 서명 내에 존재하는 다른 정보들도 함께 확인하면 신뢰도를 더 높일 수 있다.
- 실행파일 속성정보의 유효성 : 일반적인 상용 프로그램에는 파일 버전, 제작자 이름, 파일 설명과 같은 파일의 속성정보가 존재하므로, 사용자 모드로 접근하는 프로그램(110)에 이와 같은 속성정보가 포함되어 있지 않거나, 또는 그 프로그램 파일이 속성정보와 일치하지 않으면 감시대상 프로그램으로 한다.
- 파일이 실행되는 경로 : 악성프로그램의 경우는 원격지로부터 다운로드 받아서 실행되는 방법을 주로 사용하므로, 사용자 모드로 접근하는 프로그램(110)이 인터넷 Temp 폴더나 Downloads 폴더와 같은 특정 경로에서 실행되는 프로그램일 경우에는 악성프로그램일 가능성이 있으므로 감시대상 프로그램으로 한다.
- 인젝션된 스레드 여부 : 악성프로그램이 EXE, COM과 같은 실행파일이 아닌 경우에는 실행중인 다른 프로세스에 로딩시키는 방법을 사용하며(이를 'DLL 인젝션'이라고 함), 사용자 모드로 접근하는 프로그램(110)의 스레드 생성 감시에 의해 인젝션된 스레드인지 여부를 확인하여, 인젝션된 스레드일 경우에는 감시대상 프로그램으로 한다.
- 스크립트 형태 프로그램 : VBScript, WScript, powershell, php 등의 스크립트 실행 프로그램이나 java 프로그램과 같은 인터프리터를 이용한 형태의 악성 프로그램이 존재하므로, 스크립트를 실행할 수 있는 프로세스나 인터프리터의 경우 감시대상 프로그램으로 한다.
사용자 모드로 접근하는 프로그램(110)이 감시대상 프로그램으로 판정된 때에는 감시필터(130)는 그 감시대상 프로그램에 의해 이전에 리다이렉션한 리다이렉션 파일(redirection file)이 리다이렉션 데이터 저장수단(160)에 저장되어 있는가 여부를 확인한다.
확인 결과, 이전에 리다이렉션한 리다이렉션 파일이 있으면 리다이렉션 정보 메모리(170)에서 그 리다이렉션 파일의 파일정보를 취득하고, 취득한 리다이렉션 파일의 파일 정보를 적용하여 커널에서 리다이렉션 파일의 핸들을 얻어서 프로그램에 반환하며, 이에 의해 이전에 리다이렉션 데이터 저장수단(160)에 저장되어 있던 리다이렉션 파일의 파일 수정이 이루어지도록 한다.
반대로, 확인 결과, 감시대상 프로그램으로부터 이전의 파일 오픈 요청에 의해 리다이렉션한 리다이렉션 파일이 리다이렉션 데이터 저장수단(160)에 저장되어 있지 않으면, 감시필터(130)는 원본데이터 저장수단(150)에 저장되어 있는 원본 파일을 복사한 복사본 파일인 리다이렉션 파일을 생성하여 리다이렉션 데이터 저장수단(160)에 저장하는 동시에, 생성한 리다이렉션 파일의 파일정보를 리다이렉션 정보 메모리(170)에 저장한다.
그 후에, 감시필터(130)는 새로 생성한 리다이렉션 파일의 파일정보를 적용하여 커널에서 리다이렉션 파일의 핸들을 얻어서 프로그램에 반환하며, 이에 의해 새로 생성되어 리다이렉션 데이터 저장수단(160)에 저장된 리다이렉션 파일의 파일 수정이 이루어진다.
한편, 사용자 모드로 접근하는 프로그램(110)이 감시대상 프로그램인 때에는 감시필터(130)는 원본데이터 저장수단(150)에 저장되어 있는 원본 파일의 핸들을 얻어서 프로그램에 반환하며, 이에 의해 원본데이터 저장수단(150)에 저장되어 있는 원본 파일의 수정이 이루어지게 된다.
감시대상항목 데이터베이스(140)는 사용자 모드로 접근하는 프로그램(110)이 감시대상 프로그램인가 여부를 판단하기 위한 감시대상항목을 보유하며, 감시대상항목에 대해서는 앞에서 설명한 것과 같다.
원본데이터 저장수단(150)은 정상프로그램에 의해 작성 또는 수정된 원본 파일을 저장하는 데이터 저장수단이며, 예를 들어 하드디스크, CD-ROM, RAM이나 ROM과 같은 전자적 기억장치 등의 공지 구성의 저장수단을 이용할 수 있다.
리다이렉션 데이터 저장수단(160)은 감시필터(130)가 원본데이터 저장수단(150)에 저장되어 있는 원본 파일로부터 복사된 복사본인 리다이렉션 파일을 저장하는 데이터 저장수단이며, 예를 들어 하드디스크, CD-ROM, RAM이나 ROM과 같은 전자적 기억장치 등의 공지 구성의 저장수단을 이용할 수 있다. 또, 리다이렉션 데이터 저장수단(160)은 원본 파일을 저장하는 원본데이터 저장수단(150)과는 물리적으로 동일한 저장수단을 이용해도 좋고, 다른 저장수단을 이용해도 좋으나, 원본데이터 저장수단(150)과는 그 접근경로가 달라야 하며, 감시필터(130)가 감시대상 프로그램으로 판정한 프로그램에 의한 파일의 수정은 이 리다이렉션 데이터 저장수단(160)에 저장되어 있는 리다이렉션 파일에 대해서만 가능하다.
리다이렉션 정보 메모리(170)는 감시필터(130)가 원본데이터 저장수단(150)에 저장되어 있는 원본 파일로부터 복사된 복사본인 리다이렉션 파일을 생성한 경우에, 그 리다이렉션 파일의 파일정보를 저장하는 메모리이며, 리다이렉션 파일의 파일정보는 예를 들어 원본 파일의 파일 경로, 최초로 파일이 복사된 복사일자와 복사시각, 리다이렉션 파일의 이름 등이다.
다음에, 도 2를 이용하여 본 발명의 바람직한 실시형태의 악성프로그램 처리방법에 대해서 설명한다. 도 2는 본 발명의 바람직한 실시형태의 악성프로그램 처리방법의 흐름을 나타내는 플로차트이다.
먼저, 악성프로그램 처리장치(100)의 사용자 모드로 접근하는 프로그램(110)으로부터 파일의 수정 등을 위한 파일 오픈 요청이 있으면(단계 S11), 단계 S12에서 감시필터(130)는 파일 오픈 요청을 하는 프로그램이 감시대상 프로그램인가 여부를 확인한다.
단계 S12의 확인 결과, 파일 오픈 요청을 하는 프로그램이 감시대상 프로그램이 아니면(단계 S12=NO) 단계 S13으로 진행하며, 단계 S13에서 감시필터(130)는 커널에서 원본 파일의 핸들을 얻어서 프로그램(110)에 반환하고, 단계 S18에서 요청한 원본 파일을 오픈 하여 파일 내용의 수정이나 파일의 삭제 또는 변경 등의 작업을 실행하고 종료한다.
또, 단계 S12의 확인 결과, 파일 오픈 요청을 하는 프로그램이 감시대상 프로그램이면(단계 S12=YES) 단계 S14로 진행하며, 단계 S14에서 감시필터(130)는 리다이렉션 정보 메모리(170)에 저장되어 있는 리다이렉션 파일의 파일정보인 원본 파일의 파일 경로, 최초로 파일이 복사된 복사일자와 복사시각, 리다이렉션 파일의 이름 등의 정보를 확인함으로써 감시대상 프로그램이 오픈 요청을 하는 파일의 이전에 리다이렉션한 리다이렉션 파일이 있는가 여부를 확인한다.
단계 S14의 확인 결과 이전에 리다이렉션한 리다이렉션 파일이 없으면(단계 S14=NO) 감시필터(130)는 원본데이터 저장수단(150)에 저장되어 있는 원본 파일을 복사하여 새로운 리다이렉션 파일을 생성하고, 생성한 리다이렉션 파일을 리다이렉션 데이터 저장수단(160)에 저장한 후 단계 S16으로 진행하며, 단계 S16에서는 감시필터(130)는 리다이렉션 데이터 저장수단(160)에 저장한 리다이렉션 파일의 파일정보를 리다이렉션 정보 메모리(170)에 저장한 후 단계 S17로 진행한다. 앞에서도 설명한 것과 같이, 리다이렉션 파일의 파일정보는 원본 파일의 파일 경로, 최초로 파일이 복사된 복사일자와 복사시각, 리다이렉션 파일의 이름 등이다.
또, 단계 S14의 확인 결과 이전에 리다이렉션한 파일이 있으면(단계 S14=YES) 단계 S17로 진행하며, 단계 17에서 감시필터(130)는 그 리다이렉션 파일의 파일정보를 적용해서 커널에서 리다이렉션 파일의 핸들을 얻어서 프로그램에 반환하고 단계 S18로 진행하며, 단계 S18에서는 리다이렉션 파일의 수정이나 삭제, 변경과 같은 파일 수정작업을 실행하고 종료한다.
이상과 같이, 본 실시형태에서는 사용자 모드에서 접근하여 파일 오픈을 요청하는 프로그램(110)이 감시대상 프로그램인가 여부를 감시필터(130)가 확인하고, 확인 결과 감시대상 프로그램이 아닐 때에는 원본데이터 저장수단(150)이 보유하는 원본 파일에 대해 정상적으로 파일 수정을 할 수 있도록 하고, 반대로, 파일 오픈을 요청하는 프로그램이 감시대상 프로그램으로 판정된 때에는 감시필터(130)는 원본데이터 저장수단(150)에 저장된 원본 파일의 복사본인 리다이렉션 파일을 새로 생성하여 원본 파일의 경로와는 다른 경로인 리다이렉션 경로(리다이렉션 데이터 저장수단(160))에 저장하며, 감시대상 프로그램은 리다이렉션 경로에 저장된 리다이렉션 파일에 대해서만 파일 수정을 할 수 있도록 한다.
이와 같은 처리와 동시에 또는 처리가 이루어진 이후에는, 리다이렉션 경로에 보관 중인 리다이렉션 파일이 악성코드 등에 감염된 악성프로그램에 의해 수정된 파일인가 여부의 검증, 즉, 파일 유효성 검증을 하며, 검증 결과 악성프로그램에 의해 수정이 이루어진 파일로서 유효성이 없는 파일로 판명된 때에는 악성프로그램 처리장치(100)는 리다이렉션 파일의 삭제 등의 처리를 하며, 역으로, 유효성이 있는 파일로 판명되면 그 리다이렉션 파일을 원본데이터 저장수단(150)에 보관중인 원본 파일과 병합하는 등의 처리를 한다.
리다이렉션 경로에 보관 중인 리다이렉션 파일의 파일 유효성 검증은 통상의 유효성 검증절차를 통해서 이루어지며, 이하에 간략하게 설명한다. 도 3은 프로그램의 유효성을 검증하는 유효성 검증방법을 나타내는 플로차트이다.
먼저, 단계 S21에서 리다이렉션 파일의 파일 데이터를 판독하고 단계 S22로 진행하며, 단계 S22에서는 판독한 리다이렉션 파일의 파일 데이터 중 파일 헤더 값을 검증한다.
일반적으로 응용프로그램에서 사용되는 파일들은 예를 들어 jpg, exe, docx, …와 같은 특정 확장자 명을 가지고, 이와 같은 특정 확장자를 가진 파일은 파일의 진입부에 고유의 값, 즉, 파일 헤더 값을 가지며, 악성프로그램은 통상적으로 이 파일 헤더 값을 변조하므로, 리다이렉션 파일의 파일 헤더 값의 확인에 의해 파일 유효성을 검증할 수 있다.
단계 S22의 검증 결과 리다이렉션 파일이 유효한 것으로 판정되면(단계S22=YES) 단계 S23으로 진행하여 명령어 검증을 실행한다.
일부 악성프로그램은 파일의 헤더는 그대로 두고 특정한 오프셋(offset) 위치에서부터 파일을 변조하므로, 이 경우에는 파일 헤더 값의 확인 만에 의해서는 완전한 파일 유효성 검증을 할 수 없다. 따라서 단계 S22의 검증 결과 파일 헤더 값이 유효한 것으로 인정되는 경우에도 명령어형 검증코드를 적용하여 파일에 포함된 데이터를 확인함으로써 한번더 파일의 유효성 검증을 실행한다.
단계 S23의 검증 결과도 리다이렉션 파일이 유효한 것으로 판명되면 단계 S24로 진행하여 유효성이 검증된 리다이렉션 파일을 원본 파일과 병합하고 종료한다.
또, 단계 S22에서의 파일 헤더 값의 검증 결과, 또는 단계 S23에서의 명령어형 검증 결과 리다이렉션 파일이 유효성이 없는 것으로 판명되면 단계 S25로 진행하여 유효성이 없는 리다이렉션 파일을 시스템으로부터 삭제하는 등의 처리를 진행하고 종료한다.
이와 같이 본 실시형태에서는 정상프로그램에 의해 파일 수정이 이루어진 파일과 악성프로그램으로 의심되는 감시대상 프로그램에 의해 파일 수정이 이루어진 파일을 서로 다른 경로에 분리하여 보관하도록 함으로써 악성프로그램으로 의심되는 프로그램에 의해 수정된 파일과 정상프로그램에 의해 수정된 파일을 서로 분리하여 관리할 수 있는 동시에, 리다이렉션 파일의 유효성 검증 결과 유효성이 없는 것으로 판명된 때에는 유효성이 없는 리다이렉션 파일을 시스템으로부터 삭제하는 등에 의해 간단하게 처리할 수 있으므로 시스템을 악성프로그램으로부터 안전하게 보호할 수 있다.
이상, 본 발명을 바람직한 실시형태에 의해 설명하였으나, 본 발명은 상기 실시형태에 한정되는 것은 아니며, 청구범위에 기재된 발명의 범위 내에서 다양한 변경이나 변형이 가능하다.
상기 실시형태에서는 시스템의 사용자 모드로 접근하는 프로그램(110)이 감시대상항목 데이터베이스(140)가 보유하는 감시대상항목 중 어느 하나 이상에 해당하는 프로그램인가 여부를 확인함으로써 감시대상 프로그램 여부를 판정하는 것으로 설명하였으나, 예를 들어 앞에서 설명한 파일의 유효성 검증과정이나, 또는 다른 과정에서 악성코드 등에 감염되지 않은 것으로 판정된 프로그램(본 명세서에서는 이 프로그램을 「정상적인 프로그램」이라고 하며, 감시대상 프로그램이 아닌 프로그램을 가리키는 「정상프로그램」과는 구별되는 용어이다)을 별도의 데이터베이스 등에 의해 관리하도록 하고, 시스템의 사용자 모드로 접근하는 프로그램(110)이 이 데이터베이스에 있으면 그 프로그램을 정상프로그램으로 판정하도록 해도 좋다.
또, 상기 과정에서 악성프로그램으로 판정된 프로그램에 대해서는 악성프로그램 데이터베이스에 의해 관리하도록 하고, 시스템의 사용자 모드로 접근하는 프로그램(110)이 악성프로그램 데이터베이스에 있으면 그 프로그램을 감시대상 프로그램으로 판정하도록 해도 좋다.
또, 상기 실시형태와 상기 변형 예는 따로따로 실시해도 좋고, 서로 조합하여 실시해도 좋다.
100 악성프로그램 처리장치
110 프로그램
130 감시필터
140 감시대상항목 데이터베이스
150 원본데이터 저장수단
160 리다이렉션 데이터 저장수단
170 리다이렉션 정보 메모리

Claims (11)

  1. 컴퓨터 시스템으로 접근하여 파일 오픈 요청을 하는 프로그램이 악성프로그램으로 의심되는 감시대상 프로그램인가 여부를 확인하는 감시필터와,
    상기 감시대상 프로그램 여부를 판단하기 위한 감시대상항목을 보유하는 감시대상항목 데이터베이스를 포함하며,
    상기 감시필터는,
    상기 파일 오픈 요청을 하는 프로그램이 상기 감시대상항목 중 어느 하나 이상에 해당하면 그 프로그램을 감시대상 프로그램으로 판정하고,
    상기 감시대상 프로그램이 오픈 요청을 한 파일의 원본 파일을 복사하여 리다이렉션 파일을 생성하며,
    생성한 상기 리다이렉션 파일을 상기 원본 파일의 파일 경로와는 다른 경로인 리다이렉션 경로에 저장하고,
    상기 리다이렉션 경로에 저장된 상기 리다이렉션 파일을 이용하여 파일 수정을 하며,
    상기 감시대상항목은 디지털 서명의 유무, 실행파일 속성정보의 유효성, 파일이 실행되는 경로, 인젝션된 스레드 여부 중 하나 이상인 악성프로그램 처리장치.
  2. 청구항 1에 있어서,
    상기 감시필터는 상기 리다이렉션 파일을 생성하기 전에, 상기 감시대상 프로그램에 의해 이전에 생성된 리다이렉션 파일이 있는가 여부를 더 확인하고,
    이전에 생성된 리다이렉션 파일이 있으면 그 리다이렉션 파일을 이용하여 파일 수정이 이루어지도록 하는 악성프로그램 처리장치.
  3. 청구항 2에 있어서,
    상기 리다이렉션 파일의 파일정보를 저장하는 리다이렉션 정보 메모리를 더 포함하며,
    상기 이전에 생성된 리다이렉션 파일의 유무는 상기 리다이렉션 파일의 파일정보에 의해 확인하는 악성프로그램 처리장치.
  4. 삭제
  5. 청구항 1에 있어서,
    상기 악성프로그램 처리장치는 상기 리다이렉션 파일의 유효성 검증을 더 실행하고,
    검증 결과 유효성이 없는 파일인 때에는 상기 리다이렉션 파일을 삭제하는 악성프로그램 처리장치.
  6. 청구항 1에 있어서,
    상기 악성프로그램 처리장치는 상기 리다이렉션 파일의 유효성 검증을 더 실행하고,
    검증 결과 유효성이 있는 파일인 때에는 상기 리다이렉션 파일을 상기 원본 파일과 병합하는 악성프로그램 처리장치.
  7. 컴퓨터 시스템으로 접근하여 파일 오픈 요청을 하는 프로그램이 악성프로그램으로 의심되는 감시대상 프로그램인가 여부를 판단하기 위한 감시대상항목을 보유하는 악성프로그램 처리장치에 의한 악성 프로그램 처리방법으로,
    컴퓨터 시스템으로 접근하여 파일 오픈 요청을 하는 프로그램이 악성프로그램으로 의심되는 감시대상 프로그램인가 여부를 판단하는 단계 a)와,
    상기 단계 a)의 판단 결과 상기 파일 오픈 요청을 한 프로그램이 감시대상 프로그램인 때에는 그 프로그램이 오픈 요청한 파일의 원본 파일을 복사하여 리다이렉션 파일을 생성하는 단계 b)와,
    생성한 상기 리다이렉션 파일을 상기 원본 파일의 파일 경로와는 다른 경로인 리다이렉션 경로에 저장하는 단계 c)와,
    상기 리다이렉션 경로에 저장된 상기 리다이렉션 파일을 이용하여 파일의 수정을 하는 단계를 포함하며,
    상기 감시대상항목은 디지털 서명의 유무, 실행파일 속성정보의 유효성, 파일이 실행되는 경로, 인젝션된 스레드 여부 중 하나 이상이고,
    상기 단계 a)에서는 상기 파일 오픈 요청을 하는 프로그램이 상기 감시대상항목 중 어느 하나 이상에 해당하면 그 프로그램을 감시대상 프로그램으로 판정하는 악성프로그램 처리방법.
  8. 청구항 7에 있어서,
    상기 단계 b)에서 상기 리다이렉션 파일을 생성하기 전에, 상기 감시대상 프로그램이 이전에 생성한 리다이렉션 파일이 있는가 여부를 확인하는 단계 d)를 더 포함하며,
    상기 단계 d)의 확인 결과 이전에 생성된 리다이렉션 파일이 있으면 그 리다이렉션 파일을 이용하여 파일 수정이 이루어지도록 하는 악성프로그램 처리방법.
  9. 청구항 8에 있어서,
    상기 이전에 생성된 리다이렉션 파일의 유무는 상기 컴퓨터 시스템이 보유하는 리다이렉션 파일의 파일정보에 의해 확인하는 악성프로그램 처리방법.
  10. 청구항 7에 있어서,
    상기 단계 c) 이후에 실행되며 상기 리다이렉션 파일의 유효성 검증을 실행하는 단계 e)를 더 포함하고,
    상기 단계 e)의 검증 결과 유효성이 없는 파일인 때에는 상기 리다이렉션 파일을 삭제하는 악성프로그램 처리방법.
  11. 청구항 7에 있어서,
    상기 단계 c) 이후에 실행되며 상기 리다이렉션 파일의 유효성 검증을 실행하는 단계 e)를 더 포함하고,
    상기 단계 e)의 검증 결과 유효성이 있는 파일인 때에는 상기 리다이렉션 파일을 상기 원본 파일과 병합하는 악성프로그램 처리방법.
KR1020170106037A 2017-08-22 2017-08-22 악성프로그램 처리장치 및 처리방법 KR102017016B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170106037A KR102017016B1 (ko) 2017-08-22 2017-08-22 악성프로그램 처리장치 및 처리방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170106037A KR102017016B1 (ko) 2017-08-22 2017-08-22 악성프로그램 처리장치 및 처리방법

Publications (2)

Publication Number Publication Date
KR20190020999A KR20190020999A (ko) 2019-03-05
KR102017016B1 true KR102017016B1 (ko) 2019-09-06

Family

ID=65760576

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170106037A KR102017016B1 (ko) 2017-08-22 2017-08-22 악성프로그램 처리장치 및 처리방법

Country Status (1)

Country Link
KR (1) KR102017016B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020189823A1 (ko) * 2019-03-20 2020-09-24 주식회사 하우리 리다이렉션 파일의 유효성 검증방식에 의한 악성프로그램 처리장치 및 처리방법

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101710928B1 (ko) * 2015-09-04 2017-03-13 숭실대학교산학협력단 모바일 단말기의 os 플랫폼에서의 악성 코드 방지 방법, 이를 수행하기 위한 기록 매체 및 시스템

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101031786B1 (ko) * 2009-02-03 2011-04-29 주식회사 안철수연구소 의심스러운 행위의 수준별 분류 및 격리 실행을 통한 악성 코드 사전 대응 장치, 방법 및 그 방법을 실행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
KR101404882B1 (ko) 2013-01-24 2014-06-11 주식회사 이스트시큐리티 행위를 기반으로 한 악성코드 분류시스템 및 분류방법
KR102450834B1 (ko) 2016-01-04 2022-10-05 한국전자통신연구원 다중 특징벡터를 이용하는 행위기반 악성코드 탐지 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101710928B1 (ko) * 2015-09-04 2017-03-13 숭실대학교산학협력단 모바일 단말기의 os 플랫폼에서의 악성 코드 방지 방법, 이를 수행하기 위한 기록 매체 및 시스템

Also Published As

Publication number Publication date
KR20190020999A (ko) 2019-03-05

Similar Documents

Publication Publication Date Title
US10984097B2 (en) Methods and apparatus for control and detection of malicious content using a sandbox environment
US11645383B2 (en) Early runtime detection and prevention of ransomware
US9824217B2 (en) Runtime detection of self-replicating malware
US9680848B2 (en) Apparatus, system and method for detecting and preventing malicious scripts using code pattern-based static analysis and API flow-based dynamic analysis
US9336390B2 (en) Selective assessment of maliciousness of software code executed in the address space of a trusted process
RU2571723C2 (ru) Система и способ для снижения нагрузки на операционную систему при работе антивирусного приложения
Doupe et al. deDacota: toward preventing server-side XSS via automatic code and data separation
US11455400B2 (en) Method, system, and storage medium for security of software components
Altekar et al. OPUS: Online Patches and Updates for Security.
US10462160B2 (en) Method and system for identifying uncorrelated suspicious events during an attack
US10440036B2 (en) Method and system for modeling all operations and executions of an attack and malicious process entry
IL267241B2 (en) System and methods for identifying ransomware
US20160142437A1 (en) Method and system for preventing injection-type attacks in a web based operating system
CN103473501B (zh) 一种基于云安全的恶意软件追踪方法
JP2019521400A (ja) 推測的なエクスプロイトの試みの検出
Burket et al. {GuardRails}: A {Data-Centric} Web Application Security Framework
US7620983B1 (en) Behavior profiling
KR102017016B1 (ko) 악성프로그램 처리장치 및 처리방법
US9785775B1 (en) Malware management
KR101503827B1 (ko) 절대 경로 관리를 통한 악성 프로그램 검사 시스템
US10880316B2 (en) Method and system for determining initial execution of an attack
JP5955475B1 (ja) プログラム、情報処理装置、及び情報処理方法
JP6787841B2 (ja) アクセス制御装置、アクセス制御方法およびアクセス制御プログラム
WO2017114341A1 (zh) 一种root病毒清理方法、装置及电子设备
US8788845B1 (en) Data access security

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