KR20090125068A - 제한된 프로세스에서의 파일 변환 - Google Patents

제한된 프로세스에서의 파일 변환 Download PDF

Info

Publication number
KR20090125068A
KR20090125068A KR1020097017649A KR20097017649A KR20090125068A KR 20090125068 A KR20090125068 A KR 20090125068A KR 1020097017649 A KR1020097017649 A KR 1020097017649A KR 20097017649 A KR20097017649 A KR 20097017649A KR 20090125068 A KR20090125068 A KR 20090125068A
Authority
KR
South Korea
Prior art keywords
file
format
file format
converter
limited
Prior art date
Application number
KR1020097017649A
Other languages
English (en)
Other versions
KR101467595B1 (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 마이크로소프트 코포레이션
Publication of KR20090125068A publication Critical patent/KR20090125068A/ko
Application granted granted Critical
Publication of KR101467595B1 publication Critical patent/KR101467595B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • 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/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/568Computer malware detection or handling, e.g. anti-virus arrangements eliminating virus, restoring damaged files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

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)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Quality & Reliability (AREA)
  • Storage Device Security (AREA)

Abstract

제1 파일 포맷의 파일을 제2 파일 포맷의 변환된 파일로 변환함으로써 제1 파일 포맷의 파일로부터의 악성 코드를 제거하기 위한 실시예들이 개시된다. 실시예에서는, 파일을 변환하면 변환된 파일에 저장되고 있는 파일 내에 포함된 악성 코드가 제거된다. 변환은 운영 체제 및 기초 컴퓨터 시스템으로의 액세스를 제한하는 제한된 권한을 갖는 제한된 컴퓨터 프로세스 내에서 수행된다. 결국, 파일 내에 포함된 악성 코드가 파일이 변환된 파일로 변환되는 중에 실행하더라도, 제한된 프로세스에 제공된 제한된 권한 때문에 컴퓨터 시스템에 대한 피해는 경감된다.
파일 포맷, 컨버터, 악성 코드, 제한된 프로세스, 제한된 권한

Description

제한된 프로세스에서의 파일 변환{FILE CONVERSION IN RESTRICTED PROCESS}
바이러스, 트로이 목마 등의 악성 코드를 처리하는 것은 소프트웨어 개발자들에게 지속적인 근심거리이다. 해커들은 일반적으로 애플리케이션 또는 파일 포맷 내의 취약점들이 알려지면 곧 그 취약점들을 이용한다. 취약점이 일반적으로 알려지게 된 당일에 알려진 취약점을 이용하는 악성 코드를 제로 데이 악용(zero day exploit)이라고 한다. 현재까지는, 제로 데이 악용을 효과적으로 해결하는 솔루션이 몇 개 없다.
악성 코드가 제로 데이 악용 내에 돌아다닐 수 있는 속도 때문에, 개발자들은 취약점을 해결할 패치 또는 다른 솔루션을 구현할 충분한 시간을 확보할 수 없다. 종종, 이용가능한 유일한 해법은 사용자에게 불필요한 서비스는 끄고, 패치 수준을 최신으로 유지하고, 모르는 소스에 기인하거나 예상치 못한 첨부물들을 열지 않는 등의 보안 모범 규준(security best practices)을 따르도록 권고함으로써 악성 코드를 열 가능성을 줄이는 것뿐이다. 일단 취약점이 알려지면, 사용자는 취약점에 의해 침범된 파일들을 여는 것을 피할 수 있다. 그러나, 이는 사용자가 파일에 액세스해야만 하는 경우에는 적절한 해법을 제공하지 않는다.
또한, 악성 코드를 검색하여 제거하는 데 사용되는 현재 이용가능한 소프트웨어 애플리케이션들(예를 들면, 항바이러스 소프트웨어)은 악성 코드 또는 악용당 하고 있는 취약점에 관한 몇몇 사전 지식을 가져야만 한다. 예를 들면, 몇몇 애플리케이션은 문서들에서 이미 악성으로 식별된 코드를 검색한다. 다른 애플리케이션들은 예외적인 코드를 검색해야 하는 구조 내 특정 필드와 같은 취약점에 관한 지식을 필요로 한다. 이들 방법 각각은 사전 지식(또는 코드나 취약점)을 필요로 한다. 제로 데이 악용에서는, 취약점은 알려지지 않을 것이고, 해커들은 일반적으로 악성으로 식별되지 않을 새로운 코드를 생성한다. 이는 현재 이용가능한 소프트웨어 애플리케이션이 제로 데이 악용에 대하여 무력하게 한다.
본 발명의 실시예들은 이들 및 다른 고려사항들에 관하여 만들어졌다. 또한, 비록 상대적으로 특정한 문제점들이 논의되지만, 본 발명의 실시예들은 배경기술에서 설명된 특정 문제점들을 해결하는 것에 한정되지는 않아야 함이 이해되어야 한다.
본 설명은 이하의 실시예 섹션에서 더 논의될 컨셉의 선택을 단순한 형태로 소개하기 위해 제시된다. 이 설명은 청구되는 요지의 핵심 또는 주요 특징들을 식별하기 위하거나, 청구된 요지의 범주를 결정하기 위한 목적으로 사용되고자 하는 것은 아니다.
제1 파일 포맷의 파일을 제2 파일 포맷의 변환된 파일로 변환함으로써 파일에서 악성 코드를 제거하거나 무력하게 만들기 위한 실시예들이 설명된다. 실시예에서, 파일에 포함된 악성 코드는 파일이 변환된 파일로 변환하는 동안에 제거되거나 무력해진다. 변환은 컨버터에 의해 수행되는데, 이는 제한된 컴퓨터 프로세스 내에 로딩되어 있다. 컴퓨터 프로세스는 기본 운영 체제 및 컴퓨터 시스템에 대한 그것의 액세스를 제한하는 제한된 권한을 갖는다. 따라서, 파일 내에 포함된 악성 코드가 변환 중에 실행하도록 관리하는 경우라고 해도, 이는 제한된 프로세스 내에 로딩되어 있기 때문에, 유발할 수 있는 피해는 제한된다.
실시예들은 컴퓨터 프로세스, 컴퓨팅 시스템, 또는 컴퓨터 프로그램 제품이나 컴퓨터 판독가능 매체와 같은 제조품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독가능하고 컴퓨터 프로세스를 실행하기 위한 명령어로 된 컴퓨터 프로그램을 인코딩하는 컴퓨터 저장 매체일 수 있다. 컴퓨터 프로그램 제품은 또한 컴퓨팅 시스템에 의해 판독가능하고, 컴퓨터 프로세스를 실행하기 위한 명령어로 된 컴퓨터 프로그램을 인코딩한 캐리어 상의 전파된 신호일 수 있다.
비 제한적이며 전부를 포함하지는 않는 실시예들이 이하의 도면들을 참조하여 설명되는데, 동일한 참조부호들은 따로 특정되지 않는 한 각종 뷰들에서 동일한 부분들을 지칭한다.
도 1은 실시예에 따라, 파일로부터 악성 코드를 제거하거나 무력화시키는 데 사용되는 시스템을 도시하는 도면.
도 2는 실시예에 따라, 악성 모드를 포함할 수 있는 파일을 안전하게 여는 데 사용될 수 있는 시스템을 도시하는 도면.
도 3은 파일로부터 악성 코드를 제거하거나 무력화시키기 위한 동작적 흐름 을 도시하는 도면.
도 4는 악성 코드를 포함할 수 있는 파일을 안전하게 열기 위한 동작적 흐름을 도시하는 도면.
도 5는 악성 코드를 포함할 수 있는 파일을 안전하게 열기 위한 제2 동작적 흐름을 도시하는 도면.
도 6은 실시예들을 구현하기에 적합한 컴퓨팅 환경의 블록도를 도시하는 도면.
첨부된 도면들을 참조하여 이하에서는 각종 실시예들이 보다 자세히 설명되는데, 도면들은 그것들의 일부를 형성하고, 본 발명을 수행하기 위한 특정 실시예들을 도시한다. 그러나, 실시예들은 다양한 형태들로 구현될 수 있고 본원에 개시된 실시예들에 제한되는 것으로 이해되어서는 안되며, 대신에 이들 실시예들은 이 개시가 철저하고 완벽해지고, 당업자에게 본 발명의 요지가 완전히 전달되도록 제공된다. 실시예들은 방법, 시스템 또는 장치로서 실시될 수 있다. 따라서, 실시예들은, 하드웨어 구현, 전체 소프트웨어 구현, 또는 소프트웨어와 하드웨어 양태가 조합된 구현의 형태를 취할 수 있다. 그러므로, 이하의 상세한 설명은 한정적인 의미로 취급되어서는 안된다.
각종 실시예들의 논리적 동작은 (1) 컴퓨팅 시스템 상에서 실행하는 컴퓨터 구현 단계들의 연속 및/또는 (2) 컴퓨팅 시스템 내 상호연결된 기계 모듈로서 구현된다. 구현예는 실시예를 구현하는 컴퓨팅 시스템의 수행 요건에 따른 선택의 문 제이다. 따라서, 본원에 개시된 실시예들을 구성하는 논리적 동작들은 동작, 단계, 또는 모듈들로 대안적으로 지칭될 수 있다.
간략하게 설명한 바와 같이, 실시예들은 제1 파일 포맷의 파일을 제2 파일 포맷으로 변환함으로써 그 파일로부터 악성 코드를 제거하거나 무력화시키기 위한 것이다. 악성 코드나, 코드를 전달(carry)하는 데 사용되는 취약성에 대하여 아무런 사전 지식이 없이도 악성 코드가 제거되거나 무력해진다. 변환은 제한된 컴퓨터 프로세스 내에 로딩된 컨버터에 의해 수행된다. 컴퓨터 프로세스는 기본 운영 체제 및 컴퓨팅 시스템으로의 그것의 액세스를 제한하는 제한된 권한을 갖는다. 따라서, 파일 내에 포함된 악성 코드가 변환중에 실행하도록 관리하는 경우라도, 제한된 액세스 때문에, 그것이 만들 수 있는 피해도 제한적이다. 본 출원에서, "악성 코드(malicious code)"란 용어는 광의적이며 허가받지 않은 목적을 위해 파일 또는 애플리케이션에 포함되는 소프트웨어를 포함하고자 하는 것이다. 악성 코드의 예들은 바이러스, 웜, 트로이 목마, 및 기타 원치않는 소프트웨어를 포함한다.
도 1은 실시예에 따라, 악성 코드를 포함할 수 있는 파일을 안전하게 여는 데 사용되는 시스템(100)을 도시한다. 이 실시예에서, 시스템(100)은 레지스트리(112), 애플리케이션(104), 컨버터(106) 및 파일(110)을 갖는 운영 체제(102)를 포함한다. 파일(110)은 데이터(110A) 및 파일 확장자(110B; 예를 들면, 파일명의 일부로서)를 포함한다. 또한, 이 실시예에 따라, 애플리케이션(104)은 차단 정책(114)을 포함한다. 같은 실시예에서 차단 정책(114)은 어떤 파일 타입(즉, 파일 포맷)을, 애플리케이션(104)에 의해 열기를 차단(block)할지를 가리킨다. 또한, 차단 정책(114)은 어느 파일 타입을, 저장을 차단할지도 가리킬 수 있다. 차단 정책들 및 파일의 열기 및/또는 저장하기를 차단할 때 그것들의 사용은 발명의 명칭이 "FILE BLOCKING MITIGATION"인 미국 출원번호 제11/679048호에서 상세히 논의되는데, 이는 본 출원과 동일한 날짜에 본 출원인으로서 공동 소유 및 출원되었으며 이에 따라 그것의 전체가 본원에 참조로 포함되어 있다.
컨버터(106)는 제1 파일 포맷으로부터 제2 파일 포맷으로 파일을 변환하는 데 사용된다. 제1 파일 포맷으로부터 제2 파일 포맷으로 파일들을 변환하는 것은 파일들 내에 포함될 수 있는 악성 코드를 제거하거나, 무력하게 한다. 컨버터(106)는 운영 체제 기능(function)을 액세스하는 등의 목적을 위해 운영 체제(102)와 상호작용할 수 있다. 도 1에 도시된 실시예에서, 컨버터(106)는 제한된 프로세스(120)로 로딩되어서, 제1 파일 포맷으로부터 제2 파일 포맷으로의 파일들의 변환은 제한된 프로세스(120) 내에서 수행된다. 제한된 프로세스(120)는 운영 체제(102), 및 운영 체제(102)가 실행중인 기본 컴퓨터 시스템으로의 제한된 액세스 권한을 갖는다. 즉, 프로세스(120)는 운영 체제 기능을 요청하기 위한 제한된 권한을 갖는다.
이제 애플리케이션(104)을 참조하면, 이는 운영 체제 기능에 액세스하는 등의 목적을 위해 운영 체제(102)와 통신할 수 있다. 도 1에 도시된 실시예에서, 애플리케이션(104)은 컨버터(106)와 같은 제한된 프로세스 내에 있지 않으므로, 운영 체제 기능을 요청하기 위한 보다 큰 권한을 갖는다. 또한, 애플리케이션(104)은 파일을 열고, 편집하고, 저장하고, 및/또는 생성할 수 있다. 도 1에 도시된 실시 예에서, 애플리케이션(104)은 파일(110)과 상호작용한다. 일 실시예에서, 애플리케이션(104)은 워드 프로세싱 애플리케이션일 수 있다. 사용자는 애플리케이션(104)을 시작하고 나서 애플리케이션(104)으로 파일(즉, 파일(110))을 열 수 있는데, 애플리케이션은 파일(110)을 메모리에 로딩하고 파일에 대한 액세스를 제공한다. 그러면 사용자는 파일(110)에 데이터(즉, 데이터(110A))를 추가 및 편집할 수 있다. 애플리케이션(104)은 특정 타입의 애플리케이션으로 제한되지는 않지만, 워드 프로세싱, 스프레드시트, 그래픽 표현 등과 같은, 임의 종류의 애플리케이션일 수 있다.
실시예에서, 애플리케이션(104)은 또한 파일(110)이 특정 타입이라고 나타내기 위한 파일 확장자(110B)를 설정한다. 예를 들면, 이 실시예에서 파일 확장자(110B)는 파일이 "저장(saved)" 또는 "다른 이름으로 저장(saved-as)"될 때에 파일에 할당되는 파일(110)의 파일명 중 일부이다. 예를 들면, 워드 프로세싱 애플리케이션은 파일(예를 들면, 텍스트 문서)로 하여금 ".doc" 파일 확장자를 갖게 하여 그 파일이 이진 파일 포맷의 파일임을 가리키게 할 수 있다.
파일 확장자(예를 들면 110B)는, 때때로 잠재적으로 악성인 파일(즉, 악성 코드를 유입하는데 악용될 수 있는 취약점이 알려진 파일들)이 네트워크에 의해 수신되기 전에 그 파일들을 감지하거나 차단하기 위해 관리자들에 의해 사용될 수 있다. 예를 들면, 이메일 서버는 특정 파일 확장자를 갖는 파일들을 포함한 모든 이메일을 감지하여 차단하는 반면에, 다른 파일 확장자를 갖는 파일들을 포함한 이메일이 이메일 클라이언트 네트워크에 들어가는 것은 허가하도록 구성될 수 있다. 그러나, 파일 확장자들은 다른 확장자를 갖는 파일로 단순히 재명명됨으로써 쉽사리 조작될 수 있으므로, 네트워크에 유입되고 있는 것 중에서 악성 코드를 갖는 파일들을 식별하기 위해 파일 확장자들을 사용하는 것은 신뢰할만한 메커니즘이 아니다. 또한, 파일이 네트워크에 들어가기 전에 파일을 차단하는 것은 그 파일을 기다리는 사용자가 그 파일이 차단되었는지 및/또는 그 파일에 보안 이슈가 있는 것인지를 알지 못하게 한다.
도 1에 도시된 실시예에서, 애플리케이션(104)은 타입 검사자 모듈(124)을 포함한다. 타입 검사자 모듈(124)은 파일 데이터(예를 들면, 110A)를 검사하여 파일의 진짜 파일 포맷을 판정한다. "진짜 파일 포맷(true file format)"이란 용어는 이 애플리케이션에서 파일의 실제 포맷을 설명하기 위해 사용되었다. 일례에서, 워드 프로세싱 문서는 *.doc, *.dot, 또는 *.wiz인 파일 포맷을 가질 수 있다. 도 1에 도시된 실시예에서, 파일의 진짜 파일 포맷은 확장자(110B)와 같은 파일 확장자를 검사함으로써 판정되지는 않음이 이해되어야 하겠다. 대신에, 파일 검사자 모듈(114)이 파일 데이터(예를 들면, 110A)의 일부를 검사하고, 그 검사에 기초하여 파일의 진짜 파일 포맷을 판정한다.
일 실시예에서, 타입 검사자 모듈(124)은 파일로부터 데이터의 처음(first) 몇 바이트를 읽고(즉, 파일을 스니핑), 검사된 데이터 내 헤더 정보 및 데이터 구조와 같은 특징에 기초하여, 타입 검사자 모듈(124)은 파일의 진짜 파일 포맷을 판정할 수 있다. 진짜 파일 포맷은 파일 확장자를 이용하여 본 출원에서 기술된다. 예를 들면, 파일 포맷은 *.doc, *.dot, 및/또는 *.wiz로 설명될 수 있다. 그러나, 파일 확장자명으로 진짜 파일 포맷을 설명하는 것은, 진짜 파일 포맷을 판정하는 것과 혼동되어서는 안되는데, 이는 파일 확장자명을 검사하는 것을 수반하지 않는다.
동작에서, 시스템(100)은 우선 애플리케이션(104)과 같은 애플리케이션을 시작한다. 애플리케이션(104)의 시작은, 예를 들면, 애플리케이션(104)을 나타내는 아이콘을 더블클릭함으로써, 애플리케이션(104)의 시작을 요청하는 사용자에 의해 일어날 수 있다. 다른 방법으로는, 사용자는 예를 들면 파일(110)의 아이콘을 더블 클릭함으로써 파일(110)이 열릴 것을 요청할 수 있다. 이 경우 운영 체제(102)는 파일 확장자명(110B)을 애플리케이션(104)과 연관시켜서 애플리케이션(104)의 시작을 개시할 수 있다.
애플리케이션(104)은 시작될 때에 구성 정보를 로딩한다. 몇몇 실시예에서 구성 정보는 운영 체제(102)의 레지스트리(112)에 저장된다. 이 실시예에서, 애플리케이션(104)은 시작할 때, 운영 체제(102)로부터의 구성 정보를 요청할 것인데, 이는 레지스트리(112)에서 정보를 탐색할 것이다. 일 실시예에서, 차단 정책(114)은 운영 체제(102)의 레지스트리 내에 구성 정보로서, 예를 들면 레지스트리 키의 형태로 저장된다. 따라서, 애플리케이션(104)은 시작할 때, 레지스트리(112)에서 차단 정책(114)을 탐색할 것이다.
몇몇 실시예에서, 차단 정책(114)에 대한 액세스는 레지스트리(112)를 기입/변경할 권한을 갖는 이들 사용자, 예를 들어 관리 권한을 갖는 사용자들에 제한된다. 따라서, 관리자는 애플리케이션(104)을 이용하여 열기 또는 저장이 차단된 파 일 포맷들을 효과적으로 제어할 수 있다.
일단 시작되면, 애플리케이션(104)은 파일들을 열고, 편집하고, 저장하는 데 사용될 수 있다. 제1 예시로서, 애플리케이션(104)이 파일(110)을 열고자 시도할 때에, 타입 검사자 모듈(124)은 우선 데이터(110A)의 일부를 검사하여 파일(110)의 진짜 파일 포맷을 판정한다. 위에서 설명한 바와 같이, 실시예에서 타입 검사자 모듈(124)은 데이터(110A)의 처음(first) 몇 바이트를 검사함으로써 진짜 파일 포맷을 판정한다. 타입 검사자 모듈(124)은 데이터(110A) 내 헤더 정보 또는 데이터 구조를 사용하여 파일(110)의 진짜 파일 포맷에 관하여 판정을 내릴 수 있다. 진짜 파일 포맷(110)이 일단 판정되면, 애플리케이션(104)은 진짜 파일 포맷을 차단 정책(114)과 비교한다. 파일(110)의 진짜 파일 포맷이 열기가 차단되었다고 차단 정책(114)에 의해 식별되지 않는다면, 애플리케이션(104)은 파일을 메모리에 로딩하고 사용자에게 파일(110) 내 데이터를 추가, 편집, 및 저장하는 파일 액세스를 제공함으로써 그 파일을 열 것이다.
파일(110)의 진짜 파일 포맷이 열기가 차단되었다고 차단 정책(114)에 의해 식별된다면, 애플리케이션(104)은 파일(110)의 열기를 차단할 것이다. 일 실시예에서, 애플리케이션(104)은 파일이 열기가 차단된 파일 포맷임을 가리키는 메세지를 사용자에게 디스플레이한다.
다른 실시예에서, 파일(110)이 열기가 차단되었다는 판정에 응답하여, 컨버터(106)는 파일을 그것의 진짜 파일 타입으로부터 제2 파일 타입으로 변환하도록 시작될 수 있다. 이 실시예에서, 컨버터(106)는 제한된 프로세스(120)로 로딩되고 애플리케이션(104)에 의해 열기가 차단되지 않은 제2 파일로 파일(110)을 변환하는 데 사용된다.
시스템(100)의 몇몇 실시예에서, 관리자는 컨버터(106)를 특정 파일 포맷의 파일을 위한 디폴트 처리기로 설정할 수 있다. 특정 파일 포맷이 취약하다고 식별되는, 제로 데이 악용의 경우, 관리자는 취약한 포맷의 파일을 위한 디폴트 처리기로서 컨버터(106)를 설정함으로써 컴퓨터 시스템 또는 네트워크에 가능한 피해를 경감시킬 수 있다. 이는, 사용자가 취약한 파일 포맷으로 저장된 파일을 열고자 시도할 때마다, 파일을 다른 포맷으로 변환하도록 컨버터(106)가 시작될 것이므로, 제로 데이 악용 동안의 피해 가능성을 줄인다. 상술한 바와 같이, 변환은 변환된 파일 내에 전송/저장되는 것으로부터 악성 코드를 제거할 것이다. 또한, 컨버터(106)가 제한된 프로세스(120)로 로딩되기 때문에, 실행하는 임의의 악성 코드는 컴퓨터 시스템 또는 네트워크에서 제한된 영향(impact)을 가질 것이다.
몇몇 실시예에서, 관리자는 제로 데이 악용중에 취약한 포맷의 파일을 차단하도록 애플리케이션(104)에 대해 차단 정책을 설정함으로써 추가적인 예방조치를 취할 수 있다. 따라서, 컨버터(106)를 디폴트 처리기로서 설정함과 함께, 컴퓨터 시스템 또는 네트워크는 취약한 포맷의 파일에 포함된 악성 코드에 의해 유발될 수 있는 피해에 대해 견고한 보호를 갖는다.
도 2는 컨버터(106)의 보다 상세한 도식으로 시스템(200)을 도시한다. 시스템(200)은 제1 파일 포맷(파일 포맷 1)의 파일(202A), 컨버터(106), 제2 파일 포맷(파일 포맷 2)의 변환된 파일(202B), 및 레지스트리(112)를 갖는 운영 체제(102) 를 포함한다. 도 2에 도시된 실시예에서, 컨버터(106)가 제한된 프로세스(120)로 로딩되어, 제한된 프로세스(120) 내에서 파일 포맷 1에서 파일 포맷 2로의 변환이 수행된다. 제한된 프로세스(120)는 운영 체제(102), 및 운영 체제(102)가 실행되는 기본 컴퓨터 시스템에 대한 제한된 액세스 권한을 갖는다. 이는 만일 악성 코드(204)와 같은 악성 코드가 실행하더라도, 운영 체제(102) 및 기본 컴퓨터 시스템에 입힐 수 있는 피해면에서는 제한적임을 보장한다. 도 2는 제1 파일 포맷의 파일(202A)을 제2 파일 포맷의 변환된 파일(202B)로 변환하는 컨버터(106)의 실시예의 세부사항을 도시하고, 프로세스에서 변환된 파일 데이터에서 악성 코드(204)를 제거하거나 무력화시킨다.
동작에서, 시스템(200)은 우선 컨버터(106)를 시작한다. 컨버터(106)의 시작은 컨버터(106)의 시작을 요청하는 사용자에 의해, 예를 들면 컨버터(106)를 나타내는 아이콘을 더블 클릭함으로써 일어날 수 있다. 다른 방법으로는, 사용자는 예를 들면, 파일(202A)의 아이콘을 더블 클릭함으로써 파일(202A)이 열리도록 요청할 수 있다. 이 경우 운영 체제(102)는 파일(202A)(또는 그 파일 확장자)을 컨버터(106)와 연관시켜 컨버터(106)의 시작을 개시할 수 있다.
컨버터(106)는 시작될 때에 제한된 프로세스(120)로 로딩한다. 시작될 때에, 컨버터(106)는 레지스트리(112)로부터 구성 정보를 로딩할 수 있다. 구성 정보는 프로세스(120)를 제한하는 수단이 되는 특정 메커니즘을 나타내는 정보를 포함할 수 있다. 프로세스(120)는 운영 체제(102) 및 운영 체제(102)가 실행중인 기본 컴퓨팅 시스템에 대한 제한적인 액세스 권한을 갖는다. 당업자가 이해할 바와 같이, 프로세스(120)에 주어진(plced on) 특정 제한 및 프로세스(120)를 제한하는 수단이 되는 메커니즘은 특정 운영 체제(102)에 따라, 그리고 파일(202A)로 인한 위험의 수준과 같은 기타 설계 고려사항에 의해 다양해 질 것이다.
몇몇 실시예에서, 프로세스(120)는 특정 동작을 수행하도록 하는 허가를 거절당하고/하거나 운영 체제(102)의 특정 기능들(functions)을 호출한다. 예를 들어, 프로세스(120)는, 레지스트리(112)가 각종 애플리케이션에 관하여 민감한 구성 정보를 저장하기 때문에 운영 체제(102)의 레지스트리(112)에 정보를 읽거나 쓰도록 하는 허가를 거부당한다. 그러나, 프로세스(120)에는 다른 저장 위치에 데이터를 읽고 쓰는 것이 허용된다. 다른 실시예에서, 프로세스(120)는 파일을 파일 포맷 1로부터 파일 포맷 2로 변환하기 위해 필요한 이들 기능만을 수행하도록 제한될 수 있다. 예를 들면, 프로세스(120)는 변환중인 파일(예를 들면, 파일(202A))로부터 데이터를 읽고 파일 포맷 2로 변환된 정보를 갖는 변환된 파일(예를 들면, 파일(202B))에 데이터를 쓰는 것만이 허용된다.
상술한 바와 같이, 프로세스(120)를 제한하는 수단이 되는 메커니즘은 특정 운영 체제(102)에 따를 것이다. 일 실시예에서, 운영 체제(102)는 프로세스의 액세스 권한을 제한하기 위한 수많은 방법을 제공하는 "윈도우즈(WINDOWS)" 운영 체제의 한 버전이다. 예를 들면, "윈도우즈" 운영 체제의 버전들에서 모든 프로세스는 관련 액세스 토큰을 갖는데, 이는 프로세스를 위한 전 시스템 권한의 목록을 비롯한 프로세스의 보안 컨텍스트를 설명한다. 제한된 보안 컨텍스트를 통상적으로 설명하는 액세스 토큰을 제한된 토큰이라고 한다. 제한된 토큰은 전 시스템 권한 의 제한된 집합을 설명한다. 일 실시예에서, 프로세스(120)는 전 시스템 권한의 제한된 집합을 설명하는 제한된 토큰과 연관됨으로써 제한된다.
"윈도우즈" 운영 체제의 버전을 사용하는 시스템(200)의 다른 실시예에서, 프로세스(120)는 작업 개체와 연관됨으로써 제한될 수 있다. 작업 개체는 프로세스들의 그룹이 한 단위(a unit)로 관리되도록 허용한다. 작업 개체는 자신들과 연관된 프로세스들의 특성(attributes)을 제어한다. 작업 개체는 워킹(working) 집합 크기, 프로세스 우선순위, 및 작업 시간 제한과 같은 연관된 프로세스에 제한을 적용하기 위해 사용될 수 있다. 실시예에서, 프로세스(120)는 프로세스(120)에 대한 사전결정된 제한을 적용하는 작업 개체와 연관됨으로써 제한된다.
다른 실시예에서, 프로세스(120)는 데스크탑 컨테이너 또는 윈도우 스테이션을 이용하여 제한될 수 있다. "윈도우즈" 운영 체제의 버전들은 많은 사용자에게 윈도우 스테이션에 로그온하도록 허용하기 위한 데스크탑 컨테이너를 제공한다. 데스크탑 컨테이너는 윈도우 스테이션 내에 포함된 보안된 컨테이너 개체이다. 데스크탑 컨테이너는 사용자 인터페이스 요소의 논리적 모음으로, 이는 차례로 "윈도우즈" 운영 체제의 버전들에 의해 구현되는 식으로, 윈도우 스테이션에 포함된다. "윈도우즈" 운영 체제의 버전들 내에서 실행하는 프로세스들 간 통신의 특정 양태들은 프로세스들이 동일한 데스크탑에 할당되는지의 여부에 기초하여 규제되고, 몇몇 경우에는, 프로세스가 동일한 윈도우 스테이션을 공유하는 지의 여부에 의해 통신이 규제된다. 프로세스 간 통신은 보안 연루(implications)를 가질 수 있고, 이런 이유로, 몇몇 실시예들에서 제한된 프로세스(120)는 별도의 윈도우 스테이션(모 든 데스크탑은 단 하나의 윈도우 스테이션을 컨테이너로 가지므로, 별도의 데스크탑을 의미함)에서 실행한다.
"윈도우즈" 운영 체제를 사용하여 구현된 시스템(200)의 실시예에서, 프로세스(120)는 제한된 토큰, 작업 개체, 및 윈도우 스테이션들/데스크탑 컨테이너들의 조합을 사용하여 제한된다. 이들 메커니즘을 둘 이상 사용하면 파일(202A)을 파일 포맷 1로부터 파일 포맷 2의 변환된 파일(202B)로의 변환중에 프로세스(120)에서 실행하는 악성 코드에 의해 발생될 수 있는 피해를 제한하는 견고한 보안을 제공한다. 일 특정 실시예에서, 프로세스(120)는 제한된 토큰, 작업 개체, 및 데스크탑 컨테이너 셋 모두를 이용하여 제한된다.
컨버터(106)가 제한된 프로세스(120)로 로딩된 후에, 컨버터(106)는 파일(202A)을 파일 포맷 1로부터 파일 포맷 2의 변환된 파일(202B)로 변환한다. 논의된 바와 같이, 컨버터는 파일(202A) 내에 있을 수 있는 악성 코드(204)에 관한 어떤 지식도 갖고 있지 않고, 취약점에 관한 지식도 갖고 있지 않다. 실시예에서, 컨버터(106)는 파서와 엔진을 이용하여 파일(202A)을 변환한다. 파서는 데이터를 추출하기 위해 파일을 파싱하는데, 이는 엔진에 의해 상이한 파일 포맷인, 파일 포맷 2로 표현된다. 새로 표현된 데이터는 변환된 파일(202B)에 저장된다. 실시예에서, 파일(202A)을 파싱하는 프로세스 중에, 파서는 파일(202A) 내에서 파일(202A)의 헤더 정보 및 데이터 구조와 같은 특징들을 식별하는데, 이는 어떤 데이터를 변환된 파일(202B)에 전송할지를 결정하는데 사용한다. 악성 코드(204)는 변환된 파일(202B)에 저장될 데이터를 결정하기 위해 컨버터(106)에 의해 사용된 특징들을 포함하지 않으므로, 변환된 파일(202B)에도 포함되지 않는다. 컨버터(106)의 파서가 악성 코드(104)를 파싱할 때에, 이는 데이터를 파일(202B)에 전송하는 데 필요한 특징들을 인식하지 않을 것이다. 따라서, 악성 코드(204)는 변환된 파일(202B)에 전송되는 파일 데이터에서 제거될 것이다. 변환된 파일(202B)은 그 후 제한된 프로세스(120)의 외부에서 안전하게 열리고 액세스될 수 있다.
다른 실시예에서, 악성 코드(204)는 변환된 파일(202B)을 통해 패스된다. 애플리케이션은 통상적으로 파일을 열기 전에 파서를 이용하여 파일을 스캔한다. 종종 악성 코드(204)와 같은 악성 코드는 특정 파일 포맷의 파일을 열도록 설계된 파서들을 타겟으로 한다. 즉, 악성 코드(204)는 파일 포맷 1인 파일들을 여는 데 사용되는 파서들을 타겟으로 할 수 있다. 따라서, 악성 코드(204)가 변환된 파일(202B)에 포함되는 경우라도, 변환된 파일(202B)이 파일 포맷 2의 파일들을 열도록 설계된 파서들에 의해 열릴 것이므로 많은 보안 위협을 내포하지는 않을 것이다. 따라서, 실시예에서, 파일 포맷 1의 파일(202A)을 파일 포맷 2의 변환된 파일(202B)로 단순히 변환하면, 변환된 파일(202B)에 코드가 포함되어 있더라도 악성 코드(204)의 위협은 제거한다.
몇몇 경우에서, 악성 코드(204)는 컨버터(106)가 파일(202A)을 변환하고자 시도할 때 컨버터(106)를 공격할 수 있다. 위에서 자세히 설명했듯이, 컨버터(106)는 제한된 권한을 갖는 제한된 프로세스(120)에서 실행한다. 따라서, 악성 코드(204)가 파일(202A)의 변환 중에 성공적으로 실행하도록 관리하는 경우라 해도, 그것이 초래할 수 있는 피해는 제한적일 것이다.
실시예에서, 컨버터(106)에 의해 수행되는 변환은 파일로부터 악성 코드를 제거하도록 특별히 설계된 소프트웨어 애플리케이션들에 유리함을 제공한다. 통상적으로, 악성 코드를 제거하도록 설계된 이들 애플리케이션은, 악성 코드를 식별하기 위해 찾아야 할 특징 또는 악성 페이로드(payloads)를 저장하는 것에 취약할 수 있는 지를 검사하기 위한 구조와 같은 몇가지 지식을 가져야만 한다. 반대로, 컨버터(106)는 악성 코드(204)에 관하여 아무런 지식도 갖지 않고, 대신에 데이터를 파일 포맷 1로부터 파일 포맷 2로 변환하는 데 필요한 특성(characteristics)을 악성 코드(204)가 포함하지 않는다는 단순한 사실은 변환된 파일(202B)로 전송되는 데이터로부터 악성 코드(204)를 제거할 것이다. 또한, 악성 코드(204)가 변환된 파일(202B)로 전송되는 경우라도, 변환된 파일(202B)의 새로운 파일 포맷(예를 들면, 파일 포맷 2) 때문에, 심각한 보안 위협을 내포하지는 않는다.
몇몇 실시예에서, 컨버터(106)는 파일 포맷 1을 파일 포맷 2로 변환할 수 있고 또한 파일 포맷 2를 다시 파일 포맷 1로 변환할 수 있는 수단인 양 방향(two-way) 컨버터이다. 일 실시예에서, 컨버터(106)가 변환된 파일(202B)을 생성시키고 변환된 파일(202B)에 전송되고 있는 것 중에서 악성 코드(204)를 제거한 후에, 파일(202B)을 다시 파일 포맷 1로 변환한다. 일 실시예에서, 파일(202A)은 보안 취약점을 갖는 것으로 식별된 이진 파일 포맷(파일 포맷 1)일 수 있다. 결국, 파일(202A)은 컨버터(106)에 의해 XML 파일 포맷(파일 포맷 2)의 변환된 파일(202B)로 변환되는데, 이는 악성 코드(204)를 제거하거나 무력하게 한다. 그러나, 사용자가 XML 포맷의 파일들을 열 수 있는 애플리케이션을 갖고 있지 않을 수 있다. 따라서, 파일(202B)은 그 후 사용자가 파일 데이터를 열어 액세스하게 허용하도록 이진 파일 포맷(파일포맷 1)으로 다시 변환된다.
도 3 내지 5는 실시예들에 따른 동작 흐름(300, 400, 500)을 도시한다. 동작 흐름(300, 400, 500)은 임의의 적합한 컴퓨팅 환경에서 수행될 수 있다. 예를 들면, 동작 흐름들은 시스템(100 및 200; 도 1 및 도 2)과 같은 시스템에 의해 실행되어 파일로부터 악성 코드를 제거하고 파일을 안전하게 열 수 있다. 따라서, 동작 흐름(300, 400, 500)의 설명(description)은, 도 1 및 도 2의 컴포넌트들 중 적어도 하나를 지칭할 수 있다. 그러나, 도 1 및 도 2의 컴포넌트에 대한 임의의 참조부호들은 설명적인 목적만을 위한 것이며, 도 1 및 도 2의 구현예는 동작 흐름(300, 400, 500)에 관한 제한적이지 않은 환경임이 이해될 것이다.
또한, 동작 흐름(300, 400, 500)이 몇몇 실시예에서 특정 순서로 연이어 설명 및 개시되었지만, 다른 실시예에서, 동작 흐름은 다른 순서, 여러 회, 및/또는 병행하여 수행될 수도 있다. 또한, 몇몇 실시예에서 하나 이상의 동작들이 생략되거나 결합될 수 있다.
도 3은 일 실시예에 따라 파일에서 악성 코드를 제거하기 위한 동작 흐름(300)을 도시한다. 동작(302)에서, 파일을 제1 파일 포맷에서 제2 파일 포맷으로 변환할 수 있는 컨버터가, 제한된 프로세스에 로딩된다. 실시예에서, 컨버터는 컨버터(106; 도 1 및 도 2)인데, 이는 제한된 프로세스(120; 도 1 및 도 2)에 로딩된다. 제한된 프로세스(120)는 예를 들면 운영 체제(102)와 같은 운영 체제에 액세스하기 위한 제한된 권한을 갖는다. 프로세스에 주어진 제한은 파일이 컨버터에 의해 변환하는 중에 실행되는 악성 코드에 의해 생성되는 피해의 가능성을 제한한다.
동작(302)은 예를 들면, 컨버터를 나타내는 아이콘을 더블클릭함으로써 사용자가 컨버터의 개시를 요청한 결과로서 개시될 수 있다. 다른 방법으로는, 사용자가 예를 들면 파일의 아이콘을 더블 클릭함으로써 특정 파일이 열릴 것을 요청할 수 있고, 동작(302)에 응답하여 제한된 프로세스로 컨버터를 로딩함으로써 컨버터의 시작을 개시할 것이다.
제한된 프로세스에 컨버터가 로딩된 후에, 동작 흐름은 파일을 제1 포맷으로부터 제2 포맷으론 변환함으로써 악성 코드가 제거되는 동작(304)으로 패스한다. 동작(304)은 제한된 프로세스 내에서 수행된다. 일 실시예에서, 변환은 제한된 프로세스(120)에서 컨버터(106)에 의해 수행된다. 상술한대로, 컨버터(106)는 제1 파일 포맷의 파일을 파싱하여 파일에서 데이터를 추출하는 데 사용되는 파일 내 특징들을 식별할 것이다. 그 후 추출된 데이터는 제2 파일 포맷인 변환된 파일에 저장된다. 제1 파일에 내포되었을 수 있는 어떤 악성 코드도 변환된 파일에는 없다. 그 후 변환된 파일은 파일을 변환하는 데 사용된 제한된 프로세스 보다 적은 제한을 갖는 프로세스에서 안전하게 열릴 수 있다.
도 4는 일 실시예에 따라, 파일 내 데이터에 액세스하기 위해 파일을 안전하게 열기 위한 동작 흐름(400)을 도시한다. 동작(402)에서 파일을 열라는 요청이 수신된다. 일 실시예에서, 컨버터(106; 도 1 및 도 2)와 같은 컨버터에 의해 요청이 수신된다. 예를 들면, 사용자는 컨버터를 시작하고 나서 컨버터를 통해 파일을 선택함으로써 파일을 열고자 시도할 수 있다. 다른 실시예에서, 애플리케이션(104; 도 1)과 같은 애플리케이션에 의해 요청이 수신된다. 사용자는 애플리케이션을 시작하고 나서 파일을 선택함으로써 파일을 열고자 시도할 수 있다. 몇몇 실시예에서 예를 들어 파일의 아이콘을 더블클릭함으로써, 사용자가 파일을 선택할 때에 요청이 수신된다.
동작 흐름은 그 후 파일을 제1 포맷으로부터 제2 포맷으로 변환할 수 있는 컨버터가, 제한된 프로세스로 로딩하는 동작(404)으로 패스한다. 실시예에서, 컨버터는 제한된 프로세스(102; 도 1 및 도 2)로 로딩된 컨버터(106; 도 1 및 도 2)이다. 제한된 프로세스는 운영 체제로부터의 기능을 요청하고, 기본 컴퓨터 시스템 내 리소스에 액세스하기 위한 제한된 권한을 갖는다. 이는 프로세스(120) 내에서 실행하는 악성 코드에 의해 유발될 수 있는 피해를 경감시킨다.
동작(406)에서, 컨버터는 파일을 제1 파일 포맷으로부터 변환하여 제2 파일 포맷인 제2 파일을 생성한다. 실시예에서, 파일을 변환하는 프로세스는 제2 파일에 저장하는 것으로부터 파일 내에 내포되었을 수 있는 임의의 악성 코드를 제거한다. 악성 코드의 제거는 악성 코드에 관한 임의의 지식, 또는 악성 코드에 의해 악용되는 취약성에 관한 임의의 지식 없이도 일어난다. 다른 실시예에서, 파일 내 임의의 악성 코드는 파일을 제1 파일 포맷으로부터 제2 파일 포맷으로 단순히 변환함으로써 무력해 질 수 있다. 실시예에서, 컨버터는 파일로부터 데이터를 추출하여 제2 파일에 저장하도록 파일을 파싱하는 컨버터(106; 도 1 및 도 2)이다.
동작(406) 후에, 흐름은 파일이 열리는 동작(408)으로 패스한다. 실시예에 서, 동작(408)은 제2 파일 포맷인 변환된 파일을 열어서 그에 대한 액세스를 제공할 수 있는 애플리케이션을 시작하는 것을 포함한다. 다른 실시예에서, 동작(408)은 변환된 파일을 두 번째로 변환하는 등의 많은 추가 동작을 포함할 수 있다. 예를 들면, 동작(406)에서 사용되는 컨버터는 파일들을 제1 파일 포맷으로부터 제2 파일 포맷으로 변환하고, 또한 파일들을 제2 파일 포맷에서 제1 파일 포맷으로도 변환할 수 있는 양방향 컨버터일 수 있다. 일 실시예에서, 동작(408)은 컨버터를 사용하여, 제2 파일 포맷의 파일을 원본 제1 파일 포맷으로 다시 변환하는 것을 포함한다. 그 후 이 동작 다음에는 제1 파일 포맷의 파일을 열 수 있는 애플리케이션의 시작이 이어진다.
다른 실시예에서, 파일을 제2 파일 포맷에서 제3 파일 포맷으로 변환하기 위해 또 다른 컨버터가 사용될 수 있다. 이 실시예에서, 동작(408)은 파일을 제2 파일 포맷에서 제3 파일 포맷으로 변환하는 제2 컨버터를 시작하는 것이 포함될 수 있다. 그 후 이 동작 다음에는 제3 파일 포맷의 파일을 열어서 액세스를 제공할 수 있는 애플리케이션의 시작이 이어진다.
도 5는 일 실시예에 따라, 파일을 안전하게 열기 위한 동작 흐름(500)을 도시한다. 동작(502)에서 파일을 열라는 요청이 수신된다. 일 실시예에서, 애플리케이션(104; 도 1)과 같은 애플리케이션에 의해 요청이 수신된다. 예를 들면, 사용자는 애플리케이션을 시작하고 나서 파일을 선택할 수 있다. 몇몇 실시예에서, 사용자는 파일을 열기에 적절한 애플리케이션을 자동으로 시작할 수 있는(또는 사용자로 하여금 파일을 열기 위한 애플리케이션을 선택하게 프롬프트할 수 있는) 파 일을 선택한다.
동작(504)에서 파일로부터의 파일 데이터는 진짜 파일 포맷을 판정하기 위해 검사된다. 일 실시예에서, 파일이 메모리에 로딩되기 전에 파일 데이터를 검사하기 위해, 타입 검사자 모듈(124; 도 1)과 같은 타입 검사자 모듈을 갖는 애플리케이션이 사용된다. 타입 검사자 모듈에 의해 검사된 파일 데이터는 파일 내 데이터 중 단지 작은 부분일 뿐이다. 헤더 정보 및 데이터 구조와 같은 데이터 내 특징들을 식별함으로써, 타입 검사자 모듈은 파일 내 데이터 중 전체 또는 많은 부분을 검사할 필요 없이 진짜 파일 포맷에 관하여 결정을 내릴 수 있다.
동작(506)에서, 파일에 대한 진짜 파일 타입이 열기가 차단되었는지에 관하여 판정이 내려진다. 실시예에서, 어떤 파일 포맷이 열기가 차단되었는지를 가리키는 차단 정책(114A; 도 1)과 같은 차단 정책에 액세스함으로써 판정이 내려진다. 동작(506)에서, 진짜 파일 포맷이 차단되지 않았다고 판정이 내려진다면 흐름은, 파일을 메모리에 로딩하고 파일에 대한 액세스를 제공함으로써 파일이 열리는 동작(508)으로 패스한다. 예를 들면, 일 실시예에서 애플리케이션(104)과 같은, 애플리케이션은 파일을 메모리에 로딩하고 사용자에게 애플리케이션을 통한 액세스를 제공함으로써, 사용자가 파일 내 데이터를 편집, 추가, 및 저장하게 하는 동작(508)을 수행한다.
동작(506)에서, 파일의 진짜 파일 포맷이 열기가 차단되는 판정이 내려진다면, 흐름은 동작(510)으로 패스한다. 동작(510)에서, 제1 파일 포맷으로부터 제2 파일 포맷으로 파일을 변환할 수 있는 컨버터가 제한된 프로세스에 로딩된다. 실 시예에서, 컨버터는 제한된 프로세스(120; 도 1 및 도 2)에 로딩되는 컨버터(106; 도 1 및 도 2)이다. 제한된 프로세스는 운영 체제로부터 기능들을 요청하고 기본 컴퓨터 시스템 내 리소스에 액세스하기 위한 제한된 권한을 갖는다. 제한된 권한은 프로세스(120) 내에서 실행하는 악성 코드에 의해 유발될 수 있는 피해를 경감시킨다.
동작(512)에서, 제한된 프로세스로 로딩되는 컨버터는 파일을 제1 파일 포맷으로부터 변환하여 제2 파일 포맷의 제2 파일을 생성한다. 몇몇 실시예에서, 파일을 변환하는 프로세스는 제1 파일 포맷 내에 내포되었을 수 있는 임의의 악성 코드가 제2 파일에 포함되지 않도록 제거한다. 악성 코드의 제거는 악성 코드에 관한 임의의 지식, 또는 악성 코드에 의해 공격받는 취약점에 관한 임의의 지식 없이 일어난다. 다른 실시예에서, 파일을 제1 파일 포맷으로부터 제2 파일 포맷으로 단순히 변환하는 것은 제1 파일 포맷의 파일들을 여는 데 사용되는 파서들을 타겟으로 하는 악성 코드로부터의 위험을 제거한다. 실시예에서, 컨버터는 제1 파일 포맷의 파일을 파싱하여 파일로부터 데이터를 추출하는 데 사용되는 파일 내 특징들을 식별하는 컨버터(106; 도 1 및 도 2)이다. 추출된 데이터는 그 후 제2 파일 포맷인 제2 파일에 저장된다. 제2 파일에는 제1 파일에 내포되어 있을 수 있는 어떤 악성 코드도 없다.
동작(512) 후에, 흐름은 변환된 파일이 열리는 동작(508)으로 패스한다. 실시예에서, 동작(508)은 제2 파일 포맷인 변환된 파일을 열고 그에 대한 액세스를 제공할 수 있는 애플리케이션을 시작하는 것을 포함한다. 다른 실시예에서, 동 작(508)은 변환된 파일을 두 번째 변환하는 등의 다수의 추가 동작을 포함할 수 있다.
도 6은 본원에 설명된 실시예들을 구현하는 데 사용될 수 있는 일반 컴퓨팅 환경(600)을 도시한다. 컴퓨터 환경(600)은 컴퓨팅 환경의 일례일 뿐이며 컴퓨터 및 네트워크 아키텍처의 사용 또는 기능성의 범위에 관하여 어떠한 제한도 제시하기 위한 것은 아니다. 컴퓨터 환경(600)은 예시적인 컴퓨터 환경(600)에 도시된 컴포넌트들 중 임의의 하나 또는 그것들의 조합에 관하여 임의의 의존성이나 요건을 갖는 것으로 해석되어서도 안된다.
대부분의 기본 구성에서, 시스템(600)은 통상적으로 적어도 하나의 처리장치(602) 및 메모리(604)를 갖는다. 컴퓨터 장치의 정확한 구성 및 타입에 기초하여, 메모리(604)는 휘발성(예를 들면, RAM), 비휘발성(예를 들면 ROM, 플래시 메모리 등), 또는 그것들의 몇몇 조합일 수 있다. 이들 대부분의 기본 구성은 도 6에 파선(606)으로 도시된다. 도 6에 도시된 바와 같이, 차단 정책(114A) 및 타입 검사자 모듈(124)을 포함하는 애플리케이션(104; 도 1)과 같은 애플리케이션은 시스템(600)의 사용자에 의한 사용을 위해 시스템 메모리(604)에 로딩될 수 있다. 도 6은 또한 파일 내에 내포되었을 수 있는 악성 코드를 제거하기 위해 파일을 제1 포맷으로부터 제2 포맷의 변환된 파일로 변환하도록 컨버터(106)가 로딩된 제한된 프로세스(120)를 도시한다.
또한, 시스템(600)은 추가 특징들/기능성들을 또한 가질 수 있다. 예를 들면, 시스템(600)은 또한 자기 또는 광학 디스크, 또는 테잎을 비롯한(제한하는 것 은 아님) 추가 저장소(이동식 및/또는 비이동식)를 포함할 수 있다. 이러한 추가 저장소는 이동식 저장소(608) 및 비이동식 저장소(610)로서 도 6에 도시된다. 컴퓨터 저장 매체는 컴퓨터 저장가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 메모리(604), 이동식 저장소(608) 및 비이동식 저장소(610)는 모두 컴퓨터 저장 매체의 예시들이다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disks) 또는 기타 광학 저장소, 자기 카세트, 자기 테잎, 자기 디스크 저장소 또는 기타 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있는 시스템(600)에 의해 액세스될 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 이러한 컴퓨터 저장 매체는 시스템(600)의 일부일 수 있다.
시스템(600)은 또한 시스템으로 하여금 다른 장치들과 통신하게 해주는 통신 접속(들)(612)을 포함할 수 있다. 통신 접속(들)(612)은 통신 매체의 예시이다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령어들, 데이터 구조들, 프로그램 모듈들, 또는 반송파 또는 기타 전송 메커니즘과 같은 변조된 데이터 신호 내 기타 데이터를 포함하고 임의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 그것의 특정 집합 중 하나 이상을 갖거나 신호 내 정보를 인코딩하기 위한 방식으로 변경된 신호를 의미한다. 제한이 아닌 예로써, 통신 매체는 유선 네트워크 또는 직접 배선 연결과 같은 유선 매체, 및 어쿠스틱, RF, 적외선 및 기타 무선 매 체와 같은 무선 매체를 포함한다. 본원에서 사용된 컴퓨터 판독가능 매체란 용어는 저장 매체와 통신 매체 양쪽 모두를 포함한다.
시스템(600)은 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등의 입력 장치(들)(614)를 가질 수 있다. 디스플레이, 스피커, 프린터 등의 출력 장치(들)(616)이 또한 포함될 수 있다. 이들 장치들 모두는 당해 기술 분야에 공지되어 있어서 여기서 길게 논의될 필요는 없다.
참조부호들은 "실시예들", "일 실시예", "실시예", "다른 실시예", 및 "몇몇 실시예"에 대한 이 상술 전체에 있는데, 특히 설명된 특징, 구조, 또는 특성들이 본 발명의 적어도 하나의 실시예에 포함되는 것을 의미한다. 따라서, 이러한 구문의 사용은 단 하나의 실시예보다는 많은 것을 지칭한다. 또한 설명된 특징들, 구조들, 또는 특성들은 하나 이상의 실시예에서 임의의 적절한 방식으로 결합될 수 있다.
그러나 당업자라면 본 발명은 특정 상세 중 어느 하나가 없이도, 또는 다른 방법들, 리소스들, 물질들 등으로도 수행될 수 있다는 것을 인식할 수 있다. 다른 예에서는, 공지된 구조들, 리소스들, 또는 동작들은 단지 본 발명의 애매한 양태를 방지하기 위해 도시나 설명되지 않았다.
본 발명의 예시적인 실시예들 및 애플리케이션이 도시 및 설명되었지만, 본 발명은 이하에 설명되는 명확한 구성 및 리소스들에 제한되는 것이 아님이 이해될 것이다. 당업자에게 떠오를 각종 변형들, 변화들, 및 변동들이 본원에 개시된 본 발명의 방법 및 시스템의 배열, 동작 및 상세에서 청구된 발명의 범위를 일탈하지 않고 만들어질 수 있다.

Claims (20)

  1. 제1 파일 포맷의 파일로부터 악성 코드를 제거하는 방법으로서,
    상기 파일을 상기 제1 파일 포맷으로부터 제2 파일 포맷으로 변환할 수 있는 컨버터(106)를 제한된 프로세스(120)에 로딩하는 단계(302); 및
    상기 제1 파일 포맷으로부터 상기 제2 파일 포맷의 변환된 파일(202B)로 상기 파일(202A)을 변환하기 위한 상기 제한된 프로세스(120)에 로딩된 상기 컨버터(106)를 사용하여 악성 코드(204)를 제거하는 단계(304)
    를 포함하는, 악성 코드 제거 방법.
  2. 제1항에 있어서, 상기 컨버터는 상기 제1 파일 포맷의 모든 파일을 위한 처리기로서 지정된, 악성 코드 제거 방법.
  3. 제2항에 있어서, 상기 로딩하는 단계는, 상기 파일을 열라는 요청을 수신하는 것에 응답하여 수행되는, 악성 코드 제거 방법.
  4. 제1항에 있어서, 상기 제한된 프로세스는 운영 체제로부터 기능들(functions)을 요청하기 위한 제한된 권한을 갖는, 악성 코드 제거 방법.
  5. 제4항에 있어서, 상기 제한된 프로세스는 상기 파일로부터 데이터를 읽는 것 및 상기 변환된 파일에 데이터를 기입하는 것으로 제한되는, 악성 코드 제거 방법.
  6. 제4항에 있어서, 상기 제한된 프로세스는 제한된 토큰, 작업 개체, 데스크탑 컨테이너, 및 그것들의 조합으로 이루어진 그룹 중 하나에 기초하여 제한된 권한을 갖는, 악성 코드 제거 방법.
  7. 제1항에 있어서, 제거하는 단계 후에, 상기 변환된 파일을 제3 파일 포맷으로 변환하는 단계를 더 포함하는, 악성 코드 제거 방법.
  8. 제7항에 있어서, 상기 변환된 파일을 변환하는 단계는, 상기 컨버터에 의해 수행되고 상기 제3 파일 포맷은 상기 제1 파일 포맷과 동일한, 악성 코드 제거 방법.
  9. 파일 열기의 방법을 수행하기 위한 컴퓨터 실행가능 명령어들을 저장하는 컴퓨터 판독가능 매체로서, 상기 방법은,
    제1 파일 포맷의 파일(202A)을 열라는 요청을 수신하는 단계(402);
    상기 제1 파일 포맷으로부터 상기 제2 파일 포맷으로 상기 파일을 변환할 수 있는 컨버터(106)를 제한된 프로세스(120)에 로딩하는 단계(404);
    상기 제한된 프로세스(120)에 로딩된 상기 컨버터(106)를 사용하여 상기 제1 파일 포맷으로부터 상기 제2 파일 포맷의 변환된 파일로 상기 파일을 변환하는 단 계(406) - 상기 변환하는 단계는, 상기 파일(202A)에 존재하는 임의의 악성 코드(204)를 상기 변환된 파일(202B)에서 제거함 -; 및
    상기 변환하는 단계 후에, 상기 변환된 파일(202B)을 여는 단계(408)
    를 포함하는, 컴퓨터 판독가능 매체.
  10. 제9항에 있어서, 상기 컨버터는 상기 제1 파일 포맷의 모든 파일을 위한 처리기로서 지정된, 컴퓨터 판독가능 매체.
  11. 제9항에 있어서, 상기 제한된 프로세스는 운영 체제로부터의 기능들을 요청하기 위한 제한된 권한들을 갖는, 컴퓨터 판독가능 매체.
  12. 제11항에 있어서, 상기 제한된 프로세스는 상기 파일로부터 데이터를 읽는 것 및 상기 변환된 파일에 데이터를 기입하는 것으로 제한되는, 컴퓨터 판독가능 매체.
  13. 제11항에 있어서, 상기 제한된 프로세스는 제한된 토큰, 작업 개체, 데스크탑 컨테이너, 및 그것들의 조합으로 이루어진 그룹 중 하나에 기초하여 제한된 권한을 갖는, 컴퓨터 판독가능 매체.
  14. 제9항에 있어서, 상기 열기는 상기 제2 파일 포맷의 상기 변환된 파일을 열 수 있는 애플리케이션을 시작하는 단계를 더 포함하는, 컴퓨터 판독가능 매체.
  15. 제14항에 있어서, 상기 열기는 상기 변환된 파일을 제3 파일 포맷으로 변환하는 단계를 더 포함하는, 컴퓨터 판독가능 매체.
  16. 파일 열기의 방법으로서,
    파일을 열라는 요청을 수신하는 단계(502);
    상기 파일에 대한 진짜(true) 파일 포맷을 판정하기 위해 상기 파일의 데이터의 일부를 검사하는 단계(504);
    상기 진짜 파일 포맷이 열기가 차단된 포맷인지를 판정하는 단계(506);
    상기 파일 포맷이 열기가 차단된 포맷이 아니라는 판정에 응답하여, 상기 파일을 여는 단계(508); 및
    상기 파일 포맷이 열기가 차단된 포맷이라는 판정에 응답하여,
    상기 파일을 상기 제1 파일 포맷으로부터 제2 파일 포맷으로 변환할 수 있는 컨버터(106)를 제한된 프로세스(120)에 로딩하는 단계(510);
    상기 제한된 프로세스(120)에 로딩된 상기 컨버터(106)를 사용하여, 상기 제1 파일 포맷으로부터 상기 제2 파일 포맷의 변환된 파일(202B)로 상기 파일(202A)을 변환하는 단계(512) - 상기 변환하는 단계는, 상기 파일(202A)에 존재하는 악성 코드(204)를 상기 변환된 파일(202B)에서 제거함 -; 및
    상기 변환하는 단계 후에, 상기 변환된 파일(202B)을 여는 단계(508)
    를 포함하는, 파일 열기 방법.
  17. 제16항에 있어서, 상기 판정하는 단계는, 열기가 차단된 포맷을 가리키는 열기 차단 정책(open block policy)에 액세스하는 단계를 포함하는, 파일 열기 방법.
  18. 제17항에 있어서, 상기 열기 차단 정책은 운영 체제의 레지스트리에 저장되는, 파일 열기 방법.
  19. 제18항에 있어서, 상기 제한된 프로세스는 상기 운영 체제로부터의 기능들을 요청하기 위한 제한된 권한을 갖는, 파일 열기 방법.
  20. 제19항에 있어서, 상기 제한된 프로세스는 상기 파일로부터 데이터를 읽는 것 및 상기 변환된 파일에 데이터를 기입하는 것으로 제한되는, 파일 열기 방법.
KR1020097017649A 2007-02-26 2008-02-07 제한된 프로세스에서의 파일 변환 KR101467595B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/679,068 US7797743B2 (en) 2007-02-26 2007-02-26 File conversion in restricted process
US11/679,068 2007-02-26

Publications (2)

Publication Number Publication Date
KR20090125068A true KR20090125068A (ko) 2009-12-03
KR101467595B1 KR101467595B1 (ko) 2014-12-01

Family

ID=39717485

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097017649A KR101467595B1 (ko) 2007-02-26 2008-02-07 제한된 프로세스에서의 파일 변환

Country Status (9)

Country Link
US (1) US7797743B2 (ko)
EP (1) EP2115653B1 (ko)
JP (1) JP4629796B2 (ko)
KR (1) KR101467595B1 (ko)
CN (1) CN101622624B (ko)
BR (1) BRPI0807461A2 (ko)
RU (1) RU2468426C2 (ko)
TW (1) TWI395113B (ko)
WO (1) WO2008106289A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015056904A1 (ko) * 2013-10-17 2015-04-23 소프트캠프(주) 파일형식 변환을 통한 데이터 방역처리 시스템과 방법

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8359647B1 (en) * 2007-07-19 2013-01-22 Salesforce.Com, Inc. System, method and computer program product for rendering data of an on-demand database service safe
KR100974886B1 (ko) * 2007-12-10 2010-08-11 한국전자통신연구원 파일에 삽입된 악성 코드 제거 장치 및 방법
JP2009271780A (ja) * 2008-05-08 2009-11-19 Canon Inc 電子文書変換装置および電子文書変換方法
US8281398B2 (en) * 2009-01-06 2012-10-02 Microsoft Corporation Reordering document content to avoid exploits
FR2946211B1 (fr) * 2009-05-28 2011-05-27 Sagem Comm Procede de traitement de document par un ordinateur distant, systeme et dispositif amovible connectable a chaud pour la mise en oeuvre de ce procede
CA2806370C (en) * 2009-07-29 2019-07-09 Reversinglabs Corporation Automated unpacking of portable executable files
US8566943B2 (en) * 2009-10-01 2013-10-22 Kaspersky Lab, Zao Asynchronous processing of events for malware detection
WO2011040011A1 (ja) * 2009-10-02 2011-04-07 パナソニック株式会社 バックライト装置および表示装置
US8140735B2 (en) 2010-02-17 2012-03-20 Novell, Inc. Techniques for dynamic disk personalization
US9245114B2 (en) * 2010-08-26 2016-01-26 Verisign, Inc. Method and system for automatic detection and analysis of malware
KR101156227B1 (ko) * 2010-11-22 2012-06-18 주식회사 파수닷컴 전처리가 수행된 파일을 실행하기 위한 파일 처리장치 및 그 방법을 컴퓨터에서 실행시키기 위한 기록매체
CN102855432B (zh) * 2011-06-27 2015-11-25 北京奇虎科技有限公司 一种文件、文件夹解锁和删除方法及系统
US9118686B2 (en) 2011-09-06 2015-08-25 Microsoft Technology Licensing, Llc Per process networking capabilities
US8990561B2 (en) 2011-09-09 2015-03-24 Microsoft Technology Licensing, Llc Pervasive package identifiers
US9773102B2 (en) * 2011-09-09 2017-09-26 Microsoft Technology Licensing, Llc Selective file access for applications
US9800688B2 (en) 2011-09-12 2017-10-24 Microsoft Technology Licensing, Llc Platform-enabled proximity service
WO2013101169A1 (en) * 2011-12-30 2013-07-04 Intel Corporation Sharing data amoung smart devices and a cloud network
US8667594B1 (en) 2012-03-13 2014-03-04 Bromium, Inc. Securing file trust with file format conversions
US9349008B1 (en) 2012-03-13 2016-05-24 Bromium, Inc. Safe printing
US8719933B1 (en) 2012-03-13 2014-05-06 Bromium, Inc. Safe printing
US9047293B2 (en) * 2012-07-25 2015-06-02 Aviv Grafi Computer file format conversion for neutralization of attacks
US10356204B2 (en) 2012-12-13 2019-07-16 Microsoft Technology Licensing, Llc Application based hardware identifiers
US9858247B2 (en) 2013-05-20 2018-01-02 Microsoft Technology Licensing, Llc Runtime resolution of content references
US9686304B1 (en) * 2013-06-25 2017-06-20 Symantec Corporation Systems and methods for healing infected document files
US9805195B1 (en) * 2013-09-17 2017-10-31 The Boeing Company System and method for transferring files between computer systems using information invariant data transformation
US9582665B2 (en) 2014-01-21 2017-02-28 Operation and Data integrity Ltd. Technologies for protecting systems and data to prevent cyber-attacks
US20160006754A1 (en) * 2014-07-01 2016-01-07 Mcafee, Inc. Secure enclave-rendered contents
US10021128B2 (en) * 2015-03-12 2018-07-10 Forcepoint Llc Systems and methods for malware nullification
WO2017209564A1 (ko) * 2016-06-02 2017-12-07 주식회사 플런티코리아 앱 리스트 제공 방법 및 그 장치
US10607004B2 (en) * 2016-09-29 2020-03-31 Intel Corporation Methods and apparatus to improve feature engineering efficiency with metadata unit operations
US9858424B1 (en) 2017-01-05 2018-01-02 Votiro Cybersec Ltd. System and method for protecting systems from active content
US10331890B2 (en) 2017-03-20 2019-06-25 Votiro Cybersec Ltd. Disarming malware in protected content
US10013557B1 (en) 2017-01-05 2018-07-03 Votiro Cybersec Ltd. System and method for disarming malicious code
US10331889B2 (en) 2017-01-05 2019-06-25 Votiro Cybersec Ltd. Providing a fastlane for disarming malicious content in received input content
JP6841703B2 (ja) * 2017-03-29 2021-03-10 アドソル日進株式会社 コンピュータ装置
TWI723664B (zh) * 2019-12-05 2021-04-01 中華電信股份有限公司 惡意圖像檔案淨化方法及系統
US11822699B1 (en) 2021-10-21 2023-11-21 Secure Computing, Llc Preventing surreptitious access to file data by malware
US11983288B1 (en) 2021-11-05 2024-05-14 Secure Computing, Llc Operating system enhancements to prevent surreptitious access to user data files

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5058000A (en) 1987-06-30 1991-10-15 Prime Computer, Inc. System for accessing remote heterogeneous database including formatting retrieved data into applications program format
US5191525A (en) 1990-01-16 1993-03-02 Digital Image Systems, Corporation System and method for extraction of data from documents for subsequent processing
US5278978A (en) 1990-03-26 1994-01-11 International Business Machines Corporation Method and system for describing and exchanging data between heterogeneous database systems with data converted by the receiving database system
US5493671A (en) 1993-06-04 1996-02-20 Marcam Corporation Method and apparatus for conversion of database data into a different format on a field by field basis using a table of conversion procedures
US5793498A (en) 1995-03-10 1998-08-11 Telogy Networks, Inc. System for transferring facsimile data without dedicated G3 hardware
US6067410A (en) * 1996-02-09 2000-05-23 Symantec Corporation Emulation repair system
US5696822A (en) * 1995-09-28 1997-12-09 Symantec Corporation Polymorphic virus detection module
JP2977476B2 (ja) 1995-11-29 1999-11-15 株式会社日立製作所 機密保護方法
EP0870386B1 (de) * 1995-12-29 2000-04-12 Tixi.Com GmbH Telecommunication Verfahren und mikrocomputersystem zur automatischen, sicheren und direkten datenübertragung
US5812398A (en) 1996-06-10 1998-09-22 Sun Microsystems, Inc. Method and system for escrowed backup of hotelled world wide web sites
JPH11184692A (ja) * 1997-12-22 1999-07-09 Canon Inc 通信装置
US6505300B2 (en) * 1998-06-12 2003-01-07 Microsoft Corporation Method and system for secure running of untrusted content
US6336124B1 (en) 1998-10-01 2002-01-01 Bcl Computers, Inc. Conversion data representing a document to other formats for manipulation and display
US6523172B1 (en) 1998-12-17 2003-02-18 Evolutionary Technologies International, Inc. Parser translator system and method
JP2001067216A (ja) * 1999-08-30 2001-03-16 Hiroshi Yoshida コンピュータ・ウイルス防衛除去の為の論理方式及び同システム
US7017187B1 (en) 2000-06-20 2006-03-21 Citigroup Global Markets, Inc. Method and system for file blocking in an electronic messaging system
US6901519B1 (en) 2000-06-22 2005-05-31 Infobahn, Inc. E-mail virus protection system and method
US6675373B1 (en) 2000-09-07 2004-01-06 Universal Conversion Technologies Automatic generation of balancing logic for data conversion
WO2002093334A2 (en) 2001-04-06 2002-11-21 Symantec Corporation Temporal access control for computer virus outbreaks
US7043634B2 (en) 2001-05-15 2006-05-09 Mcafee, Inc. Detecting malicious alteration of stored computer files
US6792543B2 (en) * 2001-08-01 2004-09-14 Networks Associates Technology, Inc. Virus scanning on thin client devices using programmable assembly language
JP2003186632A (ja) * 2001-12-20 2003-07-04 Oki Electric Ind Co Ltd 遠隔端末接続システム
JP2003223521A (ja) * 2002-01-29 2003-08-08 Mitsubishi Electric Corp 設備管理システム及び設備管理方法
JP2003259066A (ja) * 2002-03-04 2003-09-12 Ricoh Co Ltd ネットワークファクシミリ装置
US7369279B2 (en) 2003-03-13 2008-05-06 Sharp Laboratories Of America, Inc. System and method to restrict copying, scanning and transmittal of documents or parts of documents
US7552473B2 (en) 2003-08-12 2009-06-23 Symantec Corporation Detecting and blocking drive sharing worms
US7516442B2 (en) * 2003-10-23 2009-04-07 Microsoft Corporation Resource manifest
JP3869409B2 (ja) * 2003-11-21 2007-01-17 株式会社大和総研 ウィルス感染防止システム、メール閲覧用プログラム、および添付ファイル閲覧用プログラム
JP2005157898A (ja) 2003-11-27 2005-06-16 Mitsubishi Electric Corp Xml/データベース連携装置
US20040172551A1 (en) 2003-12-09 2004-09-02 Michael Connor First response computer virus blocking.
US7620990B2 (en) * 2004-01-30 2009-11-17 Microsoft Corporation System and method for unpacking packed executables for malware evaluation
US7757287B2 (en) 2004-04-19 2010-07-13 Computer Associates Think, Inc. Systems and methods for computer security
US7596809B2 (en) * 2004-06-14 2009-09-29 Lionic Corporation System security approaches using multiple processing units
US20060010495A1 (en) 2004-07-06 2006-01-12 Oded Cohen Method for protecting a computer from suspicious objects
WO2006038987A2 (en) 2004-09-30 2006-04-13 Citrix Systems, Inc. A method and apparatus for assigning access control levels in providing access to networked content files
KR20060050768A (ko) * 2004-10-01 2006-05-19 마이크로소프트 코포레이션 액세스 인가 api
ITRM20040517A1 (it) 2004-10-20 2005-01-20 Diego Angelo Tomaselli Metodo e sistema antivirus.
US20060106889A1 (en) * 2004-11-12 2006-05-18 Mannby Claes-Fredrik U Method, system, and program for managing revisions to a file

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015056904A1 (ko) * 2013-10-17 2015-04-23 소프트캠프(주) 파일형식 변환을 통한 데이터 방역처리 시스템과 방법

Also Published As

Publication number Publication date
RU2009132088A (ru) 2011-02-27
JP4629796B2 (ja) 2011-02-09
KR101467595B1 (ko) 2014-12-01
BRPI0807461A2 (pt) 2014-06-03
CN101622624B (zh) 2012-07-04
CN101622624A (zh) 2010-01-06
EP2115653A1 (en) 2009-11-11
EP2115653A4 (en) 2016-05-18
US7797743B2 (en) 2010-09-14
RU2468426C2 (ru) 2012-11-27
US20080209551A1 (en) 2008-08-28
TWI395113B (zh) 2013-05-01
TW200844789A (en) 2008-11-16
WO2008106289A1 (en) 2008-09-04
EP2115653B1 (en) 2018-04-11
JP2010519662A (ja) 2010-06-03

Similar Documents

Publication Publication Date Title
KR101467595B1 (ko) 제한된 프로세스에서의 파일 변환
JP7460696B2 (ja) カーネルモードにおけるマルウェアおよびステガノグラフィのリアルタイム検出ならびにマルウェアおよびステガノグラフィからの保護
US9846776B1 (en) System and method for detecting file altering behaviors pertaining to a malicious attack
US9336390B2 (en) Selective assessment of maliciousness of software code executed in the address space of a trusted process
US10291634B2 (en) System and method for determining summary events of an attack
US11244051B2 (en) System and methods for detection of cryptoware
EP2486507B1 (en) Malware detection by application monitoring
US7930738B1 (en) Method and apparatus for secure execution of code
US8281410B1 (en) Methods and systems for providing resource-access information
US7797742B2 (en) File blocking mitigation
US9317679B1 (en) Systems and methods for detecting malicious documents based on component-object reuse
US11349865B1 (en) Signatureless detection of malicious MS Office documents containing embedded OLE objects
JP2020109649A (ja) 仮想マシンにおいて脆弱性を有するファイルを実行するときにログを作成するためのシステムおよび方法
US11886584B2 (en) System and method for detecting potentially malicious changes in applications
EP4095727A1 (en) System and method for detecting potentially malicious changes in applications
Singh A physiological decomposition of virus and worm programs
Hili et al. The BIOS and Rootkits
Boyton et al. Forensic Investigation of Ransomware Activities—Part 2
RU2606883C2 (ru) Система и способ открытия файлов, созданных уязвимыми приложениями
WO2023003565A1 (en) Kill chain identifications
Sabelfeld Language-based control for information flow and release
Sabelfeld Language-based 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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 4