KR20040101460A - 악성 코드를 탐지하기 위한 시스템 및 방법 - Google Patents

악성 코드를 탐지하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20040101460A
KR20040101460A KR10-2004-7016323A KR20047016323A KR20040101460A KR 20040101460 A KR20040101460 A KR 20040101460A KR 20047016323 A KR20047016323 A KR 20047016323A KR 20040101460 A KR20040101460 A KR 20040101460A
Authority
KR
South Korea
Prior art keywords
crc
computer readable
code
readable code
crcs
Prior art date
Application number
KR10-2004-7016323A
Other languages
English (en)
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 KR20040101460A publication Critical patent/KR20040101460A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/564Static detection by virus signature recognition
    • 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/565Static detection by checking file integrity

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Virology (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Small-Scale Networks (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

컴퓨터 판독가능 코드에서 악성 코드를 탐지하는 방법은 컴퓨터 판독가능 코드의 제1 부분이 잠재적으로 악성 코드를 가질 수 있는지 여부를 판정하는 초기 판정을 수행하는 단계 및 그 컴퓨터 판독가능 코드가 잠재적으로 악성 코드를 가진다고 판정된다면, 컴퓨터 판독가능 코드의 제1 부분을 포함하지 않는 제2 부분이 악성 코드를 가지는지 여부를 판정하는 다른 판정을 수행하는 단계를 포함한다.

Description

악성 코드를 탐지하기 위한 시스템 및 방법{SYSTEM AND METHOD FOR DETECTING MALICIOUS CODE}
매년, 점점 더 많고 다양한 컴퓨터 바이러스를 만나게 된다. 이러한 바이러스가 없는 컴퓨터 시스템을 보유하기 위해서 필요한 노력이 급증해왔다. 바이러스가 없는 컴퓨터 시스템을 유지하는 시도 중 한 방법은 바이러스를 검사하기 위해 정기적으로 시스템을 검사(scan)하는 것이다. 최적의 안전을 위해서는, 이 검사는 보통 적어도 하루에 한번 수행된다. 그러나, 컴퓨터 바이러스의 개수의 증가로, 컴퓨터 시스템을 적절히 검사하는 데에 요구되는 시간을 증가시키는 결과가 부담이 될 수 있다.
따라서, 컴퓨터 바이러스를 검사하기 위해 시스템을 검사하는 데에 요구되는 시간을 단축시키는 시스템 및 방법이 필요하다.
본 출원은 2002년 4월 13일에 출원된 가출원 번호 60/372,283 및 2002년 4월 15일에 출원된 가출원 번호 60/372,473의 권리를 청구하며 이 둘의 모든 내용은 참조로서 본 명세서에 포함된다.
본 발명은 악성 코드를 탐지하기 위한 시스템 및 방법에 관한 것이다.
도 1은 본 발명이 적용될 수 있는 시스템의 일례의 블럭도.
도 2는 파일들의 다양한 부분을 도시하는 도면.
도 3은 파일들의 다른 부분을 도시하는 도면.
도 4는 본 발명의 일실시예에 따른 시스템을 기술하는 흐름도.
도 5는 본 발명의 다른 실시예에 따른 시스템을 기술하는 흐름도.
컴퓨터 판독가능 코드에서 악성 코드를 탐지하는 방법, 컴퓨터 기록 매체 및 장치가 개시된다. 이 방법은 컴퓨터 판독가능 코드의 제1 부분이 잠재적으로 악성 코드를 가질 수 있는지 여부를 판정하는 초기 판정을 수행하는 단계 및 그 컴퓨터 판독가능 코드가 잠재적으로 악성 코드를 가진다고 판정되었다면 컴퓨터 판독가능 코드의 제1 부분을 포함하지 않는 제2 부분이 악성 코드를 가지는지 여부를 판정하는 다른 판정을 수행하는 단계를 포함한다.
컴퓨터 판독가능 코드에서 악성 코드를 탐지하는 방법, 컴퓨터 기록 매체 및 장치 또한 개시되는데, 이 방법은 컴퓨터 판독가능 코드의 제1 부분의 CRC를 결정하는 단계, 컴퓨터 판독가능 코드의 제1 부분의 CRC가 CRC들의 데이터베이스 내에 존재하는지 여부를 판정하는 초기 판정을 수행하는 단계를 포함하고, 각각의 CRC는 결정된 CRC가 CRC들의 데이터베이스 내에 존재하는 경우에 진행하는 방법에 대한 대응하는 명령어를 포함하고, 컴퓨터 판독가능 코드의 제1 부분의 CRC가 CRC들의 데이터베이스 내에 존재한다고 판정될 경우, 대응하는 명령어를 수행한다.
본 발명의 보다 완전한 이해 및 본 발명의 다수의 부수적인 이점은 첨부된 도면과 관련하여 고려될 때 후술될 상세한 설명의 참조에 의해 더욱 잘 이해될 것이기 때문에 쉽게 얻어질 것이다.
도면에 도시된 본 발명의 바람직한 실시예를 기술함에 있어서, 명확함을 위하여 특정한 용어가 이용되었다. 그러나, 본 발명은 이렇게 선택된 특정한 용어로 제한되는 것을 의도하지 않으며 각각의 특정 요소들은 유사한 방식으로 동작하는 모든 기술적인 동등물을 포함한다고 이해되어야 한다.
도 1은 본 발명의 방법 및 시스템을 구현할 수 있는 컴퓨터 시스템의 일례를 도시한다. 본 발명의 시스템 및 방법은, 컴퓨터 시스템, 예를 들면, 메인프레임, 퍼스널 컴퓨터(PC), 핸드헬드(handheld) 컴퓨터, 서버 등에서 실행되는 소프트웨어 애플리케이션의 형태로 구현될 수 있다. 소프트웨어 애플리케이션은 컴퓨터 시스템에 의해 국부적으로 액세스 가능한 기록 매체, 예를 들면, 플로피 디스크, 콤팩트 디스크, 하드 디스크, 등에 저장될 수 있거나, 컴퓨터 시스템의 원격 위치에 존재하고, 네트워크, 예를 들면, LAN 또는 인터넷으로의 유선 또는 무선 접속을 통하여 액세스 가능하다.
컴퓨터 시스템은 일반적으로 시스템(100)이라 칭하고, 중앙 처리 장치(CPU; 102), RAM 등의 메모리(104), 프린터 인터페이스(106), 디스플레이 유닛(108), LAN 데이터 전송 컨트롤러(110), LAN 인터페이스(112), 네트워크 컨트롤러(114), 내부 버스(116) 및 키보드, 마우스 등의 하나 이상의 입력 장치(118)를 포함할 수 있다. 도시된 바와 같이, 시스템(100)은 링크(122)를 통해 하드 디스크(120) 등의 데이터저장 장치에 접속될 수 있다.
데이터 저장 장치에는 다양한 유형의 방대한 파일이 저장되어 있을 수 있다. 저장될 수 있는 파일들의 유형의 예로는 일괄 처리 파일(batch file: BAT), 실행 명령 파일(executable command file: COM), 실행 파일(executable file: EXE) 등을 포함한다. 각각의 파일 유형은 하나 이상의 바이러스에 의한 손상에 노출되어 있을 수 있다. 본 시스템은 파일이 손상되었을 수 있는지 여부를 판정하기 위해 각각의 파일 일부분에 대해 검사(예를 들면, 주기적 중복성 검사(cyclic redundancy check(CRC))를 수행할 수 있다. 이러한 검사에서 파일이 손상되었을 수 있다고 판정되면, 파일의 더 큰 부분을 검사하여 이 파일이 실제로 손상되었는지 여부를 판정할 수 있다.
복수의 파일 유형은 고유한 하나 이상의 부분, 예를 들면, EXE 파일의 헤더를 가진다. 각각의 EXE 파일은 파일의 앞부분에 위치한 512 바이트 영역인 헤더를 가진다. 512 바이트 중에서, 통상은 오직 27 바이트만이 헤더 정보를 포함한다. 헤더는 파일을 로딩하거나 실행할 때 시스템에 의해 사용되는 파일 자체에 관한 다양한 유형의 정보를 포함한다. 헤더는 ID 바이트, 마지막 섹터 상의 총 바이트, 섹터의 총 수, 재배치가능한 아이템의 수, 헤더 크기, 요구되는 최소 및 최대 패러그래프를 포함할 수 있다. 파일이 바이러스에 의해 손상되었다면, 적어도 헤더의 일부 부분에 어떤 변경이 반영될 가능성이 있을 것이다.
본 시스템 및 방법의 실시예는 먼저 파일의 헤더의 CRC를 얻고 그 다음 이 CRC를 바이러스를 포함하는 파일의 헤더의 CRC들(바이러스성 CRC들)과 비교함으로써 이를 이용한다. CRC들이 일치되면, 이는 파일이 바이러스를 포함한다는 것을 나타낼 수 있다. 그러면, 파일에 대해 더 포괄적인 검사가 수행되어 파일이 바이러스를 포함하는지 확정할 수 있다. 예를 들면, 파일의 더 넓은 부분(또는 전체)의 CRC가 결정될 수 있다. 그 다음 이러한 CRC는 바이러스를 포함하는 파일의 더 넓은 부분(또는 전체)의 CRC와 비교될 수 있다. 이들 CRC가 일치된다면, 파일은 손상되었고 사용자는 통지받을 수 있다. 파일의 더 넓은 부분은 전체 파일일 수 있거나 일정한 상태로 남아있고 대체로 변경되지 않는 파일의 단지 한 부분일 수 있다.
도 2에 도시된 바와 같이, 시스템은 3개의 파일, 즉, 파일1, 파일2 및 파일3을 포함할 수 있다. 각각의 파일은 각각, 헤더1, 헤더2 및 헤더3이라는 라벨이 붙는 헤더 부분 및 각각, 본문1, 본문2 및 본문3이라는 라벨이 붙은 본문 부분을 포함한다. 바이러스라는 라벨이 붙은 파일은 알려진 바이러스에 감염된 파일이다. 바이러스 파일은 또한 헤더V라는 라벨이 붙은 헤더 부분 및 본문V라는 라벨이 붙은 본문 부분을 포함한다. 바이러스 파일 전체가 시스템에 저장될 수 있지만, 반드시 그렇게 해야될 필요는 없다. 즉, 바이러스 파일 전체를 저장하는 대신에, 바이러스 파일의 하나 이상의 부분의 CRC만을 결정하여 저장할 수 있다. 예를 들면, 바이러스 파일의 헤더(헤더V)의 CRC가 결정되고 바이러스 파일의 본문(본문V)과 함께 메모리에 저장될 수 있다. 바이러스 파일 하나만이 도시되지만, 실제로는 복수의 바이러스 파일이 사용되고 각 파일당 하나 이상의 CRC가 결정되는 것으로 인식될 것이다.
바이러스 검사 중에, 파일(파일1, 파일2 및 파일3) 각각의 전체 내용을 검사하는 대신, 파일1, 파일2 및 파일3인 파일 각각의 헤더의 CRC를 결정할 수 있도록 헤더만을 검사한다. 그 다음 이들 CRC를 바이러스 파일의 헤더의 CRC들과 비교한다. 예를 들면, 파일1의 헤더의 CRC가 바이러스 파일의 헤더의 CRC와 일치한다면, 이로 인해, 파일1을 더 조사하게 된다(trigger). 그 다음, 예를 들면, 파일1의 본문(본문1)의 CRC가 결정된다. 그 다음 이러한 CRC를 바이러스 파일의 본문(본문V)의 CRC와 비교한다. CRC가 일치하면, 이는 파일이 감염된 것을 나타낸다. 그 다음 사용자는 통지받을 수 있고/거나 시스템은 바이러스를 제거하려고 시도할 수 있다.
파일의 본문의 CRC가 결정되면, 파일 전체를 검사할 수 있거나 본문의 전체 또는 하나 이상의 부분을 검사할 수 있다. 파일의 본문의 CRC는 헤더의 검사도 포함할 수 있다. 예를 들면, 도 3에서 도시된 바와 같이, 파일은 헤더, 일정한 부분 및 가변적인 부분을 포함할 수 있다. 자주 변경되는 파일의 경우, 파일의 가변적인 부분(들)을 검사하지 않고 파일의 CRC들을 결정하는 것이 바람직할 수 있다. 이러한 경우, CRC들은 파일의 일정한 부분 또는 파일의 일정한 부분 및 헤더 부분만을 검사함으로써 결정될 수 있다.
본 발명의 실시예에 따르면, 알려진 바이러스 정보를 메모리에 저장한다. 메모리는 도 1에 도시된 시스템 메모리(104)일 수 있거나, 예를 들면, 인터넷을 통하여 컴퓨터 시스템(100)에 의해 원격적으로 액세스 가능한 분리형 저장 매체 또는 메모리 또는 데이터베이스일 수 있다. 바이러스 정보는 각각 제1 바이러스성 CRC및 대응하는 제2 바이러스성 CRC를 포함하는 바이러스성 정보들의 집합을 포함한다. 각각의 제1 바이러스성 CRC는 바이러스에 감염된 파일들의 한 부분 또는 부분들의 CRC를 계산함으로써 결정될 수 있다. 예를 들면, 제1 바이러스성 CRC는 바이러스에 감염된 파일들의 헤더의 CRC를 계산함으로써 결정될 수 있다. 각각의 제1 바이러스성 CRC는 적어도 하나의 대응하는 제2 바이러스성 CRC를 가진다. 제2 바이러스성 CRC는, 예를 들면, 바이러스에 감염된 파일의 본문의 CRC를 계산함으로써 결정될 수 있다. 데이터베이스는 다양한 유형의 파일에서 다양한 유형의 바이러스를 탐지하기 위하여 수많은 바이러스성 정보의 집합을 포함할 수 있다.
도 4는 본 발명의 일실시예에 따른 악성코드를 탐지하는 방법의 흐름도를 도시한다. 이러한 실시예에 따르면, 다양한 유형의 바이러스에 감염된 다양한 유형의 파일에 대한 바이러스성 정보의 집합을 저장하는 데이터베이스가 제공된다. 각각의 집합은 제1 바이러스성 CRC 및 제2 바이러스성 CRC를 포함한다. 제1 바이러스성 CRC들은 바이러스에 감염된 파일들의 헤더를 검사함으로써 결정된다. 제2 바이러스성 CRC들은 감염된 파일들의 일정한 부분(도 3)을 검사함으로써 결정된다. 이 방법은 컴퓨터 시스템 메모리(100)에 저장되거나 예를 들면, 컴퓨터 시스템(100)에 의해 액세스 가능한 원격 애플리케이션 서비스 제공자 사이트에서 원격적으로 저장된 컴퓨터 실행가능 코드의 형태로 구현될 수 있다. 시스템이 시작된 후에(단계 S1), 검사해야 할 파일의 한 부분(예를 들면, 제1 킬로바이트(또는 헤더))을 판독하여 임시 버퍼 내로 입력시킨다(단계 S2). 이는 바이러스에 대해 파일을 검사하라는 사용자에 의한 특정 요청에 응답하여 또는 바이러스 검사를 위해 검사해야 할 파일들의 정해진 순서에 응답하여 수행될 수 있다. 그 다음, 단계 S4에서, 버퍼 내로 판독, 입력된 데이터의 CRC가 결정된다(제1 CRC). 그러면 제1 CRC가 데이터베이스에 저장된 제1 바이러스성 CRC들과 비교된다(단계 S6). 제1 CRC가 저장된 제1 바이러스성 CRC들 중 어떤것과도 일치하지 않으면(아니오, 단계 S6), 어떠한 바이러스도 발견되지 않은 것으로 판정되고 시스템은 바이러스를 검사하기 위한 다른 기법으로 계속 행하고/거나 사용자에게 바이러스가 발견되지 않았다고 알려줄 수 있다(단계 S12). 제1 CRC가 제1 바이러스성 CRC와 일치한다면(예, 단계 S6), 파일의 일정한 부분을 판독하여 임시 버퍼내로 입력시켜, 검사하여 그 부분의 제2 CRC를 결정한다(단계 S8). 그 다음 이러한 제2 CRC는 대응하는 제2 바이러스성 CRC와 비교된다(단계 S10). 제2 CRC가 대응하는 제2 바이러스성 CRC와 일치하면(예, 단계 S10), 파일이 바이러스를 포함한다고 판정되고 적절한 조치를 취할 수 있다(단계 S14). 파일의 본문의 CRC가 감염된 파일의 바이러스의 본문의 CRC와 일치하지 않으면(아니오, 단계 S10), 프로세스는 단계(S12)로 진행하고 적절한 조치를 취한다. 그 다음 프로세스는 종료된다(단계 S16).
본 발명의 다른 실시예에 따르면, CRC 일치가 일어날 때 진행하는 방법을 지시하는 명령어를 구비한 바이러스성 CRC들을 데이터베이스에 저장한다. 각각의 바이러스성 CRC가 일치성 검사를 다루는 명령어의 다른 집합을 포함할 수 있기 때문에, 이러한 실시예는 여러 유형의 바이러스를 다룰 때 높은 정도의 융통성을 허용한다. 예를 들면, 파일 헤더의 CRC가 데이터베이스 내의 바이러스성 CRC와 일치한다면, 데이터베이스는 파일의 다른 부분의 CRC를 그 다음 계산해야 하는 명령어를포함할 수 있다. 예를 들면, 이 명령어는 데이터의 다음 킬로바이트의 CRC를 계산하여 다시 데이터베이스 내의 바이러스성 CRC들과 비교해야 하는 것을 지시할 수 있다. 그 CRC가 다시 데이터베이스 내의 바이러스성 CRC와 일치한다면, 바이러스성 CRC를 가지는 데이터베이스에 저장된 명령어는 시스템에게 파일의 다른 부분의 CRC를 결정하고 다시 그 CRC를 데이터베이스 등에 저장된 바이러스성 CRC들과 비교하라고 명령할 수 있다. 몇몇의 바이러스성 CRC에는, CRC가 그 바이러스성 CRC와 일치한다면, 파일 전체의 CRC가 계산되어야 하며 결과 CRC는 데이터베이스 내의 바이러스성 CRC들과 비교해야 하는 것을 지시하는 명령어가 함께 포함될 수 있다. 몇몇의 바이러스성 CRC에 CRC가 그 바이러스성 CRC와 일치한다면, 파일의 일정한 부분만의 CRC를 계산하여 결과 CRC를 데이터베이스 내의 바이러스성 CRC들과 비교해야 하는 것을 지시하는 명령어가 함께 포함될 수 있다. 몇몇의 바이러스성 CRC에 CRC가 그 바이러스성 CRC와 일치한다면, 파일 상의 다른 CRC를 계산하는 대신에, 다른 형태의 바이러스 탐지를 그 파일에 대해 수행해야 하는 것을 지시하는 명령어가 함께 포함될 수 있다.
도 5는 본 발명의 이러한 실시예에 따르는 프로세스를 기술하는 흐름도이다. 시스템의 시작된 후에(단계 S20), 시스템은 CRC의 다음 레벨을 계산한다(단계 S22). 초기에는, 이 단계는 파일의 제1 킬로바이트(또는 헤더)의 CRC를 계산한다. 그 다음 바이러스성 CRC들의 데이터베이스가 일치성 검사를 위해 검색된다(단계 S24). 일치하는 바이러스성 CRC가 발견되지 않았다면(아니오, 단계 S26), 프로세스는 종료된다(단계 S28). 단계(S28)에서는 사용자에게 파일은 바이러스성이 아니라는 것을 알릴 것을 시스템에게 지시하고/하거나 다른 유형의 바이러스 탐지를 수행하거나 검사해야 할 다음 파일로 진행할 것을 시스템에게 지시한다. 일치되는 바이러스성 CRC가 발견되었다면(예, 단계 S26), 바이러스성 CRC와 함께 저장된 명령어가 판독되고 그 명령어가 수행된다(단계 S30). 이들 명령어는 CRC들이 일치되었기 때문에, 바이러스가 탐지된 것을 지시하고(예, 단계 S32) 그 다음 원한다면, 이 정보는, 예를 들면, 디스플레이를 통해 사용자에게 전달될 수 있다(단계 S34). 명령어가 파일의 다른 부분의 또는 파일 전체의 CRC가 계산될 것을 지시한다면(아니오, 단계 S32), 프로세스는 단계(S22)로 리턴하고, 이 단계에서 다음 CRC가 계산되고 프로세스는 반복될 수 있다.
전술한 바와 같이, 명령어들은 다른 유형의 바이러스 탐지가 수행될 것을 지시할 수 있다. 명령어가 다른 유형의 바이러스 탐지가 사용될 것을 지시한다면, 명령어에서 지시된 유형의 바이러스 탐지를 이용하여 바이러스를 탐지하려는 시도가 이루어진다. 바이러스가 탐지되면, 사용자에게 통지될 수 있다.
상기에서는 CRC들의 이용에 대해 기술하였지만, 파일 내에 있을 수 있는 바이러스의 존재를 판정하기 위하여 다른 방법들이 사용될 수 있음이 인식될 것이다. 예를 들면, 파일의 헤더 및 본문 부분에 대한 서명을 CRC들 대신에 사용될 수 있다.
본 발명은 유리하게도 본 발명의 가르침 따라서 프로그래밍된 하나 이상의 통상의 범용 디지털 컴퓨터 및/또는 서버를 이용하여 구현될 수 있다. 적절한 소프트웨어 코딩은 본 발명의 가르침에 기반하여 숙련된 프로그래머에 의해 쉽게 준비될 수 있다. 본 발명은 또한 애플리케이션에 주문형 검색 회로(ASIC)의 준비에 의해 또는 통상의 컴포넌트 회로의 적절한 네트워크의 상호접속에 의해 구현될 수 있다.
본 발명의 방대한 추가적인 수정 및 변형이 전술한 가르침의 관점에서 가능하다. 그러므로 본 발명의 범위 내에서는, 본 발명은 본 명세서에서 특정하게 기술한 바와는 다르게 실행될 수 있음이 이해되어야 한다.

Claims (30)

  1. 컴퓨터 판독가능 코드에서 악성 코드를 탐지하는 방법에 있어서,
    상기 컴퓨터 판독가능 코드의 제1 부분이 잠재적으로 악성 코드를 가질 수 있는지 여부를 판정하는 초기 판정을 수행하는 단계, 및
    상기 컴퓨터 판독가능 코드가 잠재적으로 악성 코드를 가진다고 판정되면, 상기 컴퓨터 판독가능 코드의 상기 제1 부분을 포함하지 않는 제2 부분이 악성 코드를 가지는지 여부를 판정하는 다른 판정을 수행하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 다른 판정은 상기 초기 판정보다 더 포괄적인 방법.
  3. 제1항에 있어서,
    상기 초기 판정은 상기 컴퓨터 판독가능 코드의 상기 제1 부분의 제1 CRC를 결정하는 방법.
  4. 제3항에 있어서,
    상기 다른 판정은 상기 컴퓨터 판독가능 코드의 상기 제2 부분의 제2 CRC를 결정하도록 수행되는 방법.
  5. 제4항에 있어서,
    상기 제1 CRC를 CRC들의 데이터베이스와 비교하여 악성 코드가 존재하는지 여부를 판정하는 방법.
  6. 제5항에 있어서,
    상기 제2 CRC를 상기 데이터베이스 내의 CRC와 비교하는 방법.
  7. 제6항에 있어서,
    상기 CRC들의 데이터베이스는 CRC들의 집합들을 포함하는 방법.
  8. 제7항에 있어서,
    상기 CRC들의 집합들은 악성 코드를 포함하도록 수정된 상기 컴퓨터 판독가능 코드의 상기 제1 부분의 CRC를 결정함으로써 얻어지는 제1 바이러스성 CRC 및 상기 악성 코드를 포함하도록 수정된 상기 컴퓨터 판독가능 코드의 상기 제2 부분의 CRC를 결정함으로써 얻어지는 대응하는 제2 바이러스성 CRC를 포함하는 방법.
  9. 컴퓨터 판독가능 코드에서 악성 코드를 탐지하는 방법에 있어서,
    상기 컴퓨터 판독가능 코드의 제1 부분의 CRC를 결정하는 단계,
    상기 컴퓨터 판독가능 코드의 상기 제1 부분의 상기 CRC가 CRC들의 데이터베이스 내에 존재하는지 여부를 판정하는 초기 판정을 수행하는 단계 - 각각의 CRC는 상기 판정된 CRC가 상기 CRC들의 데이터베이스 내에 존재하는 경우 진행해야 하는방법에 대한 대응하는 명령어를 포함함 -, 및
    상기 컴퓨터 판독가능 코드의 상기 제1 부분의 상기 CRC가 상기 CRC들의 데이터베이스 내에 존재한다고 판정되면, 상기 대응하는 명령어를 수행하는 단계
    를 포함하는 방법.
  10. 제9항에 있어서,
    상기 대응하는 명령어는 상기 전체 컴퓨터 판독가능 코드 전체의 CRC를 결정하고 이 CRC를 상기 CRC들의 데이터베이스와 비교하라고 지시하는 것, 상기 컴퓨터 판독가능 코드의 일정한 부분의 CRC를 결정하고 이 CRC를 상기 CRC들의 데이터베이스와 비교하라고 지시하는 것, CRC 검사와는 다른 형태의 악성 코드 탐지를 상기 컴퓨터 판독가능 코드에 대해 수행하라고 지시하는 것 중 적어도 하나를 포함하는 방법.
  11. 컴퓨터 판독가능 코드에서 악성 코드를 탐지하는 실행가능 코드를 포함하는 기록 매체에 있어서,
    상기 컴퓨터 판독가능 코드의 제1 부분이 잠재적으로 악성 코드를 가질 수 있는지 여부를 판정하는 초기 판정을 수행하는 코드, 및
    상기 컴퓨터 판독가능 코드가 잠재적으로 악성 코드를 가진다고 판정되면,상기 컴퓨터 판독가능 코드의 상기 제1 부분을 포함하지 않는 제2 부분이 악성 코드를 가지는지 판정하는 여부를 다른 판정을 수행하는 코드
    를 포함하는 기록 매체.
  12. 제11항에 있어서,
    상기 다른 판정은 상기 초기 판정보다 더 포괄적인 기록 매체.
  13. 제11항에 있어서,
    상기 초기 판정은 상기 컴퓨터 판독가능 코드의 상기 제1 부분의 제1 CRC를 결정하는 기록 매체.
  14. 제13항에 있어서,
    상기 다른 판정은 상기 컴퓨터 판독가능 코드의 상기 제2 부분의 제2 CRC를 결정하도록 수행되는 기록 매체.
  15. 제14항에 있어서,
    상기 제1 CRC를 CRC들의 데이터베이스와 비교하여 악성 코드가 존재하는지 여부를 판정하는 기록 매체.
  16. 제15항에 있어서,
    상기 제2 CRC를 상기 데이터베이스 내의 CRC와 비교하는 기록 매체.
  17. 제16항에 있어서,
    상기 CRC들의 데이터베이스는 CRC들의 집합들을 포함하는 기록 매체.
  18. 제17항에 있어서,
    상기 CRC들의 집합들은 악성 코드를 포함하도록 수정된 상기 컴퓨터 판독가능 코드의 상기 제1 부분의 CRC를 결정함으로써 얻어지는 제1 바이러스성 CRC 및 상기 악성 코드를 포함하도록 수정된 상기 컴퓨터 판독가능 코드의 상기 제2 부분의 CRC를 결정함으로써 얻어지는 대응하는 제2 바이러스성 CRC를 포함하는 기록 매체.
  19. 컴퓨터 판독가능 코드에서 악성 코드를 탐지하는 실행가능 코드를 포함하는 기록 매체에 있어서,
    상기 컴퓨터 판독가능 코드의 제1 부분의 CRC를 결정하는 코드,
    상기 컴퓨터 판독가능 코드의 상기 제1 부분의 상기 CRC가 CRC들의 데이터베이스 내에 존재하는지 여부를 판정하는 초기 판정을 수행하는 코드 - 각각의 CRC는 상기 판정된 CRC가 상기 CRC들의 데이터베이스 내에 존재하는 경우 진행해야 하는 방법에 대한 대응하는 명령어를 포함함 -, 및
    상기 컴퓨터 판독가능 코드의 상기 제1 부분의 상기 CRC가 상기 CRC들의 데이터베이스 내에 존재한다고 판정되면, 상기 대응하는 명령어를 수행하는 코드
    를 포함하는 기록 매체.
  20. 제19항에 있어서,
    상기 대응하는 명령어는 상기 컴퓨터 판독가능 코드 전체의 CRC를 결정하고 이 CRC를 상기 CRC들의 데이터베이스와 비교하라고 지시하는 것, 상기 컴퓨터 판독가능 코드의 일정한 부분의 CRC를 결정하고 이 CRC를 상기 CRC들의 데이터베이스와 비교하라고 지시하는 것, CRC 검사와는 다른 형태의 악성 코드 탐지를 상기 컴퓨터 판독가능 코드에 대해 수행하라고 지시하는 것 중 적어도 하나를 포함하는 기록 매체.
  21. 컴퓨터 판독가능 코드에서 악성 코드를 탐지하는 코드를 포함하고, 방법을 수행할 수 있는 프로그래밍된 컴퓨터 장치에 있어서,
    상기 방법은
    상기 컴퓨터 판독가능 코드의 제1 부분이 잠재적으로 악성 코드를 가질 수 있는지 여부를 판정하는 초기 판정을 수행하는 단계, 및
    상기 컴퓨터 판독가능 코드가 잠재적으로 악성 코드를 가진다고 판정되면, 상기 컴퓨터 판독가능 코드의 상기 제1 부분을 포함하지 않는 제2 부분이 악성 코드를 가지는지 여부를 판정하는 다른 판정을 수행하는 단계
    를 포함하는 프로그래밍된 컴퓨터 장치.
  22. 제21항에 있어서,
    상기 다른 판정은 상기 초기 판정보다 더 포괄적인 프로그래밍된 컴퓨터 장치.
  23. 제21항에 있어서,
    상기 초기 판정은 상기 컴퓨터 판독가능 코드의 상기 제1 부분의 제1 CRC를 결정하는 프로그래밍된 컴퓨터 장치.
  24. 제23항에 있어서,
    상기 다른 판정은 상기 컴퓨터 판독가능 코드의 상기 제2 부분의 제2 CRC를 결정하도록 수행되는 프로그래밍된 컴퓨터 장치.
  25. 제24항에 있어서,
    상기 제1 CRC를 CRC들의 데이터베이스와 비교하여 악성 코드가 존재하는지 여부를 판정하는 프로그래밍된 컴퓨터 장치.
  26. 제25항에 있어서,
    상기 제2 CRC를 상기 데이터베이스 내의 CRC와 비교하는 프로그래밍된 컴퓨터 장치.
  27. 제26항에 있어서,
    상기 CRC들의 데이터베이스는 CRC들의 집합들을 포함하는 프로그래밍된 컴퓨터 장치.
  28. 제27항에 있어서,
    상기 CRC들의 집합들은 악성 코드를 포함하도록 수정된 상기 컴퓨터 판독가능 코드의 상기 제1 부분의 CRC를 결정함으로써 얻어지는 제1 바이러스성 CRC 및 상기 악성 코드를 포함하도록 수정된 상기 컴퓨터 판독가능 코드의 상기 제2 부분의 CRC를 결정함으로써 얻어지는 대응하는 제2 바이러스성 CRC를 포함하는 프로그래밍된 컴퓨터 장치.
  29. 컴퓨터 판독가능 코드에서 악성 코드를 탐지하는 코드를 포함하고, 방법을 수행할 수 있는 프로그래밍된 컴퓨터 장치에 있어서,
    상기 방법은
    상기 컴퓨터 판독가능 코드의 제1 부분의 CRC를 결정하는 단계,
    상기 컴퓨터 판독가능 코드의 상기 제1 부분의 상기 CRC가 CRC들의 데이터베이스 내에 존재하는지 여부를 판정하는 초기 판정을 수행하는 단계 - 각각의 CRC는 상기 판정된 CRC가 상기 CRC들의 데이터베이스 내에 존재하는 경우 진행해야 하는 방법에 대한 대응하는 명령어를 포함함 -, 및
    상기 컴퓨터 판독가능 코드의 상기 제1 부분의 상기 CRC가 상기 CRC들의 데이터베이스 내에 존재한다고 판정되면, 상기 대응하는 명령어를 수행하는 단계
    를 포함하는 프로그래밍된 컴퓨터 장치.
  30. 제29항에 있어서,
    상기 대응하는 명령어는 상기 컴퓨터 판독가능 코드 전체의 CRC를 결정하고 이 CRC를 상기 CRC들의 데이터베이스와 비교하라고 지시하는 것, 상기 컴퓨터 판독가능 코드의 일정한 부분의 CRC를 결정하고 이 CRC를 상기 CRC들의 데이터베이스와 비교하라고 지시하는 것, CRC 검사와는 다른 형태의 악성 코드 탐지를 상기 컴퓨터 판독가능 코드에서 대해 수행하라고 지시하는 것 중 적어도 하나를 포함하는 프로그래밍된 컴퓨터 장치.
KR10-2004-7016323A 2002-04-13 2003-04-10 악성 코드를 탐지하기 위한 시스템 및 방법 KR20040101460A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US37228302P 2002-04-13 2002-04-13
US60/372,283 2002-04-13
US37247302P 2002-04-15 2002-04-15
US60/372,473 2002-04-15
PCT/US2003/011246 WO2003090050A2 (en) 2002-04-13 2003-04-10 System and method for detecting malicicous code

Publications (1)

Publication Number Publication Date
KR20040101460A true KR20040101460A (ko) 2004-12-02

Family

ID=29254481

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7016323A KR20040101460A (ko) 2002-04-13 2003-04-10 악성 코드를 탐지하기 위한 시스템 및 방법

Country Status (11)

Country Link
US (1) US7676842B2 (ko)
EP (1) EP1495395B1 (ko)
JP (1) JP2005522800A (ko)
KR (1) KR20040101460A (ko)
CN (1) CN1647007A (ko)
AT (1) ATE426858T1 (ko)
AU (1) AU2003234720A1 (ko)
CA (1) CA2480867A1 (ko)
DE (1) DE60326827D1 (ko)
IL (1) IL164502A0 (ko)
WO (1) WO2003090050A2 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7203964B1 (en) * 2003-10-07 2007-04-10 Elmer V. Pass Method of stopping internet viruses
US7721334B2 (en) 2004-01-30 2010-05-18 Microsoft Corporation Detection of code-free files
US7484247B2 (en) 2004-08-07 2009-01-27 Allen F Rozman System and method for protecting a computer system from malicious software
US7640587B2 (en) * 2005-03-29 2009-12-29 International Business Machines Corporation Source code repair method for malicious code detection
US7725735B2 (en) * 2005-03-29 2010-05-25 International Business Machines Corporation Source code management method for malicious code detection
US7571476B2 (en) * 2005-04-14 2009-08-04 Webroot Software, Inc. System and method for scanning memory for pestware
US7349931B2 (en) 2005-04-14 2008-03-25 Webroot Software, Inc. System and method for scanning obfuscated files for pestware
US7591016B2 (en) * 2005-04-14 2009-09-15 Webroot Software, Inc. System and method for scanning memory for pestware offset signatures
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US20080134326A2 (en) * 2005-09-13 2008-06-05 Cloudmark, Inc. Signature for Executable Code
US8255992B2 (en) * 2006-01-18 2012-08-28 Webroot Inc. Method and system for detecting dependent pestware objects on a computer
US8713686B2 (en) * 2006-01-25 2014-04-29 Ca, Inc. System and method for reducing antivirus false positives
FR2898704B1 (fr) * 2006-03-14 2008-06-06 Proton World Internatinal Nv Protection d'un programme contre un deroutement
CN100461197C (zh) * 2006-05-16 2009-02-11 北京启明星辰信息技术有限公司 一种恶意代码自动分析***及方法
US8190868B2 (en) 2006-08-07 2012-05-29 Webroot Inc. Malware management through kernel detection
US8601451B2 (en) * 2007-08-29 2013-12-03 Mcafee, Inc. System, method, and computer program product for determining whether code is unwanted based on the decompilation thereof
CN101304409B (zh) * 2008-06-28 2011-04-13 成都市华为赛门铁克科技有限公司 恶意代码检测方法及***
US20100037062A1 (en) * 2008-08-11 2010-02-11 Mark Carney Signed digital documents
US11489857B2 (en) 2009-04-21 2022-11-01 Webroot Inc. System and method for developing a risk profile for an internet resource
GB2471716A (en) 2009-07-10 2011-01-12 F Secure Oyj Anti-virus scan management using intermediate results
US9392005B2 (en) * 2010-05-27 2016-07-12 Samsung Sds Co., Ltd. System and method for matching pattern
KR102029465B1 (ko) * 2011-11-17 2019-10-08 삼성에스디에스 주식회사 검색 또는 패턴 매칭 엔진 및 이를 구비한 단말장치와 그 방법
CN104217165B (zh) * 2014-09-16 2016-07-06 百度在线网络技术(北京)有限公司 文件的处理方法及装置
JP7099165B2 (ja) * 2018-08-20 2022-07-12 コニカミノルタ株式会社 画像形成装置およびウイルスチェック方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5454000A (en) 1992-07-13 1995-09-26 International Business Machines Corporation Method and system for authenticating files
US5509120A (en) * 1993-11-30 1996-04-16 International Business Machines Corporation Method and system for detecting computer viruses during power on self test
CA2191205A1 (en) * 1994-06-01 1995-12-07 John Schnurer Computer virus trap
US5684875A (en) * 1994-10-21 1997-11-04 Ellenberger; Hans Method and apparatus for detecting a computer virus on a computer
US6021510A (en) * 1997-11-24 2000-02-01 Symantec Corporation Antivirus accelerator
US6094731A (en) 1997-11-24 2000-07-25 Symantec Corporation Antivirus accelerator for computer networks
US6577920B1 (en) * 1998-10-02 2003-06-10 Data Fellows Oyj Computer virus screening
JP3056732B1 (ja) * 1999-04-09 2000-06-26 コナミ株式会社 コンピュ―タシステム、コンピュ―タプログラムの実行方法及びコンピュ―タプログラム記録媒体
US6922781B1 (en) * 1999-04-30 2005-07-26 Ideaflood, Inc. Method and apparatus for identifying and characterizing errant electronic files
GB2353372B (en) * 1999-12-24 2001-08-22 F Secure Oyj Remote computer virus scanning
US7328349B2 (en) * 2001-12-14 2008-02-05 Bbn Technologies Corp. Hash-based systems and methods for detecting, preventing, and tracing network worms and viruses
GB2364404B (en) * 2000-07-01 2002-10-02 Marconi Comm Ltd Method of detecting malicious code
GB2365158A (en) * 2000-07-28 2002-02-13 Content Technologies Ltd File analysis using byte distributions
US7231440B1 (en) * 2000-12-18 2007-06-12 Mcafee, Inc. System and method for distributing portable computer virus definition records with binary file conversion
US7421587B2 (en) * 2001-07-26 2008-09-02 Mcafee, Inc. Detecting computer programs within packed computer files
US7143113B2 (en) * 2001-12-21 2006-11-28 Cybersoft, Inc. Apparatus, methods and articles of manufacture for securing and maintaining computer systems and storage media

Also Published As

Publication number Publication date
AU2003234720A1 (en) 2003-11-03
DE60326827D1 (de) 2009-05-07
US7676842B2 (en) 2010-03-09
EP1495395B1 (en) 2009-03-25
IL164502A0 (en) 2005-12-18
JP2005522800A (ja) 2005-07-28
WO2003090050A2 (en) 2003-10-30
ATE426858T1 (de) 2009-04-15
US20030217286A1 (en) 2003-11-20
CN1647007A (zh) 2005-07-27
EP1495395A2 (en) 2005-01-12
WO2003090050A3 (en) 2004-10-14
CA2480867A1 (en) 2003-10-30

Similar Documents

Publication Publication Date Title
KR20040101460A (ko) 악성 코드를 탐지하기 위한 시스템 및 방법
EP1986120B1 (en) Systems, apparatus, and methods for detecting malware
RU2607231C2 (ru) Системы и способы защиты от вредоносного программного обеспечения на основе нечеткого вайтлистинга
US7664754B2 (en) Method of, and system for, heuristically detecting viruses in executable code
US7458099B1 (en) Selective detection of malicious computer code
US7478431B1 (en) Heuristic detection of computer viruses
EP1032877B1 (en) Antivirus accelerator
RU2551820C2 (ru) Способ и устройство для проверки файловой системы на наличие вирусов
KR101692817B1 (ko) 손상된 소프트웨어의 치료
US6338141B1 (en) Method and apparatus for computer virus detection, analysis, and removal in real time
US8640245B2 (en) Optimization of anti-malware processing by automated correction of detection rules
US20050262567A1 (en) Systems and methods for computer security
WO1998014872A1 (en) System, apparatus and method for the detection and removal of viruses in macros
RU2726878C1 (ru) Способ ускорения полной антивирусной проверки файлов на мобильном устройстве
JP6238093B2 (ja) マルウェアリスクスキャナー
KR101327865B1 (ko) 악성코드에 감염된 홈페이지 탐지 장치 및 방법
RU107615U1 (ru) Система уменьшения количества ложных срабатываний антивирусной системы
RU108870U1 (ru) Система увеличения количества обнаружений вредоносных объектов
JP2006350955A (ja) 障害検出装置、方法、プログラムおよび記録媒体
NZ767245B2 (en) System and method for detecting data anomalies by analysing morphologies of known and/or unknown cybersecurity threats

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid