KR20100089968A - 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 - Google Patents

선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 Download PDF

Info

Publication number
KR20100089968A
KR20100089968A KR1020090009175A KR20090009175A KR20100089968A KR 20100089968 A KR20100089968 A KR 20100089968A KR 1020090009175 A KR1020090009175 A KR 1020090009175A KR 20090009175 A KR20090009175 A KR 20090009175A KR 20100089968 A KR20100089968 A KR 20100089968A
Authority
KR
South Korea
Prior art keywords
resource
program
vulnerable
virtualization
malicious code
Prior art date
Application number
KR1020090009175A
Other languages
English (en)
Other versions
KR100985074B1 (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 KR1020090009175A priority Critical patent/KR100985074B1/ko
Priority to US13/148,177 priority patent/US8984629B2/en
Priority to PCT/KR2010/000650 priority patent/WO2010090435A2/ko
Publication of KR20100089968A publication Critical patent/KR20100089968A/ko
Application granted granted Critical
Publication of KR100985074B1 publication Critical patent/KR100985074B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • 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
    • 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/55Detecting local intrusion or implementing counter-measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 개인정보 보호가 강화된 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. 본 발명은, 외부와의 인터페이스를 가지는 취약 프로그램이 격리 공간에서 실행될 때 필요한 필수 자원을 미리 선별하여 저장하고, 상기 취약 프로그램의 접근 대상이 상기 필수 자원인지 여부를 판단하고, 상기 접근 대상이 상기 필수 자원인 경우 OS 레벨 가상화 처리하며, 상기 접근 대상이 상기 필수 자원이 아닌 다른 자원인 경우 상기 접근 대상 자원의 내용을 변경한 새로운 변경 자원을 생성하고 상기 변경 자원에 접근하도록 처리하는 선별적 가상화를 이용한 악성 코드 사전 차단 방법을 제공한다. 본 발명에 의하면, 프로그램 실행에 필수적인 시스템 자원만을 가상화하여 사용자의 개인 정보 또는 기밀 정보의 유출을 원천적으로 방지하고, 알려지지 않은 위협 및 변종 악성 코드들도 효과적으로 사전 차단할 수 있게 되는 효과가 있다.
가상화, 악성 코드, 개인 정보, 보안, 백신, 자원

Description

선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체{Malicious code prevention apparatus and method using selective virtualization, and computer-readable medium storing program for method thereof}
본 발명은 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다. 구체적으로 본 발명은, 프로그램을 실행하는 데 필수적인 자원만을 가상화하고 다른 자원에 대한 접근 요청은 내용이 다른 새로운 자원을 생성하여 처리함으로써 개인정보 보호를 강화한, 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체에 관한 것이다.
오늘날 악성 코드(malicious code)는 변종으로 다양하게 진화하면서 기하급수적으로 늘어나고 있다. 이에 수많은 웹 사이트가 악성 코드의 침입에 노출되어 있다. 침입에 성공한 악성 코드는 게임, 인터넷 뱅킹 등과 관련하여 개인 정보를 유출한다. 악성 코드에 의하여 해킹 툴이 설치된 컴퓨터는 좀비 컴퓨터(zombie computer)가 되어 다른 악성 행위에 사용되기도 한다. 한편, 악성 코드는 웹 사이트 자체뿐만 아니라 자신이 공격한 웹 사이트를 방문하는 다른 사용자에 대하여도 피싱(phishing) 또는 드라이브-바이-다운로드(drive-by-download) 등 다양한 형태의 공격을 실행하기도 한다.
이러한 악성 코드로 인한 사용자의 피해를 막기 위하여 보안 프로그램 및 시스템이 개발되고 있다. 현재 널리 사용되는 드라이브-바이-다운로드 형태의 공격 차단 기술은, 시그니처(signature) 기반의 대응 방법과 사전 방역 방법 등 여러 가지가 있다.
시그니처 기반의 대응 방법은 사용자가 신고한 웹 사이트를 차단하거나 다운로드 되는 파일을 AV엔진(Anti-Virus engine) 등으로 검사하여 악성 코드를 배포하는 웹 사이트를 식별해 내는 기술이다. 이 방법은 악성 코드의 공격으로 피해를 입은 피해자들의 사후 신고에 의하여 샘플을 수집하거나 허니 팟(honey pot)을 통하여 악성 코드를 식별할 수 있는 시그니처를 추출한다. 따라서 시그니처 기반의 악성 코드 대응 방법은 사용자의 사후 신고에 이르기까지 일정한 수의 피해자가 발생할 수 밖에 없다는 문제점이 있다. 시스템 상의 보안 문제점의 존재가 공표되기 전에 이루어지는 제로 데이 공격(zero-day attack)에 대한 방어가 불가능한 것이다. 또한 알려진 악성 코드의 변종에 대한 방어도 완전하지 못하다.
사전 방역 방법은 프로그램이 수행하는 행위에 기반하여 악성 코드 여부를 판단한다. 취약점을 보호하는 HIPS(Host Intrusion Prevention System) 등의 기술이 여기에 속한다. 이 방법은 탐지된 행위가 의심스럽지만 정상 코드도 그러한 행 위를 수행할 수 있는 경우가 많기 때문에 악성 코드 여부를 100% 확실하게 판단할 수는 없다. 따라서 이 방법은 의심스러운 행위를 발견했을 때 그 코드를 계속 실행할 것인지 여부를 알림 창 등을 통하여 사용자에게 묻는다. 사전 방역 방법으로 보호되는 시스템에서는 이러한 알림 창이 빈번하게 생성되므로 사용자는 불편함을 느끼게 된다. 또한 알림 창이 의심스러운 행위의 실행을 경고하더라도, 컴퓨터 보안 전문가가 아닌 일반 사용자들이 악성 코드 여부를 판단하여 의심스러운 행위의 계속 실행 여부를 결정하는 것은 사실상 어렵다는 문제가 있다.
상기 문제점을 해결하기 위하여 본 발명은, 외부로부터의 침입단계에서 응용 프로그램 내지 어플리케이션(application)을 가상화를 통해 격리 실행함으로써 악성 코드의 시스템 공격을 사전 차단하는 것을 목적으로 한다.
또한, 프로그램 사용자 개인정보가 저장되는 영역을 격리공간에서는 볼 수 없도록 선별적으로 가상화 하여 사용자의 개인정보 유출을 원천적으로 방어하는 것을 목적으로 한다.
또한, 격리 공간에서 취약 프로그램이 수행하는 둘 이상의 의심행위를 종합적으로 고려하여 알려지지 않은 위협에 효과적으로 대응하는 것을 목적으로 한다.
상기 목적을 달성하기 위하여 본 발명의 제 1 측면은, 외부와의 인터페이스를 가지는 취약 프로그램이 격리 공간에서 실행될 때 필요한 필수 자원을 미리 선 별하여 저장하는 필수 자원 저장부와, 상기 취약 프로그램이 상기 필수 자원이 아닌 다른 자원에 접근하는 경우 상기 다른 자원의 내용을 변경한 새로운 변경 자원을 생성하는 변경 자원 생성부, 및 상기 취약 프로그램이 상기 필수 자원에 접근하는 경우 OS 레벨 가상화 처리하고 상기 필수 자원이 아닌 다른 자원에 접근하는 경우 상기 변경 자원에 접근하도록 처리하는 자원 제어부를 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치를 제공한다.
또한, 실행 요청된 프로그램이 상기 취약 프로그램인지 여부를 판단하는 취약 프로그램 판단부를 더 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치를 제공한다.
또한, 네트워크 접근 자원의 사용이 확인된 프로그램의 리스트를 저장하는 취약 프로그램 리스트 저장부를 더 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치를 제공한다.
또한, 상기 자원 제어부는 해당 자원에 대하여 수행되는 상기 취약 프로그램의 행위를 감시하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치를 제공한다.
또한, 상기 감시된 행위 중 둘 이상의 의심스러운 행위를 종합적으로 분석하여 상기 취약 프로그램의 악성 코드 여부를 판단하는 악성 코드 판단부를 더 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치를 제공한다.
또한, 상기 자원 제어부는, 레지스트리 자원을 제어하는 레지스트리 제어부와, 파일 자원을 제어하는 파일 제어부와, 커널 오브젝트 자원을 제어하는 커널 오 브젝트 제어부, 또는 네트워크 자원을 제어하는 네트워크 제어부 중 어느 하나 이상을 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치를 제공한다.
또한, 상기 격리 공간에 대한 자체 보호를 제공하는 격리 공간 보호부를 더 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치를 제공한다.
상기 목적을 달성하기 위하여 본 발명의 제 2 측면은, 외부와의 인터페이스를 가지는 취약 프로그램이 격리 공간에서 실행될 때 필요한 필수 자원을 미리 선별하여 저장하고, 상기 취약 프로그램의 접근 대상이 상기 필수 자원인지 여부를 판단하고, 상기 접근 대상이 상기 필수 자원인 경우 OS 레벨 가상화 처리하며, 상기 접근 대상이 상기 필수 자원이 아닌 다른 자원인 경우 상기 접근 대상 자원의 내용을 변경한 새로운 변경 자원을 생성하고 상기 변경 자원에 접근하도록 처리하는 선별적 가상화를 이용한 악성 코드 사전 차단 방법을 제공한다.
또한, 네트워크 접근 자원의 사용이 확인된 프로그램의 리스트에 기반하여 실행 요청된 프로그램이 상기 취약 프로그램인지 여부를 판단하는 선별적 가상화를 이용한 악성 코드 사전 차단 방법을 제공한다.
또한, 상기 자원에 대하여 수행되는 상기 취약 프로그램의 행위를 감시하는 선별적 가상화를 이용한 악성 코드 사전 차단 방법을 제공한다.
또한, 상기 감시된 행위 중 둘 이상의 의심스러운 행위를 종합적으로 분석하여 상기 취약 프로그램의 악성 코드 여부를 판단하는 선별적 가상화를 이용한 악성 코드 사전 차단 방법을 제공한다.
또한, 상기 취약 프로그램의 접근 대상이 상기 필수 자원인지 여부의 판단 은 자원별로 이루어지며, 상기 자원은 레지스트리, 파일, 커널 오브젝트, 또는 네트워크 중 어느 하나 이상을 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 방법을 제공한다.
또한, 상기 필수 자원 여부의 판단은, OS가 설치된 위치, 상기 취약 프로그램이 설치된 위치, 또는 OS가 어플리케이션들이 사용자 단위로 사용하도록 지정한 위치 중 어느 하나에 존재하는 자원을 상기 필수 자원으로 판단하는 것으로 이루어지는 선별적 가상화를 이용한 악성 코드 사전 차단 방법을 제공한다.
또한, 상기 격리 공간에서 실행되는 상기 취약 프로그램의 권한을 사용자 권한으로 변경하는 선별적 가상화를 이용한 악성 코드 사전 차단 방법을 제공한다.
상기 목적을 달성하기 위하여 본 발명의 제 3 측면은, 상기 기재된 방법 중 어느 하나를 수행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체를 제공한다.
본 발명에 의하면, 악성 코드가 시스템의 관리자 권한을 획득하는 것을 사전 차단 하고 악성코드를 효과적으로 삭제할 수 있게 되는 효과가 있다.
또한, 프로그램 실행에 필수적인 시스템 자원만을 가상화하여 사용자의 개인 정보 또는 기밀 정보의 유출을 원천적으로 방지하는 효과가 있다.
또한, 격리 공간에서의 실행으로 다른 작업에의 영향을 최소화 하고 알려지지 않은 위협 및 변종 악성 코드들을 효과적으로 차단하는 효과가 있다.
이하 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 하기에서 본 발명을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
악성 코드의 침입은 크게 네트워크(network)를 통한 침입과 기록매체(media)를 통한 침입으로 구별된다. 네트워크를 통한 침입은 인터넷 웹 브라우저(web browser), 메신저(messenger), P2P(Peer-to-Peer) 파일 공유 프로그램, 채팅(chatting) 프로그램, 메일 클라이언트(mail client), 다운로드 매니저(download manager), 미디어 플레이어(media player) 등 외부와의 인터페이스를 가지는 취약 프로그램을 통하여 일어난다. 기록매체를 통한 침입은 USB(Universal Serial Bus), CD(Compact Disk), 플로피 디스크(Floppy Disk) 등을 통하여 일어난다.
악성 코드의 침입 사례를 보면, 많은 경우 악성 코드가 시스템에 복사 또는 저장된 후, 어떠한 방식으로든 사용자에 의하여 악성 코드에게 시스템 관리자 권한(administrator rights)이 부여된다. 관리자 권한을 획득한 악성 코드는 사용자 시스템의 모든 자원(resource) 및 설정에 대한 변경이 가능하므로, 방역 시스템을 속이거나 관리자 권한을 통하여 악성 행위를 하게 된다. 이때 악성 코드가 사용자로부터 시스템 관리자 권한(administrator rights)을 획득하는 것을 차단하고 시스템의 취약점을 방역하면 많은 악성 코드를 효과적으로 차단할 수 있다.
도 1은 유저 모드와 커널 모드 관점에서 본 발명의 악성 코드 사전 차단 장치의 구조를 도시한 것이다.
보통의 응용 프로그램인 일반 프로그램(135)은 일반 실행부(130)에서 실행되며 일반 저장부(150)에 접근한다. 그러나 악성 코드의 침입 경로가 될 수 있는 취약 프로그램(145)은 격리 공간인 격리 실행부(140)에서 실행되며 격리 저장부(170)에 접근하게 된다. 일반 프로그램(135) 및 취약 프로그램(145)은 유저 모드(110)에서 각각 일반 실행부(130) 및 격리 실행부(140)에 의하여 실행되며, 일반 저장부(150) 및 격리 저장부(170)는 커널 모드(120)에서 동작한다.
격리 실행부(140)는 시스템 자원을 가상화하여 취약 프로그램(145)의 프로세스(process)를 일반 실행부(130) 등의 본 시스템과 격리하여 실행한다. 격리 실행부(140)는 취약 프로그램(145)의 권한을 제한된 권한(restricted rights)으로 변경하여 실행하도록 제어한다.
자원 제어부(160)는 격리 실행부(140)에서 실행되는 취약 프로그램(145)이 격리 저장부(170)의 자원에 접근하는 것을 제어하고 그 동작을 감시한다.
자원 제어부(160)는 취약 프로그램(145)이 접근하고자 하는 대상이 프로그램의 실행에 필요한 자원인 경우 OS(Operating System) 레벨 가상화 기술을 사용하여 처리하고, 그렇지 않은 경우 가상화 기술을 사용하지 않음으로써 개인 정보를 보호한다. 종래의 가상화 기술과는 달리 필수 자원 여부에 따라 선별적으로 가상화 기술을 사용하는 것이다. 선별적 가상화에 대해서는 뒤에서 더 자세히 설명할 것이다.
자원 제어부(160)는 시스템 자원에 따라 레지스트리(registry) 제어부(161), 파일(file) 제어부(162), 커널 오브젝트(kernel object) 제어부(163), 네트워크 제어부(164) 등으로 구성될 수 있다. 각 제어부(161, 162, 163, 164)는 프로세스가 해당 시스템 자원에 접근하고자 할 때 가상화된 자원을 제공한다. 따라서 취약 프로그램(145)은 격리된 환경에서 가상화된 자원에만 접근 가능하게 되므로, 악성 코드는 호스트(host)에 접근할 수 없어 사용자 시스템의 관리자 권한을 획득할 수 없게 된다.
이 경우 악성 코드는 관리자 권한을 획득하기 위하여 어떠한 한가지의 방법에 한하지 않고, 연속적 시스템 설정 변경, 파일 또는 레지스트리 생성, 프로그램 실행, 네트워크 연결 등을 시도하게 된다. 이 때 격리 실행부(140) 내에서 실행되는 취약 프로그램(145)의 동작을 감시 분석하여 악성 코드 여부를 판단할 수 있다면 더 효과적인 방역을 구현할 수 있다. 예를 들어 시작 프로그램으로 등록하려는 동작을 감지했다고 하더라도, 그러한 동작은 일반 프로그램(135)들도 많이 하는 것이기 때문에 그것만으로 악성 코드 여부를 판단하기는 쉽지 않다. 하지만 해당 프로그램이 임의로 네트워크를 통해 사용자의 개인정보 영역을 검색(search)하여 전송하려 하거나 시작 프로그램으로 등록된 프로그램이 자기 자신을 숨기려 하는 등의 행위가 추가로 탐지된다면 이러한 둘 이상의 동작을 종합하여 해당 프로그램을 악성 코드라고 판단할 수 있다. 악성 코드 여부의 판단이 이루어지면, 해당 프로그램이 행한 시스템 설정 변경에 영향을 받지 않고 악성 코드를 삭제 또는 차단할 수 있게 된다.
도 2는 본 발명의 악성 코드 사전 차단 장치의 구조를 도시한 블록도이다.
자원 제어부(160)는 필수 자원 저장부(210)와 변경 자원 생성부(220)와 연동하여 선별적 가상화를 구현한다.
격리 실행부(140)는 외부와의 인터페이스를 가지는 취약 프로그램(145)을 실행 요청 시점부터 호스트로부터 격리한다. 취약 프로그램에는 상술한 바와 같이 인터넷 웹 브라우저, 메신저, P2P 파일 공유 프로그램, 채팅 프로그램, 메일 클라이언트, 다운로드 매니저, 미디어 플레이어 등이 있다. 취약 프로그램(145) 여부는 리스트를 관리함으로써 효과적으로 판단할 수 있다. 프로그램 인스톨(install) 시 해당 프로그램이 네트워크 접근 자원을 제어하는 모듈을 로드(load), 설치 또는 사용할 경우 취약 프로그램 리스트에 등록하는 등의 방식으로 취약 프로그램 리스트를 관리할 수 있다. 프로그램 실행 시 취약 프로그램 리스트를 검색하여 그 격리 실행 여부를 결정할 수 있는 것이다.
선별적 가상화란, 프로그램의 실행에 필요한 필수 자원만을 가상화하여 격리 실행부(140)라는 격리 공간이 가상화된 필수 자원에 접근할 수 있도록 하고, 그 이외의 사용자 개인 정보 영역은 가상화하지 않고 접근할 수 없도록 제한하는 것을 말한다. 사용자 개인 정보 영역이란 예를 들어 개인 문서, 다른 프로그램의 설치경로, 인터넷 임시파일 등을 말한다. 프로그램 실행에 불필요한 사용자 개인 정보 영역을 가상화할 경우 악성 코드에게 파일의 존재 여부를 알려줄 수 있게 되어 개인 정보 유출의 위험이 있다.
필수 자원 저장부(210)는 프로그램의 실행에 필요한 필수 자원을 선별하여 그 자원 또는 자원의 리스트를 저장한다. 자원 제어부(160)는 필수 자원 저장부(210)를 참조하여 취약 프로그램(145)가 접근 요청한 자원이 필수 자원인지 여부를 판단할 수 있다. 필수 자원은 일반 저장부(150)에 저장된 원본 데이터를 복사하여 격리 저장부(170)에 저장한 후, 취약 프로그램(145)가 격리 저장부(170) 내의 복사본에 접근하도록 가상화 처리한다.
필수 자원이 아닌 다른 자원은 개인 정보 등 보호의 필요성이 있는 자원을 포함하므로, 격리 실행부(140)가 임의로 접근할 수 없도록 제한한다. 이것을 구현하기 위하여 변경 자원 생성부(220)가 포함될 수 있다. 변경 자원 생성부(220)는 일반 저장부(150)에 저장된 필수 자원이 아닌 자원의 내용을 변경한 새로운 자원을 생성한다. 새롭게 생성되는 자원은 원본 자원을 대체하여 접근 요청을 한 취약 프로그램(145)에 의하여 실행될 수 있어야 하므로, 보호하고자 하는 필수 자원이 아닌 다른 자원의 원본과 같은 형식의 자원이 될 수 있다. 이 경우 새롭게 생성된 변경 자원은 격리 저장부(170)에 복사된 후 취약 프로그램(145)에 의하여 접근될 수 있다.
도 3은 OS 레벨 가상화 처리 과정의 일 실시예를 도시한 것이다.
가상화란 자원 요청 시 실제 자원을 추상적으로 제공하는 것이다. 본 실시예에서는 가상화 기술로 OS 레벨 가상화를 사용한다. 예를 들어 어떤 프로그램이 [내 문서] 폴더에 접근하고자 하는 경우, OS 레벨 가상화를 하게 되면 [내 문서] 폴더로의 접근 요청은 그 형태에 따라 달리 처리된다. OS 레벨 가상화 처리 과정은 아래와 같다.
먼저 접근 요청이 Read 요청인지 Write 요청인지 판단한다(S310). Read 요청인 경우에는 그대로 통과시켜 일반 저장부(150) 내의 접근 대상에 읽기 처리를 허용한다(S320). Write요청의 경우에는, 먼저 대상 파일 또는 폴더를 격리 저장부(170)로 복사하여 복사본을 생성한 후(S330), 격리 저장부(170) 내의 접근 대상 복사본에 대하여 쓰기 처리를 허용한다(S335).
하지만 상술한 바와 같이 프로그램의 실행에 필요하지 않은 부분까지 전부 가상화하는 경우에는 악성 코드에 의한 파일 존재 여부 확인 및 개인 정보 유출의 우려가 있다. 이러한 문제는 선별적 가상화를 통하여 해결할 수 있다.
도 4는 본 발명의 악성 코드 사전 차단 방법의 각 단계를 도시한 흐름도이다.
먼저, 프로그램을 실행할 때 필요한 필수 자원을 미리 선별한다(S410). 보통의 경우 취약 프로그램의 접근 대상은 운영체제(OS)가 설치된 폴더, 해당 취약 프로그램이 설치된 폴더, OS가 응용 프로그램 내지 어플리케이션이 사용자 단위로 사용하도록 지정한 장소(예컨대 C:\Documents and Settings\username\Application Data 폴더) 등에 존재하는 경우가 많다. 실시예에 따라 이러한 특정 폴더에 존재하는 자원을 필수 자원으로 미리 선별할 수 있다.
그리고 실행 요청된 프로그램이 취약 프로그램인지 여부를 판단한다(S420). 상술한 외부 인터페이스를 가지는 취약 프로그램은 격리하여 실행할 필요가 있기 때문이다. 이 때 취약 프로그램이 아닌 것으로 판정된 경우 가상화를 사용하지 않는 통상의 과정에 의하여 일반 프로그램으로 실행 처리한다(S470). 취약 프로그램 으로 판정된 경우, 가상화 환경으로서 격리 공간을 생성한 후(S430), 격리 공간에서 해당 프로그램을 실행한다(S435).
격리 공간에서 취약 프로그램이 특정 자원에 접근하고자 하는 경우, 선별적 가상화 기술이 적용되어 해당 접근 대상이 미리 선별된 필수 자원인지 여부를 판단한다(S440). 접근 대상이 필수 자원인 경우 통상의 OS 레벨 가상화 기술을 사용하여 접근 처리한다(S450). 필수 자원이 아닌 다른 자원은 프로그램을 실행하는데 필수적인 부분이 아니므로, 개인 정보 보호 등을 위하여 취약 프로그램에 의한 접근을 제한할 필요가 있다. 따라서 그러한 자원에 대한 접근 요청이 있는 경우에는, 접근 대상 자원의 내용을 변경한 새로운 자원을 생성한 후(S460), 해당 프로그램이 변경된 내용의 새로운 자원에 접근하도록 처리한다(S465). 이로써 취약 프로그램이 그 실행에 필요한 자원에 접근하고자 하는 경우에는 가상화에 의한 접근을 허용하고, 그렇지 않은 자원에 접근하고자 하는 경우에는 대상 자원의 내용을 변경한 새로운 자원을 생성하여 그 새로운 자원에 접근하여 실행되도록 처리하는 선별적 가상화가 구현되는 것이다.
본 실시형태의 모듈, 기능 블록들 또는 수단들은 전자 회로, 집적 회로, ASIC (Application Specific Integrated Circuit) 등 공지된 다양한 소자들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수 있다.
이상과 같이 본 발명의 이해를 위하여 그 실시예를 기술하였으나, 당업자라면 알 수 있듯이, 본 발명은 본 명세서에서 기술된 특정 실시예에 한정되는 것이 아니라, 본 발명의 범주를 벗어나지 않는 범위 내에서 다양하게 변형, 변경 및 대 체될 수 있다. 예를 들어, 문자 대신 기타 LCD 등 디스플레이에 의해 표시될 수 있는 그림, 영상 등에도 본 발명의 기술이 적용될 수 있다. 따라서, 본 발명의 진정한 사상 및 범주에 속하는 모든 변형 및 변경을 특허청구범위에 의하여 모두 포괄하고자 한다.
도 1은 유저 모드와 커널 모드 관점에서 본 발명의 악성 코드 사전 차단 장치의 구조를 도시한 것이다.
도 2는 본 발명의 악성 코드 사전 차단 장치의 구조를 도시한 블록도이다.
도 3은 OS 레벨 가상화 처리 과정의 일 실시예를 도시한 것이다.
도 4는 본 발명의 악성 코드 사전 차단 방법의 각 단계를 도시한 흐름도이다.

Claims (15)

  1. 외부와의 인터페이스를 가지는 취약 프로그램이 격리 공간에서 실행될 때 필요한 필수 자원을 미리 선별하여 저장하는 필수 자원 저장부와,
    상기 취약 프로그램이 상기 필수 자원이 아닌 다른 자원에 접근하는 경우 상기 다른 자원의 내용을 변경한 새로운 변경 자원을 생성하는 변경 자원 생성부, 및
    상기 취약 프로그램이 상기 필수 자원에 접근하는 경우 OS 레벨 가상화 처리하고 상기 필수 자원이 아닌 다른 자원에 접근하는 경우 상기 변경 자원에 접근하도록 처리하는 자원 제어부
    를 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치.
  2. 제 1항에 있어서,
    실행 요청된 프로그램이 상기 취약 프로그램인지 여부를 판단하는 취약 프로그램 판단부
    를 더 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치.
  3. 제 2항에 있어서,
    네트워크 접근 자원의 사용이 확인된 프로그램의 리스트를 저장하는 취약 프로그램 리스트 저장부를 더 포함하는
    선별적 가상화를 이용한 악성 코드 사전 차단 장치.
  4. 제 1항에 있어서,
    상기 자원 제어부는 해당 자원에 대하여 수행되는 상기 취약 프로그램의 행위를 감시하는
    선별적 가상화를 이용한 악성 코드 사전 차단 장치.
  5. 제 4항에 있어서,
    상기 감시된 행위 중 둘 이상의 의심스러운 행위를 종합적으로 분석하여 상기 취약 프로그램의 악성 코드 여부를 판단하는 악성 코드 판단부
    를 더 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치.
  6. 제 1항에 있어서,
    상기 자원 제어부는, 레지스트리 자원을 제어하는 레지스트리 제어부와, 파일 자원을 제어하는 파일 제어부와, 커널 오브젝트 자원을 제어하는 커널 오브젝트 제어부, 또는 네트워크 자원을 제어하는 네트워크 제어부 중 어느 하나 이상을 포함하는
    선별적 가상화를 이용한 악성 코드 사전 차단 장치.
  7. 제 1항에 있어서,
    상기 격리 공간에 대한 자체 보호를 제공하는 격리 공간 보호부
    를 더 포함하는 선별적 가상화를 이용한 악성 코드 사전 차단 장치.
  8. 외부와의 인터페이스를 가지는 취약 프로그램이 격리 공간에서 실행될 때 필요한 필수 자원을 미리 선별하여 저장하고,
    상기 취약 프로그램의 접근 대상이 상기 필수 자원인지 여부를 판단하고,
    상기 접근 대상이 상기 필수 자원인 경우 OS 레벨 가상화 처리하며,
    상기 접근 대상이 상기 필수 자원이 아닌 다른 자원인 경우 상기 접근 대상 자원의 내용을 변경한 새로운 변경 자원을 생성하고 상기 변경 자원에 접근하도록 처리하는
    선별적 가상화를 이용한 악성 코드 사전 차단 방법.
  9. 제 8항에 있어서,
    네트워크 접근 자원의 사용이 확인된 프로그램의 리스트에 기반하여 실행 요청된 프로그램이 상기 취약 프로그램인지 여부를 판단하는
    선별적 가상화를 이용한 악성 코드 사전 차단 방법.
  10. 제 8항에 있어서,
    상기 자원에 대하여 수행되는 상기 취약 프로그램의 행위를 감시하는
    선별적 가상화를 이용한 악성 코드 사전 차단 방법.
  11. 제 10항에 있어서,
    상기 감시된 행위 중 둘 이상의 의심스러운 행위를 종합적으로 분석하여 상기 취약 프로그램의 악성 코드 여부를 판단하는
    선별적 가상화를 이용한 악성 코드 사전 차단 방법.
  12. 제 8항에 있어서,
    상기 취약 프로그램의 접근 대상이 상기 필수 자원인지 여부의 판단은 자원별로 이루어지며, 상기 자원은 레지스트리, 파일, 커널 오브젝트, 또는 네트워크 중 어느 하나 이상을 포함하는
    선별적 가상화를 이용한 악성 코드 사전 차단 방법.
  13. 제 8항에 있어서,
    상기 필수 자원 여부의 판단은, OS가 설치된 위치, 상기 취약 프로그램이 설치된 위치, 또는 OS가 어플리케이션들이 사용자 단위로 사용하도록 지정한 위치 중 어느 하나에 존재하는 자원을 상기 필수 자원으로 판단하는 것으로 이루어지는
    선별적 가상화를 이용한 악성 코드 사전 차단 방법.
  14. 제 8항에 있어서,
    상기 격리 공간에서 실행되는 상기 취약 프로그램의 권한을 사용자 권한으로 변경하는
    선별적 가상화를 이용한 악성 코드 사전 차단 방법.
  15. 제 8항 내지 제 14항 중 어느 한 항에 기재된 방법을 수행하는 프로그램이 기록된
    컴퓨터로 읽을 수 있는 기록매체.
KR1020090009175A 2009-02-05 2009-02-05 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 KR100985074B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020090009175A KR100985074B1 (ko) 2009-02-05 2009-02-05 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
US13/148,177 US8984629B2 (en) 2009-02-05 2010-02-03 Apparatus and method for preemptively protecting against malicious code by selective virtualization
PCT/KR2010/000650 WO2010090435A2 (ko) 2009-02-05 2010-02-03 선별적 가상화를 이용한 악성 코드 사전 차단 장치 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090009175A KR100985074B1 (ko) 2009-02-05 2009-02-05 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Publications (2)

Publication Number Publication Date
KR20100089968A true KR20100089968A (ko) 2010-08-13
KR100985074B1 KR100985074B1 (ko) 2010-10-04

Family

ID=42542498

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090009175A KR100985074B1 (ko) 2009-02-05 2009-02-05 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체

Country Status (3)

Country Link
US (1) US8984629B2 (ko)
KR (1) KR100985074B1 (ko)
WO (1) WO2010090435A2 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014077474A1 (ko) * 2012-11-13 2014-05-22 주식회사 파수닷컴 가상 폴더를 이용한 보안 콘텐츠 관리 장치 및 방법
US10365939B2 (en) 2015-12-01 2019-07-30 Electronics And Telecommunications Research Institute Method and apparatus for providing operating system based on lightweight hypervisor
WO2020189823A1 (ko) * 2019-03-20 2020-09-24 주식회사 하우리 리다이렉션 파일의 유효성 검증방식에 의한 악성프로그램 처리장치 및 처리방법

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100987354B1 (ko) * 2008-05-22 2010-10-12 주식회사 이베이지마켓 웹 사이트 내의 부정 코드를 점검하기 위한 시스템 및 그방법
KR101206737B1 (ko) 2010-11-29 2012-11-30 인포섹(주) 보안 취약성 평가 및 대응이 가능한 모바일 단말기 및 이의 구현방법
US9129257B2 (en) * 2010-12-20 2015-09-08 Verizon Patent And Licensing Inc. Method and system for monitoring high risk users
US9146029B2 (en) 2012-06-15 2015-09-29 RTC Industries, Incorporated Power supply with mechanical connections
US9360196B2 (en) 2012-06-15 2016-06-07 Rtc Industries, Inc. Low voltage power supply for a merchandise display system
KR20140121142A (ko) * 2013-04-05 2014-10-15 소프트캠프(주) 전자문서 검역방법 및 검역시스템
KR101498614B1 (ko) * 2014-02-27 2015-03-04 한국전자통신연구원 악성코드 활동 차단 장치 및 방법
US11102298B1 (en) * 2015-05-26 2021-08-24 Pure Storage, Inc. Locally providing cloud storage services for fleet management
US9697361B2 (en) 2015-07-06 2017-07-04 AO Kaspersky Lab System and method of controlling opening of files by vulnerable applications
US11126740B2 (en) 2016-11-04 2021-09-21 Microsoft Technology Licensing, Llc Storage isolation for containers

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7428701B1 (en) * 1998-12-18 2008-09-23 Appligent Inc. Method, system and computer program for redaction of material from documents
US7712029B2 (en) * 2001-01-05 2010-05-04 Microsoft Corporation Removing personal information when a save option is and is not available
US7613930B2 (en) * 2001-01-19 2009-11-03 Trustware International Limited Method for protecting computer programs and data from hostile code
US20030097594A1 (en) * 2001-05-03 2003-05-22 Alain Penders System and method for privacy protection in a service development and execution environment
US7849360B2 (en) * 2001-05-21 2010-12-07 Vir2Us, Inc. Computer system and method of controlling communication port to prevent computer contamination by virus or malicious code
US7231665B1 (en) * 2001-07-05 2007-06-12 Mcafee, Inc. Prevention of operating system identification through fingerprinting techniques
WO2005043360A1 (en) * 2003-10-21 2005-05-12 Green Border Technologies Systems and methods for secure client applications
CN100481013C (zh) * 2004-08-03 2009-04-22 索芙特瑞斯提股份有限公司 用于经由上下文策略控制来控制应用程序间关联的系统和方法
US7680758B2 (en) * 2004-09-30 2010-03-16 Citrix Systems, Inc. Method and apparatus for isolating execution of software applications
US7640583B1 (en) * 2005-04-01 2009-12-29 Microsoft Corporation Method and system for protecting anti-malware programs
US7536635B2 (en) * 2005-04-25 2009-05-19 Microsoft Corporation Enabling users to redact portions of a document
KR100751016B1 (ko) 2005-09-06 2007-08-22 엘지전자 주식회사 파일 시스템 운용 방법 및 그 데이터 처리 장치
US7954092B2 (en) * 2005-12-24 2011-05-31 International Business Machines Corporation Creating an assured execution environment for at least one computer program executable on a computer system
US8539497B2 (en) * 2006-03-30 2013-09-17 Microsoft Corporation Method for organizing software so the set of extensions for an extendable application can be run securely
WO2007133178A2 (en) * 2006-04-21 2007-11-22 The Trustees Of Columbia University In The City Of New York Systems and methods for inhibiting attacks on applications
KR20070111603A (ko) * 2006-05-18 2007-11-22 이상규 클라이언트 및 서버의 보안시스템
US8738786B2 (en) 2006-05-18 2014-05-27 Sanggyu Lee Method for protecting client and server
US8584005B1 (en) * 2006-06-28 2013-11-12 Adobe Systems Incorporated Previewing redaction content in a document
US7984514B1 (en) * 2006-07-10 2011-07-19 Adobe Systems Incorporated Secure operation of transitory computer applications
US20080127348A1 (en) * 2006-08-31 2008-05-29 Kenneth Largman Network computer system and method using thin user client and virtual machine to provide immunity to hacking, viruses and spy ware
CA2665873A1 (en) * 2006-10-20 2008-05-02 Citrix Systems, Inc. Methods and systems for accessing remote user files associated with local resources
US8584109B2 (en) * 2006-10-27 2013-11-12 Microsoft Corporation Virtualization for diversified tamper resistance
KR100740682B1 (ko) 2006-11-30 2007-07-19 (주)필라넷 로컬 피씨로의 데이터 저장을 방지하는 보안파일서버시스템및 그 방법과 그 방법에 대한 컴퓨터 프로그램을 저장한기록매체
US8656386B1 (en) * 2007-03-13 2014-02-18 Parallels IP Holdings GmbH Method to share identical files in a common area for virtual machines having the same operating system version and using a copy on write to place a copy of the shared identical file in a private area of the corresponding virtual machine when a virtual machine attempts to modify the shared identical file
US8307443B2 (en) * 2007-09-28 2012-11-06 Microsoft Corporation Securing anti-virus software with virtualization
US8239836B1 (en) * 2008-03-07 2012-08-07 The Regents Of The University Of California Multi-variant parallel program execution to detect malicious code injection
US20090319432A1 (en) * 2008-06-19 2009-12-24 Renfro Chadwick R Secure transaction personal computer
US8347380B1 (en) * 2008-06-30 2013-01-01 Symantec Corporation Protecting users from accidentally disclosing personal information in an insecure environment
US8250652B1 (en) * 2009-02-24 2012-08-21 Symantec Corporation Systems and methods for circumventing malicious attempts to block the installation of security software

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014077474A1 (ko) * 2012-11-13 2014-05-22 주식회사 파수닷컴 가상 폴더를 이용한 보안 콘텐츠 관리 장치 및 방법
US10365939B2 (en) 2015-12-01 2019-07-30 Electronics And Telecommunications Research Institute Method and apparatus for providing operating system based on lightweight hypervisor
WO2020189823A1 (ko) * 2019-03-20 2020-09-24 주식회사 하우리 리다이렉션 파일의 유효성 검증방식에 의한 악성프로그램 처리장치 및 처리방법

Also Published As

Publication number Publication date
US8984629B2 (en) 2015-03-17
US20110296526A1 (en) 2011-12-01
KR100985074B1 (ko) 2010-10-04
WO2010090435A3 (ko) 2010-10-14
WO2010090435A2 (ko) 2010-08-12

Similar Documents

Publication Publication Date Title
KR100985074B1 (ko) 선별적 가상화를 이용한 악성 코드 사전 차단 장치, 방법 및 그 방법을 실행하는 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체
US10599841B2 (en) System and method for reverse command shell detection
EP3430556B1 (en) System and method for process hollowing detection
US10282548B1 (en) Method for detecting malware within network content
US9547765B2 (en) Validating a type of a peripheral device
US20170286172A1 (en) Computing platform security methods and apparatus
US9106697B2 (en) System and method for identifying unauthorized activities on a computer system using a data structure model
CN110119619B (zh) 创建防病毒记录的系统和方法
GB2601231A (en) Dynamic sandbox scarecrow for malware management
Baliga et al. Automated containment of rootkits attacks
US11706251B2 (en) Simulating user interactions for malware analysis
EP3314499B1 (en) Temporary process deprivileging
McIntosh et al. Applying staged event-driven access control to combat ransomware
JP6738013B2 (ja) 攻撃内容分析プログラム、攻撃内容分析方法及び攻撃内容分析装置
Shan et al. Enforcing mandatory access control in commodity OS to disable malware
Litty et al. Computer Meteorology: Monitoring Compute Clouds.
Hassan et al. Endpoint Defense Strategies: How to Protect Endpoints from Ransomware Attacks
Win et al. Handling the hypervisor hijacking attacks on virtual cloud environment
US8566950B1 (en) Method and apparatus for detecting potentially misleading visual representation objects to secure a computer
Shen et al. The Impact of Attacking Windows Using a Backdoor Trojan
Alsmadi et al. The ontology of malwares
Jayarathna et al. Hypervisor-based Security Architecture to Protect Web Applications.
Sun et al. Contemporary Malware Trends and Countermeasures
Bouche et al. Malicious Administrators, Breakout Exploits: On the Pitfalls of Cloud Computing
Gupta et al. Predictability in viral computing

Legal Events

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

Payment date: 20130930

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140929

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150929

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160928

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170928

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190930

Year of fee payment: 10