KR20040039357A - 컴퓨터 바이러스 검출 및 치료 방법과 시스템, 프로그램저장 매체, 암호형 데이터 해독 방법, 암호형 컴퓨터바이러스 치료 방법 - Google Patents

컴퓨터 바이러스 검출 및 치료 방법과 시스템, 프로그램저장 매체, 암호형 데이터 해독 방법, 암호형 컴퓨터바이러스 치료 방법 Download PDF

Info

Publication number
KR20040039357A
KR20040039357A KR10-2004-7003789A KR20047003789A KR20040039357A KR 20040039357 A KR20040039357 A KR 20040039357A KR 20047003789 A KR20047003789 A KR 20047003789A KR 20040039357 A KR20040039357 A KR 20040039357A
Authority
KR
South Korea
Prior art keywords
byte
cryptographic
data
encrypted
dominant
Prior art date
Application number
KR10-2004-7003789A
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 KR20040039357A publication Critical patent/KR20040039357A/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • 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
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)

Abstract

컴퓨터 시스템에 존재하는 암호형 컴퓨터 바이러스를 치료하는 방법은 암호형 데이터를 분석하여 암호형 데이터 내에서 가장 자주 나타나는 적어도 하나의 암호형 바이트를 결정하는 단계와, 그 가장 자주 나타나는 암호형 바이트 및 원시 데이터의 대응 예상 원시 바이트에 기초하여 암호키를 계산하는 단계와, 그 암호키를 사용하여 암호형 데이터를 해독해서 그 암호형 데이터를 원시 데이터로 복원하는 단계를 포함한다.

Description

컴퓨터 바이러스 검출 및 치료 방법과 시스템, 프로그램 저장 매체, 암호형 데이터 해독 방법, 암호형 컴퓨터 바이러스 치료 방법{VIRUS DETECTION SYSTEM}
컴퓨터 바이러스는 현대의 컴퓨터 관련 분야에서 중요한 문제이다. 예컨대, 컴퓨터 바이러스는 다른 프로그램 및/또는 오브젝트에 부착될 수 있고, 스스로 복제할 수 있고, 그리고/또는 컴퓨터 시스템 상에서 바람직하지 않은 악의적 동작을 수행할 수 있는 프로그램(또는 코드 블록, 코드 엘리먼트 또는 코드 세그먼트 등과 같은 소정의 코드 유닛, 예컨대 컴퓨터가 응답하는 명령)일 수 있다. 본 명세서에서는 컴퓨터 바이러스와 관련한 설명을 할 것이지만, 본 명세서의 발명은 컴퓨터 리소스 중 일이상의 부분을 변경할 수 있는 임의 유형의 악의적 코드에도 적용할 수 있다.
항바이러스 시스템은 바람직하게 바이러스를 검출, 즉 찾아내고, 감염된 파일, 메모리, 부트 섹터 등을 치료한다. 그 검출 및 치료를 곤란하게 하는 바이러스 이용 기법 중 하나는 바이러스 자체나 감염시킬 파일 부분을 암호화하여 항바이러스 시스템이 이를 해독하고 그 감염된 파일을 치료하기가 더 어렵게 하는 것이다. 이로 인하여 항바이러스 시스템이 감염 프로세스를 알아내고 그 감염 프로세스를 역으로 하여 그 감염 파일을 치료하는 것이 더욱 어렵게 된다.
일부 바이러스에 의하여 수행되는 암호화는 바이러스 코드나 감염 파일 데이터에 대하여 수행되어 시각적으로 판독 불가능한 바이러스 코드가 되도록 하는 복잡한 수학적 또는 논리적 동작을 포함하며 이로써 내부의 바이러스 코드를 분석하고 식별하는 것이 곤란해지고 때로는 불가능하게 된다.
또한, 암호화는 하나의 감염 샘플에서 다른 것으로 옮겨갈 수 있는 소정의 수치 키에 의존할 수 있으므로, 바이러스 자체를 식별하기에 패턴 매칭으로는 충분하지 않을 수 있다. 항바이러스 엔진은 이미 알고 있는 바이러스 데이터베이스에 대하여 바이러스를 매칭시키거나 아니면 그 바이러스를 분석하기에 앞서 먼저 그 바이러스를 해독할 수 있어야 한다.
그러한 의도적 목적을 수행하기 위하여, 바이러스 자체가 코드 또는 데이터의 암호화 영역을 해독하여 이를 이용할 수 있어야 한다. 항바이러스 시스템은 때때로 해독을 담당하는 바이러스 코드 부분을 분석할 수 있다. 이러한 항바이러스 시스템은 바이러스 스스로가 그 암호화 영역을 해독하는데 이용하는 것과 동일한 해독 알고리즘을 사용할 수 있고 따라서 그 항바이러스 시스템이 바이러스 파일을 계속해서 더 분석할 수 있다. 이는 종종 바이러스가 실제 컴퓨터 상에서 실행될 때 발생할 수 있는 어떠한 악의적 동작도 허용하지 않으며 다만 항바이러스 시스템에 의하여 모방된 예컨대 "가상 기계" 상에서의 환경일 뿐인 매우 안전한 환경에서 그 바이러스 자체를 에뮬레이트함으로써 이루어질 수 있다.
암호화 기법은 원시 코드 또는 데이터를 판독 불가능하고 암호화된 상태로 변환하는데 이용되는 키를 사용한다. 이 키는 일반적으로 소정의 정수나 실수이지만, 또한 소정의 문자열일 수도 있다. 이 키는 데이터 암호화에 이용되고 바이러스에 의하여 그 암호화된 데이터를 해독하는데 이용될 수 있을 것이며, 만약 그렇지 못하다면 그 데이터월드는 바이러스에게 무익한 것일 것이다.
일반적으로, 바이러스는 감염 파일 내부의 어딘가에 그 키를 저장한다. 그러한 경우, 항바이러스 시스템은 감염 파일에서 그 키를 검출하여 바이러스에 의해서 암호화한 데이터의 필요 부분을 해독하는데 그 키를 이용할 수 있다.
새로운 유형의 파괴적 바이러스들이 계속하여 출현하고 있다. 예컨대, Win32/Magistr.B.Worm이라 불리는 바이러스가 나타났는데, 이 바이러스는 비교적 쉽게 검출되지만, 제거하기는 곤란할 수 있다. 이 유형의 바이러스는 호스트 파일(host file)의 진입점 코드 부분(entry-point code)을 암호화한다. 이러한 유형의 바이러스를 효과적으로 제거하고 그 코드를 복원하기 위하여, 그 코드의 해독이 이루어져야 한다. 그러나, 이러한 유형의 바이러스의 경우, 다른 소정의 바이러스와 같이 바이러스 자체 내부에 암호용 키를 저장하지 않는다. 대신에, 이러한 유형의 바이러스에 있어서 암호키는 윈도우즈 운영체제에서 기계 이름을 이용하여 계산된다. 감염 파일을 다른 기계로 복제한 경우, 감염된 기계 이름이 알려지지 않았을 때 그 키를 검출하고 그 코드를 해독하는 것은 매우 어려운 일이다.
따라서, Win32/Magistr.B 바이러스 등의 바이러스는, 예컨대, 다양한 방법으로 암호화 기법을 사용한다. 검출을 어렵게 하기 위하여, 바이러스 스스로 그 자체를 암호화함과 더불어, 그 바이러스는 또한 원시 파일 부분을 암호화해서 예컨대 키로서 컴퓨터 이름을 사용하여 이루어질 수 있는 치료를 어렵게 한다. 항바이러스 시스템은 원시 파일 부분을 해독하여 그 파일을 감염전 상태로 완전히 복원할 수 있어야 한다.
보다 구체적으로, 전술한 바와 같이, 바이러스는 때때로 파일의 암호형 부분을 암호화하는데 이용된 키를 그 감염 파일 내부에 저장한다. 그러나, Win32/Magistr.B 바이러스 등의 바이러스는, 예컨대, 그 파일 내에 암호키를 저장하지 않으며, 암호키로서 시스템 자체에서 검출한 '컴퓨터 이름'을 대신 사용한다. 암호키는 변화하지 않는 컴퓨터 이름에 의존하므로, 소정의 기계에 있어서 일정할 수 있고, 그 기계 상에서 감염된 파일 내의 데이터를 해독하는데 안전하게 이용될 수 있다.
항바이러스 시스템이 그러한 감염 파일을 치료(그리고 그에 따라 그 부분을 해독)할 필요가 있는 경우, 그 항바이러스 시스템 또한 파일이 감염되었던 기계의 컴퓨터 이름에 액세스하여 그 키를 얻고 데이터의 암호형 부분을 해독하여 이를 복원시킬 수 있어야 한다는 문제가 있다. 그러나, 항바이러스 시스템이 네트워크 상에서 파일을 조사할 때, 예컨대, 그 항바이러스 시스템 프로그램 자체가 그 감염된 워크스테이션 기계 자체가 아닌 다른 기계(예컨대, 네트워크 서버) 상에 위치하게 되므로, 키를 검색하고 이를 이용하는 것은 매우 불안하며 항상 가능하지는 않을수도 있다. 따라서, 항바이러스 시스템이 항상 그 감염된 기계의 컴퓨터 이름을 신뢰할만 하게 검출할 수는 없다.
또 다른 문제점은 감염 파일이 그 감염되었던 기계에서 빠져나와(예컨대, 분석을 위하여 항바이러스 팀으로 보내졌거나, 감염된 기계에서 사용자에 의하여 컴퓨터 이름이 변경되었을 수도 있음) 원래의 컴퓨터 이름을 결정하는 것이 가능하지 않을 수도 있다는 점이다.
본 출원은 2001년9월14일에 출원된 가특허 출원 제60/322,347호의 우선권을 주장하며, 본 명세서에서는 상기 출원 내용 전체를 참조로써 인용한다.
본 출원은 항바이러스 시스템(antivirus system)에 관한 것이며, 보다 구체적으로는 바이러스 제거 시스템에 관한 것이다.
도 1은 본 발명의 일실시예에 따라 바이러스를 치료하는 시스템에 관한 흐름도.
도 2는 본 발명의 일실시예에 따라 컴퓨터 바이러스를 검출하고 치료하는 방법에 관한 흐름도.
도 3은 본 발명의 일실시예에 따라 컴퓨터 바이러스를 검출하고 치료하는 시스템을 나타내는 블록도.
도 4는 본 발명의 일실시예에 따라 컴퓨터 바이러스를 검출하고 치료하는 방법 및 시스템을 구현할 수 있는 컴퓨터 시스템에 관한 블록도.
도 5는 본 발명의 일실시예에 따라 컴퓨터 시스템에서의 암호형 데이터를 해독하는 방법에 관한 흐름도.
컴퓨터 시스템 내에 존재하는 암호형 컴퓨터 바이러스를 치료하기 위한 방법, 시스템 및 컴퓨터 코드가 개시되는데, 이는 암호형 데이터를 분석하여 그 암호형 데이터 내에서 가장 자주 발생하는 적어도 하나의 암호형 바이트를 결정하는 단계와, 그 가장 자주 발생하는 암호형 바이트와 대응하는 원시 데이터의 예상 원시 바이트에 기초하여 암호키를 계산하는 단계와, 암호키를 이용하여 암호형 데이터를 해독해서 그 암호형 데이터를 원시 데이터로 복원하는 단계를 포함한다.
컴퓨터 시스템 내에 존재하는 컴퓨터 바이러스를 검출하고 치료하는 방법은 컴퓨터 바이러스에 관하여 컴퓨터 시스템을 조사하는 단계와, 컴퓨터 시스템에서 검출된 컴퓨터 바이러스를 치료하기 위하여 암호형 데이터가 해독되어야 하는지 여부를 결정하는 단계와, 암호형 데이터가 해독되어야 한다고 결정된 경우 암호형 데이터를 분석하여 그 암호형 데이터 내에서 가장 자주 발생하는 적어도 하나의 암호형 바이트를 결정하는 단계와, 그 가장 자주 발생하는 암호형 바이트가 지배적(dominant) 암호형 바이트이며 여기서 그 지배적 암호형 바이트가 암호형 데이터의 다른 바이트들보다 통계적으로 지배적이라는 것을 확인하는 단계와, 그 지배적 암호형 바이트 및 대응하는 원시 데이터의 예상 원시 바이트에 기초하여 암호키를 계산하는 단계와, 암호키를 이용하여 암호형 데이터를 해독해서 그 암호형 데이터를 컴퓨터 바이러스에 의하여 암호화되기 이전에 컴퓨터 시스템 내에 존재했던 원시 데이터로 복원시키는 단계를 포함한다.
컴퓨터 시스템 내 컴퓨터 바이러스 검출 및 치료 시스템은 컴퓨터 바이러스에 관하여 컴퓨터 시스템을 조사하도록 적합화된 조사 장치와, 컴퓨터 바이러스가 검출된 다음 컴퓨터 시스템 내의 암호형 데이터의 해독이 수행되어야 하는지 여부를 결정하도록 적합화된 해독 제어 장치와, 그 암호형 데이터가 해독되어야 한다고 결정된 경우 암호형 데이터를 분석하여 그 암호형 데이터 내에서 가장 자주 발생하는 적어도 하나의 암호형 바이트를 결정하도록 적합화된 암호형 바이트 프로세싱 장치와, 그 가장 자주 발생하는 암호형 바이트가 지배적 암호형 바이트인지, 그리고 지배적 암호형 바이트가 그 암호형 데이터 내에서 통계적으로 지배적인지 여부를 결정하도록 적합화된 지배적 바이트 제어기와, 그 지배적 암호형 바이트 및 대응하는 원시 데이터의 예상 원시 바이트에 기초하여 암호키를 계산하도록 적합화된 암호키 계산 장치와, 암호키에 기초하여 암호형 데이터의 각 바이트를 해독해서 그 암호형 데이터를 컴퓨터 바이러스에 의하여 암호화되기 이전에 컴퓨터 시스템 내에 존재했던 원시 데이터로 복원시키도록 적합화된 해독 장치를 포함한다.
로터리(lottery)를 처리하기 위하여 컴퓨터 시스템이 실행 가능한 명령으로 구성된 프로그램을 구현하며, 그 컴퓨터 시스템이 판독 가능한 프로그램 저장 매체는 컴퓨터 바이러스에 관하여 컴퓨터 시스템을 조사하는 단계와, 컴퓨터 시스템에서 검출된 컴퓨터 바이러스를 치료하기 위하여 암호형 데이터가 해독되어야 하는지 여부를 결정하는 단계와, 암호형 데이터가 해독되어야 한다고 결정된 경우 암호형 데이터를 분석하여 그 암호형 데이터 내에서 가장 자주 발생하는 적어도 하나의 암호형 바이트를 결정하는 단계와, 그 가장 자주 발생하는 암호형 바이트가 지배적 암호형 바이트이며 여기서 그 지배적 암호형 바이트가 암호형 데이터의 다른 바이트들보다 통계적으로 지배적이라는 것을 확인하는 단계와, 그 지배적 암호형 바이트 및 대응하는 원시 데이터의 예상 원시 바이트에 기초하여 암호키를 계산하는 단계와, 암호키를 이용하여 암호형 데이터를 해독해서 그 암호형 데이터를 컴퓨터 바이러스에 의하여 암호화되기 이전에 컴퓨터 시스템 내에 존재했던 원시 데이터로 복원시키는 단계를 포함하는 방법을 저장한다.
컴퓨터 바이러스에 의하여 감염된 컴퓨터 시스템 내의 암호형 데이터를 해독하는 방법은 암호형 데이터가 해독되어야 하는지 여부를 결정하는 단계와, 암호형 데이터가 해독되어야 한다고 결정된 경우 암호형 데이터를 분석하여 그 암호형 데이터 내에서 가장 자주 발생하는 적어도 하나의 암호형 바이트를 결정하는 단계와, 그 가장 자주 발생하는 암호형 바이트가 지배적 암호형 바이트이며 여기서 그 지배적 암호형 바이트가 암호형 데이터의 다른 바이트들보다 통계적으로 지배적이라는 것을 확인하는 단계와, 그 지배적 암호형 바이트와 대응하는 원시 데이터의 예상 원시 바이트와 이미 알고 있는 이들간 관계에 기초하여 암호키를 계산하는 단계와, 암호키를 이용하여 암호형 데이터를 해독해서 그 암호형 데이터를 암호화되기 이전컴퓨터 시스템 내에 존재했던 원시 데이터로 복원시키는 단계를 포함한다.
첨부 도면과 함께 다음의 상세한 설명을 참조하여 본 명세서 내용 및 그 많은 부수적 이점에 관한 보다 완전한 이해가 이루어질 수 있을 것이며 더 잘 이해될 것이다.
도면에 도시된 본 발명의 바람직한 실시예를 설명함에 있어서, 명확성을 위하여 특정 용어를 이용한다. 그러나, 본 명세서의 내용은 그와 같이 선택된 특정 용어로 제한되는 것은 아니며 각각의 특정 구성 요소는 유사한 방식으로 작동하는 모든 기술적 등가물을 포함하는 것으로 이해되어야 한다.
본 시스템은 바이러스를 조사하고 검출할 수 있으며, 파일, 메모리, 디스크 부트 섹터, 기타 오브젝트 등에서 발견한 감염을 치료하기 위한 메카니즘 즉 치료 프로세스를 포함한다.
본 시스템은 바람직하게 컴퓨터 시스템의 파일, 메모리, 디스크 부트 섹터 등에서 바이러스를 조사한다. 여러가지 조사 방법이 예컨대, 파일 내에서 바이러스의 존재를 검출하는데 이용될 수 있다. 시스템은 서명 조사(signature scanning) 방법을 이용할 수 있는데, 이는 시스템이 바이러스 서명, 즉 바이러스가 감염 파일에 남긴 고유의 16진수 코드 세트의 존재를 조사하는 것이다. 미지의 바이러스, 즉 바이러스 서명이 아직 알려지지 않은 바이러스를 검출하는데 휴리스틱 조사 방법이 이용될 수 있다. 휴리스틱 조사 방법은 바이러스 유사 패턴의 동작을 검출하는데 이용되는 인공 지능 기법과 관련된다. 무결성 체크가 이용되어 파일 내에 바이러스가 존재함으로 인하여 파일의 사이즈가 증가되었는지 결정할 수 있다. 또한, 시스템은 호출 기능 등과 같은 소정의 프로그램 동작을 모니터하여 의심스러운 프로그램 동작을 검출해낼 수 있다. 또한, 시스템은 프로그램 시스템 호출을 모니터하여 바이러스 존재를 나타내는 시스템 호출을 검출하고 정지시킬 수 있다. 여러 조사 방법 및 검출 기법에 관하여 전술하였으나, 본 발명은 그러한 기법을 이용하는데 그치지 않고, 바이러스 검출을 위한 임의의 어떠한 기법도 포함하고자 의도한다.
바이러스가 검출되면, 주요 관심사는 그 바이러스를 없애고 바이러스에 의하여 이루어진 손상을 치료하는 것이다. 치료 프로세스의 목적은 감염 이전의 초기상태에 가능한 가깝게 파일, 메모리 또는 디스크 부트 섹터 등의 오브젝트를 복원하여, 감염된 것으로 밝혀진 그 오브젝트를 효과적으로 치료하고자 하는 것이다.
바이러스가 시스템에 의하여 식별되고 검출된 다음 치료 프로세스가 실행되고, 사용자는 항바이러스 시스템으로부터의 지령에 응답하여서나 또는 항바이러스 시스템에 대해 발견된 모든 감염 오브젝트를 별도의 지시없이 자동으로 치료하도록 하는 명령을 제공함으로써 항바이러스 시스템에 대해서 그 감염된 오브젝트를 치료하도록 요청할 수 있다. 일반적으로, 그러한 선택 사항은 사용자나 시스템 관리자에 의하여 미리 선택된다.
치료 프로세스는 순차적으로 실행될 수 있는 명령 세트로 구성된다. 이들 명령은, 파일 내 곳곳에 데이터 블록을 복사하거나, 해독된 데이터를 내부 버퍼로부터 파일 내 여러 위치로 복사하거나(예컨대, 치료 프로세스에 있어서 매우 중요한 소정의 데이터를 바이러스가 암호화한 경우), 바이러스 코드를 포함하고 있는 파일을 조각조각 자르는 등 파일에 대한 다양한 변경을 수행할 수 있다.
치료 프로세스 명령은 그 치료 프로세스 명령이 복잡한 치료 프로세스를 완료할 수 있게 돕는 C 언어로 작성된 고속 실행 함수 집합으로서 구현될 수 있다.
전술한 바와 같이, 바이러스는 바이러스 서명에 기초하여 검출될 수 있다. 이러한 경우, 바이러스 서명이 각 바이러스에 대해 고유하므로 특정 바이러스가 검출된 것을 쉽게 식별하는 것도 가능하다. 바이러스의 아이덴티티가 이미 알려져 있으므로 치료 프로세스가 다소 단순화되고, 따라서 바이러스가 야기한 손상 유형을 알 수 있다. 그렇지 않으면, 바이러스가 야기할 수 있는 손상의 종류가 무엇인지 결정하기 위하여 바이러스를 분석할 필요가 있다.
바이러스는 전술한 바와 같이 바이러스 검출 및 치료를 복잡하게 하고자 종종 바이러스 자체 및 감염 파일의 일부를 암호화한다. 예컨대, Win32/Magistr.B.Worm은 감염 파일의 진입점 코드를 암호화하여 그 감염 파일에서 바이러스의 제거하고 바이러스에 의하여 파일에 가해진 손상을 치료하는 것을 복잡하게 한다. Win32/Magistr.B.Worm 바이러스는 또한 시스템이 검색할 수 있는 감염 파일 내에 암호 키를 저장하지 않고 대신에 컴퓨터 이름을 사용하여 암호키를 생성하여 감염 파일에서 바이러스를 제거하고 치료하는 과정을 더 어렵게 한다. 이는 예컨대 바이러스 검출 및 치료 시스템 프로그램이 감염된 컴퓨터 시스템이 아닌 서버나 다른 컴퓨터 상에서 실행되는 경우나 바이러스가 분석을 위하여 항바이러스 팀에 의해서 전송되는 경우 문제를 야기한다. 이러한 경우, 감염된 컴퓨터의 컴퓨터 이름은 바이러스 검출 및 치료 시스템에 대해 이용 가능하지 않을 수 있다.
미지의 키에 의하여 암호화된 미지의 데이터가 항바이러스 시스템에 제공되므로 전술한 문제점은 해결이 불가능한 것처럼 보이지만, 본 시스템은 매우 높은 성공률을 보이는 개연성 알고리즘을 이용하여 키를 결정할 수 있다. 본 시스템은 어셈블된 원시 코드에서 일부 바이트의 존재 확률을 기초로, 미지의 암호키를 결정할 수 있다.
그와 같은 알고리즘은 소정의 시스템이, 결정될 수 있고 바이러스에 의하여 이용된 키를 결정하는데 이용될 수 있는 소정 형태를 갖는 바이트를 포함할 수 있다는 사실의 인식에 기초한다. 예컨대, 인텔 프로세서용 32-비트 실행 가능 코드는 많은 '제로'(제로값의 바이트)들과, 값 255의 바이트를 포함한다. 예컨대, 이러한 종류의 바이트의 퍼센티지는 매우 높을 수 있고 심지어 전체 바이트의 60%를 넘을 수도 있다. 또한, 0 값의 바이트들은 종종 쌍을 이루는데, 이는 본 시스템 및 방법에 있어서 이들 바이트가 더 쉽게 검출되도록 하는데 도움이 될 수도 있다. 다른 프로세서의 경우, 바이러스에 의하여 감염된 오브젝트의 타입에 따라 상이한 값을 지닌 바이트들이 공동으로 가장 자주 나타나는 바이트일 수 있으며 본 발명은 임의의 특정 프로세서나 오브젝트만으로 이용하도록 제한되지 않는다.
본 시스템 및 방법은 개연성 암호키 추측이라고 본 명세서에서 언급되는 방법을 이용할 수 있다. 바이러스에 의하여 종종 이용되는 암호화 방법은 상수 키에 의하여 데이터의 각 바이트에 대해 논리적 XOR 연산을 수행하는 것이다. 따라서, 이러한 인식을 이용하면, 암호화 이전에 0을 포함했던 바이트가 암호화 이후 이용된 키 값을 포함할 것임을 알 수 있다.
제로는 원시 데이터에서 가장 자주 나타나는 값이므로, 암호형 데이터에서 가장 자주 나타나는 값이 항바이러스 시스템이 찾는 키 값일 것이다. 이것이 참일 확률은 원시 데이터에서 가장 자주 이용되는 제로일 확률과 같을 것이며, 이는 매우 높은 확률을 나타낸다. 그러므로, 사실상, 본 시스템에서는, 원시 데이터의 바이트 식별에 개연성 키 추측 방법이 이용된다. 그 결과, 주지의 암호형 데이터가 원시 데이터에서의 '주지의' 바이트, 또는 적어도 예상되는 바이트와 비교될 수 있고, 암호화 방법(미지의 암호 키에 의한 원시 데이터에 대한 논리적 XOR 연산)이 또한 알려진다. 그러므로, 암호키가 결정될 수 있고 일단 결정되면 주지의 암호화방법에 따라 나머지 암호화 데이터에 적용되어 원시 데이터를 복원할 수 있다.
따라서, 본 시스템은 암호형 데이터 내에서 각 바이트가 존재하는 수를 세고 가장 자주 이용된 하나를 선택할 수 있다. 이러한 경우, 그것이 키일 것이다.
보다 구체적으로, EXE 진입점 코드를 분석함으로써, 특히 EXE32-비트에서, 코드에는 다른 바이트에 비하여 00(제로) 및 FF(-1) 바이트가 더 많이 존재한다는 점이 명백해지고, 수는 이용된 비트 수에 따라 정렬되고 적은 수는 0(양수의 경우)이나 -1(음수의 경우)로 패딩되므로 더욱 그러하다.
암호화에 이용된 방법이 알려지면, 시스템은 제로 및 -1 바이트의 암호형 값을 계산할 수 있고, 그 값을 찾음으로써 암호화에 이용된 키를 계산할 수 있다.
예컨대, 키 값이 2이고 암호화에 이용된 방법은 코드 내 모든 바이트에 키 값을 더하는 것이라면, 0이었던 모든 바이트가 이제는 2(0+2=2이므로)이고 -1이었던 모든 바이트가 이제는 1(-1+2-2이므로)이라는 것을 의미한다. 그러한 암호화의 경우, 다른 바이트에 비하여 1과 2의 바이트가 더 많이 존재할 것이다. 키를 찾는 것은 비교적 쉬운 일이다. 1과 2가 지배적이면, 1-X=-1이고 2-X=0이면 X=2이므로, 키가 2임이 분명하다. 이렇게 키가 발견된다.
도 1에 도시된 바와 같이, 시작(단계 S2)이후, EXE 진입점이 해독을 필요로 하는지 결정한다. 이러한 예에서, 암호화 방법은 알려져 있고, 암호키는 알려져 있지 않다(단계 S4). 단계 S6에서, 암호형 코드 내에서 가장 지배적인 바이트를 찾는다. (EXE 비트 타입: 16, 32, 64 등에 따라) 지배적 바이트가 통계적으로 다른 바이트에 비하여 더 자주 나타나는지 결정한다(단계 S8). 소정의 바이트가 지배적이라고 간주하는 것은 안전하지 못하다고 통계적으로 결정되면(단계 S10), 프로세스가 종료한다(단계 S16). 소정의 바이트가 지배적이라고 간주하는 것이 안전하다면, 그에 따라 전술한 바와 같이 원래는 제로와 -1이었던 것으로 생각되는 그 지배적 바이트에 대하여 역 암호화 방법이 수행되고(단계 S12) 키가 결정된다. 예컨대, 키를 결정하기 위하여 다음의 공식 F (암호화 바이트, 키)=해독형 바이트(제로, -1)가 이용될 수 있다. 코드가 그 키를 이용하여 해독되고(단계 S4) 프로세스가 종료한다(단계 S16).
암호화 방법으로써 XOR 연산이 수행된다고 가정하여 전술하였으나, 본 시스템 및 방법이 그와 같이 제한되는 것은 아니다. 즉, 본 시스템 및 방법은 암호화 방법이 결정되고 해독이 수행될 수 있는 임의 유형의 바이러스에 대하여 이용될 수 있다. 예컨대, 다양한 유형의 암호화가 고려될 수 있고 정확한 암호화 타입과 대응하는 키가 발견되기까지 각 암호화 타입마다 유효한 해독 키를 결정하는데 본 시스템이 이용된다. 또한, 제로 바이트 및/또는 255 바이트가 지배적인 32비트의 실행 가능 코드에 관하여 전술하였으나, 본 시스템은 이미 알려져 있거나 충분한 퍼센티지의 바이트가 특정한 주지의 값으로 알려진 것으로 결정될 수 있는 임의 유형의 실행 가능한 코드에 관하여 구현될 수도 있다.
도 1의 흐름도는 파일, 메모리, 디스크 부트 섹터 등의 원시 데이터가 제로 및 -1의 값이 지배적이라고 알려진 특정한 경우에 이용된 바이러스를 치료하는데 사용되는 방법에 관하여 설명하고 있다. 그러나, 본 방법 및 시스템이 그러한 상황에 한정되지는 않는다.
도 2는 본 명세서에 따라 바이러스를 검출하고 치료하는 보다 일반적인 방법을 나타내고 있다. 단계 S20에서, 컴퓨터 시스템은 컴퓨터 바이러스가 존재하는지 조사한다. 단계 S21에서, 바이러스가 검출된 이후 암호형 데이터가 해독되어야 하는지 결정한다. 데이터가 해독될 필요가 없다면(단계 S21)에서 아니오인 경우), 부가적 프로세싱이 수행될 수 있다(단계 S26). 해독될 필요가 있다면, 단계 S22에서는, 암호형 데이터 내에서 가장 자주 나타나는 암호형 바이트가 결정된다. 단계 S23에서, 가장 자주 나타나는 암호형 바이트가 지배적 암호형 바이트이고 그 지배적 암호형 바이트가 그 암호형 데이터 중에서 통계적으로 지배적인 암호형 바이트인지 결정한다. 어떠한 지배적 암호형 바이트도 결정되지 않는다면, 부가적 프로세싱이 수행될 수 있다(단계 S26). 암호키가 지배적 암호형 바이트 및 원시 데이터의 대응 예상 원시 바이트에 따라 계산된다(단계 S24). 주지의 관계 및 암호키를 이용하여 암호화된 데이터의 각 바이트를 해독하는데 그 암호 키가 사용되어 그 암호형 데이터를 원시 데이터로 복원시킨다(단계 S25). 복원된 원시 데이터가 부가적 프로세싱에 이용될 수 있다(단계 S26).
조사 단계 S20에서는, 컴퓨터 시스템의 파일, 메모리, 디스크 부트 섹터 등에서 바이러스의 존재를 검출하는데 전술한 어떠한 조사 방법도 이용될 수 있다. 조사 단계에서 아무런 바이러스도 발견되지 않으면, 부가적 프로세싱이 적용될 수 있다(단계 S26).
결정 단계 S21에서, 암호형 데이터가 해독될 것인지에 관한 결정이 이루어진다. 예컨대, 단계 S20에서 바이러스가 검출되었으나 그 바이러스가 치료를 위하여해독을 필요로 하지 않을 수 있는 주지의 바이러스라면, 암호형 데이터의 해독이 불필요할 수 있다. 아무런 해독도 필요하지 않다면(단계 S21에서 아니오), 추가적 프로세싱이 수행될 수 있다(단계 S26). 이러한 추가적 프로세싱은 이하에서 더 설명할 것이다. 암호형 데이터의 해독이 필요한 경우(단계 S26에서 예), 암호형 데이터가 단계 S22에서 분석된다.
단계 S22에서, 암호형 데이터가 분석되어 암호형 데이터에서 가장 자주 나타나는 바이트를 식별한다. 보다 간단히, 암호형 데이터의 각 바이트의 존재를 카운트함으로써 이를 달성할 수 있다. 즉, 암호형 데이터 내의 특정 바이트의 각 존재가 카운트된다. 암호형 데이터에서 가장 자주 나타나는 바이트가 결정된다.
단계 S23에서, 가장 자주 나타나는 암호형 바이트가 지배적 암호형 바이트인지에 관한 결정이 이루어진다. 즉, 암호형 데이터에 있어서 각 바이트의 카운팅에 따라, 예컨대, 가장 자주 나타나는 암호형 바이트가 그 암호형 바이트를 통계적으로 지배하기에 충분한 퍼센티지의 암호형 데이터를 규정하는지 결정한다. 아무런 지배적 암호형 바이트도 발견되지 않으면(단계 S23에서 아니오인 경우), 부가적 프로세싱이 수행될 수 있다(단계 S26). 그러한 경우, 아무런 지배적 암호형 바이트도 발견되지 않았으므로 개연성 암호키 추측 방법이 신뢰할 만한 암호키를 제공하지 않을 수 있다. 지배적 암호형 바이트가 발견되면(단계 S23에서 예인 경우), 그 지배적 암호형 바이트는 원시 데이터에서의 대응 예상 원시 바이트와 비교될 수 있다(단계 S24).
단계 S24에서, 암호키는 그 지배적 암호형 바이트와 원시 데이터의 대응 예상 원시 바이트 사이의 주지의 관계에 따라 계산된다. 그 주지의 관계는 바이러스에 의하여 이용된 암호화 방법일 수 있다. 지배적 암호형 바이트가 원시 데이터의 대응 예상 원시 바이트와 비교된다. 원시 데이터는 일반적으로 컴퓨터 바이러스에 의하여 암호화되기 이전에 파일, 메모리, 디스크 부트 섹터 등에 존재하는 데이터를 말한다. 예컨대, 도 1에서 설명된 방법에서, 1과 2가 지배적 암호형 바이트인지 결정된다. 제로 및 -1의 바이트가 원시 데이터의 가장 지배적 바이트라고 예상되므로, 0 및 1이 대응하는 예상 원시 바이트이다. 전술한 바와 같이, 상황에 따라 상이한 바이트가 원시 데이터에서 가장 자주 나타날 것으로 예상될 수도 있다. 많은 바이러스에 의하여 이용되는 암호화 방법은 상수로 일정한 암호키로 원시 데이터의 각 바이트에 대하여 논리적 XOR 연산을 수행하는 것이다. 그러므로, 예상되는 원시 바이트+암호키=암호형 데이터의 지배적 암호형 바이트이다. 둘 이상의 지배적 암호형 바이트가 존재하는 경우, 둘 이상의 대응 예상 원시 바이트가 있을 것이나, 암호키는 일정하므로, 데이터의 지배적 암호형 바이트 각각과 원시 데이터의 대응 예상 원시 바이트 각각에 대하여 앞서의 방정식을 참으로 만드는 값이다. 예컨대, 도 1을 참조하여 앞서 설명한 바와 같이, 지배적 암호형 바이트는 1 및 2일 수 있다. 대응 예상 원시 바이트는 -1과 제로라고 예상된다. 암호키는 다음의 방정식, 즉 -1+X=1 및 0+X=2를 둘 다 참으로 만드는 값이다. 따라서, 앞서 언급한 것처럼 암호키는 2이다. 대응하는 예상 원시 바이트가 제로라고 하면, 암호키가 지배적 암호형 바이트일 것이므로 계산 단계는 특히 간단해질 것이다. 암호키가 계산되면, 암호형 데이터가 해독될 수 있다(단계 S26).
단계 S25에서는, 이제 암호키를 알 수 있고 암호화 방법도 이미 알고 있었으므로, 암호화 방법을 역으로 하여 암호형 데이터 및 암호키에 적용함으로써 암호형 데이터가 해독되어 원시 데이터를 복원시킬 수 있다. 그런 다음 그 복원된 원시 데이터가 추가적 프로세싱에 이용될 수 있다(단계 S26).
추가적 프로세싱(단계 S26)이란 바이러스 검출 및 치료를 위하여 필요한 임의의 다른 프로세싱을 말한다. 예컨대, 조사 단계 S20에서 아무런 바이러스도 검출되지 않은 경우, 추가적 프로세싱이란 다른 파일, 메모리 또는 디스크 부트 섹터를 조사하는 것을 말할 수 있다. 이와 달리, 추가적 프로세싱은 또 다른 조사 방법을 이용하여 다시 프로세스를 시작하는 것을 말할 수도 있다. 데이터를 해독할 필요가 없는 경우(단계 S21에서 아니오), 추가적 프로세싱은 데이터 섹션을 복사하거나 데이터 섹션을 삭제하는 등 앞서 언급한 임의의 치료 프로세싱일 수 있다. 암호형 데이터 내에 현재 아무런 지배적 암호형 바이트도 존재하지 않는다면(단계 S23), 부가적 프로세싱은 본 시스템의 개연적 암호키 추측을 이용하지 않는, 예컨대 브루트 포스(brute force) 방법 등과 같은 소정의 다른 해독 시스템의 적용을 말할 수도 있다. 단계 S25에서 암호형 데이터가 해독되어 원시 데이터를 복원한 다음 부가적 프로세싱이 필요한 경우, 그 부가적 프로세싱은 또한 다른 치료 프로세싱, 예컨대, 바이러스 분석이나 파일, 메모리, 디스크 부트 섹터 등에서 바이러스를 제거하는 것 등을 말할 수도 있다. 특정한 부가적 프로세싱 단계에 관하여 앞서 논의되었으나, 본 발명이 이로써 제한되는 것은 아니며 부가적 프로세싱은 컴퓨터 바이러스의 검출 및 치료를 위한 임의의 프로세싱을 말할 수 있다.
본 명세서에서 설명한 방법은 컴퓨터 바이러스 검출 및 치료 시스템에 의하여 구현될 수 있다. 컴퓨터 바이러스 검출 및 치료 시스템은 도 3을 참조하여 더 설명할 것이다.
컴퓨터 바이러스나 기타 악의적 코드의 존재에 관하여 파일, 메모리, 부트 섹터 등을 조사하는 조사 장치(30)가 제공된다. 조사 장치는 본 명세서에서 앞서 설명된 임의의 조사 방법이나 그 모두, 또는 바람직한 임의의 또 다른 조사 방법을 구현할 수 있다. 아무런 바이러스도 검출되지 않는다면, 컴퓨터 바이러스를 검출하고 치료하기 위하여 부가적 프로세싱 장치(36)가 부가적 프로세싱을 적용할 수 있다. 부가적 프로세싱 장치(36)에 관하여 이하 보다 상세히 설명할 것이다.
해독 제어 장치(31)는 예컨대, 컴퓨터 바이러스가 조사 장치(30)에 의하여 검출된 경우, 파일, 메모리, 디스크 부트 섹터 등에서 검출된 암호형 데이터가 해독되어야 하는지, 그 컴퓨터 바이러스를 치료하기 위하여 해독이 필요하지 않은지 결정한다. 해독이 필요하지 않은 경우, 부가적 프로세싱 장치(36)는 파일, 메모리, 디스크 부트 섹터 등의 데이터에 관하여 부가적 프로세싱을 제공하도록 되어 있다. 해독이 필요한 경우, 암호형 바이트 프로세싱 장치(32)에 의하여 암호형 데이터가 분석된다.
암호형 바이트 프로세싱 장치(32)는 암호형 데이터를 분석하여 그 암호형 데이터에서 가장 자주 나타나는 암호형 바이트를 결정한다. 가장 간단하게는, 암호형 바이트 프로세싱 장치(32)가 암호형 데이터의 각 특정 바이트가 나타날 때마다 합산한다. 가장 자주 나타나는 암호형 데이터의 특정 바이트는 암호형 데이터에서가장 자주 나타나는 암호형 바이트이다.
지배적 바이트 제어기(33)는 암호형 데이터에서 가장 자주 나타나는 암호형 바이트가 지배적 암호형 바이트인지 확인한다. 즉, 지배적 바이트 제어기(33)는 암호형 바이트 프로세싱 장치(32)에 의하여 제공된 그 가장 자주 나타나는 암호형 바이트가 암호형 데이터에서 통계적으로 지배적인지 결정한다. 그러한 경우, 지배적 암호형 바이트가 암호키 계산 장치(34)에서 원시 데이터의 대응 예상 원시 바이트와 비교될 수 있다. 지배적 암호형 바이트가 통계적으로 지배적이지 않다면, 개연성 암호키 추측 방법이 암호키를 제공하지 못할 수 있다. 암호형 데이터는 부가적 프로세싱 장치(36)에서 부가적 프로세싱 처리될 수 있다.
암호키 계산 장치(34)는 암호형 데이터의 가장 지배적인 암호형 바이트와 원시 데이터 대응 예상 원시 바이트 사이의 주지의 관계에 따라 암호키를 계산한다. 그 주지의 관계는 바이러스에 의하여 이용된 암호화 방법일 수 있다. 전술한 바와 같이, 바이러스는 종종 암호키로 원시 데이터 각 바이트에 대한 논리적 XOR 연산을 수행하여 암호형 데이터를 만들어낸다. 그러므로, 예상 원시 바이트+암호키=지배적 암호형 바이트이다. 원시 데이터의 대응 예상 원시 바이트가 알려지고 암호형 데이터의 지배적 암호형 바이트가 알려지므로, 그 주지의 관계를 이용하여, 암호키 계산 장치(34)가 암호 키를 결정한다. 전술한 바와 같이, 그 관계는 둘 이상의 지배적 암호형 바이트가 존재하고 그에 따라 원시 데이터의 대응 예상 원시 바이트도 둘 이상 존재하는 경우 암호키를 결정하는데 있어서도 똑같이 유용하다. 이러한 경우, 암호키는 암호형 데이터의 각 지배적 암호형 바이트와 그 대응 예상 원시 바이트에 대하여 그 관계가 참이 되도록 만드는 값이다.
암호키가 계산되면, 해독 장치(35)가 암호형 데이터를 해독하여 컴퓨터 바이러스에 의한 감염 이전에 파일, 메모리, 디스크 부트 섹터 등에 있었던 원시 데이터를 복원시킨다. 암호키와 그 주지의 방법을 이용하여 해독이 이루어진다. 보다 구체적으로, 그 주지의 관계에 의하여 표시되는 암호화 방법의 역인 해독 방법에서 그 암호키가 이용된다. 이러한 방식으로, 데이터의 각 암호형 바이트가 컴퓨터 바이러스에 의한 암호화 이전에 존재햇던 원시 데이터로 복원될 수 있다. 복원된 원시 데이터는 부가적 프로세싱 장치(36)에 의하여 더 처리될 수 있다.
부가적 프로세싱 장치(36)는 광범위한 프로세싱 선택 사항을 제공한다. 예컨대, 조사 장치(30)에 의하여 아무런 바이러스도 검출되지 않은 경우, 부가적 프로세싱에는 또 다른 파일, 메모리 섹션 또는 디스크 부트 섹터 등에 대한 조사가 포함될 수 있다. 바이러스가 발견되었으나 해독 제어기(31)에 의하여 암호형 데이터의 해독은 필요하지 않다고 결정된 경우, 예컨대, 감염된 파일로부터 데이터를 복사하거나 절단하는 등과 같은 부가적 프로세싱이 전술한 임의의 치료 프로세스를 구성할 것이다. 지배적 바이트 제어기(33)가 암호형 데이터에서 아무런 지배적 암호형 바이트도 발견하지 못한 경우, 즉 암호형 데이터에서 가장 자주 나타나는 암호형 바이트가 그 암호형 데이터에서 통계적으로 지배적이지 않은 경우, 부가적 프로세싱에는 임의의 또 다른 해독 방법이 포함될 수 있다. 보다 구체적으로, 부가적 프로세싱은 그 암호형 데이터가 해독될 수 있도록 하는 또 다른 해독키 결정 방법을 포함할 수 있다. 암호형 데이터가 해독 장치(35)에 의하여 해독된 다음, 복원된 원시 데이터에 대해 예컨대 바이러스에 관한 분석 등과 같은 부가적 프로세싱이 이루어져서 그 동작이나 임의의 다른 치료 프로세싱에 관하여 알게 될 수 있다. 이와 같은 특정한 부가적 프로세싱 기법이 언급되었으나, 본 발명은 그로써 제한되지 않으며, 컴퓨터 바이러스의 검출 및 치료를 돕는 어떠한 프로세싱에 대해서도 부가적 프로세싱을 적용할 수 있다.
전술한 방법 및 시스템은 범용 디지털 컴퓨터, 개인용 컴퓨터(PC) 또는 네트워크 서버 등에서 구현될 수 있다. 본 시스템 및 방법을 구현할 수 있는 컴퓨터 시스템의 예가 도 4에 도시되어 있다. 시스템(400)이라고 일반적으로 불리는 컴퓨터 시스템은 중앙 처리 장치(CPU)(402)와, 메모리(404)와, 프린터 인터페이스(406)와, 디스플레이 유닛(408)과, LAN 데이터 송신 제어기(410)와, LAN 인터페이스(412)와, 네트워크 제어기(414)와, 내부 버스(416)와, 그에 관한 링크(422)를 갖춘 데이터베이스(420)와, 키보드, 마우스 등의 하나 이상의 입력 장치(418) 등을 포함할 수 있다. 당연히, 또 다른 구성 소자가 컴퓨터 시스템(400)에 포함될 수 있고, 일부 구성 소자는 존재하지 않을 수도 있다. 시스템(400)은 컴퓨터 시스템의 일예를 나타내는데 컴퓨터 바이러스를 검출하고 치료하기 위한 시스템 및 방법이 그 시스템(400)에 적용되어 그 시스템(400)에 존재하는 임의의 컴퓨터 바이러스를 검출하고 치료할 수 있다.
전술한 바와 같이, 항바이러스 시스템은 일반적으로 컴퓨터 바이러스가 체크되는 기계가 아닌 다른 기계 상에서 구현된다. 예컨대, 네트워크 서버가 항바이러스 프로그램을 실행하여 네트워크의 모든 워크스테이션에 바이러스가 존재하는지체크할 수 있다. 이와 달리, 네트워크 상 각 워크스테이션은 지역적 기준에 따라 독립적으로 항바이러스 시스템을 실행할 수 있다. 본 발명의 방법 및 시스템은 또한, 예컨대 이메일 서버 등에서 구현되어 이메일 메시지에 존재하는 바이러스를 검출하고 치료하여 네트워크나 네트워크 상 각 워크스테이션이 감염되지 않도록 할 수 있다. 본 발명은 이와 같은 모든 상황에서 적용될 수 있다.
본 명세서에서 설명된 암호형 데이터 해독에 이용되는 개연성 키 추측 방법은 기존의 많은 항바이러스 시스템에서 이용되어 이용 가능한 치료 프로세싱을 증강할 수도 있고 본 명세서에서 설명된 독립적 항바이러스 시스템에서 구현될 수도 있다. 도 5는 본 발명의 일실시예에 따라 컴퓨터 시스템에서 암호형 데이터를 해독하는 방법을 도시하고 있다. 본 방법이 시작된 다음(단계 S50), 암호형 데이터의 해독이 필요한지 결정된다(단계 S52). 단계 54에서, 암호형 데이터가 분석되어 그 암호형 데이터에서 가장 자주 나타나는 암호형 바이트를 확인한다. 단계 56에서, 그 가장 자주 나타나는 암호형 바이트가 지배적 암호형 바이트를 나타내는지 확인된다. 단계 58에서, 지배적 암호형 바이트와 원시 데이터의 대응 예상 원시 바이트에 기초하여 암호키가 계산된다. 단계 60에서, 암호형 데이터가 그 암호키에 따라 해독된다.
해독이 필요하지 않은 경우(단계 S52), 본 방법은 종료할 수 있다(단계 S62). 가장 자주 나타나는 암호형 바이트가 지배적 암호형 바이트가 아니라면, 방법은 종료할 수 있다(단계 S62). 이러한 경우, 개연성 키 추측은 신뢰할 만한 암호키를 제공하지 못할 수 있고 따라서 암호형 데이터의 해독이 이용되지 않을 수있다. 단계 S62에서 '종료'라는 용어를 사용했으나, 이는 반드시 그 암호형 데이터에 아무런 부가적 프로세싱도 이루어지지 않을 것임을 의미하는 것은 아니며, 이러한 경우 도 5에 도시된 방법에 따라 데이터를 해독하는 방법이 그 컴퓨터 바이러스에 의하여 암호화된 데이터를 해독하는데 있어서 바람직하지 않다는 것을 단순히 의미한다.
단계 50 내지 62는 도 1과 관련하여 상세히 설명된 방법의 보다 일반적 구현을 나타내며, 앞서 상세히 설명된 단계 31 내지 37과 실질적으로 유사하므로 여기서 더 상세히 설명하지는 않을 것이다.
본 발명은 본 명세서에서의 원리에 따라 프로그램된 하나 이상의 통상적 범용 디지털 컴퓨터 및/또는 서버를 이용하여 편리하게 구현될 수 있다. 숙련된 프로그래머라면 본 발명의 원리에 따라 적절한 소프트웨어 코딩을 쉽게 작성할 수 있을 것이다. 본 발명은 또한 특수 용도의 집적 회로를 작성하여 또는 통상적 구성 소자로 이루어진 적절한 네트워크의 상호 연결에 의하여 구현될 수 있다.
본 발명의 다양한 부가적 변경 및 변형이 전술한 원리를 참작하여 이루어질 수 있다. 그러므로, 첨부된 청구범위의 영역을 벗어나지 않고서, 본 발명은 본 명세서에서 구체적으로 설명된 것과 달리 실시될 수도 있음을 알아야 한다.

Claims (28)

  1. 컴퓨터 시스템에 존재하는 컴퓨터 바이러스를 검출(detecting) 및 치료(curing)하는 방법으로서,
    컴퓨터 바이러스가 있는지 상기 컴퓨터 시스템을 조사(scanning)하는 단계와,
    상기 컴퓨터 시스템에서 검출된 상기 컴퓨터 바이러스를 치료하기 위하여 암호형 데이터(encrypted data)가 해독되어야 하는지 여부를 결정하는 단계와,
    상기 암호형 데이터가 해독되어야 한다고 결정된 경우, 상기 암호형 데이터에서 가장 자주 나타나는 적어도 하나의 암호형 바이트를 결정하도록 상기 암호형 데이터를 분석하는 단계와,
    상기 가장 자주 나타나는 암호형 바이트가 지배적(dominant) 암호형 바이트이고 상기 지배적 암호형 바이트가 상기 암호형 데이터의 다른 바이트 중에서 통계적으로 지배적인지 확인하는 단계와,
    상기 지배적 암호형 바이트 및 원시 데이터(original data)의 대응 예상 원시 바이트(corresponding expected original byte)에 기초하여 암호키를 계산하는 단계와,
    상기 컴퓨터 바이러스에 의한 암호화 이전에 상기 컴퓨터 시스템에 존재한 원시 데이터로 상기 암호형 데이터를 복원(restore)하도록 상기 암호키를 사용하여 상기 암호형 데이터를 해독하는 단계
    를 포함하는 컴퓨터 바이러스 검출 및 치료 방법.
  2. 제1항에 있어서,
    상기 컴퓨터 시스템에서 상기 컴퓨터 바이러스를 검출하고 치료하기 위하여 부가적 프로세싱을 적용하는 단계를 더 포함하는 컴퓨터 바이러스 검출 및 치료 방법.
  3. 제2항에 있어서,
    상기 부가적 프로세싱 적용 단계는 상기 복원된 원시 데이터에 대해 부가적 프로세싱을 적용하는 컴퓨터 바이러스 검출 및 치료 방법.
  4. 제2항에 있어서,
    상기 조사 단계가 상기 컴퓨터 바이러스를 검출하는데 실패한 경우 상기 부가적 프로세싱 적용 단계가 적용되는 컴퓨터 바이러스 검출 및 치료 방법.
  5. 제2항에 있어서,
    상기 결정 단계에서 상기 암호형 데이터 해독이 수행되지 않는다고 결정된 경우 상기 부가적 프로세싱 적용 단계가 적용되는 컴퓨터 바이러스 검출 및 치료 방법.
  6. 제2항에 있어서,
    상기 확인 단계에서 상기 가장 자주 나타나는 암호형 바이트가 지배적 암호형 바이트가 아니라고 나타난 경우 상기 부가적 프로세싱 적용 단계가 적용되는 컴퓨터 바이러스 검출 및 치료 방법.
  7. 제1항에 있어서,
    상기 대응 예상 원시 바이트는 상기 원시 데이터에서 가장 자주 나타날 것이 예상되는 원시 데이터의 바이트인 컴퓨터 바이러스 검출 및 치료 방법.
  8. 제7항에 있어서,
    상기 컴퓨터 바이러스에 의하여 이용된 암호형 방법에 의하여 정해지는 상기 지배적 암호형 바이트와 상기 대응 예상 원시 바이트 사이의 주지의 관계에 따라 상기 암호키가 결정되는 컴퓨터 바이러스 검출 및 치료 방법.
  9. 제8항에 있어서,
    상기 해독 단계는 상기 암호키와 상기 암호형 데이터를 상기 암호화 방법의 역인 해독 방법에 적용함으로써 수행되는 컴퓨터 바이러스 검출 및 치료 방법.
  10. 컴퓨터 시스템에 존재하는 컴퓨터 바이러스를 검출 및 치료하는 시스템으로서,
    컴퓨터 바이러스가 있는지 상기 컴퓨터 시스템을 조사하도록 적합화된 조사 장치와,
    상기 컴퓨터 바이러스가 검출된 다음 상기 컴퓨터 시스템에서의 암호형 데이터의 해독이 수행되어야 하는지 결정하도록 적합화된 해독 제어 장치와,
    상기 암호형 데이터가 해독되어야 한다고 결정된 경우, 상기 암호형 데이터에서 가장 자주 나타나는 적어도 하나의 암호형 바이트를 결정하기 위하여 상기 암호형 데이터를 분석하도록 적합화된 암호형 바이트 프로세싱 장치와,
    상기 가장 자주 나타나는 암호형 바이트가 지배적 암호형 바이트이고 상기 지배적 암호형 바이트가 상기 암호형 데이터에서 통계적으로 지배적인지 확인하도록 적합화된 지배적 바이트 제어기와,
    상기 지배적 암호형 바이트 및 원시 데이터의 대응 예상 원시 바이트에 기초하여 암호키를 계산하도록 적합화된 암호키 계산 장치와,
    상기 컴퓨터 바이러스에 의한 암호화 이전에 상기 컴퓨터 시스템에 존재한 원시 데이터로 상기 암호형 데이터를 복원하기 위하여 상기 암호키에 근거해서 상기 암호형 데이터의 각 바이트를 해독하도록 적합화된 해독 장치
    를 포함하는 컴퓨터 바이러스 검출 및 치료 시스템.
  11. 제10항에 있어서,
    상기 컴퓨터 바이러스 검출 및 치료를 위한 부가적 프로세싱을 수행하도록 적합화된 부가적 프로세싱 장치를 더 포함하는 컴퓨터 바이러스 검출 및 치료 시스템.
  12. 제11항에 있어서,
    상기 부가적 프로세싱 장치가 상기 복원된 원시 데이터에 대하여 상기 부가적 프로세싱을 수행하는 컴퓨터 바이러스 검출 및 치료 시스템.
  13. 제11항에 있어서,
    상기 부가적 프로세싱 장치는 상기 컴퓨터 바이러스가 상기 조사 장치에 의하여 검출되지 않은 경우 상기 부가적 프로세싱을 수행하는 컴퓨터 바이러스 검출 및 치료 시스템.
  14. 제11항에 있어서,
    상기 해독 제어 장치가 상기 암호형 데이터 해독이 수행되지 않는다고 나타내는 경우 상기 부가적 프로세싱 장치가 상기 부가적 프로세싱을 수행하는 컴퓨터 바이러스 검출 및 치료 시스템.
  15. 제10항에 있어서,
    상기 지배적 바이트 제어기가, 상기 가장 자주 나타나는 암호형 바이트가 상기 지배적 암호형 바이트가 아니라고 결정한 경우 상기 부가적 프로세싱 장치가 상기 부가적 프로세싱을 수행하는 컴퓨터 바이러스 검출 및 치료 시스템.
  16. 제10항에 있어서,
    상기 대응 예상 원시 바이트는 상기 컴퓨터 바이러스에 의한 암호화 이전에 상기 컴퓨터 시스템에 존재한 원시 데이터에서 가장 자주 나타날 것이 예상되는 원시 데이터의 바이트인 컴퓨터 바이러스 검출 및 치료 시스템.
  17. 제10항에 있어서,
    상기 암호형 바이트 분석 장치는 상기 암호형 데이터에서 가장 자주 나타나는 적어도 하나의 암호형 바이트를 결정하도록 상기 암호형 데이터의 각 바이트의 발생을 카운트하는 컴퓨터 바이러스 검출 및 치료 시스템.
  18. 제10항에 있어서,
    상기 암호키 계산 장치가 주지의 관계에 따라 상기 지배적 암호형 바이트를 상기 대응 예상 원시 바이트와 비교하고 상기 주지의 관계를 이용하여 상기 암호키를 계산하는 컴퓨터 바이러스 검출 및 치료 시스템.
  19. 제18항에 있어서,
    상기 주지의 관계는 상기 컴퓨터 바이러스가 데이터를 암호화하는데 이용한 상기 암호화 방법에 기초하는 컴퓨터 바이러스 검출 및 치료 시스템.
  20. 제10항에 있어서,
    상기 해독 장치는 상기 암호키 및 상기 컴퓨터 바이러스가 데이터를 암호화하는데 이용한 상기 암호화 방법의 역인 해독 방법에 기초하여 상기 암호형 데이터의 각 바이트를 해독하여 상기 원시 데이터를 복원하는 컴퓨터 바이러스 검출 및 치료 시스템.
  21. 컴퓨터 실행 가능 코드를 포함하는, 컴퓨터 시스템에 의하여 판독 가능한 프로그램 저장 매체로서, 상기 실행 가능 코드는
    컴퓨터 바이러스가 있는지 상기 컴퓨터 시스템을 조사하는 코드와,
    상기 컴퓨터 시스템에서 검출된 상기 컴퓨터 바이러스를 치료하기 위하여 암호형 데이터가 해독되어야 하는지 여부를 결정하는 코드와,
    상기 암호형 데이터가 해독되어야 한다고 결정된 경우, 상기 암호형 데이터에서 가장 자주 나타나는 적어도 하나의 암호형 바이트를 결정하도록 상기 암호형 데이터를 분석하는 코드와,
    상기 가장 자주 나타나는 암호형 바이트가 지배적 암호형 바이트이고 상기 지배적 암호형 바이트가 상기 암호형 데이터의 다른 바이트 중에서 통계적으로 지배적인지 확인하는 코드와,
    상기 지배적 암호형 바이트 및 원시 데이터의 대응 예상 원시 바이트에 기초하여 암호키를 계산하는 코드와,
    상기 컴퓨터 바이러스에 의한 암호화 이전에 상기 컴퓨터 시스템에 존재한원시 데이터로 상기 암호형 데이터를 복원하도록 상기 암호키를 사용하여 상기 암호형 데이터를 해독하는 코드
    를 포함하는 프로그램 저장 매체.
  22. 컴퓨터 바이러스에 감염된 컴퓨터 시스템에서 암호형 데이터를 해독하는 방법으로서,
    상기 암호형 데이터가 해독되어야 하는지 여부를 결정하는 단계와,
    상기 암호형 데이터가 해독되어야 한다고 결정된 경우, 상기 암호형 데이터에서 가장 자주 나타나는 적어도 하나의 암호형 바이트를 결정하도록 상기 암호형 데이터를 분석하는 단계와,
    상기 가장 자주 나타나는 암호형 바이트가 지배적 암호형 바이트이고 상기 지배적 암호형 바이트가 상기 암호형 데이터의 다른 바이트 중에서 통계적으로 지배적인지 확인하는 단계와,
    상기 지배적 암호형 바이트와 원시 데이터의 대응 예상 원시 바이트와 이들간 주지의 관계에 기초하여 암호키를 계산하는 단계와,
    암호화 이전에 상기 컴퓨터 시스템에 존재한 원시 데이터로 상기 암호형 데이터를 복원하도록 상기 암호키를 사용하여 상기 암호형 데이터를 해독하는 단계
    를 포함하는 암호형 데이터 해독 방법.
  23. 컴퓨터 시스템에 존재한 암호형 컴퓨터 바이러스를 치료하는 방법으로서,
    암호형 데이터에서 가장 자주 나타나는 적어도 하나의 암호형 바이트를 결정하도록 상기 암호형 데이터를 분석하는 단계와,
    상기 가장 자주 나타나는 암호형 바이트와 원시 데이터의 예상 원시 바이트에 기초하여 암호키를 계산하는 단계와,
    상기 암호형 데이터를 원시 데이터로 복원하도록 상기 암호키를 이용하여 상기 암호형 데이터를 해독하는 단계
    를 포함하는 암호형 컴퓨터 바이러스 치료 방법.
  24. 제23항에 있어서,
    상기 가장 자주 나타나는 암호형 바이트가 상기 암호형 데이터의 다른 바이트 중에서 통계적으로 지배적인 지배적 암호형 바이트인지 확인하는 단계를 더 포함하는 암호형 컴퓨터 바이러스 치료 방법.
  25. 컴퓨터 시스템에서 컴퓨터 바이러스를 검출 및 치료하는 시스템으로서,
    암호형 데이터에서 가장 자주 나타나는 적어도 하나의 암호형 바이트를 결정하기 위하여 상기 암호형 데이터를 분석하도록 적합화된 암호형 바이트 프로세싱 장치와,
    상기 가장 자주 나타나는 암호형 바이트와 원시 데이터의 예상 원시 바이트에 기초하여 암호키를 계산하도록 적합화된 암호키 계산 장치와,
    상기 암호형 데이터를 원시 데이터로 복원하기 위하여 상기 암호키를 이용해서 상기 암호형 데이터를 해독하도록 적합화된 해독 장치
    를 포함하는 컴퓨터 바이러스 검출 및 치료 시스템.
  26. 제25항에 있어서,
    상기 가장 자주 나타나는 암호형 바이트가 상기 암호형 데이터에서 통계적으로 지배적인 지배적 암호형 바이트인지 결정하도록 적합화된 지배적 바이트 제어기를 더 포함하는 컴퓨터 바이러스 검출 및 치료 시스템.
  27. 컴퓨터 실행 가능 코드를 포함하는, 컴퓨터 시스템에 의하여 판독 가능한 프로그램 저장 매체로서, 상기 실행 가능 코드는
    암호형 데이터에서 가장 자주 나타나는 적어도 하나의 암호형 바이트를 결정하기 위하여 상기 암호형 데이터를 분석하도록 적합화된 코드와,
    상기 가장 자주 나타나는 암호형 바이트와 원시 데이터의 예상 원시 바이트에 기초하여 암호키를 계산하는 코드와,
    상기 암호형 데이터를 원시 데이터로 복원하기 위하여 상기 암호키를 이용해서 상기 암호형 데이터를 해독하는 코드
    를 포함하는 프로그램 저장 매체.
  28. 제27항에 있어서,
    상기 가장 자주 나타나는 암호형 바이트가 상기 암호형 데이터의 다른 바이트 중에서 통계적으로 지배적인 지배적 암호형 바이트인지 확인하는 코드를 더 포함하는 프로그램 저장 매체.
KR10-2004-7003789A 2001-09-14 2002-09-13 컴퓨터 바이러스 검출 및 치료 방법과 시스템, 프로그램저장 매체, 암호형 데이터 해독 방법, 암호형 컴퓨터바이러스 치료 방법 KR20040039357A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US32234701P 2001-09-14 2001-09-14
US60/322,347 2001-09-14
PCT/US2002/029152 WO2003025722A2 (en) 2001-09-14 2002-09-13 Virus detection system

Publications (1)

Publication Number Publication Date
KR20040039357A true KR20040039357A (ko) 2004-05-10

Family

ID=23254478

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2004-7003789A KR20040039357A (ko) 2001-09-14 2002-09-13 컴퓨터 바이러스 검출 및 치료 방법과 시스템, 프로그램저장 매체, 암호형 데이터 해독 방법, 암호형 컴퓨터바이러스 치료 방법

Country Status (13)

Country Link
US (1) US7260725B2 (ko)
EP (1) EP1425649B1 (ko)
JP (1) JP2005527873A (ko)
KR (1) KR20040039357A (ko)
CN (1) CN1260627C (ko)
AT (1) ATE435466T1 (ko)
AU (1) AU2002333625B2 (ko)
BR (1) BR0212490A (ko)
CA (1) CA2460607A1 (ko)
DE (1) DE60232803D1 (ko)
IL (2) IL160757A0 (ko)
WO (1) WO2003025722A2 (ko)
ZA (1) ZA200401577B (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8127356B2 (en) * 2003-08-27 2012-02-28 International Business Machines Corporation System, method and program product for detecting unknown computer attacks
US7555777B2 (en) * 2004-01-13 2009-06-30 International Business Machines Corporation Preventing attacks in a data processing system
US20050177748A1 (en) * 2004-02-10 2005-08-11 Seiichi Katano Virus protection for multi-function peripherals
US20050177720A1 (en) * 2004-02-10 2005-08-11 Seiichi Katano Virus protection for multi-function peripherals
US8707251B2 (en) * 2004-06-07 2014-04-22 International Business Machines Corporation Buffered viewing of electronic documents
US20060015940A1 (en) * 2004-07-14 2006-01-19 Shay Zamir Method for detecting unwanted executables
US20060101277A1 (en) * 2004-11-10 2006-05-11 Meenan Patrick A Detecting and remedying unauthorized computer programs
US8005803B2 (en) * 2005-07-14 2011-08-23 Microsoft Corporation Best practices analyzer
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
CN100437614C (zh) * 2005-11-16 2008-11-26 白杰 未知病毒程序的识别及清除方法
CN100465978C (zh) * 2005-11-16 2009-03-04 白杰 被病毒程序破坏的数据恢复方法、装置及病毒清除方法
US8713686B2 (en) * 2006-01-25 2014-04-29 Ca, Inc. System and method for reducing antivirus false positives
US7664626B1 (en) * 2006-03-24 2010-02-16 Symantec Corporation Ambiguous-state support in virtual machine emulators
CN101018002B (zh) * 2006-12-28 2013-03-27 李平 小型三相高性能方波永磁直流低速无刷电机
US20090172674A1 (en) * 2007-12-28 2009-07-02 International Business Machines Corporation Managing the computer collection of information in an information technology environment
US8239668B1 (en) 2009-04-15 2012-08-07 Trend Micro Incorporated Computer security threat data collection and aggregation with user privacy protection
US9202048B2 (en) 2010-01-27 2015-12-01 Mcafee, Inc. Method and system for discrete stateful behavioral analysis
CN101924762B (zh) * 2010-08-18 2013-02-27 北京奇虎科技有限公司 一种基于云安全的主动防御方法
US8782791B2 (en) * 2010-12-01 2014-07-15 Symantec Corporation Computer virus detection systems and methods
KR101755646B1 (ko) 2011-03-24 2017-07-10 삼성전자주식회사 안티-바이러스 유닛을 포함하는 데이터 저장 장치 및 그것의 동작 방법
JP5839967B2 (ja) * 2011-12-01 2016-01-06 三菱電機株式会社 マルウェア解析システム
EP3364297B1 (en) * 2012-06-26 2022-05-04 Lynx Software Technologies Inc. Systems and methods involving features of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, rootkit detection prevention, and/or other features
CN103778370B (zh) * 2012-10-17 2016-08-24 腾讯科技(深圳)有限公司 病毒文件处理方法和客户端设备
US10235539B2 (en) * 2013-02-25 2019-03-19 Mitsubishi Electric Corporation Server device, recording medium, and concealed search system
US9213840B2 (en) 2014-05-15 2015-12-15 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
WO2016004263A1 (en) 2014-07-01 2016-01-07 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting, and/or other features
WO2015176048A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Aspects of hardware virtualization, hypervisors, code detection
WO2015176029A1 (en) 2014-05-15 2015-11-19 Lynx Software Technologies, Inc. Systems and methods involving features of hardware virtualization such as hypervisor, pages of interest, and/or other features
US11782745B2 (en) 2014-07-01 2023-10-10 Lynx Software Technologies, Inc. Systems and methods involving aspects of hardware virtualization such as separation kernel hypervisors, hypervisors, hypervisor guest context, hypervisor context, anti-fingerprinting and/or other features
US10050798B2 (en) * 2015-02-06 2018-08-14 Mitsubishi Electric Corporation Cryptographic block identification apparatus, cryptographic block identification method, and non-transitory computer readable recording medium storing cryptographic block identification program
US10346608B2 (en) * 2017-12-12 2019-07-09 John Almeida Virus immune computer system and method
CN110826065B (zh) * 2019-10-30 2022-03-15 亚信科技(成都)有限公司 一种扫描方法、装置及系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5809138A (en) * 1994-07-25 1998-09-15 Netz Computing Ltd. Method for protecting storage media against computer virus infection
US5442699A (en) * 1994-11-21 1995-08-15 International Business Machines Corporation Searching for patterns in encrypted data
US5613002A (en) * 1994-11-21 1997-03-18 International Business Machines Corporation Generic disinfection of programs infected with a computer virus
US5485575A (en) * 1994-11-21 1996-01-16 International Business Machines Corporation Automatic analysis of a computer virus structure and means of attachment to its hosts
US5765030A (en) * 1996-07-19 1998-06-09 Symantec Corp Processor emulator module having a variable pre-fetch queue size for program execution
US5696822A (en) * 1995-09-28 1997-12-09 Symantec Corporation Polymorphic virus detection module
US5826013A (en) * 1995-09-28 1998-10-20 Symantec Corporation Polymorphic virus detection module
US6067410A (en) * 1996-02-09 2000-05-23 Symantec Corporation Emulation repair system
US5854916A (en) * 1995-09-28 1998-12-29 Symantec Corporation State-based cache for antivirus software
US6052780A (en) * 1996-09-12 2000-04-18 Open Security Solutions, Llc Computer system and process for accessing an encrypted and self-decrypting digital information product while restricting access to decrypted digital information
US5964889A (en) * 1997-04-16 1999-10-12 Symantec Corporation Method to analyze a program for presence of computer viruses by examining the opcode for faults before emulating instruction in emulator
US6016546A (en) * 1997-07-10 2000-01-18 International Business Machines Corporation Efficient detection of computer viruses and other data traits
US6357008B1 (en) * 1997-09-23 2002-03-12 Symantec Corporation Dynamic heuristic method for detecting computer viruses using decryption exploration and evaluation phases
US6081894A (en) * 1997-10-22 2000-06-27 Rvt Technologies, Inc. Method and apparatus for isolating an encrypted computer system upon detection of viruses and similar data
US6393568B1 (en) * 1997-10-23 2002-05-21 Entrust Technologies Limited Encryption and decryption system and method with content analysis provision
US6981141B1 (en) * 1998-05-07 2005-12-27 Maz Technologies, Inc Transparent encryption and decryption with algorithm independent cryptographic engine that allows for containerization of encrypted files
US6851057B1 (en) * 1999-11-30 2005-02-01 Symantec Corporation Data driven detection of viruses
US6971019B1 (en) * 2000-03-14 2005-11-29 Symantec Corporation Histogram-based virus detection
US6980992B1 (en) * 2001-07-26 2005-12-27 Mcafee, Inc. Tree pattern system and method for multiple virus signature recognition

Also Published As

Publication number Publication date
BR0212490A (pt) 2004-08-24
IL160757A (en) 2009-05-04
CA2460607A1 (en) 2003-03-27
EP1425649A2 (en) 2004-06-09
JP2005527873A (ja) 2005-09-15
WO2003025722A2 (en) 2003-03-27
IL160757A0 (en) 2004-08-31
ATE435466T1 (de) 2009-07-15
WO2003025722A3 (en) 2004-01-15
ZA200401577B (en) 2005-05-11
US7260725B2 (en) 2007-08-21
DE60232803D1 (de) 2009-08-13
CN1260627C (zh) 2006-06-21
CN1571947A (zh) 2005-01-26
AU2002333625B2 (en) 2007-10-11
US20030093682A1 (en) 2003-05-15
EP1425649B1 (en) 2009-07-01

Similar Documents

Publication Publication Date Title
KR20040039357A (ko) 컴퓨터 바이러스 검출 및 치료 방법과 시스템, 프로그램저장 매체, 암호형 데이터 해독 방법, 암호형 컴퓨터바이러스 치료 방법
AU2002333625A1 (en) Virus detection system
JP4950902B2 (ja) ダイナミックトランスレーションによる先取りコンピュータマルウェアの保護
US9990511B1 (en) Using encrypted backup to protect files from encryption attacks
Weckstén et al. A novel method for recovery from Crypto Ransomware infections
KR102316404B1 (ko) 확장자 랜덤화를 통한 랜섬웨어 피해 방어 방법, 이를 수행하기 위한 기록 매체 및 장치
Cicala et al. Analysis of encryption key generation in modern crypto ransomware
Naidu et al. A syntactic approach for detecting viral polymorphic malware variants
Wang et al. Shapeshifter: Intelligence-driven data plane randomization resilient to data-oriented programming attacks
KR101226615B1 (ko) 소프트웨어 난독화 장치 및 소프트웨어 보안처리 시스템
Jones et al. Defeating Denial-of-Service attacks in a self-managing N-Variant system
Chen et al. Hidden path: dynamic software watermarking based on control flow obfuscation
CN114637995A (zh) 具有多种异构tee实施的方法和系统
Wolf Ransomware detection
Nugraha Malware classification using machine learning algorithm
JP7031070B1 (ja) プログラム処理装置、プログラム処理方法、及び、プログラム
CN112597449B (zh) 软件加密方法、装置、设备及存储介质
JP2018136904A (ja) ウイルス駆除システム
KR102321497B1 (ko) 악성코드 감염 차단 시스템 및 방법
Fedák et al. Evasion of antivirus with the help of packers
Choi et al. Encoded Executable File Detection Technique via Executable File Header Analysis
Ansari et al. Digital Immunity Module: Preventing Unwanted Encryption Digital Immunity Module: Preventing Unwanted Encryption using Source Coding using Source Coding Digital Immunity Module: Preventing Unwanted Encryption using Source Coding Seyit Camtepe
Aswal et al. The ransomware: an emerging security challenge to the cyberspace
Pawar et al. Analysis of signature and signature free bufferoverflow detection for gif and jpg format
CN116049846A (zh) 一种软件加密方法及装置

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