KR20090023644A - 멀웨어를 식별하는 컴퓨터 구현 방법 및 컴퓨터 판독가능 매체 - Google Patents

멀웨어를 식별하는 컴퓨터 구현 방법 및 컴퓨터 판독가능 매체 Download PDF

Info

Publication number
KR20090023644A
KR20090023644A KR1020087031665A KR20087031665A KR20090023644A KR 20090023644 A KR20090023644 A KR 20090023644A KR 1020087031665 A KR1020087031665 A KR 1020087031665A KR 20087031665 A KR20087031665 A KR 20087031665A KR 20090023644 A KR20090023644 A KR 20090023644A
Authority
KR
South Korea
Prior art keywords
malware
computer
boot
investigation
identifying
Prior art date
Application number
KR1020087031665A
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 KR20090023644A publication Critical patent/KR20090023644A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/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
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

일반적으로 기술하자면, 본 발명은 멀웨어를 식별하는 것에 관한 것이다. 일 실시예에서, 부팅 프로세스 동안 멀웨어에 대한 조사를 수행하는 방법이 제공된다. 보다 구체적으로는, 이 방법은 멀웨어에 대한 조사를 수행하도록 구성된 소프트웨어 모듈이 부팅 프로세스 동안 초기화되도록 하게 한다. 그 후, 조사 이벤트의 발생을 식별하는 것에 응답하여, 이 방법은 소프트웨어 모듈이 멀웨어의 특징인 데이터에 대해 컴퓨터의 메모리를 조사하게 한다. 만일 멀웨어의 특징이 식별되면, 이 방법은 멀웨어 감염을 처리한다.
Figure P1020087031665
애플리케이션 프로그램, 인터페이스, 운영체제, 사용자 모드, 루트 키트

Description

멀웨어를 식별하는 컴퓨터 구현 방법 및 컴퓨터 판독가능 매체{IDENTIFYING MALWARE IN A BOOT ENVIRONMENT}
인터넷 등의 각종 네트워크를 통해 더 많은 컴퓨터 및 다른 컴퓨팅 장치들이 상호연결되므로, 특히 네트워크를 통해 또는 정보 스트림을 통해 전달되는 침입 또는 공격으로부터 컴퓨터 보안이 점점 더 중요해지고 있다. 당업자 및 다른 사람들이 인식할 수 있는 바와 같이, 이들 공격은 제한적이진 않지만, 컴퓨터 바이러스, 컴퓨터 웜(warms), 시스템 컴포넌트 교체, 트로이 목마, 루트키트(RootKit), 스파이웨어, 서비스 거부 공격, 심지어 적법한 컴퓨터 시스템 특징들의 오용/남용을 포함하여 다수의 여러 형태로 출현하고 있으며, 이들 모두는 하나 이상의 컴퓨터 시스템의 취약점들을 불법적인 목적으로 이용한다. 당업자들은 각종 컴퓨터 공격들이 기술적으로 서로 다르다는 것을 인식할 수 있을 것이므로, 본 발명의 목적 및 설명을 간단히 하기 위해, 인터넷 등의 컴퓨터 네트워크를 통해 확산되는 모든 악의적인 컴퓨터 프로그램들을 이하에서는, 전반적으로 컴퓨터 멀웨어 또는 더 간단히는, 멀웨어라 칭하기로 한다.
컴퓨터 시스템이 컴퓨터 멀웨어에 의해 공격을 받거나 "감염"되면, 시스템 장치들의 디스에이블링; 펌웨어, 애플리케이션들, 또는 데이터 파일들의 소거 또는 손상; 네트워크를 통한 다른 위치로의 기밀 데이터의 잠재적인 전송; 컴퓨터 시스 템의 중단; 또는 컴퓨터 시스템의 충돌을 포함한 부정적인 결과들이 가지각색이다. 전부는 아니지만, 많은 컴퓨터 멀웨어의 또 다른 해로운 양태는 감염된 컴퓨터 시스템을 이용하여 네트워크 연결로 통신에 관해 연결되어 있는 다른 컴퓨터 시스템을 감염시킨다는 것이다.
컴퓨터 멀웨어 및 특히, 컴퓨터 바이러스 및 웜에 대항하는 전통적인 방어책은 바이러스 방지 소프트웨어이다. 대부분의 바이러스 방지 소프트웨어는 멀웨어를 데이터 내의 패턴들을 그 멀웨어의 "시그너처(signature)"라 칭하는 것에 매칭함에 의해 식별한다. 전형적으로, 바이러스 방지 소프트웨어는 소정의 이벤트가 발생하도록 스케줄링될 때, 예를 들어, 데이터를 컴퓨터 상의 저장 장치에 기록하거나 저장 장치로부터 판독하려고 할 때, 멀웨어 시그너처를 조사한다. 당업자들 및 다른 사람들이 알고 있는 바와 같이, 컴퓨터 사용자들은 하드 드라이브 등의 저장 장치에 대해 데이터를 읽고 쓸 필요가 있다. 예를 들어, 일부 소프트웨어 애플리케이션들에 의해 제공되는 일반적인 동작(operation)은 하드 드라이브 상에 저장된 파일을 열고 그 파일의 내용들을 컴퓨터 디스플레이 상에 디스플레이하는 것이다. 그러나, 파일을 열때 그 파일에 관련된 멀웨어가 실행될 수 있으므로, 바이러스 방지 소프트웨어는 통상적으로 열기 동작을 충족시키기 전에 그 파일을 조사하거나 분석을 행한다. 멀웨어가 탐지되면, 조사를 수행한 바이러스 방지 소프트웨어는, 예를 들어, 열기 동작을 실패로 함으로써, 멀웨어가 실행되는 것을 방지할 수 있다.
더욱더, 멀웨어는 컴퓨터를 보호하도록 설계된 소프트웨어(예를 들어, 바이 러스 방지 소프트웨어, 스파이웨어 방지 소프트웨어, 등)에게 멀웨어를 숨기도록 특별히 설계된 하나 이상의 프로그램과 함께 배포되고 있다. 컴퓨터 상에 설치된 다른 유형의 애플리케이션들과 마찬가지로, 멀웨어로부터 컴퓨터를 보호하도록 설계된 소프트웨어는 운영 체제가 제공하는 서비스들에 의존한다. 그러나, 멀웨어가 컴퓨터 운영 체제의 컴포넌트들 또는 기타 낮은 수준의 컴포넌트들을 감염시킬 수 있으면, 멀웨어는 컴퓨터를 보호하도록 설계된 소프트웨어에 제공되는 정보를 제어할 수 있다. 멀웨어의 특징인 데이터를 컴퓨터 상에 숨기도록 특별히 설계된 멀웨어를 이하에서는 일반적으로 "루트키트"라 칭한다.
단지 예의 목적으로, 도 1은 루트키트가 컴퓨터(100)를 멀웨어로부터 보호하도록 설계된 소프트웨어를 이용할 수 있게 된 정보를 제어할 있는 방법을 나타낸다. 도 1에 도시된 바와 같이, 컴퓨터(100)는 애플리케이션 프로그램(102), 운영 체제(104), 저장 장치(106), 및 루트키트(108)를 포함한다. 또한, 운영 체제(104)는 컴퓨터(100) 상에 설치된 애플리케이션 프로그램에 API(Application Programming Interface)의 형태로 서비스를 제공하는 인터페이스(110)를 포함한다. 애플리케이션 프로그램(102)은 컴퓨터(100)를 멀웨어로부터 보호하도록 설계된 작업들(actions)을 수행한다. 예를 들어, 애플리케이션 프로그램(102)은 사용자가 저장 장치(106) 상에 저장된 파일로의 접근을 시도할 경우 멀웨어 "접근 중(on access)"에 대해 파일을 조사할 수 있다. 그러나, 도 1에 도시된 바와 같이, 애플리케이션 프로그램(102)은 사용자 모드에서 동작들을 수행하고, 적어도 부분적으로 커널 모드에서 동작하는 운영 체제(104)에 의해 제공되는 서비스들에 의존한다. 또한, 컴퓨터(100)는 운영 체제(104) 내로 "후킹(hook)"되는 루트키트(108)에 의해 감염되며, 이 운영 체제(104)에서 루트키트(108)는 컴퓨터(100) 상에서 기본 기능을 수행하는 데 이용되는 호출들(calls)을 인터셉트한다. 달리 기술하자면, 루트키트(108)는 컴퓨터(100) 상에 설치된 운영 체제(104)와 애플리케이션 프로그램 간에서의 통신을 모니터링하고 변경하는 "중간 인간(man-in-the-middle)"로서 역할한다. 바이러스 방지 소프트웨어 등의 애플리케이션 프로그램이 루트키트(108)에 의해 사용된 하나 이상의 파일을 포함한 디렉토리의 내용을 목록하고자 시도할 경우, 루트키트(108)는 그 목록으로부터 파일명을 삭제할 것이다. 마찬가지로, 루트키트(108)는 시스템 레지스트리, 프로세스 목록 등에 항목들(entries)을 숨길 수 있으므로, 루트키트(108)가 은폐되길 원하는 모든 정보를 제어할 수 있다.
본 요약은 이하 상세한 설명에서 상세히 기술될 개념들에 대한 선택을 간략화된 형태로 소개하도록 제공된다. 본 요약은 청구된 요지의 핵심 특징들을 식별하도록 의도된 것도 아니고, 청구된 요지의 범주를 결정하는 데 도움을 주고자 의도된 것도 아니다.
전반적으로 기술하자면, 본 발명의 양상들은 탐지되는 것을 피하기 위해 부팅 환경에서 활성화되는 프로그램 코드를 사용하는 멀웨어를 식별하는 것에 관한 것이다. 일 실시예에 따르면, 부팅 프로세스 동안 멀웨어에 대한 탐색을 수행하는 방법이 제공된다. 보다 구체적으로 기술하자면, 이 방법은 멀웨어에 대해 조사하도록 구성된 소프트웨어 모듈을 컴퓨터 시동 시에 초기화시킨다. 그 후, 조사 이벤트의 발생을 식별하는 것에 응답하여, 방법은 소프트웨어 모듈이 멀웨어의 특징인 데이터에 대해 컴퓨터 메모리를 탐색하게 한다. 멀웨어의 데이터 특징이 식별되면, 그 멀웨어가 컴퓨터 상에서 실행되는 것을 방지시키도록 기능을 구현한다. 컴퓨터 시동 시 조사 수행의 결과로서, 바이러스 방지 소프트웨어에게 숨기기 위한 난독화(obfuscation) 기술을 수행하는 멀웨어가 식별된다.
본 발명의 상기 양상들 및 수반되는 이점들은 첨부된 도면을 참조하여 기술한 이하의 상세한 설명을 참조하면 보다 쉽사리 이해할 수 있을 것이다.
도 1은 현대 컴퓨터의 기능들을 수행하도록 구성된 소프트웨어 컴포넌트들 및 멀웨어를 숨기도록 설계된 루트키트에 대한 블록도.
도 2는 부팅 환경에서 멀웨어를 식별하도록 구성된 컴포넌트들을 갖는 컴퓨터의 그림 도면.
도 3은 컴퓨터 시동 시에 수행되는 이벤트들을 예시하는 예시적인 타임라인에 대한 그림 도면.
도 4는 부팅 프로세스 동안 멀웨어를 식별하는 소프트웨어 모듈의 예시적인 흐름도.
본 발명의 양상들은 컴퓨터에 의해 실행되는, 프로그램 모듈과 같은 컴퓨터-실행가능 명령어의 일반적인 관점에서 기술될 수 있다. 일반적으로 기술하자면, 프로그램 모듈은 특정 타스크를 수행하거나 특정의 추상 데이터 유형을 구현하는 루틴, 프로그램, 애플리케이션, 위젯(widgets), 객체, 컴포넌트들, 데이터 구조 등을 포함한다. 또한, 본 발명은 타스크들이 통신 네트워크를 통해 링크되는 원격 처리 장치들에 의해 수행되는 분산형 컴퓨팅 환경에서 구현될 수 있다. 분산형 컴퓨팅 환경에서, 프로그램 모듈은 로컬 및/또는 원격 저장 매체 상에 위치될 수 있다.
지금부터, 도 2를 참조하면서, 본 발명의 양상들을 구현하는 컴포넌트들을 갖는 컴퓨터(200)에 대해 기술하기로 한다. 당업자 및 기타 사람들은 컴퓨터(200)가 퍼스널 컴퓨팅 장치, 서버-기반 컴퓨팅 장치, 미니컴퓨터 및 메인프레임 컴퓨터, 랩톱, PDA, 셋톱 박스, 오락 및 게이밍 시스템, 또는 어떤 유형의 메모리를 갖는 기타의 전자 장치를 포함하지만 이것에만 한정되는 것은 아닌 각종 장치 중 임의의 장치일 수 있다는 것을 인식할 것이다. 도 2에 도시된 컴퓨터(200)는 도 1을 참조하여 상술한 같은 이름의 동일한 컴포넌트들 다수를 포함한다. 이런 점에서, 컴퓨터(200)는 애플리케이션 프로그램(202), 관련된 인터페이스(205)를 갖는 운영 체제(204), 및 저장 장치(206)를 포함한다. 예시를 용이하게 하기 위해 그리고, 본 발명의 이해함에 중요하지 않으므로, 도 2는 키보드, 마우스, 프린터, 디스플레이, CPU, 메모리 등의 다수 컴퓨터들의 전형적인 컴포넌트들은 도시하지 않았다. 그러나, 이 실시예에서, 컴퓨터(200)는 또한 조사 엔진(208) 및 부팅 탐지 모듈(210)을 포함한다. 후술할 바와 같이, 조사 엔진(208) 및 부팅 탐지 모듈(210)은 전통적인 바이러스 방지 소프트웨어에 의해 제공되는 서비스들을 이용하기 전에 실행을 시작하는 루트키트 등의 멀웨어를 식별하는 방법을 집합적으로 제공한다. 이런 점에서, 컴퓨터(200)를 감염시키는 루트키트 또는 다른 멀웨어는 컴퓨터의 부팅 중에 식별되므로, 루트키트는 멀웨어의 특징인 데이터를 계속 숨길 수 없다.
도 2에 도시된 운영 체제(204)는 Microsoft® 운영 체제, UNIX® 운영 체제, 또는 Linux® 운영 체제 등과 같은 범용 운영 체제일 수 있다. 또한, 운영 체제(204)는 특수화된 컴퓨터 시스템용으로 설계된 비표준형(non-generic) 하드웨어를 사용하도록 구성될 수 있다. 하여튼, 당업자 및 다른 사람들이 인식하고 있는 바와 같이, 운영 체제(204)는 컴퓨터(200)의 일반적인 동작을 제어하며, 하드웨어 및 기본 시스템 동작들의 관리 및 애플리케이션 프로그램의 실행을 책임진다. 보다 구체적으로 기술하자면, 운영 체제(204)는 애플리케이션 프로그램(202) 등의 컴퓨터 프로그램들이 저장 장치(206)와 같은 자원들을 이용할 수 있는 것을 보증한다. 현대의 컴퓨터들은 코드가 운영 체제(204)용으로 마련된 메모리 공간에서 실행되도록 하기 위한 메커니즘을 제공함으로써 애플리케이션 프로그램들이 운영 체제(204)의 기능을 확장가능하게 한다. 이들 유형의 시스템에서의 문제는 루트키트 또는 다른 멀웨어가 운영 체제(204)에 의해 바이러스 방지 소프트웨어 등의 애플리케이션 프로그램에 제공되는 데이터의 무결성을 손상시킬 수 있다는 것이다. 결과적으로, 루트키트는 바이러스 방지 소프트웨어가 루트키트 및/또는 임의 다른 관련된 멀웨어를 식별하는 것을 방지하는 난독화 기술을 구현할 수 있다.
당업자 및 기타 사람들은 루트키트가 전형적으로 컴퓨터 상에서 ASEP(Auto Strat Extensibility Point)에 그 자체를 추가한다는 것을 인식할 것이다. 일반적으로 기술하자면, ASEP란 프로그램들이 명시적인 사용자 호출없이 실행을 시작할 수 있게 하는 확장성 지점(extensibility point)을 말한다. ASEP에 추가되는 결과로서, 루트키트는 일단 사용자가 "로그인"을 수행하면 부팅 프로세스 동안, 또는 때로는 그 후에 실행을 시작할 수 있다. 전형적으로, 바이러스 방지 소프트웨어는 운영 체제가 제공하는 서비스를 이용하여 멀웨어를 탐색하고, 일단 운영 체제에 의해 제공되는 서비스들이 이용가능해지면 단지 컴퓨터를 보호만 할 수 있다. 그 결과, 운영 체제의 서비스들이 이용가능해 지기 전에, 컴퓨터의 운영 체제 또는 기타 낮은 수준의 컴포넌트를 감염시키는 루트키트는 멀웨어의 특징인 데이터를 숨길 수 있다. 본 발명의 일 실시예에서는, 운영 체제에 의해 제공되는 서비스들이 이용가능해지기 전에 멀웨어를 식별할 수 있게 하는 부팅 탐지 모듈(210)이 제공된다. 부팅 탐지 모듈(210)의 각종 양상들은 도 4에 관련하여 이하에서 상세히 기술될 것이므로, 여기서는 더 이상 부팅 탐지 모듈(210)에 대해 상세히 기술하지 않기로 한다. 그러나, 일반적으로 기술하자면, 부팅 탐지 모듈(210)은 조사 엔진(208)을 메모리 내로 로딩시켜 부팅 프로세스 동안 실행되도록 하게 한다. 멀웨어가 식별되면, 멀웨어를 컴퓨터로부터 제거할 수 있거나, 멀웨어를 격리시킬 수 있으므로, 일단 컴퓨터가 부팅되어지면 바이러스 방지 소프트웨어는 감염을 처리할 수 있다.
도 2에 도시된 바와 같이, 컴퓨터(200)는 또한 컴퓨터 메모리 내의 데이터가 멀웨어의 특징인지를 판정하는 조사 엔진(208)을 포함한다. 조사 엔진(208)은 현존하거나 아직은 개발되어 있지 않은 기술들 중 임의 기술을 사용하여 운영 체제(204)에 의해 제공되는 서비스들이 이용가능해 지기 전에 실행을 시작하는 멀웨어를 식별할 수 있다. 이런 점에서, 조사 엔진(208)은 무결성 검사를 채용하여 운 영 체제를 구현하는 프로그램 코드가 운영 체제 제공자 등의 신뢰된 엔티티에 의해 디지털적으로 서명되었는지를 검증한다. 또한, 조사 엔진(208)은 예시치 않은 위치에서의 점프 명령, 은폐된 프로세스, 운영 체제(204)에 할당된 범위 외에 있는 메모리 어드레스에 대한 참조, 등의 의심스러운 활동들을 탐색할 수 있다. 예를 들어, 일부 운영 체제는 때때로 프로세스 테이블이라 칭하는 데이터 구조를 현재 실행중인 프로그램 목록과 함께 유지한다. 프로세스 테이블 또는 유사한 데이터 구조로부터 항목을 제거시키는 것은 루트키트가 존재한다는 강한 경험적 접근 표시자일 수 있다. 또한, 조사 엔진(208)은 부팅 환경에서 전통적인 시그너처-기반 기술을 채용하여 멀웨어를 탐지할 수 있다. 이런 점에서, 멀웨어를 구현하는 파일 데이터는 그 데이터 내의 패턴들을 멀웨어의 "시그너처"라 칭하는 것에 매칭시킴으로써 식별될 수 있다. 이 예에서, 멀웨어를 구현하는 것으로 알려진 데이터, 또는 그 데이터의 특징적인 부분집합은 그 데이터를 멀웨어를 고유하게 식별하는 시그너처로 변환시키는 함수에 의해 처리된다. 일단 멀웨어에 대한 시그너처가 이용가능하게 되면, 조사 엔진(208)은 매칭을 위해 메모리 내의 데이터를 탐색할 수 있다.
당업자 및 기타 사람들에게 알려진 바와 같이, 도 2는 본 발명의 양상들을 구현할 수 있는 한 컴퓨터(200)의 단순화된 일례이다. 컴퓨터(200)의 실제 실시예들은 도 2에 도시되지 않거나 첨부된 텍스트에 기술된 추가의 컴포넌트들을 가질 것이다. 또한, 도 2는 부팅 환경에서 멀웨어에 대한 탐색을 수행할 수 있는 한 컴포넌트 아키텍처를 도시한다. 이와 같이, 도 2에 도시된 소프트웨어 컴포넌트들은 제한적이 아닌 예시적인 것으로 해석되어야 한다.
지금부터 도 3을 참조하면서, 컴퓨터를 부팅할 때 수행되는 이벤트들을 도시하는 예시적인 타임라인(300)에 대해 기술하기로 한다. 당업자 및 다른 사람들은 타임라인(300)이 컴퓨터 시동 시에 발생할 수 있는 이벤트들의 전반적이며 비독점적인 집합의 고도로 단순화된 일례인 것을 인식할 것이다. 다른 실시예에서는, 추가 또는 더 적은 이벤트들이 발생할 수 있거나, 이벤트들은 후술할 기재와는 다른 순서로 발생될 수 있다. 따라서, 도 3에 도시된 타임라인(300)은 단지 예시 목적으로 이해되어야 한다.
도 3에 도시된 바와 같이, 이벤트(302)에서 전원이 "온"으로 전환되어 전력이 컴퓨터에 공급된다. 충분한 전력이 가용되면, 이벤트(304)에서 CPU는 BIOS(Basic Input/Output System) 코드를 실행하기 시작한다. BIOS 코드는 컴퓨터가 컴퓨터의 하드웨어를 초기화시키는 함수들을 수행할 수 있게 하는 컴퓨터 명령어들을 포함한다. 전형적으로, 일단 컴퓨터에 전력이 공급되면, 컴퓨터의 BIOS는 POST(Power-On Self Test)로 통상 참조되는 하드웨어 검사를 행하여 지원 하드웨어가 존재하고 올바르게 작동하는지를 판단한다. 당업자 및 다른 사람들은 BIOS가 낮은 수준의 입력/출력 제어를 제공한다는 것을 인식할 것이다. 예를 들어, 퍼스널 컴퓨터에서, BIOS는 키보드, 디스플레이 화면, 디스크 드라이브를 제어하고, 기본 입력/출력("I/O")을 수행하는 데 필요한 컴퓨터 명령어들 및 기타 갖가지 기능들을 포함한다.
이벤트(306)에서, BIOS 내의 명령어들은 운영 체제 로더에 대해 직접적인 제어를 행한다. 전형적으로, 운영 체제 로더는 하드웨어 탐지를 수행하고, 운영 체 제를 컴퓨터의 휘발성 메모리, 예컨대, 랜덤 액세스 메모리(RAM) 장치 뱅크 내로 로딩하여, 운영 체제의 초기화를 시작한다. 이벤트(307)에서, 운영 체제 "커널"이 로딩되어 다른 컴포넌트들에 서비스들을 제공하도록 이용될 수 있다. 이런 점에서, 이벤트(308)에서, I/O 관리자로서 알려진 운영 체제의 컴포넌트의 초기화에 의해 부팅 드라이버의 로딩 및 초기화 프로세스가 개시된다. 이런 점에서, 부팅 드라이버들의 우선순위화된 목록은 I/O 관리자에 의해 어셈블되고 목록 상의 각 드라이버가 메모리 내로 로딩된다. 부팅 드라이버는 전형적으로 비디오 카드, 프린터, 디스크 드라이브 등의 하드웨어 장치의 자원들로의 최적화된 접근을 가능케하는 서비스를 제공한다. 일단 모든 부팅 드라이버가 로딩되었으면, 이벤트(310)에서, 사용자 모드 서브시스템이 런칭된다. 일반적으로 기술하자면, 사용자 모드 서브시스템은 사용자 모드 애플리케이션 공간에 지원 서비스를 제공한다. 이런 점에서, 사용자 모드 서브시스템의 런칭은 로컬 보안 기관을 확립하고, 최종에는 사용자에게 "로그인" 프롬프트를 제시하는 것을 포함한다. 이벤트(312)에서, 로그인이 수행되어 사용자 모드 서비스를 이용할 수 있게 된다. 예를 들어, SMB(Server Message Block)는 파일, 프린터, 직렬 포트, 및 로그인이 수행될 때 이용가능하게 되는 컴퓨터들 간에서의 통신 추상화를 공유하기 위한 프로토콜이다. 일단 사용자 모드 서비스가 이용가능해지면, 이벤트(314)에서, 프로그램 실행을 위해 사용자 모드 애플리케이션 공간에 접근할 수 있다. 일단 이벤트(314)에 도달되면, 범용 컴퓨터 상에서 특수 타스크를 수행하도록 설계된 프로그램들이 실행될 수 있다. 이런 점에서, 사용자 모드 애플리케이션 공간에서 실행을 위해 프로그램을 선택할 때, 운 영 체제는 선택된 프로그램에 연관된 프로그램 코드가 저장 장치(예컨대, 하드 드라이브)로부터 프로그램 코드가 CPU에 접근할 수 있는 메모리 내로 로딩되게 할 수 있다.
이하에서 더 상세히 기술될 바와 같이, 본 발명의 양상들은 멀웨어 탐색이 부팅 프로세스 동안 수행될 수 있게 한다. 보다 상세히 기술하자면, 타임라인(300) 내의 임의 수의 서로 다른 위치에서, 소프트웨어 모듈(예컨대, 조사 엔진(208))이 메모리 내로 로딩될 수 있다. 그래서, 멀웨어의 특징인 데이터에 대한 탐색이 수행될 수 있다. 이런 점에서, 부팅 프로세스 동안 실행되는 컴포넌트들은 일단 부팅 프로세스가 완료되면 컴퓨터를 보호하기 위해 전통적인 바이러스 방지 소프트웨어르 사용할 수 있을 때까지는 계속 조사될 수 있다.
컴퓨터의 구성에 따라, 본 발명의 양상들은 BIOS, 운영 체제 로더, 또는 부팅 드라이버에서 구현될 수 있다. 이런 점 및 도 3에 도시된 바와 같이, 조사 엔진(208)은 메모리 내로 로딩될 수 있어, 이벤트(304, 306 또는 310)에서 실행을 시작한다. 일반적으로 기술하자면, 멀웨어에 대한 조사는 이전 컴포넌트를 감염시킨 멀웨어가 난독화 기술을 구현할 기회를 갖지 못하게 하기 위해 부팅 프로세스에서 가능한 조기에 개시하는 바람직하다. 그러나, 멀웨어가 부팅 프로세스 동안 난독화 기술을 구현할 수 있더라도, 멀웨어가 이용할 수 있는 자원은 탐지를 피하기에 충분하지 않을 수도 있다. 이런 점에서, 부팅 환경이 제한적이며, 본 발명을 구현하는 컴퓨터 상에서 멀웨어 자체를 숨기고/숨기거나 악의적인 행위(acts)를 수행하는 멀웨어의 능력은 제한적이다.
멀웨어에 대한 보호가 제공되는 타임라인(300) 내의 위치 또는 부팅 프로세스는 컴퓨터의 구성에 따라 다를 수 있다. 예를 들어, 당업자 및 다른 사람들은 컴퓨터 벤더들 각자가 컴퓨터 상의 하드웨어를 초기화시키기 위해 다른 BIOS를 제공할 수 있다는 것을 인식할 것이다. 따라서, 컴퓨터 플랫폼에 관계없이 본 발명의 단일 구현을 제공할 수 있도록, BIOS에 의해 제공되는 서비스들은 표준화되지 않을 수도 있다. 달리 기술하자면, BIOS에 의해 제공되는 서비스들이 컴퓨터 플랫폼 전체에서 표준화되어 있으면, BIOS 내에서의 본 발명의 양상들의 구현은 더 쉽사리 수행될 수 있다. 보다 일반적으로는, 조사 엔진(208)이 메모리 내로 로딩되어 실행을 시작하는 부팅 프로세스 내의 위치는 컴퓨터의 구성 방법에 영향을 미치는 몇 가지의 요소에 따라 달라질 수 있다.
지금부터 도 4를 참조하여, 도 2에 관련하여 위에서 간략히 기술한 예시적인 부팅 탐지 모듈(210)에 대해 상세히 기술하기로 한다. 일반적으로 기술하자면, 부팅 탐지 모듈(210)은 부팅 프로세스 동안 활성화되는 루티키트 등의 멀웨어를 식별하는 방법을 제공한다. 멀웨어는 부팅 프로세스 동안 활성화됨으로써 전통적인 바이러스 방지 소프트웨어와 소통되는 데이터를 필터링하기 위한 난독화 기술을 더 쉽사리 구현할 수 있다. 초기 문제로서, 부팅 탐지 모듈(210)이 실행되기 전에, 전원이 "온"으로 전환되어 전력이 컴퓨터에 공급될 수 있다.
도 4에 도시된 바와 같이, 부팅 탐지 모듈(210)은 블록(400)에서 시작되며, 이 블록(400)에서, 현재 부팅에서 멀웨어에 대해 한 번 이상의 조사가 수행될 것인지에 대한 판정이 이루어진다. 이미 언급한 바와 같이, 컴퓨터에 전력이 공급되 면, 컴퓨터를 부팅시키는 일련의 이벤트들이 발생한다. 일 실시예에서, 부팅 탐지 모듈(210)은 컴퓨터가 부팅될 때마다 멀웨어를 조사하도록 구성될 수 있다. 그러나, 사용된 기술에 따라, 멀웨어에 대한 조사는 자원-집약적 프로세스일 수 있다. 따라서, 다른 실시예에서는, 멀웨어에 대한 조사는 컴퓨터 자원의 이용을 최소화하는 필수조건을 충족시켰는지에 기초하여 선택적으로 수행된다.
멀웨어에 대한 조사가 수행 또는 수행되지 않을 사례들을 구별하는 데 이용될 수 있는 제1 필요조건은 "의심스러운" 활동에 대한 식별이다, 바이러스 방지 소프트웨어는 멀웨어의 특징일 수 있는 활동을 식별할 수 있지만, 멀웨어 감염이 존재한다고 명확하게 선언하기에는 불충분한 정보를 가질 수 있다. 이런 사례에서, 컴퓨터 또는 컴퓨터 네트워크는 멀웨어에 대한 광범위한 탐색이 행해지는 강화된 상태로 이행할 수 있다. 강화된 상태로의 이행은 멀웨어에 대한 조사가 컴퓨터의 각 부팅 동안 수행되게 할 수 있다. 이런 점에서, 의심스러운 활동이 식별되면 부팅 전체에 걸쳐 지속되는 변수(variable)를 설정하여 멀웨어에 대한 조사가 컴퓨터 시동 시에 수행될 것임을 나타낼 수 있다. 이 사례에서는, 부팅 탐지 모듈(210)이 변수의 값을 검사하여, 블록(400)에서 멀웨어에 대한 조사가 수행될 것인지를 판단한다.
조사가 수행될 것인지 아닌지의 사례를 구별하는 데 이용될 수 있는 또 다른 필요조건은 사용자 입력에 기초한다. 이런 점에서, 멀웨에 대한 조사가 부팅 프로세스 동안 수행되게 하는 입력을 사용자가 발생할 수 있게 하는 콘트롤을 바이러스 방지 소프트웨어에 통합시킬 수 있다. 또한, 부팅 프로세스 동안 사용자는 조사가 수행되어야 하는가에 관한 입력을 제공하도록 촉구받을 수 있다. 상술한 기재와 마찬가지로, 적절한 사용자 입력을 수신하면 지속되는 변수가 설정되어 조사가 수행될 것임을 나타낼 수 있다.
추가 예로서, 멀웨어에 대한 조사는 의심스러운 활동을 식별 또는 사용자 입력의 수신 없이도 자동으로 스케줄링될 수 있다. 이런 점에서, 본 발명의 양상들은 규칙적인 간격으로, 예를 들어, 컴퓨터가 부팅되는 매 5회, 또는 다른 임의로 설정된 값으로 멀웨어에 대한 조사를 수행하도록 구성될 수 있다. 또한, 멀웨어에 대한 조사가 발생할 것인지에 대한 판단은 랜덤하게 행해질 수 있다. 예를 들어, 당업자 및 다른 사람들은 APIC(Advanced Programmable Interrupt Controller) 등의 하드웨어 장치를 이용하여 랜덤 값을 생성할 수 있다는 것을 인식할 것이다. 이런 점에서, 멀웨어에 대한 조사가 현재 부팅 시에 수행될 것인지에 대한 판단은 이 값에 기초할 수 있다. 블록(400)에서 멀웨어에 대한 조사가 적절한 필요조건을 충족시키지 못했으므로 수행되지 않을 것이라고 판단하면, 부팅 탐지 모듈(210)은 블록(414)으로 진행하여, 거기서 종료한다. 반대로, 멀웨어에 대한 조사가 수행될 것이라고 판단되면, 부팅 탐지 모듈(210)은 블록(402)으로 진행한다.
블록(402)에서, 조사 엔진(208)(도 2)은 초기화되고, 부팅 프로세스에서 소정의 위치에서 실행을 시작한다. 이미 언급한 바와 같이, 본 발명의 양상들은 컴퓨터가 부팅 중일 때 잠재적으로 사로 다른 위치에서 멀웨어에 대한 탐색을 시작할 수 있다. 이런 점에서, 본 발명을 구현하는 프로그램 코드는 BIOS, 운영 체제 로더 또는 부팅 드라이버 내에 통합될 수 있다. 결과적으로, 블록(402)에서의 조사 엔진(208)의 초기화는 타임라인(300)(도 3)의 서로 다른 위치에서 발생할 수 있다. 또한, 조사 엔진(208)의 초기화는 이것이 통합되는 컴포넌트 내에서의 최고 우선순위를 할당받을 수 있거나, 전형적으로는 할당받을 것이다. 예를 들어, 이미 언급한 바와 같이, 우선순위화된 목록은 부팅 드라이버를 초기화하는 순서를 식별하는 데 이용된다. 조사 엔진(208)이 부팅 드라이버에 의해 초기화되면, 그 부팅 드라이버는 다른 부팅 드라이버에 비해 최고 우선순위를 할당받는다. 결과적으로, 후속하여 초기화되는 부팅 드라이버들은 그들이 메모리 내로 로딩될 때 멀웨어에 대한 조사를 받는다. 이와 같이 하여, 부팅 프로세스 동안 멀웨어 그 자체를 숨길 수 있는 가능성은 최소화된다.
도 4에 도시된 바와 같이, 블록(404)에서, 부팅 탐지 모듈(210)은 조사 이벤트가 발생할 때까지 남아 있는다. 일 실시예에서, 멀웨어에 대한 조사는 조사 엔진(208)이 초기화되자마자 자동으로 수행된다. 그러나, 부팅 프로세스 동안 멀웨어에 대한 추가 조사가 수행되게 하는 조사 이벤트들이 정의될 수 있다. 기존의 바이러스 방지 소프트웨어 에 의해 수행되는 "접근 중(on-access)" 조사와 마찬가지로, 부팅 프로세스 동안 메모리 내로 로딩된 소프트웨어의 각 부분은 실행 허용 전에 조사 엔진(208)에 의해 조사될 수 있다. 예를 들어, 각 부팅 드라이버가 이벤트(310)에서 메모리 내로 로딩될 때, 조사 이벤트가 발생되어 부팅 드라이버는 멀웨어에 대한 조사를 받게 된다. 또한, 당업자 및 다른 사람들은 일단 조사 엔진(208)이 초기화되면 청구된 요지의 범위를 벗어나지 않는 한 조사 이벤트들이 다른 사례에서 발생될 수 있다는 것을 인식할 것이다.
조사 이벤트가 식별되면, 블록(406)에서 부팅 탐지 모듈(210)은 멀웨어에 대한 조사가 행해지도록 하게 한다. 도 2에 관련하여 앞에서 간략히 기술한 바와 같이, 현존하는 임의 기술 또는 아직은 개발되어 있지 않은 임의 기술을 이용하여 멀웨어에 대한 조사를 탐색할 수 있다. 이런 점에서, 조사 엔진(208)은 무결정 검사를 실행하여, 운영 체제에 할당된 메모리 어드레스 공간 내의 프로그램 코드가 신뢰된 엔티티로부터 나왔는가를 판단한다. 또한, 무결성 검사 이외에, 그 조사에서 시그너처-기반 기술 및/또는 "의심스러운 변경"에 대한 탐색을 수행할 수 있다는 것이 예기된다.
일 실시예에서, 블록(406)에서 수행된 조사는 알려진 멀웨어의 부분집합을 탐색한다. 이미 언급한 바와 같이, 멀웨어에 대한 조사는 자원-집약적 프로세스일 수 있다. 더욱이, 조사를 수행할 때 조사 엔진(208)에 의해 요청되는 서비스들은 비-부팅 환경과 비교하여 부팅 환경에서는 신속하게 충족될 수 없을 수 있다. 이런 점에서, 부팅 환경에서 알려진 모든 멀웨어에 대해 조사를 수행하는 것은 사용자 경험에 부정적인 영향을 미칠 수 있다. 따라서, 블록(406)에서, 조사는 부팅 환경에서 실행 개시 가능성이 가장 높은 멀웨어 유형(예컨대, 루트키트)을 식별하도록 수행될 수 있다. 그러나, 당업자 및 다른 사람들은 이는 단지 최적화 기술로서 청구된 요지를 제한시키려는 것으로 해석되어서는 안 된다는 것을 인식할 것이다. 그 후, 블록(408)에서 블록(406)에서 수행된 조사의 결과로서 멀웨어를 식별하였는가에 관한 판단이 이루어진다. 만약 멀웨어가 식별되지 않았으면, 부팅 탐지 모듈(210)은 후술할 블록(412)으로 진행한다. 반대로, 멀웨어 감염이 식별되었 으면, 부팅 탐지 모듈(210)은 블록(410)으로 진행한다.
도 4에 도시된 바와 같이, 블록(410)에서, 부팅 탐지 모듈(210)은 멀웨어 감염을 처리한다. 블록(410)에 도달하면, 부팅 프로세스 동안 멀웨어의 데이터 특징은 식별되었다. 일 실시예에서, 블록(412)에서의 감염 처리는 프로세스 삭제(kill), 파일 삭제, 멀웨어에 관련된 구성 파일에서의 항목들 제거 등에 의해 컴퓨터로부터의 멀웨어 제거 시도를 포함한다. 그러나, 부팅 환경에서 이용가능한 자원들은 제한적이므로, 블록(412)에서의 멀웨어의 모든 컴포넌트들을 성공적으로 제거시키는 것은 곤란할 수 있거나 불가능할 수 있다. 예를 들어, 일부 멀웨어는 멀웨어의 자원(예컨대, 파일, 프로세스, 구성 파일에서의 항목들, 등)을 모니터링하는 자체-보존 기술을 구현한다. 멀웨어 제거 시도가 식별되면, 멀웨어의 자원을 보존하고 감염을 유지하도록 설계된 기능이 수행된다. 따라서, 멀웨어 감염의 처리는 또한 부팅 환경에서 활성인 멀웨어의 컴포넌트의 "격리"를 포함할 수 있다. 이런 점에서, 멀웨어에 대한 자리 표시자(placeholder)로서 "스텁(stub)" 모듈을 사용할 수 있다. 예를 들어, 스텁 모듈은 멀웨어 프로세스를 유지하고, 호출 중인 것에 응답하여 유효 데이터를 수용 및/또는 반환, 또는 멀웨어 자체-보존 기술의 촉발(triggering)을 방지하기 위한 임의 다른 작업을 수행하도록 구성될 수 있다. 이 실시예에서, 멀웨어가 격리될 경우, 데이터는 전형적으로 일단 컴퓨터가 부팅되면 실행되는 바이러스 방지 소프트웨어와 소통되어 멀웨어의 모든 컴포넌트들이 제거될 수 있다.
도 4에 도시된 바와 같이, 블록(412)에서, 컴퓨터가 성공적으로 부팅되는가 에 관한 판단이 행해진다. 이미 언급한 바와 같이, 본 발명의 양상들은 전통적인 바이러스 방지 소프트웨어가 보호를 제공할 수 있기 전에, 부팅 환경에서 활성화되는 멀웨어를 식별한다. 그러나, 일단 부팅 프로세스가 완료되면, 전통적인 바이러스 방지 소프트웨어가 이용할 수 있게 된다. 본 발명에 의한 기능은 부팅 프로세스가 다시 개시될 때까지는 휴면 상태이다. 부팅 프로세스가 완료되면, 부팅 탐지 모듈(210)은 블록(414)으로 진행하여, 거기서 종료한다. 그러나, 블록(412)에서 부팅 프로세스가 완료되지 않은 것으로 판단하면, 부팅 탐지 모듈(210)은 블록(404)으로 복귀하여, 부팅 프로세스가 완료될 때까지 블록(404 내지 412)을 반복한다.
비록 예시된 실시예들이 도시 및 기술되었지만, 본 발명의 사상 및 범주를 벗어나지 않는 한 각종 변형 실시예가 이루어질 수 있다는 것을 인식할 수 있을 것이다.

Claims (20)

  1. 컴퓨터 시동 시에 부팅 프로세스를 채용하는 컴퓨터(200)에서, 상기 부팅 프로세스 동안 활성화되는 멀웨어를 식별하는 컴퓨터 구현 방법에 있어서,
    (a) 멀웨어에 대한 조사를 수행하도록 구성된 소프트웨어 모듈이 상기 부팅 프로세스 동안 초기화되도록 하게 하는 단계(402), 및
    (b) 조사 이벤트의 발생을 식별하는 단계(404)
    를 포함하며,
    상기 식별하는 단계에 응답하여
    (i) 상기 소프트웨어 모듈이 멀웨어의 특징인 데이터에 대해 컴퓨터(200)의 메모리를 조사하게 하는 단계(406), 및
    (ii) 멀웨어의 데이터 특징이 식별되면, 상기 멀웨어 감염을 처리하는 단계(410)
    를 포함하는 멀웨어를 식별하는 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    멀웨어에 대한 조사를 수행하도록 구성된 상기 소프트웨어 모듈은 BIOS가 실행되는 상기 부팅 프로세스의 단계에서 초기화되는 멀웨어를 식별하는 컴퓨터 구현 방법.
  3. 제1항에 있어서,
    멀웨어에 대한 조사를 수행하도록 구성된 상기 소프트웨어 모듈은 운영 체제 로더가 실행되는 상기 부팅 프로세스의 단계에서 초기화되는 멀웨어를 식별하는 컴퓨터 구현 방법.
  4. 제1항에 있어서,
    멀웨어에 대한 조사를 수행하도록 구성된 상기 소프트웨어 모듈은 부팅 드라이버에서 구현되는 멀웨어를 식별하는 컴퓨터 구현 방법.
  5. 제1항에 있어서,
    멀웨어에 대한 조사는 필요조건을 충족시킬 경우 컴퓨터 시동 시에 선택적으로 수행되는 멀웨어를 식별하는 컴퓨터 구현 방법.
  6. 제5항에 있어서,
    사용자 입력은 현재 부팅 동안 조사가 수행될 것인가를 판단하는 데 이용되는 필요조건인 멀웨어를 식별하는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    멀웨어에 대한 조사는 규칙적으로 스케줄링된 상기 컴퓨터(200)의 부팅 시에 선택적으로 수행되는 멀웨어를 식별하는 컴퓨터 구현 방법.
  8. 제1항에 있어서,
    멀웨어에 대한 조사는 랜덤하게 스케줄링된 상기 컴퓨터(200)의 부팅 시에 수행되는 멀웨어를 식별하는 컴퓨터 구현 방법.
  9. 제1항에 있어서,
    상기 소프트웨어 모듈이 멀웨어의 특징인 데이터에 대해 컴퓨터(200)의 메모리를 조사하게 하는 단계는 메모리 내의 데이터를 멀웨어에 관련된 시그너처들과 비교하는 단계를 포함하는 멀웨어를 식별하는 컴퓨터 구현 방법.
  10. 제1항에 있어서,
    상기 소프트웨어 모듈이 멀웨어의 특징인 데이터에 대해 컴퓨터(200)의 메모리를 조사하게 하는 단계(406)는 무결성 검사를 행하여, 운영 체제에 할당된 메모리 공간 내의 프로그램 코드가 신뢰된 엔티티로부터 나온 것인지를 판단하는 멀웨어를 식별하는 컴퓨터 구현 방법.
  11. 제1항에 있어서,
    상기 조사는 부팅 환경에서 활성화되 쉬운 알려진 모든 멀웨어의 부분집합을 식별하도록 구성되는 멀웨어를 식별하는 컴퓨터 구현 방법.
  12. 제1항에 있어서,
    상기 멀웨어 감염을 처리하는 단계(410)는 프로세스들을 삭제하고, 파일들을 삭제하고, 상기 멀웨어에 관련되는 구성 파일들 내의 항목들을 제거하는 단계를 포함하는 멀웨어를 식별하는 컴퓨터 구현 방법.
  13. 제1항에 있어서,
    상기 멀웨어 감염을 처리하는 단계(410)는 멀웨어 자체-보존 기술의 촉발(triggering)을 방지하도록 자리 표시자(placeholder)로서 스텁(stub) 모듈을 이용하는 단계를 포함하는 멀웨어를 식별하는 컴퓨터 구현 방법.
  14. 컴퓨터(200)의 시동 시에 부팅 환경을 구현하는 컴퓨터(200)에서 실행될 때, 상기 컴퓨터(200)가 멀웨어에 의해 감염되어 있는가를 판단하는 방법을 수행하는 컴퓨터(200) 판독가능 명령어들을 포함한 컴퓨터-판독가능 매체로서, 상기 방법은
    (a) 멀웨어 조사 엔진(208)을 상기 부팅 환경의 컴포넌트 내로 통합시키는 단계,
    (b) 현재 부팅 동안 멀웨어에 대한 조사가 수행될 것인지를 판단하는 단계(404), 및
    (c) 현재 부팅 동안 멀웨어에 대한 조사가 수행될 것이라고 판단되면, 상기 조사 엔진(208)으로 하여금 멀웨어에 대한 상기 부팅 환경의 컴포넌트를 탐색하게 하도록 하는 단계
    를 포함하는 컴퓨터-판독가능 매체.
  15. 제14항에 있어서,
    상기 멀웨어 조사 엔진(208)은 BIOS, 운영 체제 로더, 또는 부팅 드라이버 내로 통합되는 컴퓨터-판독가능 매체.
  16. 제14항에 있어서,
    멀웨어에 대한 조사가 현재 부팅 동안 수행될 것인지를 판단하는 단계(404)는 프롬프트에 응답하는 사용자 입력을 수신함에 의해 행해지는 컴퓨터-판독가능 매체.
  17. 제14항에 있어서,
    상기 조사 엔진(208)이 멀웨어에 대한 상기 부팅 환경의 컴포넌트들을 탐색하게 하는 단계(406)는 루트키트(RootKit)의 특징인 의심스러운 활동들을 탐색하는 단계를 포함하는 컴퓨터-판독가능 매체.
  18. 제17항에 있어서,
    루트키트의 특징인 의심스러운 활동 탐색을 수행하는 단계는
    (a) 예기치 않은 위치들에서의 점프 명령을 식별하는 단계,
    (b) 숨겨진 프로세스를 식별하는 단계, 및
    (c) 운영 체제(104)에 할당된 범위 외에 있는 메모리 어드레스에 대한 참조를 식별하는 단계
    를 포함하는 컴퓨터-판독가능 매체.
  19. 부팅 환경에서 멀웨어를 식별하는 컴퓨터-실행가능 컴포넌트들을 갖는 컴퓨터-판독가능 매체로서,
    (a) 멀웨어의 특징인 데이터에 대해 컴퓨터 메모리를 탐색하도록 구성된 조사 컴포넌트(208),
    (b) 부팅 프로세스 동안 상기 조사 컴포넌트를 초기화시키는 부팅 탐지 컴포넌트(210), 및
    (c) 상기 조사 컴포넌트가 알려진 멀웨어의 부분집합에 대해 메모리를 탐색하게 하는 최적화 컴포넌트
    를 포함하는 컴퓨터-판독가능 매체.
  20. 제19항에 있어서,
    상기 부팅 탐지 컴포넌트는 또한 멀웨어 프로그램 코드를 스텁 모듈로 교체함으로써 멀웨어 감염을 처리하도록 구성되는 컴퓨터-판독가능 매체.
KR1020087031665A 2006-06-30 2007-02-21 멀웨어를 식별하는 컴퓨터 구현 방법 및 컴퓨터 판독가능 매체 KR20090023644A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/480,774 US20080005797A1 (en) 2006-06-30 2006-06-30 Identifying malware in a boot environment
US11/480,774 2006-06-30

Publications (1)

Publication Number Publication Date
KR20090023644A true KR20090023644A (ko) 2009-03-05

Family

ID=38878431

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087031665A KR20090023644A (ko) 2006-06-30 2007-02-21 멀웨어를 식별하는 컴퓨터 구현 방법 및 컴퓨터 판독가능 매체

Country Status (6)

Country Link
US (1) US20080005797A1 (ko)
EP (1) EP2038753A4 (ko)
JP (1) JP2009543186A (ko)
KR (1) KR20090023644A (ko)
CN (1) CN101479709B (ko)
WO (1) WO2008005067A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101412202B1 (ko) * 2012-12-27 2014-06-27 주식회사 안랩 적응적 악성 진단 및 치료 수행장치 및 적응적 악성 진단 및 치료 수행방법
KR20190082658A (ko) * 2018-01-02 2019-07-10 윈본드 일렉트로닉스 코포레이션 코드 서명의 조건부 권한 설정에 기반한 보안 클라이언트 인증

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8112801B2 (en) * 2007-01-23 2012-02-07 Alcatel Lucent Method and apparatus for detecting malware
US8495741B1 (en) * 2007-03-30 2013-07-23 Symantec Corporation Remediating malware infections through obfuscation
US8225394B2 (en) * 2007-04-13 2012-07-17 Ca, Inc. Method and system for detecting malware using a secure operating system mode
US7917952B1 (en) * 2007-10-17 2011-03-29 Symantec Corporation Replace malicious driver at boot time
US8370941B1 (en) * 2008-05-06 2013-02-05 Mcafee, Inc. Rootkit scanning system, method, and computer program product
KR101580347B1 (ko) * 2008-06-19 2015-12-24 인터디지탈 패튼 홀딩스, 인크 최적화된 서빙 듀얼 셀 변경
US8904536B2 (en) 2008-08-28 2014-12-02 AVG Netherlands B.V. Heuristic method of code analysis
US8544089B2 (en) * 2009-08-17 2013-09-24 Fatskunk, Inc. Auditing a device
US8949989B2 (en) 2009-08-17 2015-02-03 Qualcomm Incorporated Auditing a device
US9087188B2 (en) 2009-10-30 2015-07-21 Intel Corporation Providing authenticated anti-virus agents a direct access to scan memory
US8417962B2 (en) * 2010-06-11 2013-04-09 Microsoft Corporation Device booting with an initial protection component
US8479292B1 (en) * 2010-11-19 2013-07-02 Symantec Corporation Disabling malware that infects boot drivers
CN101976319B (zh) * 2010-11-22 2012-07-04 张平 基于行为特征的BIOS固件Rootkit检测方法
US8572742B1 (en) * 2011-03-16 2013-10-29 Symantec Corporation Detecting and repairing master boot record infections
US8863283B2 (en) 2011-03-31 2014-10-14 Mcafee, Inc. System and method for securing access to system calls
US8925089B2 (en) 2011-03-29 2014-12-30 Mcafee, Inc. System and method for below-operating system modification of malicious code on an electronic device
US8966624B2 (en) 2011-03-31 2015-02-24 Mcafee, Inc. System and method for securing an input/output path of an application against malware with a below-operating system security agent
US9032525B2 (en) 2011-03-29 2015-05-12 Mcafee, Inc. System and method for below-operating system trapping of driver filter attachment
US9087199B2 (en) 2011-03-31 2015-07-21 Mcafee, Inc. System and method for providing a secured operating system execution environment
US8813227B2 (en) 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
US8959638B2 (en) 2011-03-29 2015-02-17 Mcafee, Inc. System and method for below-operating system trapping and securing of interdriver communication
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US8966629B2 (en) * 2011-03-31 2015-02-24 Mcafee, Inc. System and method for below-operating system trapping of driver loading and unloading
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US9239910B2 (en) * 2011-04-04 2016-01-19 Markany Inc. System and method for preventing the leaking of digital content
CN102867148B (zh) * 2011-07-08 2015-03-25 北京金山安全软件有限公司 一种电子设备的安全防护方法及装置
CN103617069B (zh) * 2011-09-14 2017-07-04 北京奇虎科技有限公司 恶意程序检测方法和虚拟机
RU2472215C1 (ru) 2011-12-28 2013-01-10 Закрытое акционерное общество "Лаборатория Касперского" Способ выявления неизвестных программ с использованием эмуляции процесса загрузки
US9110595B2 (en) 2012-02-28 2015-08-18 AVG Netherlands B.V. Systems and methods for enhancing performance of software applications
US20130239214A1 (en) * 2012-03-06 2013-09-12 Trusteer Ltd. Method for detecting and removing malware
KR101643072B1 (ko) * 2012-03-30 2016-08-10 인텔 코포레이션 인터넷 이용 가능 컴퓨팅 노드에 대한 불변 안티바이러스 페이로드의 제공
US8918879B1 (en) * 2012-05-14 2014-12-23 Trend Micro Inc. Operating system bootstrap failure detection
US9317687B2 (en) * 2012-05-21 2016-04-19 Mcafee, Inc. Identifying rootkits based on access permissions
CN102867141B (zh) * 2012-09-29 2016-03-30 北京奇虎科技有限公司 对主引导记录恶意程序进行处理的方法及装置
US20140244191A1 (en) * 2013-02-28 2014-08-28 Research In Motion Limited Current usage estimation for electronic devices
US9058488B2 (en) 2013-08-14 2015-06-16 Bank Of America Corporation Malware detection and computer monitoring methods
US9519775B2 (en) * 2013-10-03 2016-12-13 Qualcomm Incorporated Pre-identifying probable malicious behavior based on configuration pathways
US9213831B2 (en) 2013-10-03 2015-12-15 Qualcomm Incorporated Malware detection and prevention by monitoring and modifying a hardware pipeline
US10055587B2 (en) 2013-12-23 2018-08-21 The Trustees Of Columbia University In The City Of New York Implementations to facilitate hardware trust and security
CN104008340B (zh) * 2014-06-09 2017-02-15 北京奇虎科技有限公司 病毒查杀方法及装置
RU2583711C2 (ru) 2014-06-20 2016-05-10 Закрытое акционерное общество "Лаборатория Касперского" Способ отложенного устранения вредоносного кода
RU2586576C1 (ru) * 2014-12-05 2016-06-10 Закрытое акционерное общество "Лаборатория Касперского" Способ выполнения обращения к процедурам загрузочного драйвера
US9420094B1 (en) * 2015-10-01 2016-08-16 Securus Technologies, Inc. Inbound calls to intelligent controlled-environment facility resident media and/or communications devices
US10893059B1 (en) 2016-03-31 2021-01-12 Fireeye, Inc. Verification and enhancement using detection systems located at the network periphery and endpoint devices
US10826933B1 (en) * 2016-03-31 2020-11-03 Fireeye, Inc. Technique for verifying exploit/malware at malware detection appliance through correlation with endpoints
CN106126291B (zh) * 2016-06-28 2019-08-13 珠海豹趣科技有限公司 一种删除恶意文件的方法、装置及电子设备
US10645107B2 (en) * 2017-01-23 2020-05-05 Cyphort Inc. System and method for detecting and classifying malware
EP3545459B1 (en) * 2017-02-01 2023-08-30 Hewlett-Packard Development Company, L.P. Intrusion detections with ambient light sensors and super input/output circuits
US10496822B2 (en) * 2017-12-21 2019-12-03 Mcafee, Llc Methods and apparatus for securing a mobile device
US20230099751A1 (en) * 2020-03-17 2023-03-30 Nec Corporation Processing apparatus, security control method, and non-transitory computerreadable medium
US11797682B2 (en) * 2021-07-14 2023-10-24 Dell Products L.P. Pre-OS resiliency

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5421006A (en) * 1992-05-07 1995-05-30 Compaq Computer Corp. Method and apparatus for assessing integrity of computer system software
US5440723A (en) * 1993-01-19 1995-08-08 International Business Machines Corporation Automatic immune system for computers and computer networks
GB2303947A (en) * 1995-07-31 1997-03-05 Ibm Boot sector virus protection in computer systems
JPH09288577A (ja) * 1996-04-24 1997-11-04 Nec Shizuoka Ltd コンピュータウイルス感染監視方法および装置
US6715074B1 (en) * 1999-07-27 2004-03-30 Hewlett-Packard Development Company, L.P. Virus resistant and hardware independent method of flashing system bios
US9213836B2 (en) * 2000-05-28 2015-12-15 Barhon Mayer, Batya System and method for comprehensive general electric protection for computers against malicious programs that may steal information and/or cause damages
US7152240B1 (en) * 2000-07-25 2006-12-19 Green Stuart D Method for communication security and apparatus therefor
US7237123B2 (en) * 2000-09-22 2007-06-26 Ecd Systems, Inc. Systems and methods for preventing unauthorized use of digital content
US7231637B1 (en) * 2001-07-26 2007-06-12 Mcafee, Inc. Security and software testing of pre-release anti-virus updates on client and transmitting the results to the server
US7827611B2 (en) * 2001-08-01 2010-11-02 Mcafee, Inc. Malware scanning user interface for wireless devices
US6792543B2 (en) * 2001-08-01 2004-09-14 Networks Associates Technology, Inc. Virus scanning on thin client devices using programmable assembly language
US7310818B1 (en) * 2001-10-25 2007-12-18 Mcafee, Inc. System and method for tracking computer viruses
US20030212821A1 (en) * 2002-05-13 2003-11-13 Kiyon, Inc. System and method for routing packets in a wired or wireless network
US20040250105A1 (en) * 2003-04-22 2004-12-09 Ingo Molnar Method and apparatus for creating an execution shield
US7549055B2 (en) * 2003-05-19 2009-06-16 Intel Corporation Pre-boot firmware based virus scanner
US20050015606A1 (en) * 2003-07-17 2005-01-20 Blamires Colin John Malware scanning using a boot with a non-installed operating system and download of malware detection files
US20050229250A1 (en) * 2004-02-26 2005-10-13 Ring Sandra E Methodology, system, computer readable medium, and product providing a security software suite for handling operating system exploitations
US7370188B2 (en) * 2004-05-17 2008-05-06 Intel Corporation Input/output scanning
US20050268112A1 (en) * 2004-05-28 2005-12-01 Microsoft Corporation Managing spyware and unwanted software through auto-start extensibility points
US20060101277A1 (en) * 2004-11-10 2006-05-11 Meenan Patrick A Detecting and remedying unauthorized computer programs
US7421244B2 (en) * 2004-12-13 2008-09-02 Broadcom Corporation Method and system for mobile receiver antenna architecture for handling various digital video broadcast channels
US7673341B2 (en) * 2004-12-15 2010-03-02 Microsoft Corporation System and method of efficiently identifying and removing active malware from a computer
US20070113062A1 (en) * 2005-11-15 2007-05-17 Colin Osburn Bootable computer system circumventing compromised instructions
US20070289019A1 (en) * 2006-04-21 2007-12-13 David Lowrey Methodology, system and computer readable medium for detecting and managing malware threats
US20080016339A1 (en) * 2006-06-29 2008-01-17 Jayant Shukla Application Sandbox to Detect, Remove, and Prevent Malware

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101412202B1 (ko) * 2012-12-27 2014-06-27 주식회사 안랩 적응적 악성 진단 및 치료 수행장치 및 적응적 악성 진단 및 치료 수행방법
KR20190082658A (ko) * 2018-01-02 2019-07-10 윈본드 일렉트로닉스 코포레이션 코드 서명의 조건부 권한 설정에 기반한 보안 클라이언트 인증

Also Published As

Publication number Publication date
EP2038753A1 (en) 2009-03-25
JP2009543186A (ja) 2009-12-03
CN101479709A (zh) 2009-07-08
EP2038753A4 (en) 2010-03-31
CN101479709B (zh) 2011-06-22
WO2008005067A1 (en) 2008-01-10
US20080005797A1 (en) 2008-01-03

Similar Documents

Publication Publication Date Title
US20080005797A1 (en) Identifying malware in a boot environment
US7853999B2 (en) Trusted operating environment for malware detection
US9760715B2 (en) Computer protection against malware affection
US8104088B2 (en) Trusted operating environment for malware detection
US8661541B2 (en) Detecting user-mode rootkits
RU2589862C1 (ru) Способ обнаружения вредоносного кода в оперативной памяти
RU2646352C2 (ru) Система и способ для применения индикатора репутации для облегчения сканирования на наличие вредоносных программ
US8590045B2 (en) Malware detection by application monitoring
US7647636B2 (en) Generic RootKit detector
RU2531861C1 (ru) Система и способ оценки вредоносности кода, исполняемого в адресном пространстве доверенного процесса
US8677491B2 (en) Malware detection
US20080016339A1 (en) Application Sandbox to Detect, Remove, and Prevent Malware
US8495741B1 (en) Remediating malware infections through obfuscation
CN110119619B (zh) 创建防病毒记录的系统和方法
Min et al. Antivirus security: naked during updates
RU2724790C1 (ru) Система и способ формирования журнала при исполнении файла с уязвимостями в виртуальной машине
US9251350B2 (en) Trusted operating environment for malware detection
RU101233U1 (ru) Система ограничения прав доступа к ресурсам на основе расчета рейтинга опасности
Min et al. A novel malware for subversion of self‐protection in anti‐virus
US8201253B1 (en) Performing security functions when a process is created
RU2583714C2 (ru) Агент безопасности, функционирующий на уровне встроенного программного обеспечения, с поддержкой безопасности уровня операционной системы
Ries Inside windows rootkits
US9342694B2 (en) Security method and apparatus
RU2592383C1 (ru) Способ формирования антивирусной записи при обнаружении вредоносного кода в оперативной памяти
Hili et al. The BIOS and Rootkits

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application