KR101500512B1 - 데이터 프로세싱 시스템 보안 장치와 보안방법 - Google Patents

데이터 프로세싱 시스템 보안 장치와 보안방법 Download PDF

Info

Publication number
KR101500512B1
KR101500512B1 KR1020130055128A KR20130055128A KR101500512B1 KR 101500512 B1 KR101500512 B1 KR 101500512B1 KR 1020130055128 A KR1020130055128 A KR 1020130055128A KR 20130055128 A KR20130055128 A KR 20130055128A KR 101500512 B1 KR101500512 B1 KR 101500512B1
Authority
KR
South Korea
Prior art keywords
file
executable file
stub
execution
original
Prior art date
Application number
KR1020130055128A
Other languages
English (en)
Other versions
KR20140134987A (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 KR1020130055128A priority Critical patent/KR101500512B1/ko
Priority to US14/889,372 priority patent/US9990493B2/en
Priority to PCT/KR2014/002742 priority patent/WO2014185627A1/ko
Priority to CN201480026903.5A priority patent/CN105229658B/zh
Priority to JP2016513862A priority patent/JP6164508B2/ja
Publication of KR20140134987A publication Critical patent/KR20140134987A/ko
Application granted granted Critical
Publication of KR101500512B1 publication Critical patent/KR101500512B1/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
    • 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
    • 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
    • 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
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself

Abstract

본 발명은 각종 악의적 코드로부터 데이터 프로세싱 시스템을 보호하고 데이터 유출 및 오작동 등을 방지하는 보안 장치와 보안방법에 관한 것으로, 루틴 형식의 보안로더와 원본실행파일이 구성된 스텁을 갖춘 스텁파일 실행시 상기 보안로더에 의해 호출되고, 상기 보안로더에 의해서 상기 스텁으로부터 복원된 상기 원본실행파일이 실행되도록 처리하는 실행모듈; 및 복원된 상기 원본실행파일의 실행에 따른 데이터 프로세싱 시스템의 동작을 감시하는 감시모듈;을 포함하는 것이다.

Description

데이터 프로세싱 시스템 보안 장치와 보안방법{DEVICE AND METHOD FOR SECURING COMPUTER}
본 발명은 각종 악의적 코드로부터 데이터 프로세싱 시스템을 보호하고 데이터 유출 및 오작동 등을 방지하는 보안 장치와 보안방법에 관한 것이다.
각종 데이터를 운영하고 관리하는 컴퓨터 또는 모바일 단말기 등의 데이터 프로세싱 시스템과, 이들의 상호 통신을 매개하는 인터넷과 같은 네트워크가 발달하면서, 수많은 데이터가 데이터 프로세싱 시스템을 통해 다루어지고 있다.
이러한 데이터들 중에는 사용자에게 유익한 정보뿐만 아니라, 해악을 끼치는 정보도 포함되는데, 이러한 정보는 바이러스(virus), 스파이웨어(spy-ware), 애드웨어(ad-ware) 등의 악의적 코드가 예시될 수 있다. 상기 악의적 코드는 특정 또는 불특정 다수의 사용자가 사용하는 데이터 프로세싱 시스템에 치명적인 손상을 입히거나, 사용자가 원하지 않는 동작을 수행하도록 하고, 심지어 사용자의 개인정보를 유출해서 해당 사용자에게 경제적으로 손실을 끼친다. 따라서, 이러한 악의적 코드를 지속적으로 감시하고 차단하고자 하는 노력이 지속적으로 수행되고 있다.
종래에는 일반적으로 악의적 코드들을 검색하기 위해서 미리 악의적 코드들의 패턴을 DB에 저장하고, 해당 패턴의 파일이 지정된 데이터 프로세싱 시스템 또는 네트워크 내 특정 위치에 존재하는지를 감시했다.
하지만, 종래 방식은 저장된 파일을 무작위로 확인해서 상기 DB에 저장된 패턴과 비교하는 것이므로, 투자시간 및 투자자원 대비 보안도가 높지 못한 문제가 있었다. 또한, 종래 방식은 파일의 실행과는 무관하게 종래 보안 장치의 구동 시점에만 해당 파일에 대해 무작위로 보안도를 감시하므로, 특정 시점에서는 악의적 코드가 활성화되지 않거나 악의적 코드 자체가 아니었다가 특정 프로세싱이 수행되거나 특정 시점이 되면 악의적 기능을 시작하는 악의적 코드는 종래 보안 장치가 전혀 감시하지 못하는 한계가 있었다.
이러한 문제를 해소하기 위해서, 종래 보안 장치는 데이터 프로세싱 시스템 또는 특정 위치에 존재하는 모든 파일을 일정주기로 일일이 확인하는 방법이 제안되었다. 그러나, 종래 보안 장치가 감시해야 할 보안 대상 파일의 개수는 데이터 프로세싱 시스템 또는 특정 위치의 규모에 따라 그 수가 적지 않고, 감시 횟수 또한 주기가 짧아질수록 증가할 수밖에 없으므로, 정밀한 파일 감시를 위해서는 종래 보안 장치에 적지 않은 사양이 요구되는 문제가 있었다.
이에 본 발명은 상기와 같은 문제를 해소하기 위해 발명된 것으로서, 악의적 코드의 동작을 유도하는 실행파일의 감시를 효율적으로 실행하는 데이터 프로세싱 시스템 보안 장치와 보안방법의 제공을 해결하고자 하는 과제로 한다.
상기의 기술적 과제를 달성하기 위하여 본 발명은,
루틴 형식의 보안로더와 원본실행파일이 구성된 스텁을 갖춘 스텁파일 실행시 상기 보안로더에 의해 호출되고, 상기 보안로더에 의해서 상기 스텁으로부터 복원된 상기 원본실행파일이 실행되도록 처리하는 실행모듈; 및
복원된 상기 원본실행파일의 실행에 따른 데이터 프로세싱 시스템의 동작을 감시하는 감시모듈;
을 포함하는 데이터 프로세싱 시스템 보안 장치이다.
상기의 또 다른 기술적 과제를 달성하기 위하여 본 발명은,
데이터 프로세싱 시스템 내 스텁파일 실행시, 상기 스텁파일의 보안로더가 상기 데이터 프로세싱 시스템의 보안 장치를 호출하는 보안장치 설치 확인단계;
상기 스텁파일의 스텁으로부터 원본실행파일을 복원해 저장하는 대상 파일 정보저장단계; 및
복원된 상기 원본실행파일의 실행에 따른 데이터 프로세싱 시스템의 동작을 감시하는 원본 실행파일 감시단계;
를 포함하는 데이터 프로세싱 시스템 보안방법이다.
상기의 본 발명은, 실행파일에 포함된 악의적 코드의 동작을 감시하는 보안 장치가 상기 실행파일의 실행시 수동적으로 구동하면서 동작하므로, 악의적 코드에 대한 감시효율과 동작효율을 높일 수 있고, 더불어 감시 동작시 시스템 부하를 최소화할 수 있는 효과가 있다.
도 1은 본 발명에 따른 보안 장치의 구조를 개략적으로 도시한 구성도이고,
도 2는 본 발명에 따른 보안 장치를 기반으로 이루어지는 보안방법으로 순차 도시한 플로차트이고,
도 3은 본 발명에 따른 보안 장치의 다른 구조를 개략적으로 도시한 구성도이고,
도 4는 본 발명에 따른 보안 장치를 통해 스텁파일로 변환된 원본실행파일의 모습과 아이콘 모습을 도시한 도면이고,
도 5는 본 발명에 따른 스텁파일의 아이콘 이미지를 보인 도면이고,
도 6은 본 발명에 따른 보안 장치를 기반으로 이루어지는 보안방법의 다른 실시 예를 순차 도시한 플로차트이다.
상술한 본 발명의 특징 및 효과는 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 본 발명은 다양한 변경을 가할 수 있고 여러 가지 형태를 가질 수 있는바, 특정 실시 예들을 도면에 예시하고 본문에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 개시형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 본 출원에서 사용한 용어는 단지 특정한 실시 예들을 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다.
이하, 본 발명을 실시하기 위한 구체적인 내용을 첨부된 도면에 의거하여 상세히 설명한다.
도 1은 본 발명에 따른 보안 장치의 구조를 개략적으로 도시한 구성도인 바, 이를 참조해 설명한다.
본 발명에 따른 보안 장치(10)는 스텁파일(40) 실행시 특정 구역에서 일어나는 활동을 확인하고 해당 활동이 지정된 활동을 벗어날 경우 이를 차단 및/또는 경고하는 감시모듈(11)과, 보안처리된 스텁파일(40)을 원본실행파일로 복원해서 실행되도록 처리하는 실행모듈(12)로 구성된다.
감시모듈(11)은 스텁파일(40)의 실행시, 좀 더 구체적으로는 스텁파일(40)에 구성된 원본실행파일의 실행시 데이터 프로세싱 시스템의 레지스트리, 파일 I/O, 서비스, 윈도우, 커널영역 드라이브 등의 구역에서 이루어지는 데이터 생성 및 편집 등에 대한 활동을 확인하고, 스텁파일(40)에 구성된 해당 원본실행파일과는 무관하거나 관련 애플리케이션의 접근 또는 동작이 허가되지 않은 실행이 감지되면, 이를 강제로 정지시키거나 경고창을 출력시켜서 사용자에게 통지한다. 해당 원본실행파일과 무관하거나 관련 애플리케이션의 접근 또는 동작이 허가되지 않은 실행이란, 원본실행파일 또는 스텁파일(40) 등에 무단 기록된 악의적 코드가 임의의 구역에서 해당 원본실행파일 또는 스텁파일(40)과는 무관한 동작을 수행하거나, 시스템 운영에 영향을 미칠 수 있는 구역(레지스트리, 파일 I/O, 서비스 등)으로의 변경(생성 및 수정, 삭제 등)을 말한다. 참고로, 악의적 코드의 활동을 감시하는 감시모듈(11)은 공지,공용의 백신프로그램 기술이 적용되며, 해당 기술에는 허가되지 않은 실행 감지시 이를 강제로 정지시키거나 경고창 등을 출력시키는 기술이 포함된다.
실행모듈(12)은 스텁파일(40)의 실행에 따라 수동적으로 호출돼 실행되고, 스텁파일(40)에 구성된 보안로더(43)가 프로그램에 따라 동작할 수 있도록 처리해서 스텁파일(40)의 스텁(41)이 원본실행파일로 복원되도록 한다. 즉, 실행모듈(12)은 보안로더(43)가 설정된 프로그램 루틴에 따라 실행되도록 처리하는 구성인 것이다.
스텁파일(40)은 원본실행파일로 구성된 스텁(41)과, 스텁파일(40)을 생성한 생성자 정보 및/또는 생성된 시스템에 대한 정보 등을 갖는 헤더(42)와, 원본실행파일의 실행을 위한 처리를 제어하면서 보안 장치(10)를 호출하는 보안로더(43)로 구성되고, 구성 데이터가 스트리밍 방식으로 처리될 수 있게끔, 보안로더(43), 헤더(42) 및 스텁(41)은 해당 OS 및 애플리케이션(30)에서 순차 처리될 수 있도록 순서대로 배열된다. 결국, 보안로더(43)는 스텁파일(40)의 실행을 능동적으로 보안 장치(10)에 통지하고, 보안 장치(10)에 구성된 실행모듈(12)과 연동하면서 해당 원본데이터인 스텁(41)의 복원작업을 진행하도록 프로그램된 루틴의 일종이다. 참고로, 보안 장치(10)의 일 구성인 실행모듈(12)은 보안로더(43)로부터 복원된 원본실행파일의 위치를 수신해서 상기 원본실행파일이 실행하도록 제어하는 장치이다.
본 발명에 따른 보안 장치(10)에 대한 보다 구체적인 기술 설명은 보안방법을 설명하면서 상세히 한다.
도 2는 본 발명에 따른 보안 장치를 기반으로 이루어지는 보안방법으로 순차 도시한 플로차트인 바, 이를 참조해 설명한다.
S10; 실행파일 실행단계
데이터 프로세싱 시스템에서 해당 시스템 또는 애플리케이션(30)의 구동을 위한 실행파일이 사용자의 선택 또는 설정된 플로우에 따라 실행된다. 여기서, 실행파일은 *.exe, *.dll 등의 PE(Portable Executable) 구조를 가진 파일이며, 이외에도 다양한 확장자의 실행파일이 적용될 수 있다.
참고로, 본 발명의 대상이 되는 스텁파일(40)의 명칭은 원본실행파일의 명칭과 동일하게 저장되므로, 상기 원본실행파일을 실행시키는 OS(Operating System; 20) 또는 애플리케이션(30)은 실행파일로 인지하는 스텁파일(40)을 해당 원본실행파일로 확인하고 그 실행을 진행한다. 따라서, 원본실행파일이 "a.exe"라면 스텁파일(40) 또한 "a.exe"로 변환돼 저장되므로, OS(20) 또는 해당 애플리케이션(30)은 해당 실행파일이 처리되어야 할 타이밍에 스텁파일(40)로 변환 저장된 "a.exe"의 실행을 처리한다.
계속해서, 실행파일에 기록된 정보는 OS(20) 또는 애플리케이션(30)에 의해 스트리밍 방식으로 순차 처리된다. 따라서, 실행파일이 스텁파일(40)인 경우, OS(20) 또는 애플리케이션(30)은 스텁파일(40)에 기록된 정보인 보안로더(43), 헤더(42) 및 스텁(41)를 저장 순서대로 처리한다.
S20; 보안장치 설치 확인단계
OS(20) 또는 애플리케이션(30)의 처리과정에서 보안로더(43)가 확인되고, 보안로더(43)가 설정된 내용에 따라 동작하면서 보안 장치(10)를 호출한다.
반면, 상기 실행파일이 본 발명에 따라 보안 처리된 스텁파일(40)이 아닌 일반 실행파일인 경우, 해당 실행파일에는 보안로더(43)를 구성하고 있지 않으므로, OS(20) 또는 애플리케이션(30)의 처리시 보안 장치(10)는 호출되지 않고 상기 실행파일의 스텁(41)가 해당 애플리케이션에 의해 바로 실행된다.
참고로, 본 발명에 따른 보안 장치(10)가 설치되지 않은 데이터 프로세싱 시스템에 스텁파일(40)이 실행될 경우, 스텁파일(40)의 보안로더(43)는 호출 대상이 없으므로 이후 절차가 이루어지지 못한다. 결국, 보안 장치(10)가 설치되지 않은 데이터 프로세싱 시스템에서는 감시 대상 실행파일의 실행 자체가 원천적으로 차단되므로, 보안이 극대화하는 효과가 있다.
S30; 대상 파일 확인단계
프로그램 루틴의 일종인 보안로더(43)는 스텁파일(40)의 위치확인을 위한 제1풀패스(Full Path)정보와, 스텁파일(40)에 구성된 보안로더(43)와 헤더(42)와 스텁(41)의 크기를 각각 확인한다. 스텁파일(40)은 사용자의 의지에 따라 다양한 위치로 이동해 실행될 수 있는 독립된 파일이므로, 특정 위치에 제한적으로 고정 위치하지 않는다. 따라서, 보안로더(43)는 스텁파일(40)이 실행될 때마다 자신의 위치 및 사이즈 등을 확인한다. 참고로, 풀 패스(Full Path)는 파일명을 지정할 때 드라이브명에서부터 시작하여 모든 디렉토리명을 지정해서 입력하는 것으로서, 파일의 절대 위치를 확인하는 주지,관용 정보이다.
스텁(41)는 원본실행파일 구간으로서, 스텁파일(40)로의 변환처리시 원본실행파일 구간은 암호화될 수 있다. 결국, 원본실행파일을 스텁파일(40)로 변환한 경우, 원본실행파일은 암호화로 인해서 그 실행시 악의적 코드가 활동하는 것을 원천 차단됨은 물론, 원본실행파일의 데이터에 대한 무단 유출이 방지되는 효과가 있다.
S40; 대상 파일 정보저장단계
보안로더(43)는 스텁(41)의 원본실행파일을 임시폴더(F)에 분리 저장하고, 해당 임시폴더(F)의 위치인 제2풀패스정보를 확인해서 상기 제1풀패스정보와 더불어 보안 장치(10)의 실행모듈(12)로 전달한다.
참고로, 스텁(41)의 원본실행파일이 암호화된 경우, 보안로더(43)가 암호화된 원본실행파일을 복호화한 후 임시폴더(F)에 저장할 수도 있고, 보안로더(43)가 암호화된 원본실행파일을 임시폴더(F)에 우선 저장한 후 해당 원본실행파일의 실행 직전에 실행모듈(12)이 이를 복호화할 수도 있다.
S50; 원본 실행파일 실행단계
보안로더(43)에 의해 호출된 보안 장치(10)의 실행모듈(12)은 보안로더(43)로부터 상기 제2풀패스정보를 수신하고, 실행모듈(12)은 상기 제2풀패스정보에 해당하는 원본실행파일이 실행되도록 처리한다.
상기 원본실행파일은 실행모듈(12)의 제어에 따라 고유한 해당 실행을 시작하고, 연동하는 애플리케이션은 그 구동을 개시한다.
S60; 원본 실행파일 감시단계
보안 장치(10)의 감시모듈(11)은 보안로더(43)가 전송한 제1,2풀패스정보를 기초로 임시폴더(F) 내 상기 원본실행파일을 확인하고, 상기 원본실행파일이 실행될 경우 데이터 프로세싱 시스템의 레지스트리, 파일 I/O, 서비스, 윈도우, 커널영역 드라이브 등의 구역에서 생성 및 편집된 모든 데이터를 파악해서 악의적 코드의 유무 또는 비인가된 행위의 발생 유무 등을 확인한다.
감시모듈(11)은 상기 원본실행파일의 동작 이후 실행정보를 가지므로, 상기 원본실행파일 동작 이후 지정된 실행정보 외 동작이 일어날 경우, 감시모듈(11)은 데이터 프로세싱 시스템의 해당 구역에 악의적 코드 또는 비인가된 행위가 발생으로 간주하고 후속처리를 진행한다.
S70; 감시대상 후속처리단계
감시모듈(11)은 데이터 프로세싱 시스템의 해당 구역에 악의적 코드 또는 비인가된 행위가 발생한 것으로 확인되면, 상기 데이터 프로세싱 시스템의 해당 동작을 정지시킬 수 있고, 사용자에 경고창을 출력하여 후속조치를 취하도록 할 수 있다.
감시모듈(11)의 후속처리 내용은, OS 부팅에 필요한 영역(MBR 등)으로의 변경 시도 확인(파일 감시), 일반적인 유저레벨이 아닌 커널레벨에서 불필요한 레지스트리 값에 대한 변경을 시도 확인(레지스트리 감시), 접근을 차단하거나 요청하는 부분에 대한 로그 저장 등의 데이터 생성 또는 편집 등이 예시된다.
전술한 바와 같이, 감시모듈(11)은 악의적 코드의 구동 또는 비인가된 행위를 제한하기 위한 공지,공용의 장치가 적용될 수 있다.
한편, 스텁파일(40)은 헤더(42)를 포함하는데, 감시모듈(11)은 헤더(42)에서 스텁파일(40)의 헤더정보를 확인한다. 상기 헤더정보는 스텁파일(40)을 생성한 생성자 정보 및/또는 생성지 정보, 파일 유입경로(이하 '파일 유입경로 정보') 등을 포함하는데, 상기 헤더정보를 기준으로 스텁파일(40)의 실행을 제어하거나 삭제 등의 보안 조치가 되도록 할 수 있다.
이를 좀 더 구체적으로 설명하면, 감시모듈(11)은 원본 실행파일 감시단계(S70)에서 스텁파일(40)의 헤더정보를 기초로 해당 스텁파일(40)의 파일 유입경로 정보(예, 파일을 발신한 발신인 메일주소, 파일을 다운로드 받은 URL 주소, 파일이 포함된 USB 디바이스명 등)를 우선 조회한다. 조회된 파일 유입경로 정보가 기존에 악의적 코드 구동 또는 비인가된 행위를 하는 것으로 확인되어 정책적으로 비인가된 유입 경로인 경우, 해당 원본실행파일의 실행을 차단하거나 스텁파일(40)을 삭제하도록 처리할 수 있으며, 더 나아가 해당 파일 유입경로 자체를 차단하도록 상기 파일 유입경로 정보를 갖는 다른 스텁파일의 동작을 제한 처리하는 후속처리를 할 수 있다.
S80; 실행파일 종료단계
해당 실행파일의 실행이 종료되면, 실행모듈(12)은 원본실행파일이 임시 저장된 임시폴더(F) 또는 원본실행파일을 삭제한다.
도 3은 본 발명에 따른 보안 장치의 다른 구조를 개략적으로 도시한 구성도이고, 도 4는 본 발명에 따른 보안 장치를 통해 스텁파일로 변환된 원본실행파일의 모습과 아이콘 모습을 도시한 도면이고, 도 5는 본 발명에 따른 스텁파일의 아이콘 이미지를 보인 도면인 바, 이를 참조해 설명한다.
본 발명에 따른 보안 장치(10')는 감시 대상 원본실행파일을 스텁파일(40)로 변환 처리하는 생성모듈(13)을 더 포함한다.
실행파일 중에는 보안이 유지되어야 하는 애플리케이션의 실행파일이 있다. 따라서, 해당 애플리케이션이 동작할 때에는 보안이 전제되어야 하고, 이를 위해서는 상기 애플리케이션의 실행파일 구동시 악의적 코드도 함께 활동하는지 여부를 실시간으로 감시해야 한다. 따라서, 본 발명에 따른 보안 장치(10')는 지정된 원본실행파일을 스텁파일(40)로 변환처리하는 생성모듈(13)을 포함한다.
한편, 실행파일 중에는 실행시 하위실행파일을 추가로 생성 및 실행시키면서 새로운 프로그램 등이 실행되도록 한다. 일 예로 프로그램 설치파일 등과 같은 실행파일은 사용자가 해당 실행파일을 실행할 경우 하위실행파일을 추가로 생성시켜서 자동으로 실행되도록 하거나, 사용자가 선택적으로 실행되도록 한다.
따라서, 생성모듈(13)은 메인실행파일이 스텁파일(40)로 변환처리된 경우, 해당 스텁파일(40)의 실행시 생성되는 하위실행파일도 자동으로 스텁파일로 변환되도록 처리한다.
도 4(a)에서 보인 바와 같이, 생성모듈(13)은 스텁파일(40) 변환을 위해 보안로더(43)를 생성하고, 변환대상인 원본실행파일의 전단에 보안로더(43)를 삽입해서 상기 원본실행파일이 스텁파일(40)로 변환되도록 한다. 결국, 생성모듈(13)은 원본실행파일에 해당하는 스텁(41)의 전단에 보안로더(43)를 배치해서 스텁파일(40)로 변환한다.
원본실행파일에 보안로더를 삽입하는 기술에 대해 좀 더 구체적으로 설명한다.
원본실행파일 속에 스터브 프로그램인 보안로더(43)를 넣는 것이나, 보안로더(43)와 데이터를 합치는 일이나 모두 실행파일에 데이터를 추가하는 작업이다. 이렇게 실행파일과 데이터를 합치는 방법은 여러 가지가 있으며, 본 발명에 따른 실시 예에서는 다음을 예시한다.
(1) 제1 실시 예
보안로더(43)를 리소스에 추가한다. 이 방법은 보통 컴파일 타임에 사용되는 방법으로서, 보안로더(43)에 해당하는 스터브 프로그램을 생성하는 실행모듈(13)에서 많이 사용된다. 원본실행파일 자체를 바이너리 리소스로 포함시킨 다음 그것을 로드해서 사용하는 형태다. 윈도우에서 제공하는 리소스 API를 사용하면 이러한 작업을 손쉽게 할 수 있다. 리소스는 원본실행파일과 함께 메모리에 같이 로딩되기 때문에 리소스에 추가된 보안로더(43)가 크고, 한번에 로드할 필요가 없는 경우에는 메모리 낭비가 발생할 수 있다.
(2) 제2 실시 예
새로운 섹션을 원본실행파일에 추가하고, 거기에 보안로더(43)를 추가한다. 섹션 추가 방식은 컴파일 타임과 컴파일 이후에 모두 사용할 수 있다. 컴파일 타임에 섹션을 추가하기 위해서는 #pragma data_seg를 사용하면 된다. 완성된 스텁파일(40)에 섹션을 추가하기 위해서는 별도의 유틸리티를 제작해야 한다. 이 방식의 가장 큰 장점은 실행 가능한 코드를 추가할 수 있다는 점이다. 반면 지원하는 API가 없기 때문에 이미 만들어진 스텁파일(40)에 섹션을 추가하는 것은 직접 구현해야 한다는 단점이 있다. 섹션 또한 리소스와 마찬가지로 메모리에 같이 올라가기 때문에 메모리 낭비에 대한 문제는 그대로 남을 수 있다.
계속해서, 스텁파일(40)로의 변환이 완료되면 생성모듈(13)은 표시가 마킹된 아이콘이미지 정보를 스텁파일(40)의 리소스에 저장하고, 이를 통해 표시가 마킹된 아이콘이미지가 게시돼 사용자가 이를 식별할 수 있도록 한다. 스텁파일(40)은 실행파일의 일종인 원본실행파일을 감시할 목적으로 변환한 것으로서, 파일명이 원본실행파일과 동일하므로 아이콘이미지 또한 기존의 원본실행파일 아이콘이미지와 동일할 수밖에 없다. 따라서, 사용자가 이를 구분할 수 있도록 도 4(b)에서 보인 바와 같이, 변환된 스텁파일(40)의 아이콘이미지(IC)에는 '검' 표시(T)를 Overlay 등의 방식으로 마킹한다. 도 5는 표시가 마킹된 스텁파일(40)의 아이콘이미지를 예시한 도면으로서, 사용자는 해당 폴더에 출력된 상기 아이콘이미지를 보면서 스텁파일(40)로 변환된 원본실행파일을 바로 구분할 수 있고, 이를 통해 안전한 작업환경을 보장받을 수 있다.
도 6은 본 발명에 따른 보안 장치를 기반으로 이루어지는 보안방법의 다른 실시 예를 순차 도시한 플로차트인 바, 이를 참조해 설명한다.
S05; 스텁파일 변환단계
데이터 프로세싱 시스템에 새로운 실행파일이 입력되거나, 특정 애플리케이션이 감시대상으로 설정되면, 보안 장치(10')의 생성모듈(13)은 상기 실행파일 또는 특정 애플리케이션의 실행파일을 감시 대상으로 변환하기 위해서 프로그램 루틴의 일종인 보안로더(43)를 상기 실행파일인 원본실행파일에 삽입하고, 이를 통해 상기 원본실행파일을 스텁파일(40)로 변환시킨다.
새로운 실행파일이 데이터 프로세싱 시스템에 입력되는 행태는 이메일 등의 첨부파일을 통한 전송(다운로드), USB 또는 CD 등과 같은 이동식 디스크 등을 통한 전송 등의 모습으로 나타날 수 있다. 또한, 특정 애플리케이션이 감시대상으로 설정되는 행태는 온라인뱅킹 또는 온라인 결제 등을 위한 애플리케이션 설치 등의 모습으로 나타날 수 있다.
이외에도, 사용자가 인스톨파일을 실행하는 도중에 새롭게 생성되는 실행파일에 의해서 데이터 프로세싱 시스템에 새로운 실행파일이 입력될 수도 있다.
실행파일 실행단계(S10), 보안장치 설치 확인단계(S20), 대상 파일 확인단계(S30), 대상 파일 정보저장단계(S40), 원본 실행파일 실행단계(S50), 원본 실행파일 감시단계(S60), 감시대상 후속처리단계(S70)는 전술한 내용과 동일/유사하므로, 해당 내용의 중복 설명은 생략한다.
S65; 실행파일 생성 확인단계
보안 장치(10')의 생성모듈(13)은 원본실행파일의 실행시 새로운 실행파일의 생성여부를 확인한다. 전술한 바와 같이, 실행파일은 인스톨 파일과 같이 기존에 없던 새로운 실행파일을 생성하는 실행파일을 포함하므로, 생성모듈(13)은 기존에 없던 새로운 실행파일의 생성을 확인해서 스텁파일 변환단계(S05)를 진행한다.
물론, 새롭게 생성된 실행파일이 없는 것으로 확인되면, 원본실행파일의 실행 대한 감시를 속행하거나 실행파일 종료를 진행한다.
앞서 설명한 본 발명의 상세한 설명에서는 본 발명의 바람직한 실시 예들을 참조해 설명했지만, 해당 기술분야의 숙련된 당업자 또는 해당 기술분야에 통상의 지식을 갖는 자라면 후술될 특허청구범위에 기재된 본 발명의 사상 및 기술영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
10, 10'; 보안 장치 11; 감시모듈 12; 실행모듈
13; 생성모듈 20; OS 30; 애플리케이션
40; 스텁파일 41; 스텁 42; 헤더
43; 보안로더

Claims (14)

  1. 루틴 형식의 보안로더와 원본실행파일이 구성된 스텁을 갖춘 스텁파일 실행시 상기 보안로더에 의해 호출되고, 상기 보안로더에 의해서 상기 스텁으로부터 복원된 상기 원본실행파일이 실행되도록 처리하는 실행모듈; 복원된 상기 원본실행파일의 실행에 따른 데이터 프로세싱 시스템의 동작을 감시하는 감시모듈; 지정된 원본실행파일에 상기 보안로더를 결합 또는 삽입해서 상기 지정된 원본실행파일이 스텁파일로 변환하도록 처리하는 생성모듈;을 포함하는 데이터 프로세싱 시스템 보안 장치에 있어서,
    상기 스텁파일 처리시 상기 보안로더가 우선 처리되도록, 상기 보안로더와 스텁이 순차 배치된 것;
    을 특징으로 하는 데이터 프로세싱 시스템 보안 장치.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 생성모듈은 상기 스텁파일의 원본실행파일 실행으로 생성된 새로운 원본실행파일을 확인하면, 상기 새로운 원본실행파일에 상기 보안로더를 결합 또는 삽입해서 상기 새로운 원본실행파일이 스텁파일로 변환하도록 처리하는 것;
    을 특징으로 하는 데이터 프로세싱 시스템 보안 장치.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 실행모듈은 상기 보안로더가 상기 스텁파일로부터 복원하여 임시 저장한 원본실행파일을 상기 원본실행파일의 실행 종료 후 삭제하는 것;
    을 특징으로 하는 데이터 프로세싱 시스템 보안 장치.
  6. 제 1 항에 있어서,
    상기 감시모듈은 상기 스텁파일에 구성된 헤더의 헤더정보를 확인하는 것;
    을 특징으로 하는 데이터 프로세싱 시스템 보안 장치.
  7. 제 1 항에 있어서,
    상기 감시모듈은 복원된 상기 원본실행파일 실행시 생성 또는 편집되는 데이터를 확인하고, 허가되지 않은 데이터의 생성 또는 편집이 확인되면 상기 원본실행파일의 실행을 정지시키거나 경고창을 출력하는 것;
    을 특징으로 하는 데이터 프로세싱 시스템 보안 장치.
  8. 데이터 프로세싱 시스템 내 스텁파일 실행시, 상기 스텁파일의 보안로더가 상기 데이터 프로세싱 시스템의 보안 장치를 호출하는 보안장치 설치 확인단계; 상기 스텁파일의 스텁으로부터 원본실행파일을 복원해 저장하는 대상 파일 정보저장단계; 및 복원된 상기 원본실행파일의 실행에 따른 데이터 프로세싱 시스템의 동작을 감시하는 원본 실행파일 감시단계;를 포함하는 데이터 프로세싱 시스템 보안방법에 있어서,
    상기 원본 실행파일 감시단계 이후, 상기 원본실행파일의 실행이 종료하면 복원된 상기 원본실행파일을 상기 보안 장치가 삭제하는 실행파일 종료단계;
    를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템 보안방법.
  9. 제 8 항에 있어서,
    상기 스텁파일의 정보를 확인할 수 있도록 상기 보안장치 설치 확인단계와 대상 파일 정보저장단계 사이에, 상기 보안로더가 상기 스텁파일의 위치에 대한 제1풀패스정보와 크기정보를 확인하는 대상 파일 확인단계;
    를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템 보안방법.
  10. 제 8 항 또는 제 9 항에 있어서,
    상기 대상 파일 정보저장단계는, 복원된 상기 원본실행파일의 위치에 대한 제2풀패스정보를 상기 보안 장치로 전달하고;
    상기 원본 실행파일 감시단계에서, 상기 보안 장치는 상기 제2풀패스정보에 해당하는 원본실행파일의 실행을 감시하는 것;
    을 특징으로 하는 데이터 프로세싱 시스템 보안방법.
  11. 삭제
  12. 제 8 항에 있어서,
    상기 대상 파일 정보저장단계 이후, 상기 원본실행파일의 실행으로 생성된 새로운 원본실행파일을 확인하면, 상기 새로운 원본실행파일에 상기 보안로더를 결합 또는 삽입해서 상기 새로운 원본실행파일이 스텁파일로 변환하도록 처리하는 단계;
    를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템 보안방법.
  13. 제 8 항에 있어서,
    상기 원본 실행파일 감시단계 이후, 상기 보안 장치가 복원된 상기 원본실행파일 실행시 생성 또는 편집되는 데이터를 확인하고, 허가되지 않은 데이터의 생성 또는 편집이 확인되면 상기 원본실행파일의 실행을 정지시키거나 경고창을 출력하는 감시대상 후속처리단계;
    를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템 보안방법.
  14. 제 8 항에 있어서,
    상기 원본 실행파일 감시단계에서, 상기 보안 장치는 상기 스텁파일의 헤더정보에서 파일 유입경로 정보를 확인하고;
    상기 원본 실행파일 감시단계 이후, 상기 보안 장치가 복원된 상기 원본실행파일 실행시 생성 또는 편집되는 데이터를 확인하고, 허가되지 않은 데이터의 생성 또는 편집이 확인되면 상기 원본실행파일의 실행을 정지시키거나 경고창을 출력하며, 상기 파일 유입경로 정보를 갖는 다른 스텁파일의 동작을 제한 처리하는 감시대상 후속처리단계;
    를 더 포함하는 것을 특징으로 하는 데이터 프로세싱 시스템 보안방법.
KR1020130055128A 2013-05-15 2013-05-15 데이터 프로세싱 시스템 보안 장치와 보안방법 KR101500512B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020130055128A KR101500512B1 (ko) 2013-05-15 2013-05-15 데이터 프로세싱 시스템 보안 장치와 보안방법
US14/889,372 US9990493B2 (en) 2013-05-15 2014-03-31 Data processing system security device and security method
PCT/KR2014/002742 WO2014185627A1 (ko) 2013-05-15 2014-03-31 데이터 프로세싱 시스템 보안 장치와 보안방법
CN201480026903.5A CN105229658B (zh) 2013-05-15 2014-03-31 数据处理系统的安全装置和安全方法
JP2016513862A JP6164508B2 (ja) 2013-05-15 2014-03-31 データプロセシングシステムのセキュリティ装置とセキュリティ方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130055128A KR101500512B1 (ko) 2013-05-15 2013-05-15 데이터 프로세싱 시스템 보안 장치와 보안방법

Publications (2)

Publication Number Publication Date
KR20140134987A KR20140134987A (ko) 2014-11-25
KR101500512B1 true KR101500512B1 (ko) 2015-03-18

Family

ID=51898573

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130055128A KR101500512B1 (ko) 2013-05-15 2013-05-15 데이터 프로세싱 시스템 보안 장치와 보안방법

Country Status (5)

Country Link
US (1) US9990493B2 (ko)
JP (1) JP6164508B2 (ko)
KR (1) KR101500512B1 (ko)
CN (1) CN105229658B (ko)
WO (1) WO2014185627A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101638257B1 (ko) * 2014-12-11 2016-07-20 단국대학교 산학협력단 애플리케이션의 소스 코드 보호 방법 및 이를 수행하는 장치
CN106997367B (zh) * 2016-01-26 2020-05-08 华为技术有限公司 程序文件的分类方法、分类装置和分类系统
CN106022120A (zh) * 2016-05-24 2016-10-12 北京金山安全软件有限公司 文件监控处理方法、装置及电子设备
KR102145324B1 (ko) * 2017-11-28 2020-08-18 주식회사 엠시큐어 라이브러리 인젝션을 통한 취약점 분석 방법 및 서버
US11847242B2 (en) * 2020-05-28 2023-12-19 EMC IP Holding Company LLC DCF node configuration for device data

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100100488A (ko) * 2009-03-06 2010-09-15 주식회사 안철수연구소 메모리 조작유무를 감지하는 방법 및 이를 이용한 장치

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5974549A (en) * 1997-03-27 1999-10-26 Soliton Ltd. Security monitor
JP3409653B2 (ja) * 1997-07-14 2003-05-26 富士ゼロックス株式会社 サービス提供システム、認証装置及び認証プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2002108480A (ja) * 2000-10-03 2002-04-10 Canon Inc アプリケーション・プログラム課金システム
JP2002116834A (ja) * 2000-10-05 2002-04-19 Ricoh Co Ltd ソフトウェアの使用許諾方法と使用許諾システム及びコンピュータ読み取り可能な記録媒体
JP2002175205A (ja) * 2000-12-05 2002-06-21 Nippon Telegr & Teleph Corp <Ntt> 情報カプセルの構成方法及び情報カプセルを記録した記録媒体
JP2003099145A (ja) * 2001-09-21 2003-04-04 Fujitsu Ltd インストーラ及びコンピュータ
CN100487714C (zh) * 2004-11-24 2009-05-13 诺基亚公司 电子设备中安全的程序解释的方法
JP2006172003A (ja) * 2004-12-14 2006-06-29 Ntt Docomo Inc プログラム実行監視装置、プログラム実行監視方法及びプログラム作成方法
US7685638B1 (en) * 2005-12-13 2010-03-23 Symantec Corporation Dynamic replacement of system call tables
JP2009258772A (ja) * 2006-08-09 2009-11-05 Panasonic Corp アプリケーション実行装置
US8584109B2 (en) 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
CN101631033B (zh) * 2008-07-14 2013-02-27 中兴通讯股份有限公司 远程组件的调用方法和系统、以及服务器、客户端
CN102598017B (zh) * 2009-11-13 2016-03-09 爱迪德技术有限公司 提高Java字节码的防窜改能力的系统和方法
KR101093410B1 (ko) 2010-03-22 2011-12-14 주식회사 엔씨소프트 코드실행 알림기능을 이용한 악성 프로그램 탐지 방법
CN102103470A (zh) * 2011-01-28 2011-06-22 鸿富锦精密工业(深圳)有限公司 能够扩展内存的电子设备及扩展方法
KR101228899B1 (ko) * 2011-02-15 2013-02-06 주식회사 안랩 벡터량 산출을 이용한 악성코드의 분류 및 진단 방법과 장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100100488A (ko) * 2009-03-06 2010-09-15 주식회사 안철수연구소 메모리 조작유무를 감지하는 방법 및 이를 이용한 장치

Also Published As

Publication number Publication date
CN105229658A (zh) 2016-01-06
US9990493B2 (en) 2018-06-05
US20160078227A1 (en) 2016-03-17
KR20140134987A (ko) 2014-11-25
CN105229658B (zh) 2018-05-22
JP6164508B2 (ja) 2017-07-19
JP2016522489A (ja) 2016-07-28
WO2014185627A1 (ko) 2014-11-20

Similar Documents

Publication Publication Date Title
US10291634B2 (en) System and method for determining summary events of an attack
US10025674B2 (en) Framework for running untrusted code
US8918878B2 (en) Restoration of file damage caused by malware
KR101500512B1 (ko) 데이터 프로세싱 시스템 보안 장치와 보안방법
KR101768082B1 (ko) 랜섬웨어에 대응한 보안방법
KR101671795B1 (ko) 동적 링크 라이브러리 삽입 공격을 방지하는 컴퓨터 시스템 및 방법
US9613209B2 (en) Augmenting system restore with malware detection
WO2016019893A1 (zh) 应用安装的方法和装置
EP3270318B1 (en) Dynamic security module terminal device and method for operating same
US10783041B2 (en) Backup and recovery of data files using hard links
US8904492B2 (en) Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus
KR101974989B1 (ko) 위험 파일에 대응하는 행위 정보를 결정하는 방법 및 장치
KR101429131B1 (ko) 시스템 보호를 위한 파일 보안용 관리장치와 관리방법
KR101428915B1 (ko) 안드로이드 보안을 위한 피드백 기반 어플리케이션 재가공 프레임워크 방법과 그 시스템
CN110717181B (zh) 基于新型程序依赖图的非控制数据攻击检测方法及装置
KR102034678B1 (ko) 데이터파일 접근 제어 기반의 악성 차단 시스템 및 악성 차단 방법
KR101842263B1 (ko) 어플리케이션에 대한 역공학 차단 방법 및 장치
KR102036847B1 (ko) 런타임 특징 프로파일링 방법
Daghmehchi Firoozjaei et al. Parent process termination: an adversarial technique for persistent malware
US10534910B1 (en) Using threat model to monitor host execution
JP2022090642A (ja) サーバーリソースを用いたマルウェアの探知及び治療が可能なモノのインターネット装置及びその方法
RU2450349C2 (ru) Способ и вычислительное устройство защиты данных
CN104484610A (zh) 一种Windows操作系统安全加固的实现方法

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: 20180305

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200303

Year of fee payment: 6