KR101098652B1 - 코드-프리 파일의 검출 - Google Patents

코드-프리 파일의 검출 Download PDF

Info

Publication number
KR101098652B1
KR101098652B1 KR1020040104254A KR20040104254A KR101098652B1 KR 101098652 B1 KR101098652 B1 KR 101098652B1 KR 1020040104254 A KR1020040104254 A KR 1020040104254A KR 20040104254 A KR20040104254 A KR 20040104254A KR 101098652 B1 KR101098652 B1 KR 101098652B1
Authority
KR
South Korea
Prior art keywords
file
parser
code
file format
status
Prior art date
Application number
KR1020040104254A
Other languages
English (en)
Other versions
KR20050078192A (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 KR20050078192A publication Critical patent/KR20050078192A/ko
Application granted granted Critical
Publication of KR101098652B1 publication Critical patent/KR101098652B1/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
    • 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/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • 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
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Communication Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

코드-프리 파일의 검출이 설명된다. 일 실시예에 따라, 입력 파일이 파싱되어 파일 포맷이 인식된다. 만약 가능하면, 실행가능 코드가 입력 파일 내에 있는지를 판정하여, 입력 파일의 컨텐츠가 인식된 파일 포맷에 따라 확인된다. 그후 확인에 응답하여 상태가 송신된다.
코드-프리 파일, 파일 포맷, 포맷 조사 모듈, 코드 섹션 검출기, 복합 코드 섹션 검출기

Description

코드-프리 파일의 검출{DETECTION OF CODE-FREE FILES}
도 1은 코드-프리 파일이 검출될 수 있고, 파일 포맷을 인식하고, 실행가능 코드를 검출하는데 이용되도록 사용되는 방법을 포함하는 예시적 구현을 설명하는 순서도이다.
도 2는 코드 검출 모듈이 파일 내에 포함된 실행가능 코드 상의 정보를 이메일 프로그램에 제공하도록 구성된 예시적 환경을 도시한다.
도 3은 코드 검출 모듈이 파일 내에 포함된 실행가능 코드 상의 정보를 인스턴트 메시징 프로그램에 제공하도록 구성된 제2 예시적 환경을 도시한다.
도 4는 코드 검출 모듈이 파일 내에 포함된 실행가능 코드 상의 정보를 인터넷 브라우징 프로그램에 제공하도록 구성된 제3 예시적 환경을 도시한다.
도 5는 확장가능 파서(parser) 모듈을 포함하는, 도 2-4의 코드 검출 모듈 내에 포함된 구조의 예시적 세부사항을 도시한다.
도 6은 도 5에 나타낸 확장가능 파서 모듈이 확장된 예시적 방법을 설명하는 순서도이다.
도 7은 코드 프리 파일을 검출하는 예시적 방법을 설명하는 순서도이다.
도 8은 코드 검출 모듈이 구현될 수 있는 예시적 컴퓨터 시스템이다.
<도면의 주요부분에 대한 부호의 설명>
202: 이메일 클라이언트 어플리케이션
206: 코드 검출 모듈
302: 인스턴트 메시징 어플리케이션
402: 인터넷 브라우징 프로그램
502: 확장가능 파서 모듈
본 발명은 실행가능 코드-프리 컴퓨터 파일의 검출에 관한 것이다.
복잡한 컴퓨터 파일 포맷-확장성 및 강화된 기능성을 허용하는 것-은 점차적으로 대중화되고 있다. 불행히, 그들은 또한 악성 바이러스 소프트웨어의 프로그래머가 유해한 실행가능 코드를 숨길 수 있는 비히클(vehicle)을 제공한다. 이러한 상황에 대항하기 위해서, 안티-바이러스(AV) 소프트웨어 작성자가 각각의 새로운 바이러스의 복사본들을 격리시키고, 새로운 바이러스에 대한 "서명"을 획득하여, 그것이 충분히 인식될 수 있도록하는 "암 레이스(arm race)"가 있다.
따라서, 안티-바이러스(AV) 소프트웨어는 각각의 공지된 바이러스의 서명을 찾는 입력 파일을 스캐닝하도록 구성된다. 공지된 서명이 찾아지지 않으면, 입력 파일은 바이러스에 감염되지 않았다고 가정된다.
불행하게도, AV 소프트웨어가 새로운 바이러스를 포함하도록 아직 갱신되지 않아서, 새로운 바이러스가 AV 소프트웨어를 통과해 지나갈 경우가 빈번하다. AV 소프트웨어 작성자가 빨리 대응하려고 하지만, 많은 경우에 그들이 업그레이드에 응답할 수 있기 전에, 그리고 소비자가 업그레이드를 설치하기 전에 손해가 발생된다. 따라서, 컴퓨터 시스템을 새로운 소프트웨어 바이러스의 감염으로부터 보호할 수 있는 보다 나은 기술이 여전히 필요하다.
코드-프리 파일의 검출이 설명되고 있다. 일 구현에 따르면, 입력 파일이 파싱(parsing)되어 파일 포맷이 인식된다. 입력 파일의 컨텐츠는 이용가능하다면, 실행가능 코드가 입력 파일 내에 있는지를 판정하는 노력으로 인식된 파일 포맷에 따라 확인된다. 그후 상기 확인에 응답하여 상태가 송신된다.
같은 참조 번호들은 도면에서 유사한 컴포넌트 및 특징들을 참조하도록 사용된다.
개요
후술은 코드-프리 파일을 검출하는 기술에 관한 것이다. 같은 참조 번호들은 도면에서 유사한 컴포넌트 및 특징들을 참조하도록 사용된다. 코드-프리 파일의 검출은 유익하며, 이러한 파일들은 이메일, 인스턴트 메시징, 인터넷 브라우징 및 다른 어플리케이션의 사용자에게 보안 위험성을 대단히 줄여준다. 파일이 코드-프리인 것으로 알려진 경우, 사용자는 악성 "바이러스" 소프트웨어가 존재하지 않을 높은 가능성을 누릴 수 있다.
일반 프로세스
도 1은 코드-프리 파일 검출의 일반 프로세스를 나타낸다. 블럭 102에서, 입력 파일이 파싱되어, 입력 파일이 구성된 파일 포맷의 인식이 가능해진다. 파일 포맷은 데이터가 사용 및 저장되도록 구성될 수 있는 규정이다; 수많은 이러한 파일 포맷들은 공지되있고, jpeg, pdf, doc(Word®), vsd(Visio®) 등을 포함하는 한정되고 속속들이 규명해내지 않은 리스트인 파일 확장자명에 관련된다. 블럭 104에서, 만약 이용가능하다면, 입력 파일 내의 실행가능 코드를 찾도록 인식된 파일 포맷에 따라 입력 파일의 컨텐츠가 확인된다. 블럭 106에서, 실행가능 코드에 대한 확인 결과에 따라 상태가 송신된다. 여기서 용어 "코드" 또는 "실행가능 코드"는 프로세서 실행가능 명령, 스크립트 및 다른 고-레벨 언어, 확장성 메커니즘 및 임의의 다른 논리, 디바이스 또는 설계되거나, 오류를 일으키거나, 바이러스, 웜 또는 임의의 다른 악성, 인증되지 않은, 바람직하지 않은 또는 의도하지 않은 멀웨어(malware)를 조직하도록 구현된 임의의 다른 방식으로의 구현된 메커니즘 등을 포함하는 언급된 예로의 한정 없이 광범위하게 해석된다. 일부 구현에서, 상태(예를 들어, 파일 코드 갖춤 상태(file-has-code status), 파일 코드 미갖춤 상태(file-has-no-code status), 또는 파일의 코드 갖춤을 모르는 상태(don't-know-if-file-has-code status)를 반영)가 이메일, 인트턴트 메시징, 인터넷 브라우징, 및 바이러스-감염된 소프트웨어로부터의 보안이 유리한 다른 어플리케이션에 송신될 수 있다.
예시적 환경
도 2-4는 코드-프리 파일을 검출하는 시스템이 작동될 수 있는 예시적 환경(200-400)을 도시한다. 특히, 도 2-4는 이메일 클라이언트 어플리케이션(202), 인스턴트 메시징 어플리케이션(302), 또는 인터넷 브라우징 프로그램(402)들이 각각 하나 이상의 첨부된 파일(204)를 포함할 수 있는 정보를 수신하도록 구성된 환경(200-400)을 도시한다. 어플리케이션(202, 302, 402)은 코드 검출 모듈(206)로부터 정보를 수신하도록 구성될 수 있는 다양한 하드웨어 또는 소프트웨어 디바이스를 대표함에 유의해야 한다. 추가적인 대표 디바이스는 방화벽(하드웨어 및/또는 소프트웨어), 호스트 침입 검출기(서버, 클라이언트, 워크스테이션 등에서 사용됨), 호스트 취약 어세서(서버, 클라이언트, 워크스테이션 등에서 사용됨), 소프트웨어 백업 관리 프로그램, CD 및/또는 DVD 복제 프로그램, P2P(피어 투 피어) 파일-공유 프로그램, 또는 다양한 다른 어플리케이션을 포함한다. 코드 검출 모듈(206)은 실행가능 코드가 있는지를 판정하기위해 첨부 파일(204)을 분석하도록 구성된다. 분석에 따라, 코드 검출 모듈(206)의 출력은 어플리케이션(202, 302, 402)에 파일 코드 갖춤 상태(208), 파일 코드 미갖춤 상태(210), 또는 파일의 코드 갖춤을 모르는 상태(212)의 3개 중 1개의 가능한 입력을 제공한다. 제1 경우에서, 파일 코드 갖춤 상태(208)는 입력 파일의 파일 포맷의 매우 가능성 높은 인식, 및 입력 파일 내의 실행가능 코드를 찾았음을 반영한다. 파일 내에 실행가능 코드를 갖는 고유한 위험성 때문에, 어플리케이션(202, 302, 402) 등은 이 상태에 대한 지식을 이용하여 이러한 위험에 일관된 방식으로 수행한다. 제2 경우에서, 파일 코드 미갖춤 상태(210)는 입력 파일의 파일 포맷의 어떤 인식, 및 입력 파일 내의 실행가능 코드가 없다는 것을 반영한다. 파일(204)이 코드-프리라고 어플리케이션(202, 302, 402)이 가정하면, 다이얼로그 박스나 사용자에게 파일이 신뢰성있는지를 결정하도록 요구하는 사용자 인터페이스의 다른 양상에 의해 사용자가 어려움을 겪지않는다. 제3 경우에서, 파일의 실행가능 코드 갖춤을 모르는 상태(212)는 입력 파일의 파일 포맷 인식의 실패 및 실행가능 코드가 입력 파일 내에 있는지의 결과적 불확실성을 반영한다.
예시적 시스템
도 5는 도 2-4에 나타낸 코드 검출 모듈(206)의 예시적 세부사항을 도시한다. 예시적 코드 검출 모듈(206)은 소프트웨어, 펌웨어, 또는 ASIC(application specific integrated circuit)에 의한 것 등의 하드웨어에 구성될 수 있다. 확장가능 파서 모듈(502)은 복수의 컴포넌트 파서 모듈(506(1)-506(N))을 포함하도록 구성된 표로 조직될 수 있다. 확장가능 파서 모듈은 도 6에 나타낸 예시적 방법(600)에 의한 것과 같이 확장될 수 있다. 새로운 파일 포맷이 공지되거나 공지된 파일 포맷에 대한 관심이 증가하는 경우가 빈번하므로, 확장성은 바람직하다. 따라서, 확장가능 파서 모듈(502)은 확장되어 추가 파일 포맷을 인식하도록 구성되고, 또한 새로운 파일 포맷 내의 실행가능 코드를 확인하도록 구성된 추가 컴포넌트 파서(506(N+1))를 포함한다. 도 6은 코드 검출 모듈(206)의 확장가능 파서 모듈(502)이 확장될 수 있는 예시적 프로세스(600)를 도시한다. 블럭 602에서, 파일 포맷은 확장가능 파서 모듈(502)로의 추가를 위해 식별된다. 예를 들어, 확장가능 파서 모듈(502)이 jpeg 파일을 이용하도록 확장되는 것이 원해질 수 있다. 블럭 604에서, 새로운 컴포넌트 파서는 새로운 파일 포맷(예를 들어, jpeg)에 따라 구성 되고, 새로운 컴포넌트 파서는 새로운 포맷의 파일을 인식하고, 이러한 파일 내의 실행가능 코드를 인식하도록 구성된다. 블럭 606에서, 확장가능 파서 모듈(502)의 기능성은 새로운 컴포넌트 파서(506(N+1))를 확장가능 파서(502) 내의 확장가능 표에 추가함에 의해 확장된다.
도 5를 다시 참조하면, 확장가능 파서 모듈(502)은 복수의 컴포넌트 파서 모듈(506(1)-506(N))을 포함하도록 구성되고, 여기서 확장가능 파서 모듈(502)는 도시의 단순화를 위해 오직 2개의 컴포넌트 파서 모듈만을 도시한다. 각각의 컴포넌트 파서 모듈(506(1)-506(N))은 특정 파일 포맷의 파일을 인식하도록 구성되고, 특정 파일 포맷이 인식될 때, 파일 내에 포함된 실행가능 코드를 인식하도록 추가적으로 구성된다. 예를 들어, 파서 모듈(506(1))은 Word® 문서의 파일 포맷(예를 들어, 데이터가 저장을 위해 조직된 포맷)을 인식하도록 구성될 수 있다. 파서 모듈(506(1))은 또한 파일 포맷의 인식에 따라, Word® 파일 포맷을 갖는 입력 파일 내의 실행가능 코드를 인식하도록 구성될 수도 있다. 이 경우에, 파일 포맷의 인식은 실행가능 코드의 인식을 돕는다.
각각의 컴포넌트 파서 모듈(506)은 입력 파일(204)을 파싱하고, 입력 파일이 파서가 식별하도록 구성된 파일 포맷과 매칭하는지를 판정하도록 구성된 포맷 조사 모듈(508)을 포함한다. 컴포넌트 파서 모듈은 특히, 파일이 컴포넌트 파서 모듈에 관련된 파일 포맷인 것으로 찾아지면, 입력 파일 내의 실행가능 코드를 검출하도록 구성된 코드 섹션 검출기(510)를 또한 포함할 수도 있다.
각각의 컴포넌트 파서 모듈(506)은 또한 입력 파일(204)이 코드(512)를 가짐 을, 입력 파일 코드(514) 미갖춤을, 입력 파일 코드(516) 갖춤을 모름을 나타내는 3개의 출력을 포함하도록 구성될 수도 있다. 도 5의 구현에서, 포맷 조사 모듈(508)이 입력 파일(204)에 관련된 포맷을 검출하는 것을 실패할 때, 컴포넌트 파서는 모르는 상태(516)로 복귀한다. 파일 포맷이 인식될 때, 코드 검출기(510)의 출력은 입력 파일 코드(512) 갖춤(즉, 코드 검출기(510)가 코드 찾음) 또는 입력 파일 적절한 코드(514) 출력 미갖춤(즉, 코드 검출기(510)가 코드를 찾지 못함)을 판정하는데 사용된다.
확장가능 파서 모듈(502)은 또한 입력 파일을 모든 사용가능 컴포넌트 파서(506(1)-506(N))에 서비스하고, 모든 컴포넌트 파서의 출력을 프로세싱하고, 전체 응답(즉, 코드 있음/코드 없음/모름)을 적절한 어플리케이션에 송신하도록 전형적으로 구성된 제어기 또는 디스패치(dispatch) 프로세스(504)를 포함할 수도 있다. 제어기(504)는 각각의 컴포넌트 파서(506(1)-506(N))로부터 입력을 수신하고, 임의의 컴포넌트 파서가 코드를 찾았는지를 판정하도록 구성된 복합 코드 섹션 검출기(518)를 포함하도록 구성된다. 코드가 1개의 컴포넌트 파서(506(1)-506(N))에 의해 검출되면, 코드 검출 모듈(206)의 출력은 파일 코드 갖춤 상태(208)가 될 것이다. 복합 포맷 조사 모듈(520)은 임의의 컴포넌트 파서(506(1)-506(N))가 입력 파일(204)의 포맷을 인식했는지를 판정하도록 구성된다. 이러한 시험은 전형적으로 컴포넌트 파서(506(1)-506(N))가 실행가능 코드를 검출하지 못했을 경우에 적절하다. 파일 포맷이 하나의 컴포넌트 파서(506(1)-506(N))에 의해 검출되면, 코드 검출 모듈(206)의 출력은 파일 코드 미갖춤 상태(210)가 된다. 파일 포맷이 식별되 지 않으면, 코드 검출 모듈(206)의 (파일 코드 갖춤) 모름 출력(206)이 모르는 상태(212)가 된다.
예시적 방법
코드-프리 파일 검출의 양상을 구현한 예시적 방법(700)은 도 7의 순서도를 주로 참조하여 이하 설명될 것이다. 이 방법은 일반적으로 도 2-4, 및 특히 도 5에 관해 상술된 예시적 컴포넌트의 작동에 적용된다. 상술된 방법의 구성요소는 예를 들어, ASIC 상의 하드웨어 논리 블럭을 포함하는 임의의 적절한 수단에 의해, 또는 프로세서-판독가능 매체 상에 정의된 프로세서-판독가능 명령의 실행에 의해 수행될 수 있다.
여기에 사용된 "프로세서-판독가능 매체"는 프로세서에 의한 사용 또는 실행을 위한 명령들을 포함, 저장, 통신, 전달, 또는 전송할 수 있는 임의의 수단일 수 있다. 프로세서-판독가능 매체는, 제한 없이, 전자, 자기, 광, 전자기, 적외선, 또는 반도체 시스템, 장치, 디바이스, 또는 전달 매체일 수 있다. 특히 프로세서-판독가능 매체의 예는, 다른것들 중에, 하나 이상의 유선, 휴대용 컴퓨터 디스켓, RAM, ROM, 소거가능 프로그램가능-판독-전용 메모리(EPROM 또는 플래시 메모리), 광섬유, CD-RW, 및 CDROM을 갖는 전기 접속을 포함한다.
도 7은 파일 내의 실행가능 코드를 검출하는 예시적 방법(700)을 나타낸다. 블럭 702에서, 입력 파일은 파싱되어 입력 파일이 구성된 파일 포맷을 인식할 수 있다. 파서는 도 5의 확장가능 파서(502) 또는 복합 등의 복합 방식으로 구성될 수 있고, 여기서 복합 파서는 특정 파일 포맷을 인식하도록 각각 구성된 복수의 컴 포넌트 파서(506(1)-506(N))를 포함한다.
블럭 704에서, 파일 포맷이 인식됐는지가 판정된다. 파일 포맷이 인식되면(블럭 704에서 블럭 706으로 예 브랜치(yes branch) 따라감), 그후 블럭 706에서 입력 파일의 컨텐츠가 인식된 파일 포맷에 따라 확인되어 입력 파일 내의 실행가능 코드를 찾는다. 파서(502)가 확장가능 및/또는 복합인 경우, 파일 포맷은 하나의 컴포넌트 파서(506(1)-506(N))가 인식하도록 구성된 파일 포맷을 매칭시킴에 유의해야 한다. 따라서, 제어기(504)(도 5)는 파일 포맷이 인식됐는지를 판정할 때, 각각의 컴포넌트 파서(506(1)-506(N))로부터의 정보를 평가한다.
블럭 708에서, 실행가능 코드를 찾았는지가 판정된다. 실행가능 코드를 찾으면(블럭 708에서 블럭 712으로 예 브랜치를 따라감), 그후 블럭 712에서 파일 코드 갖춤 상태가 송신되고, 즉, 입력 파일의 파일 포맷이 인식되고 실행가능 코드를 찾았을 때, 파일 코드 갖춤 상태가 송신된다. 임의의 컴포넌트 파서(506(1)-506(N))에 의해 인식이 행해진다. 도 5에 나타낸 예시적 코드 검출 모듈(206)의 구조를 검토하면, 파일 포맷이 인식되는 경우, 컴포넌트 파서는 실행가능 코드를, 만약 있으면, 검출할 수 있다. 이러한 코드는 파일 포맷과 일치하지 않거나, 파일 포맷의 규정에 따라 발견되어 용이하게 탐지된다. 따라서, 하나의 컴포넌트 파서가 실행가능 코드를 인식하면, 제어기는 파일 코드 갖춤 신호 또는 적절한 메시지를 제공함으로써 응답한다.
블럭 708에서, 어느 실행가능 코드도 못찾았다고 판정되면(블럭 708에서 블럭 710으로 아니오 브랜치를 따라감), 그 후 블럭 710에서 입력 파일의 파일 포맷 이 인식되고, 실행가능 코드를 못찾을 때, 파일 코드 미갖춤 상태가 송신된다. 특히 도 5를 참조하면, 어느 컴포넌트 파서도 입력 파일 내의 실행가능 코드를 인식하지 않고, 파일 포맷이 적어도 1개의 컴포넌트 파서에 의해 인식됐으면, 그후 파일 코드 미갖춤 상태가 등록(register)된다. 실행가능 코드의 부재가 바이러스 등의 악성 실행가능 코드의 부재를 가정하므로, 입력 파일이 실행가능 코드를 갖지 않음이 발견됐음을 찾는것은 전형적으로 유익한 것임을 명심해야한다.
블럭 704로 되돌아가서, 파일 포맷이 인식되지 않았으면(블럭 704에서 블럭 714로 아니오 브랜치를 따라감), 그후 블럭 714에서 (입력 파일이 실행가능 코드를 가짐을) 모르는 상태(212)가 파일 포맷이 공지되지 않았을 때 송신된다. 도 5의 블럭 212를 참조하여, 각각의 컴포넌트 파서가 파일의 포맷을 판정할 수 없으면, 제어기(504)는 이메일 어플리케이션(202)(도 2), 인스턴트 메시징 어플리케이션(302)(도 3), 인터넷 브라우징 프로그램(402)(도 4) 등의 적절한 수신기에 모르는 상태를 발송하도록 구성된다.
블럭 716에서, 일부 어플리케이션에서, 컴포넌트 파서(506(1)-506(N))는 1개의 컴포넌트 파서가 입력 파일의 포맷을 인식한 후에도 입력 파일(204)을 계속 파싱할 수 있다. 이것은 1개 이상의 컴포넌트 파서가 파일 포맷의 유효한 인식을 행할 수 있다는 점에서 드문 환경에서의 추가 보안을 제공한다(즉, 파일은 드문 인스턴스에서 2개의 다른 파일 포맷에 일관될 수 있음). 그러므로 제2 컴포넌트 파서가 입력 파일의 포맷을 인식하는 드문 환경에서, 컴포넌트 파서 중 하나가 실행가능 코드를 인식하면, 제어기(504)는 입력 파일 코드 갖춤을 보고하도록 구성될 수 있다. 대안적으로, 복합 파서는 1개의 컴포넌트 파서가 입력 파일의 포맷을 인식할 때, 파싱을 계속하도록 구성될 수 있다. 이것은 파싱 작동 상에 소요되는 시간을 줄이는 경향이 있다.
상술된 바와 같이, 파일 코드 미갖춤, 파일 코드 갖춤, 또는 모르는 상태가 이메일, 인스턴트 메시징, 인터넷 브라우징, 및 다른 어플리케이션에 송신될 수 있고, 바이러스-감염된 소프트웨어로부터의 보안에 유리하다. 도 2-4는 코드 검출 모듈(206)에 대한 예시적 사용을 도시한다. 그러나, 파일 저장 어플리케이션에서와 같은, 코드 검출 모듈에 대한 다른 이용이 가능하고, 여기서는 오직 실행가능 코드 프리 파일 등을 저장하는 것이 바람직하다.
하나 이상의 방법이 순서도와 순서도의 블럭에 관련된 텍스트의 수단에 의해 개시됐고, 상기 블럭들이 표현된 순서로 수행될 필요는 없으며, 대체 순서로 수행되는 것도 유사한 이득을 가져다 줌을 이해해야한다. 게다가, 상기 방법들은 배타적이지 않으며, 단독으로 또는 다른 것들과 조합되어 수행될 수 있다.
예시적 컴퓨터
도 8은 예시적 코드 검출 모듈 및 도 1-7의 작동 방법들이 구현될 수 있는 예시적 컴퓨터 시스템이다. 비록 일 특정 구성이 도시되었지만, 코드 검출 모듈은 다른 컴퓨팅 구성들에서 구현될 수 있다. 컴퓨팅 환경(800)은 컴퓨터(802) 형태의 범용 컴퓨팅 시스템을 포함한다. 컴퓨터(802)의 컴포넌트는 하나 이상의 프로세서 또는 프로세싱 유닛(804), 시스템 메모리(806), 및 프로세서(804)를 포함하는 다양한 시스템 컴포넌트들을 시스템 메모리(806)에 연결하는 시스템 버스(808)를 포함 할 수 있지만, 이에 한정된 것은 아니다.
시스템 버스(808)는 메모리 버스 또는 메모리 제어기, 주변 버스, 가속 그래픽 포트, 및 프로세서 또는 다양한 버스 구조중 임의의 것을 이용하는 로컬 버스를 포함하는 임의의 몇몇 유형의 버스 구조중 하나 이상을 나타낸다. 시스템 버스(808)의 예는 메자닌(Mezzarine) 버스로도 알려진 PCI(Peripheral Component Interconnects) 버스일 수 있다.
컴퓨터(802)는 전형적으로 다양한 컴퓨터 판독가능 매체를 포함한다. 이러한 매체는 컴퓨터(802)에 의해 엑세싱되고 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 포함하는 임의의 사용가능 매체일 수 있다. 시스템 메모리(806)는 RAM(810) 등의 휘발성 메모리, 및/또는 ROM(812) 등의 비휘발성 메모리 형태의 판독가능 매체를 포함한다. 예컨대 기동 동안, 컴퓨터(802) 내의 구성요소들 간의 정보의 전송을 돕는 기본 라우팅을 포함하는 BIOS(basic input/output system; 814)가 ROM(812)에 저장된다. RAM(810)는 전형적으로 프로세싱 유닛(804)에 즉각적으로 엑세싱될 수 있고 및/또는 현재 작동되고 있는 데이터 및/또는 프로그램 모듈을 포함한다.
컴퓨터(802)는 또한 다른 분리형/비분리형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수도 있다. 예를 들어, 도 8은 비분리형 비휘발성 자기 매체(도시되지 않음)로부터 판독하고 그 자기 매체에 기록하는 하드 디스크 드라이브(816), 분리형 비휘발성 자기 디스크(820)(예를 들어, "플로피 디스크")로부터 판독하고 그 자기 디스크에 기록하는 자기 디스크 드라이브(818), 및 CD-ROM, DVD-ROM 또는 다 른 광 매체 등의 분리형, 비휘발성 광 디스크(824)로부터 판독하고 그 광 디스크에 기록하는 광 디스크 드라이브(822)가 도시되어 있다. 하드 디스크 드라이브(816), 자기 디스크 드라이브(818) 및 광 디스크 드라이브(822)는 하나 이상의 데이터 매체 인터페이스(825)에 의해 시스템 버스(808)에 각각 연결된다. 대안적으로, 하드 디스크 드라이브(816), 자기 디스크 드라이브(818), 및 광 디스크 드라이브(822)는 SCSI 인터페이스(도시되지 않음)에 의해 시스템 버스(808)에 연결될 수 있다.
상기 디스크 드라이브 및 그 관련 컴퓨터 판독가능 매체는 컴퓨터(802)에 대한 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 및 다른 데이터의 비휘발성 저장을 제공한다. 비록 하드 디스크(816), 분리형 자기 디스크(820), 및 분리형 광 디스크(824)가 예로 도시됐지만, 자기 카세트 또는 다른 자기 저장 디바이스, 플래쉬 메모리 카드, CD-ROM, DVD(Digital versatile disk), 또는 다른 광 저장장치, RAM, ROM, EEPROM 등의 컴퓨터에 의해 엑세싱가능한 데이터를 저장할 수 있는 다른 유형의 컴퓨터 판독가능 매체가 또한 사용되어 예시적 컴퓨팅 시스템 및 환경을 구현할 수 있다.
예를 들어, 오퍼레이팅 시스템(826), 하나 이상의 어플리케이션 프로그램(828), 다른 프로그램 모듈(830), 및 프로그램 데이터(832)를 포함하는 임의의 수의 프로그램 모듈들이 하드 디스크(816), 자기 디스크(820), 광 디스크(824), ROM(812), 및/또는 RAM(810) 상에 저장될 수 있다. 코드 검출 모듈(206)은 어플리케이션 프로그램(828), 프로그램 모듈(830)로서, 또는 다른 편리한 위치에 위치한 모듈로 구성될 수 있다. 추가적으로, 입력 파일(204)은 데이터(832) 사이에 포함 될 수 있거나, 다른 편리한 위치에 포함될 수 있다. 각각의 이러한 오퍼레이팅 시스템(826), 하나 이상의 어플리케이션 프로그램(828), 다른 프로그램 모듈(830), 및 프로그램 데이터(832)(또는 그것들의 일부 조합)는 사용자 네트워크 엑세스 정보에 대한 캐싱 스킴(caching scheme)의 실시예를 포함할 수 있다.
컴퓨터(802)는 통신 매체로서 식별된 다양한 컴퓨터/프로세서 판독가능 매체를 포함할 수 있다. 통신 매체는 전형적으로 반송파 또는 다른 전송 메커니즘 등의 변조된 데이터 신호로 컴퓨터 판독가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터를 구현하며, 임의의 정보 전달 매체를 포함한다. "변조된 데이터 신호"라는 용어는 신호 내에 정보를 인코딩하도록 설정되거나 변환된 특성을 하나 이상을 갖는 신호를 의미한다. 예를 들어, 통신 매체는 유선 네트워크 또는 직접 유선 연결 등의 유선 매체와, 음향, RF, 적외선 및 다른 무선 매체 등의 무선 매체를 포함하지만, 이에 한정되지 않는다. 상술한 것들 중의의 임의의 조합이 컴퓨터 판독가능 매체의 범위 내에 또한 포함된다.
사용자는 키보드(834) 및 포인팅 디바이스(834)(예를 들어,"마우스") 등의 입력 장치를 통해 컴퓨터 시스템(802)에 코맨트 및 정보를 입력할 수 있다. 다른 입력 디바이스(838)(특별히 도시되지 않은)는 마이크로폰, 조이스틱, 게임 패드, 위성접시, 시리얼 포트, 스캐너 등을 포함할 수 있다. 이들 입력 디바이스 및 다른 입력 디바이스는 시스템 버스(808)에 연결된 입출력 인터페이스(840)를 통해 프로세싱 유닛(804)에 연결되지만, 병렬 포트, 게임 포트, 또는 유니버설 시리얼 버스(USB) 등의 다른 인터페이스 및 버스 구조에 의해 연결될 수 있다.
모니터(842) 또는 다른 유형의 디스플레이 디바이스는 또한 비디오 어댑터(844) 등의 인터페이스를 통해 시스템 버스(808)에 연결될 수도 있다. 모니터(842)외에도, 입출력 인터페이스(840)를 통해 컴퓨터(802)에 연결될 수 있는 스피커(도시되지 않음) 및 프린터(846) 등의 컴포넌트를 다른 출력 주변 디바이스가 포함할 수 있다.
컴퓨터(802)는 원격 컴퓨팅 디바이스(848) 등의 하나 이상의 원격 컴퓨터로의 논리적 연결을 이용한 네트워크 환경에서 작동될 수 있다. 예를 들어, 원격 컴퓨팅 디바이스(848)는 퍼스널 컴퓨터, 휴대용 컴퓨터, 서버, 라우터, 네트워크 컴퓨터, 피어(peer) 디바이스, 또는 다른 공통 네트워크 노드 등 일 수 있다. 원격 컴퓨팅 디바이스(848)는 컴퓨터 시스템(802)에 관련해 여기에 설명된 복수의 또는 모든 구성요소 및 특징들을 포함할 수 있는 휴대용 컴퓨터로서 도시된다.
컴퓨터(802)와 원격 컴퓨터(848) 간의 논리 연결이 LAN(850) 및 WAN(852)으로 도시된다. 이러한 네트워킹 환경은 사무실, 기업 광역 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다. LAN 네트워킹 환경에서 구현될 때, 컴퓨터(802)는 네트워크 인터페이스 또는 어댑터(854)를 통해 로컬 네트워크(850)에 연결된다. WAN 네트워킹 환경에서 구현될 때, 컴퓨터(802)는 전형적으로 WAN(852)를 통한 통신을 구축하는 모뎀(856) 또는 다른 수단을 포함한다. 컴퓨터(802)에 외장형 또는 내장형일 수 있는 모뎀(856)은 입출력 인터페이스(840) 또는 다른 적절한 메커니즘을 통해 시스템 버스(808)에 연결될 수 있다. 도시된 네트워크 연결들은 예시적 것이며, 컴퓨터(802)와 컴퓨터 (848) 간에 통신 링크(들)를 구축하는 다른 수단들이 사용될 수 있다.
컴퓨팅 환경(800)으로 도시된 네트워크 환경에서, 컴퓨터(802)에 관해 나타낸 프로그램 모듈 또는 그것의 일부분은 원격 메모리 저장 디바이스에 저장될 수 있다. 예를 들어, 원격 어플리케이션 프로그램(858)은 원격 컴퓨터(848)의 메모리 디바이스에 상주할 수 있다. 도시를 위해, 어플리케이션 프로그램 및 오퍼레이팅 시스템 등의 다른 실행가능 프로그램 컴포넌트들은 다양한 시간에 컴퓨터 시스템(802)의 다른 스토리지 컴포넌트에 상주하고, 컴퓨터의 데이터 프로세서(들)에 의해 실행될 수 있지만, 여기에는 분리된 블럭으로 도시된다.
결론
비록 본 발명이 구조적 특징 및/또는 방법론적 활동에 특정한 언어로 설명되었지만, 첨부된 청구항들에 정의된 본 발명은 상기 특정한 특징 또는 상술된 활동에 반드시 한정되지는 않는다. 오히려, 특정한 특징들 및 활동들은 청구된 본 발명을 구현하는 예시적 형태로 개시된다.
본 발명은 실행가능 코드-프리 컴퓨터 파일의 검출하여 컴퓨터 시스템을 새로운 소프트웨어 바이러스의 감염으로부터 보호할 수 있는 보다 나은 기술을 제공한다.

Claims (29)

  1. 컴퓨터에 의해 실행되었을 때 상기 컴퓨터의 프로세서로 하여금 방법을 수행하게 하는 컴퓨터-실행가능 명령어들을 저장하는 컴퓨터-판독가능 기록매체로서, 상기 방법은,
    입력 파일의 파일 포맷을 인식하기 위해 상기 입력 파일을 파싱(parsing)하는 단계 - 상기 파싱은 복합 파서(compound parser) 내에 포함된 복수의 컴포넌트 파서(component parser)의 각각으로 한 번씩 파싱하는 것을 반복하고, 상기 복수의 컴포넌트 파서의 각각은 입력 파일을 구성하는 특정 파일 포맷을 인식하도록 구성되고, 상기 복합 파서는 확장가능하고, 상기 복합 파서를 확장하는 것은 추가적인 파일 포맷 및 상기 추가적인 파일 포맷의 파일 내에 실행가능 코드가 존재할 경우 그 실행가능 코드를 인식하도록 구성된 추가적인 컴포넌트 파서를 추가하는 것을 포함함 - ;
    실행가능 코드가 상기 입력 파일 내에 존재하는지를 판정하기 위해, 상기 인식된 파일 포맷에 따라 상기 입력 파일의 컨텐츠를 확인하는 단계 - 존재하는 것으로 판정된 상기 실행가능 코드는 현재 악성 코드로 알려져 있는 실행문 및 현재 악성 코드로 알려져 있지 않은 실행문을 모두 포함하고, 상기 확인하는 단계는 상기 입력 파일 내의 실행가능 코드의 발견이 상기 인식된 파일 포맷과 일치하지 않기 때문에 그 실행가능 코드를 검출하는 단계를 포함함 - ;
    컴포넌트 파서가 상기 입력 파일의 상기 파일 포맷을 인식할 때까지 또는 상기 복합 파서 내의 모든 이용가능한 컴포넌트 파서가 상기 입력 파일을 파싱 완료할 때까지 상기 입력 파일의 파싱을 계속하는 단계; 및
    상기 확인의 결과에 응답하여 상태를 송신하는 단계
    를 포함하고,
    상기 상태를 송신하는 단계는,
    상기 입력 파일의 상기 파일 포맷은 인식되고 실행가능 코드는 발견되지 않았을 때, 파일 코드 미갖춤 상태(file-has-no-code status)를 송신하는 단계;
    실행가능 코드가 발견되었을 때, 파일 코드 갖춤 상태(file-has-code status)를 송신하는 단계; 및
    상기 입력 파일의 상기 파일 포맷이 인식되지 않았을 때 모름 상태(don't-know status)를 송신하는 단계
    를 포함하고,
    상기 추가적인 컴포넌트 파서를 추가하는 것은,
    새로운 파일 포맷을 식별하는 것 - 상기 새로운 파일 포맷을 식별하는 능력은 상기 복합 파서로 확장될 기능임 - ;
    상기 새로운 파일 포맷에 따라 새로운 컴포넌트 파서를 구성하는 것 - 상기 새로운 컴포넌트 파서는 상기 새로운 파일 포맷의 파일들을 인식하고 또한 상기 새로운 파일 포맷과 일치하지 않는 실행가능 코드를 발견함으로써 상기 새로운 파일 포맷의 파일들 내의 실행가능 코드를 인식하도록 구성됨 - ; 및
    상기 새로운 컴포넌트 파서를 상기 복합 파서에 추가함으로써 상기 복합 파서의 기능을 확장하는 것
    을 포함하는, 컴퓨터-판독가능 기록매체.
  2. 제1항에 있어서,
    상기 상태를 송신하는 단계는, 상기 상태를 이메일 프로그램에 송신하는 단계를 더 포함하는, 컴퓨터-판독가능 기록매체.
  3. 제1항에 있어서,
    상기 상태를 송신하는 단계는, 상기 상태를 인스턴트 메시징 프로그램에 송신하는 단계를 더 포함하는, 컴퓨터-판독가능 기록매체.
  4. 제1항에 있어서,
    상기 상태를 송신하는 단계는, 상기 상태를 인터넷 브라우징 프로그램에 송신하는 단계를 더 포함하는, 컴퓨터-판독가능 기록매체.
  5. 제1항에 있어서,
    상기 방법은, 하나 이상의 컴포넌트 파서가 상기 입력 파일의 상기 파일 포맷을 인식한 후, 모든 잔여 컴포넌트 파서들로 상기 입력 파일의 파싱을 계속하는 단계를 더 포함하는, 컴퓨터-판독가능 기록매체.
  6. 코드-프리 파일을 검출하는 방법으로서,
    새로운 파일 포맷을 식별하는 단계 - 상기 새로운 파일 포맷을 식별하는 능력은 복합 파서로 확장될 기능임 - ;
    상기 새로운 파일 포맷에 따라 새로운 컴포넌트 파서를 구성하는 단계 - 상기 새로운 컴포넌트 파서는 상기 새로운 파일 포맷의 파일들을 인식하고 또한 상기 새로운 파일 포맷과 일치하지 않는 실행가능 코드를 발견함으로써 상기 새로운 파일 포맷의 파일들 내의 실행가능 코드를 인식함 - ; 및
    상기 새로운 컴포넌트 파서를 상기 복합 파서에 추가함으로써 상기 복합 파서의 기능을 확장하는 단계
    를 포함하고,
    확장된 기능을 갖는 상기 복합 파서는 입력 파일을 파싱하도록 동작하도록 구성되고, 상기 동작은,
    상기 복합 파서로 상기 입력 파일을 파싱하는 것 - 상기 복합 파서는 복수의 컴포넌트 파서를 포함하도록 구성되고, 각 컴포넌트 파서는 특정 데이터 파일 포맷을 인식하도록 구성됨 -;
    상기 인식된 특정 데이터 파일 포맷에 따라 상기 입력 파일의 컨텐츠를 분석하는 것 - 존재하는 것으로 판정된 상기 실행가능 코드는 현재 악성 코드로 알려져 있는 실행문 및 현재 악성 코드로 알려져 있지 않은 실행문을 모두 포함함 - ; 및
    상기 분석의 결과에 응답하여 상태를 송신하는 것
    에 의해 수행되고,
    상기 상태를 송신하는 것은,
    상기 입력 파일의 상기 파일 포맷은 인식되고 실행가능 코드는 발견되지 않았을 때, 파일 코드 미갖춤 상태를 송신하는 것;
    실행가능 코드가 발견되었을 때, 파일 코드 갖춤 상태를 송신하는 것; 및
    상기 입력 파일의 상기 파일 포맷이 인식되지 않았을 때 모름 상태를 송신하는 것
    를 포함하는, 코드-프리 파일 검출 방법.
  7. 제6항에 있어서,
    상기 상태를 송신하는 것은, 상기 상태를 이메일 프로그램에 송신하는 것을 더 포함하는, 코드-프리 파일 검출 방법.
  8. 제6항에 있어서,
    상기 상태를 송신하는 것은, 상기 상태를 인스턴트 메시징 프로그램에 송신하는 것을 더 포함하는, 코드-프리 파일 검출 방법.
  9. 제6항에 있어서,
    상기 상태를 송신하는 것은, 상기 상태를 인터넷 브라우징 프로그램에 송신하는 것을 더 포함하는, 코드-프리 파일 검출 방법.
  10. 제6항에 있어서,
    상기 입력 파일을 파싱하는 것은, 상기 복합 파서 내의 상기 복수의 컴포넌트 파서의 각각으로 상기 입력 파일을 파싱하는 것을 포함하는, 코드-프리 파일 검출 방법.
  11. 코드-프리 파일을 검출하기 위한 장치로서,
    입력 파일을 반복적으로 파싱하도록 구성된 복합 파서 - 상기 복합 파서 내에 포함된 복수의 컴포넌트 파서의 각각은 데이터 파일 포맷들의 그룹에서 선택된 특정 파일 포맷 내의 실행가능 코드를 인식하도록 구성되고, 상기 복합 파서는 확장가능하고, 상기 복합 파서를 확장하는 것은 추가적인 파일 포맷 및 상기 추가적인 파일 포맷의 파일 내에 실행가능 코드가 존재할 경우 그 실행가능 코드를 인식하도록 구성된 추가적인 컴포넌트 파서를 추가하는 것을 포함함 - ; 및
    상기 각각의 컴포넌트 파서가 상기 특정 파일 포맷을 인식하는데 성공했는지를 확인하고, 상기 확인의 결과에 응답하여 상태를 송신하도록 구성된 제어기 - 상기 각각의 컴포넌트 파서는 상기 특정 파일 포맷에 대해 상기 입력 파일 내의 실행가능 코드를 인식하고 발견하도록 구성되고, 상기 인식된 실행가능 코드는 현재 악성 코드로 알려져 있는 실행문 및 현재 악성 코드로 알려져 있지 않은 실행문을 모두 포함함 -
    를 포함하고,
    상기 상태를 송신하는 것은,
    상기 입력 파일의 상기 파일 포맷은 인식되고 실행가능 코드는 발견되지 않았을 때, 파일 코드 미갖춤 상태를 송신하는 것;
    실행가능 코드가 발견되었을 때, 파일 코드 갖춤 상태를 송신하는 것; 및
    상기 입력 파일의 상기 파일 포맷이 인식되지 않았을 때 모름 상태를 송신하는 것
    을 포함하는, 코드-프리 파일 검출 장치.
  12. 제11항에 있어서,
    상기 제어기는 상기 상태를 이메일 프로그램에 송신하도록 더 구성된, 코드-프리 파일 검출 장치.
  13. 제11항에 있어서,
    상기 제어기는 상기 상태를 인스턴트 메시징 프로그램에 송신하도록 더 구성된, 코드-프리 파일 검출 장치.
  14. 제11항에 있어서,
    상기 제어기는 상기 상태를 인터넷 브라우징 프로그램에 송신하도록 더 구성된, 코드-프리 파일 검출 장치.
  15. 제11항에 있어서,
    상기 제어기는 상기 상태를 방화벽(firewall), 호스트 침입 검출기(host intrusion detector) 또는 호스트 취약 어세서(host vulnerability assessor)에 송신하도록 더 구성된, 코드-프리 파일 검출 장치.
  16. 제11항에 있어서,
    상기 제어기는 상기 상태를, 백업 프로그램, CD/DVD 복제 프로그램, 및 P2P 파일-공유 프로그램을 포함하는 프로그램들의 그룹으로부터 선택된 프로그램에 송신하도록 더 구성된, 코드-프리 파일 검출 장치.
  17. 제11항에 있어서,
    상기 각각의 컴포넌트 파서는 복수의 데이터 파일 포맷 중 하나를 인식하도록 구성된, 코드-프리 파일 검출 장치.
  18. 제11항에 있어서,
    상기 복합 파서는 상기 복합 파서에 새로운 컴포넌트 파서를 추가함으로써 확장되도록 구성되고, 상기 새로운 컴포넌트 파서는 추가 파일 포맷을 인식하고 상기 추가 파일 포맷 내의 실행가능 코드를 인식하는, 코드-프리 파일 검출 장치.
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
KR1020040104254A 2004-01-30 2004-12-10 코드-프리 파일의 검출 KR101098652B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/769,106 US7721334B2 (en) 2004-01-30 2004-01-30 Detection of code-free files
US10/769,106 2004-01-30

Publications (2)

Publication Number Publication Date
KR20050078192A KR20050078192A (ko) 2005-08-04
KR101098652B1 true KR101098652B1 (ko) 2011-12-23

Family

ID=34654378

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040104254A KR101098652B1 (ko) 2004-01-30 2004-12-10 코드-프리 파일의 검출

Country Status (13)

Country Link
US (1) US7721334B2 (ko)
EP (1) EP1560112B1 (ko)
JP (1) JP2005216286A (ko)
KR (1) KR101098652B1 (ko)
CN (1) CN1648812A (ko)
AU (1) AU2004237916A1 (ko)
BR (1) BRPI0405400A (ko)
CA (1) CA2491114C (ko)
HK (1) HK1080163A1 (ko)
MX (1) MXPA04012866A (ko)
RU (1) RU2004138761A (ko)
TW (1) TW200525346A (ko)
ZA (1) ZA200410384B (ko)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617492B2 (en) * 2004-06-28 2009-11-10 Microsoft Corporation Extensible command line parsing
US8060860B2 (en) * 2005-04-22 2011-11-15 Apple Inc. Security methods and systems
US20060271597A1 (en) * 2005-05-31 2006-11-30 Microsoft Corporation Code-enabled/code-free files
GB2427048A (en) 2005-06-09 2006-12-13 Avecho Group Ltd Detection of unwanted code or data in electronic mail
US8060747B1 (en) 2005-09-12 2011-11-15 Microsoft Corporation Digital signatures for embedded code
CN100447783C (zh) * 2005-12-30 2008-12-31 英业达股份有限公司 文件格式识别系统及方法
US8205087B2 (en) * 2006-02-27 2012-06-19 Microsoft Corporation Tool for digitally signing multiple documents
US8190902B2 (en) * 2006-02-27 2012-05-29 Microsoft Corporation Techniques for digital signature formation and verification
US8458789B1 (en) * 2006-03-09 2013-06-04 Mcafee, Inc. System, method and computer program product for identifying unwanted code associated with network communications
US20080010538A1 (en) * 2006-06-27 2008-01-10 Symantec Corporation Detecting suspicious embedded malicious content in benign file formats
US20080115016A1 (en) * 2006-11-13 2008-05-15 Electronics And Telecommunications Research Institute System and method for analyzing unknown file format to perform software security test
US20080134333A1 (en) * 2006-12-04 2008-06-05 Messagelabs Limited Detecting exploits in electronic objects
GB2444514A (en) 2006-12-04 2008-06-11 Glasswall Electronic file re-generation
US9729513B2 (en) 2007-11-08 2017-08-08 Glasswall (Ip) Limited Using multiple layers of policy management to manage risk
CN100483419C (zh) * 2007-07-27 2009-04-29 华为技术有限公司 一种数据格式的校验方法及装置
US20100037317A1 (en) * 2008-08-06 2010-02-11 Jeong Wook Oh Mehtod and system for security monitoring of the interface between a browser and an external browser module
GB2466455A (en) * 2008-12-19 2010-06-23 Qinetiq Ltd Protection of computer systems
GB0918478D0 (en) * 2009-10-22 2009-12-09 Qinetiq Ltd Checking data content
CN102043915B (zh) * 2010-11-03 2013-01-23 厦门市美亚柏科信息股份有限公司 一种非可执行文件中包含恶意代码的检测方法及其装置
CN102831215B (zh) * 2012-08-17 2016-06-08 芯原微电子(北京)有限公司 一种基于嵌入元语言指令的文本处理方法及装置
GB2518880A (en) 2013-10-04 2015-04-08 Glasswall Ip Ltd Anti-Malware mobile content data management apparatus and method
US9330264B1 (en) 2014-11-26 2016-05-03 Glasswall (Ip) Limited Statistical analytic method for the determination of the risk posed by file based content
RU2606559C1 (ru) * 2015-10-22 2017-01-10 Акционерное общество "Лаборатория Касперского" Система и способ оптимизации антивирусной проверки файлов
CN106682505B (zh) * 2016-05-04 2020-06-12 腾讯科技(深圳)有限公司 一种病毒检测方法、终端、服务器及系统
TWI622894B (zh) * 2016-12-13 2018-05-01 宏碁股份有限公司 電子裝置及偵測惡意檔案的方法
US11537713B2 (en) * 2017-08-02 2022-12-27 Crashplan Group Llc Ransomware attack onset detection
TWI760655B (zh) * 2019-09-26 2022-04-11 阿證科技股份有限公司 資料掃描系統
CN111416812B (zh) * 2020-03-16 2022-06-21 深信服科技股份有限公司 一种恶意脚本检测方法、设备及存储介质
KR102326490B1 (ko) * 2020-03-25 2021-11-15 주식회사 티맥스 소프트 스텝 입출력 데이터 셋 파이프라이닝
RU2757408C1 (ru) * 2020-09-24 2021-10-15 Акционерное общество "Лаборатория Касперского" Система и способ формирования правила проверки файла на вредоносность
CN114244599B (zh) * 2021-12-15 2023-11-24 杭州默安科技有限公司 一种干扰恶意程序的方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001088673A2 (en) * 2000-05-17 2001-11-22 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
JP2003242092A (ja) 2002-02-08 2003-08-29 Koshu Sai 電子メールウイルス予防システムの隔離検出方法、交互授権方法、隔離検出プログラムおよび交互授権プログラム

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5754761A (en) 1995-03-06 1998-05-19 Willsey; John A. Universal sofeware key process
US6067410A (en) 1996-02-09 2000-05-23 Symantec Corporation Emulation repair system
US7058822B2 (en) * 2000-03-30 2006-06-06 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
US5960170A (en) * 1997-03-18 1999-09-28 Trend Micro, Inc. Event triggered iterative virus detection
KR100204917B1 (ko) 1997-05-17 1999-06-15 윤종용 디지탈 무선 이동 통신을 위한 에이치엘알 시스템의 데이타베이스 변경을 위한 방법
US5948104A (en) 1997-05-23 1999-09-07 Neuromedical Systems, Inc. System and method for automated anti-viral file update
US6006329A (en) 1997-08-11 1999-12-21 Symantec Corporation Detection of computer viruses spanning multiple data streams
US6021510A (en) 1997-11-24 2000-02-01 Symantec Corporation Antivirus accelerator
JP2926590B1 (ja) 1998-08-25 1999-07-28 日本電気マイコンテクノロジー株式会社 プログラムデバッガ,プログラムデバッグ方法および記録媒体
US6401210B1 (en) 1998-09-23 2002-06-04 Intel Corporation Method of managing computer virus infected files
US6230288B1 (en) 1998-10-29 2001-05-08 Network Associates, Inc. Method of treating whitespace during virus detection
JP2001101049A (ja) * 1999-09-28 2001-04-13 Mitsubishi Electric Corp ファイル復元装置
US6892303B2 (en) 2000-01-06 2005-05-10 International Business Machines Corporation Method and system for caching virus-free file certificates
CN1260724C (zh) 2000-05-25 2006-06-21 日本胜利株式会社 一种内容重放方法
GB0016835D0 (en) 2000-07-07 2000-08-30 Messagelabs Limited Method of, and system for, processing email
US8341743B2 (en) 2000-07-14 2012-12-25 Ca, Inc. Detection of viral code using emulation of operating system functions
US7093239B1 (en) * 2000-07-14 2006-08-15 Internet Security Systems, Inc. Computer immune system and method for detecting unwanted code in a computer system
WO2002013469A2 (en) 2000-08-08 2002-02-14 Tumbleweed Communications Corp. Recipient-specified automated processing in a secure data file delivery system
EP1202148A1 (en) 2000-10-31 2002-05-02 Hewlett-Packard Company, A Delaware Corporation Virus check on altered data
US7111075B2 (en) 2000-12-18 2006-09-19 Microsoft Corporation Method and system for processing data records having multiple formats
US6898712B2 (en) 2001-02-20 2005-05-24 Networks Associates Technology, Inc. Test driver ordering
US7096497B2 (en) 2001-03-30 2006-08-22 Intel Corporation File checking using remote signing authority via a network
US7310817B2 (en) 2001-07-26 2007-12-18 Mcafee, Inc. Centrally managed malware scanning
US7543334B2 (en) 2001-08-27 2009-06-02 Mcafee, Inc. Update status alerting for a malware scanner
US7340774B2 (en) 2001-10-15 2008-03-04 Mcafee, Inc. Malware scanning as a low priority task
US7107617B2 (en) 2001-10-15 2006-09-12 Mcafee, Inc. Malware scanning of compressed computer files
US20030079142A1 (en) 2001-10-22 2003-04-24 Aladdin Knowledge Systems Ltd. Classifying digital object security category
US7631184B2 (en) 2002-05-14 2009-12-08 Nicholas Ryan System and method for imposing security on copies of secured items
US7150043B2 (en) 2001-12-12 2006-12-12 International Business Machines Corporation Intrusion detection method and signature table
US7058975B2 (en) 2001-12-14 2006-06-06 Mcafee, Inc. Method and system for delayed write scanning for detecting computer malwares
US20030115479A1 (en) 2001-12-14 2003-06-19 Jonathan Edwards Method and system for detecting computer malwares by scan of process memory after process initialization
GB0130805D0 (en) 2001-12-22 2002-02-06 Koninkl Philips Electronics Nv Dealing with a computer virus which self-propagates by e-mail
ATE426858T1 (de) 2002-04-13 2009-04-15 Computer Ass Think Inc System und verfahren zum erkennen von bísartigem code
US7418729B2 (en) 2002-07-19 2008-08-26 Symantec Corporation Heuristic detection of malicious computer code by page tracking
GB2391965B (en) * 2002-08-14 2005-11-30 Messagelabs Ltd Method of, and system for, heuristically detecting viruses in executable code
KR20030096167A (ko) 2003-11-26 2003-12-24 (주) 소프트길드 수신자 상태 체크가 가능한 대용량 파일송수신 시스템
US20060136389A1 (en) * 2004-12-22 2006-06-22 Cover Clay H System and method for invocation of streaming application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001088673A2 (en) * 2000-05-17 2001-11-22 Finjan Software, Ltd. Malicious mobile code runtime monitoring system and methods
JP2003242092A (ja) 2002-02-08 2003-08-29 Koshu Sai 電子メールウイルス予防システムの隔離検出方法、交互授権方法、隔離検出プログラムおよび交互授権プログラム

Also Published As

Publication number Publication date
CN1648812A (zh) 2005-08-03
HK1080163A1 (en) 2006-04-21
JP2005216286A (ja) 2005-08-11
RU2004138761A (ru) 2006-06-10
EP1560112B1 (en) 2014-05-14
ZA200410384B (en) 2006-09-27
MXPA04012866A (es) 2005-08-03
CA2491114A1 (en) 2005-07-30
BRPI0405400A (pt) 2005-09-20
EP1560112A1 (en) 2005-08-03
TW200525346A (en) 2005-08-01
US20050172339A1 (en) 2005-08-04
AU2004237916A1 (en) 2005-08-18
KR20050078192A (ko) 2005-08-04
CA2491114C (en) 2014-08-12
US7721334B2 (en) 2010-05-18

Similar Documents

Publication Publication Date Title
KR101098652B1 (ko) 코드-프리 파일의 검출
JP6639588B2 (ja) 悪意あるファイルを検出するシステムおよび方法
US8819835B2 (en) Silent-mode signature testing in anti-malware processing
US7945787B2 (en) Method and system for detecting malware using a remote server
US10375086B2 (en) System and method for detection of malicious data encryption programs
US8479292B1 (en) Disabling malware that infects boot drivers
RU2680736C1 (ru) Сервер и способ для определения вредоносных файлов в сетевом трафике
US8578345B1 (en) Malware detection efficacy by identifying installation and uninstallation scenarios
US10013555B2 (en) System and method for detecting harmful files executable on a virtual stack machine based on parameters of the files and the virtual stack machine
JP2019082989A (ja) 標的型攻撃をクラウド型検出、探索および除去するシステムおよび方法
US20090235357A1 (en) Method and System for Generating a Malware Sequence File
US10747879B2 (en) System, method, and computer program product for identifying a file used to automatically launch content as unwanted
US9740865B2 (en) System and method for configuring antivirus scans
JPWO2019013266A1 (ja) 判定装置、判定方法、および、判定プログラム
RU2531565C2 (ru) Система и способ анализа событий запуска файлов для определения рейтинга их безопасности
JP2011008730A (ja) コンピュータシステム、コンピュータ装置、ファイルオープン方法、及びプログラム
JP2008140102A (ja) 情報処理装置及び漏洩情報判定方法及びプログラム
US11714899B2 (en) Command injection identification
US7448085B1 (en) Method and apparatus for detecting malicious content in protected archives
JP2010182020A (ja) 不正検知装置およびプログラム
CN114647849A (zh) 潜在危险文件的检测方法、装置、电子设备及存储介质
CN114266043A (zh) 用于存储管理的方法、电子设备和计算机程序产品

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

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151118

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161123

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 8