KR101701014B1 - 운영 체제에의 악성 활동 보고 - Google Patents

운영 체제에의 악성 활동 보고 Download PDF

Info

Publication number
KR101701014B1
KR101701014B1 KR1020147026665A KR20147026665A KR101701014B1 KR 101701014 B1 KR101701014 B1 KR 101701014B1 KR 1020147026665 A KR1020147026665 A KR 1020147026665A KR 20147026665 A KR20147026665 A KR 20147026665A KR 101701014 B1 KR101701014 B1 KR 101701014B1
Authority
KR
South Korea
Prior art keywords
bios
operating system
processor
handler
malicious software
Prior art date
Application number
KR1020147026665A
Other languages
English (en)
Other versions
KR20140138206A (ko
Inventor
팔사미 삭티쿠마르
빈센트 제이. 짐머
로버트 씨. 스완슨
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20140138206A publication Critical patent/KR20140138206A/ko
Application granted granted Critical
Publication of KR101701014B1 publication Critical patent/KR101701014B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs

Landscapes

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

Abstract

장치는 운영 체제에 의해 접근 가능한 메모리; 및 기본 입출력 시스템(BIOS) 핸들러를 포함한다. BIOS 핸들러는 검출된 악성 소프트웨어 활동에 응답하여, 운영 체제에게 그 활동을 보고하기 위한 데이터를 메모리에 저장한다.

Description

운영 체제에의 악성 활동 보고{REPORTING MALICIOUS ACTIVITY TO AN OPERATING SYSTEM}
악성 소프트웨어(malicious software)("멀웨어"로도 불림)는 컴퓨터에 의해 실행될 때 컴퓨터의 성능에 악영향을 미치고 및/또는 컴퓨터상에 저장된 데이터의 무결성을 손상시키는 불법 명령어들을 지칭한다. 예들로서, 악성 소프트웨어는 애플리케이션들에 접근하고; 컴퓨터 작동들을 방해하고; 컴퓨터상에 저장된 파일들을 삭제하고; 민감한 정보(예를 들어, 패스워드들 또는 기타 개인 정보)를 수집하고; 컴퓨터 사용자들의 행위들을 추적하고; 의도하지 않은 작동들을 위해 컴퓨터를 사용하고; 및 기타 등등을 할 수 있다.
악성 소프트웨어는 많은 상이한 형태들로 패키징될 수 있다. 예들로서, 악성 소프트웨어는 어느 한 컴퓨터에서 다음 컴퓨터로 자신을 복제하는 바이러스; 무해한 것으로 보여서 (예를 들어 합법적 공급자에 의해 제공된 것처럼 보여서), 그에 의해 그 악의적 의도를 위장하는 트로이 목마; 네트워크 보안을 통하여 전파되는 웜(worm); 및 기타 등등이 있다.
도 1은 예시적 구현에 따른 컴퓨터의 구성도이다.
도 2는 예시적 구현에 따라 도 1의 컴퓨터의 운영 체제에게 검출된 악성 활동을 보고하기 위한 기술을 묘사하는 흐름도이다.
도 3 및 도 4는 예시적 구현들에 따라 운영 체제에게 검출된 악성 활동을 검출하고 보고하기 위한 기술의 도해들이다.
도 5는 예시적 구현에 따른 도 1의 컴퓨터의 하드웨어 아키텍처의 구성도이다.
도 1을 참조하면, 컴퓨터(10)는, 여기 개시된 구현들에 따라, 기계 실행가능 명령어들 또는 "소프트웨어"를 실행하고, 및 그에 따라 컴퓨터(10)에 의한 악성 소프트웨어(74)의 의도하지 않은 실행 때문에 악성 활동에 노출될 수 있다. 이런 맥락에서, "악성 소프트웨어(74)"는, (비 제한적 예들로서) 컴퓨터(10)의 성능에 악영향을 미치고, 컴퓨터(10)에 의해 저장되거나 모아진 데이터에 대한 접근을 허용하고, 이를 복제하고 및/또는 오염시키고; 컴퓨터(10)상에 저장되거나 이것에 의해 접근되는 하나 이상의 파일들에 대한 접근을 허용하고, 이것을 복제하고 및/또는 변경하고; 컴퓨터(10)상에 시각적 및/또는 청각적 출력을 표시하고; 기계 실행 가능 명령어들을 오염시키고; 컴퓨터(10)의 하나 이상의 기능들에 대한 접근을 제어하고; 및/또는 컴퓨터(10)상에 저장된 데이터의 무결성을 손상시키는 활동과 같은, 컴퓨터(10)에 대한 "악성 활동" 또는 불법 활동을 야기하기 위한 목적으로 컴퓨터(10)의 하나 이상의 프로세서들(22)에 의해 실행될 수 있는 하나 이상의 불법 기계 실행 가능 명령어들을 지칭한다.
악성 소프트웨어(74)는 비 제한적 예들로서, 운영 체제 레벨에서 또는 기본 입출력 시스템(BIOS) 레벨에서와 같은 다수의 상이한 처리 레벨 중 임의의 것에서 실행될 수 있다. 악성 소프트웨어(74)는 많은 상이한 형태들 중 임의의 것으로 패키징될 수 있고, 그에 따라 애드웨어, 스파이웨어, 바이러스들, 트로이 목마들, 웜, 루트킷들, 및 기타 등등일 수 있다. 더욱이, 악성 소프트웨어(74)는 컴파일링된 기계 실행 가능 명령어들일 수 있거나 컴파일링되지 않은 기계 실행 가능 명령어들일 수 있다. 그러므로, 악성 소프트웨어(74)는 비 제한적 예들로서, 스크립트뿐만이 아니라 컴파일링된 프로그램 코드를 포함할 수 있다.
프로세서(22)는 악성 소프트웨어의 실행으로 인한 악성 활동을 검출하기 위한 여러 메커니즘들을 포함할 수 있다. 그러나, 여기 개시된 시스템들 및 기술 없이는, 프로세서에 의한 악성 활동의 검출은 운영 체제에 의해 주목되지 않은 채로 남아 있을 수 있고, 그에 따라 적절한 시정 조치에 착수하지 못할 수 있다. 비 제한적 예들로서, 운영 체제(62)에 의해 취해지는 시정 조치는, 운영 체제(62)가 악성 소프트웨어(74)를 포함하거나 삭제하는 것, 악성 소프트웨어(74)에 의해 감염된 파일들을 보수하는 것, 악성 소프트웨어(74)에 의해 감염된 데이터를 복구하는 것, 악성 소프트웨어(74)에 의해 감염된 하나 이상의 애플리케이션들을 보수하는 것, 악성 소프트웨어(74)에 관해 컴퓨터(10)의 사용자에게 알리는 것, 및 등등과 같은 악성 소프트웨어(74)에 대한 하나 이상의 조치를 (애플리케이션을 통하여 또는 직접적으로 운영 체제(62) 자체를 통하여) 취하는 것을 수반할 수 있다.
보다 상세하게는, 여기 개시된 시스템들 및 기술에 따라서, 프로세서(22)는 컴퓨터(10)의 운영 체제(62)에게 프로세서(22)에 의해 검출된 임의의 악성 활동을 보고하기 위해 자신의 시스템 관리 모드(system management mode, SMM)를 이용한다. 이러한 방식으로, 작동 과정 동안, 프로세서(22)는 때때로 SMM에 때때로 진입하고, 여기서 프로세서(22)는, 당업자가 알 수 있는 바와 같이, 운영 체제(62)의 실행을 일시 정지하고, 메모리 또는 칩셋 오류들과 관련된 시스템 이벤트들을 다루고, 열 관리 작동들을 수행하고, 보안 기능들을 수행하고, 신뢰받는 메모리와 통신하고, 및 등등과 같은 목적을 위해 컴퓨터(10)의 BIOS와 관련된 명령어들을 실행한다. 여기서 기술된 것처럼, 프로세서(22)는 컴퓨터(10)의 운영 체제(62)에게 프로세서(22)에 의해 검출된 악성 활동을 보고하기 위해 SMM에서 추가 조치를 취할 수 있다.
여기 개시된 구현들에 따라서, 프로세서(22)는, SMM에 있을 때, 운영 체제(62)에 의해 접근 가능하거나 판독 가능한 메모리(30)의 하나 이상의 악성 활동 로그들(32)에 임의의 검출된 악성 활동을 로깅(log)한다. 이러한 방식으로, 악성 활동 로그(들)(32)는 운영 체제(62)에게 임의의 악성 활동에 관해 알리고 또한 운영 체제(62)에게 검출된 악성 활동의 어드레스를 알려 주어서, 운영 체제(62)가 적절한 시정 조치를 취할 수 있도록 한다.
도 1과 연계하여 도 2를 참조하면, 여기 개시된 예시적 구현들에 따라서, 기술(80)은 컴퓨터의 BIOS에게 검출된 악성 활동을 경보하고(블록 82) 검출된 악성 활동과 관련된 하나 이상의 기계 실행 가능 명령어들의 어드레스, 또는 로케이션을 결정하기 위해 BIOS를 이용하는 것(블록 84)을 포함한다. BIOS는 운영 체제가 적절한 시정 조치를 취할 수 있도록 운영 체제에게 검출된 바이러스 활동의 로케이션을 보고하는데 사용된다(블록 86).
다시 도 1을 참조할 때, 예시적 구현들에 따라서, 컴퓨터(10)는 "물리적 기계"이며, 이는 컴퓨터가 실제 소프트웨어와 하드웨어로 만들어진 기계라는 것을 의미한다. 비 제한적 예들로서, 컴퓨터(10)는 클라이언트, 서버, 스위치, 라우터, 데스크톱 컴퓨터, 휴대용 컴퓨터, 스마트폰, 태블릿 컴퓨터, 셀룰러 전화, 이러한 장치들 중 하나 이상의 조합, 및 기타 등등일 수 있다.
보다 상세하게는, 물리적 기계인 컴퓨터(10)는 하나 이상의 프로세서들(22), 메모리(40)(예를 들어, DRAM(dynamic random access memory)), 네트워크 인터페이스(44), 및 등등과 같은 하드웨어(20)를 포함한다. 몇몇 구현들에 따라서, 프로세서(22)는 여러 기계 실행 가능 명령어들 또는 "소프트웨어"를 실행할 수 있는 하나 이상의 프로세싱 코어들(24)을 갖는 마이크로프로세서(비 제한적 예로서 Intel® Xeon® 마이크로프로세서)일 수 있다.
예시적 구현들에 따라서, 프로세서(22)는 프로세싱 코어(들)(24)를 포함하는 하나 이상의 다이들을 포함하는 집적 회로 패키지일 수 있다. 예시적 구현들에 따라서, 컴퓨터(10)상에서 실행되는 소프트웨어는 하나 이상의 애플리케이션들(66); 하나 이상의 드라이버들(68); 악성 활동 시스템 관리 인터럽트(system management interrupt, SMI) 핸들러(70)(추가로 하기 기술됨)를 포함하는 BIOS(75); 및 운영 체제(62)를 포함할 수 있다.
특정 구현에 따라, 운영 체제(62)는 "호스트" 운영 체제, 즉 컴퓨터(10)상에 설치되고 가상 환경에서 작동하지 않는 운영 체제일 수 있다; 또는 대안적으로 운영 체제(62)는 가상 환경에서 작동하는 "게스트" 운영 체제일 수 있다. 이와 관련하여, "게스트" 운영 체제는 컴퓨터(10)의 물리적 리소스들을 컴퓨터(10)의 기타 유사한 VM(virtual machine)들과 공유하는 VM과 관련될 수 있다. 이러한 물리적 리소스들은, 비 제한적 예들의 열거로서, 기계 실행 가능 명령어들(60)의 여러 구성요소들 및 하드웨어(20)를 포함한다.
더 특정적 예로서, 특정 게스트 운영 체제는, 하드웨어(20)를 포함하는 컴퓨터(10)의 물리적 리소스들의 VM들에 의한 공유를 관리하는 VMM(virtual machine monitor) 또는 "하이퍼바이저"일 수 있다. 일반적으로, VMM은 각각의 VM의 운영 체제와 컴퓨터(10)의 기본 하드웨어(20) 간에 인터페이스를 제공한다.
이 응용의 맥락 하에서, 용어 "운영 체제"는 그러므로 호스트 운영 체제뿐만 아니라 VMM과 같은 게스트 운영 체제를 지칭한다. 더욱이, 몇몇 구현들에 따라서, "운영 체제"는 tOS 또는 MVMM(Measured Virtual Machine Monitor)과 같은 신뢰받는 운영 체제일 수 있다. 컴퓨터(10)가 예시적 구현들에 따라서, 다중 운영 체체(62)(호스트 운영 체제 및 하나 이상의 게스트 운영 체제들)를 가질 수 있다는 것을 유의해야 한다.
몇몇 예시적 구현들에 따라서, 컴퓨터(10)는 메인 하이퍼바이저와 병렬로 실행되고 OEM SMM을 게스트로서 호스팅하는 것을 허용하는 하이퍼바이저인, 시스템 관리 인터럽트(SMI) 전송 모니터(STM)(73)라고 또한 불리는 피어 모니터를 포함할 수 있다. 따라서, STM(73)은 여기 개시된 대로 SMI 핸들러(70)의 경보/복구 로직을 가질 수 있고; 및 STM(73)이 OEM SMM 코드 아래에서 실행되기 때문에, STM(73)은 OEM SMM 코드보다 더 높은 우선권을 가진다. STM(73)은 CPU 판매 회사에 의해 전달될 수 있다.
프로세서(22)는 많은 방법들 중 하나로 악성 소프트웨어(74)의 실행에서 비롯된 악성 활동을 검출할 수 있다. 비 제한적 예로서, 프로세서(22)는 악성 소프트웨어(74)가 프로세서(22)의 구성 비트들(26)을 변경하려고 시도할 때를 검출함으로써 악성 활동을 검출할 수 있다. 예를 들어, 구성 비트들(26)은 칩셋 및 프로세서 구성들을 인코딩하는 프로세서(22)의 CSR(Configuration Space Register) 비트들일 수 있다. 프로세서(22)는 악성 소프트웨어(74)가 구성 비트들(26)을 변경하는 것을 방지하기 위한 "로크들(locks)"로 불리는 보안 특징을 포함할 수 있고 불법적 시도가 비트들(26)을 변경하기 위해 이루어진 때(즉, 로크들을 제거하지 않고서 구성 비트들(26)을 변경하려는 시도가 이루어진 때)를 검출하기 위해 구성 비트들(26)에 대한 시도된 접근들을 모니터링하는 로직을 추가로 포함할 수 있다. 예시적 실시예들에 따라서, 악성 소프트웨어(74)가 구성 비트들(26)을 변경하려고 시도하는 것에 응답하여, 프로세서의 로직은 이 시도에 관해 BIOS(75)에게 통지하기 위해 시스템 관리 인터럽트(SMI)를 생성함으로써 응답한다.
또 다른 비 제한적 예로서, 프로세서(22)는, SMM 동안, 지정된 SMM 메모리 영역(28)의 외부에서 명령어들을 실행하려는 시도를 검출함으로써 악성 활동을 검출할 수 있다. 이러한 방식으로, 악성 소프트웨어(74)는 SMM에서의 프로세서의 실행을 합법적 SMM 명령어들 대신에 악성 명령어들로 향하게 하려고 시도할 수 있다. 프로세서(22)는 그러한 시도된 실행을 검출하고 GPE(general protection exception)를 어써트(assert)하는 로직을 포함할 수 있는데, 이 GPE는 이후 현재 세션이 SMM으로부터 리턴(RSM)한 후 그러한 시도에 관해 BIOS(75)에게 통지하도록 SMI를 트리거링한다. 이러한 방식으로, 예시적 구현들에 따라서, RSM시에, 프로세서(22)는 SMI를 처리하기 위해 SMM으로 리턴한다.
몇몇 구현들에 따라서, 컴퓨터(10)는 악성 활동의 검출에 응답하여 SMI 핸들러(70)(즉, BIOS 핸들러)를 호출(invoke)한다. 일반적으로, SMI 핸들러(70)는 BIOS(75)의 일부이고, 운영 체제(62)에게 검출된 악성 활동을 보고한다. 보다 상세하게는, 예시적 구현들에 따라서, 핸들러(70)는 악성 소프트웨어(74)의 어드레스를 결정하고, 악성 활동 로그(32)에 어드레스를 로깅(log)하고, 운영 체제 코드의 실행이 재개될 때 로그(32)를 체크하도록 운영 체제(62)에게 경보하는 신호를 어써트한다. 이러한 방식으로, 프로세서(22)가 SMM으로부터 리턴하고 운영 체제 명령어들을 실행하기를 재개할 때, 운영 체제(62)의 핸들러(64)는 신호에 응답하고 로그(32)를 판독하는데, 이는 검출된 악성 활동뿐만 아니라 악성 소프트웨어(74)의 어드레스를 운영 체제(62)에게 알려서 운영 체제(62)가 적절한 시정 조치를 취할 수 있도록 한다.
예시적 구현들에 따라서, 메모리(30)는, 프로세서(22)의, 하나 이상의 레지스터들과 같은 프로세서(22)의 eMCA(enhanced Machine Check Architecture) 메모리이다. 일반적으로, eMCA 메모리는, 프로세서(22)가 SMM으로부터 리턴할 시에 운영 체제(62)가 SMM에 의해 식별된, 하드웨어 및/또는 소프트웨어 오류들을 식별하기 위한 목적으로 eMCA 메모리(30)를 판독함에 따라, SMM에 의해 소프트웨어 및 하드웨어 오류들을 로깅하는 것과 같은 기타 목적을 위해 사용되는 오류 상태 뱅크들을 포함한다. 여기 개시된 예시적 기술 및 시스템에 따라서, eMCA 메모리(30)는 임의의 검출된 악성 활동을 상세화하는 로그(32)를 추가로 포함한다.
더 특정한 예로서, 도 3은 검출된 악성 활동에 응답하여 컴퓨터(10)가 취하는 조치들의 도해(100)를 묘사한다. 도 1과 연계하여 도 3을 참조하면, 본 예에 대해, 프로세서(22)는 SMM에 있고 실행 경로(106)를 따라 SMM 명령어들(104)를 실행하고 있을 때에 프로세서의 실행을 SMM 명령어 영역(28)의 외부에 위치해 있는 악성 명령어들(110)로 전환시키기 위한 시도가 이루어진다(경로(108)에 의해 도해된 바와 같이). 프로세서(22)는 이 시도를 검출하고, 그에 대응하여 GPE(general protection exception)(111)를 생성하고, 이는 GPE 핸들러(112)를 호출한다. 일반적으로, GPE 핸들러(112)는 악성 명령어들(110)의 어드레스 또는 로케이션을 저장하는 메모리 또는 스택을 이용한다. GPE 핸들러(111)는 SMI(114)을 추가로 생성하는데, 이것은 SMI 핸들러(70)를 호출한다.
SMI 핸들러(70)는, GPE 핸들러(112)의 스택에 저장된 로케이션에 의해 표시된 것처럼, 악성 명령어들(110)의 로케이션을 포함하는 로그(32)를 메모리(30)에 생성한다. SMI 핸들러(70)는 이후 진행하여(124) 종료(exit)하고, 종료시에, 핸들러는 운영 체제(62)에게 메모리(30)를 체크하도록 경보한다(130).
비 제한적 예로서, 몇몇 구현들에 따라서, 바이러스 SMI 핸들러(70)는 SMM 종료시에 MCA 인터럽트를 생성하기 위해 "SIGNAL_MCE"로 불리는 신호를 어써트한다. MCA 인터럽트는 다음 차례로, 운영 체제 명령어들의 실행이 재개될 때 운영 체제(62)가 메모리(30)를 체크하게 한다. 비 제한적 예로서, SIGNAL_MCE 신호는 몇몇 구현들에 따라서 프로세서(22)의 레지스터 비트에 의해 설정될 수 있다. 그러므로, SIGNAL_MCE 신호의 어써트에 응답하여, 핸들러(64)가 호출되고, 이것은 로그(32)를 통해 검출된 악성 활동 및 악성 활동의 어드레스에 대하여 통지받는다. 핸들러(64)는 이후 적절한 시정 조치를 취할 수 있다(134).
도 4는 또 다른 예에 따라 악성 활동에 응답하여 컴퓨터(10)가 취하는 조치들을 묘사한다. 도 1과 연계하여 도 4을 참조하면, 이 예시적 악성 활동에 대해, 운영 체제(62)의 악성 명령어들(152)은, 참조 번호들(154, 158)에 의해 표시된 것처럼, 프로세서(22)의 로킹된 구성 비트들(26)에 대한 접근을 시도한다. 프로세서(22)는 이 시도된 접근을 검출하고, 그에 대응하여 SMI를 생성하는데(160), 이는 프로세서(22)가 SMM에 진입하고 SMI 핸들러(70)를 호출하게 한다.
이 예에 대해, SMI 핸들러(70)는 프로세서의 셀렉터 및 명령어 포인터(CS:RIP)의 내용들을 검사함으로써 악성 명령어들(152)의 어드레스를 결정한다. 핸들러(70)는 이후 메모리(30)의 로그(32)에 대응 로그 엔트리를 생성하는데, 이것은 악성 명령어들(152)의 어드레스를 포함한다. SMI 핸들러(70)는 이후 진행하여(170) SMM 모드를 종료하고 운영 체제(62)에게 경보한다(174). 비 제한적 예로서, 이 경보는 SIGNAL_MCE 신호를 어써트하는 것을 수반하는데, 이는 MCE 인터럽트의 어써트를 야기한다. 그러므로, SIGNAL_MCE 신호의 어써트로 인해, 운영 체제 핸들러(64)는 로그(32)를 통해 검출된 악성 활동 및 악성 활동의 어드레스를 통지받고; 이후 운영 체제 핸들러(64)는 적절한 시정 조치를 취할 수 있다(176).
도 5을 참조하면, 예시적 구현들에 따라서, 컴퓨터(10)는 하드웨어 아키텍처(200)를 가질 수 있는데, 컴퓨터(10)는 추가 구현들에 따라 기타 하드웨어 아키텍처들을 가질 수도 있다. 더욱이, 도 5에 묘사된 구현은 단순화되어 있는데, 이는 하드웨어 아키텍처(200)가 기타 구현들에 따라서 추가적이고 상이한 요소들을 가질 수 있기 때문이다.
이 예에 대해, 아키텍처(200)는 전면 측 버스(204)에 결합되는 다중 프로세서(22)(비 제한적 예들로서, 도 5에 묘사된 프로세서들 22-1 및 22-2)를 포함한다. MCH(memory controller hub)(208)는 메모리(40)에 대한 접근을 제어하는 것뿐만 아니라 ICH(I/O controller hub)(214)에게의 프로세서들(22)를 위한 접근을 제공하기 위해 전면 측 버스(204)에 결합된다. 이러한 방식으로, MCH(208) 및 ICH(214)는 허브 링크(212)를 통하여 통신할 수 있다.
일반적으로, ICH(214)는 USB(Universal Serial Bus)(224)상의 작동들을 제어할 수 있다. 비 제한적 예로서, USB(224)는 2011년 6월 6일의 USB 3.0 사양, 개정 1.0을 준수할 수 있다. ICH(214)는 예를 들어 I/O 확장 버스(228)와 같은 하나 이상의 버스들상에서의 작동들을 추가로 제어할 수 있다. 더욱이, ICH(214)는 네트워크 인터페이스(44)와 통신할 수 있고 적어도 하나의 하드 드라이브(220)의 작동들을 제어할 수 있다.
다음의 예들은 추가 실시예들과 관련된다.
예시적 구현에서, 장치는 운영 체제에 의해 접근 가능한 메모리; 및 검출된 악성 소프트웨어 활동에 응답하여 운영 체제에게 이 활동을 보고하기 위한 데이터를 메모리에 저장하는 기본 입출력 시스템(BIOS) 핸들러를 포함한다.
몇몇 구현들에서, BIOS 핸들러는 악성 소프트웨어 활동과 관련된 적어도 하나의 실행 가능 명령어의 어드레스를 결정하고, 어드레스를 나타내는 데이터를 메모리에 저장한다. 몇몇 구현들에서, 메모리는 마이크로프로세서의 레지스터의 적어도 하나의 비트를 포함한다. 몇몇 구현들에서, BIOS 핸들러는 운영 체제가 메모리를 체크하도록 경보하기 위한 신호를 어써트한다. 몇몇 구현들에서, BIOS 핸들러는 검출된 악성 소프트웨어 활동 때문에 발생하는 시스템 관리 인터럽트에 응답하여 호출된다. 몇몇 구현들에서, BIOS 핸들러는 명령어들을 실행함으로써 프로세서의 로킹된 구성 비트들을 변경하려는 검출된 시도에 응답하여 호출되도록 구성된다. 몇몇 구현들에서, BIOS 핸들러는, 명령어들을 실행함으로써, 시스템 관리 모드 동안, 프로세서 실행을 시스템 관리 모드 명령어들을 위한 예상된 로케이션의 외부에 저장된 명령어들로 향하게 하려는 시도에 응답하여 호출되도록 구성된다. 몇몇 구현들에서, BIOS 핸들러는 프로세서의 코드 셀렉터 및 명령어 포인터에 적어도 부분적으로 기초하여 어드레스를 결정하도록 구성된다. 몇몇 구현들에서, BIOS 핸들러는 GPE(general purpose error) 핸들러에 의해 이용되는 스택으로부터 로케이션을 결정하기 위해 구성된다. 몇몇 구현들에서, 운영 체제는 호스트 운영 체제 또는 게스트 운영 체제이다.
몇몇 구현들에서, 방법은 컴퓨터상에서의 검출된 악성 소프트웨어 활동을 컴퓨터의 BIOS에게 경보하고; 컴퓨터의 운영 체제에게 검출을 보고하기 위해 BIOS를 이용하는 것을 포함한다.
몇몇 구현들에서, 검출을 보고하기 위해 BIOS를 이용하는 것은 운영 체제에게 악성 소프트웨어 활동과 관련된 기계 실행 가능 명령어들의 로케이션을 보고하는 것을 포함한다. 몇몇 구현들에서, BIOS에게 경보하는 것은 명령어들을 실행함으로써 프로세서의 로킹된 구성 비트들을 변경하려는 검출된 시도에 응답하여 적어도 하나의 BIOS 명령어를 실행하는 것을 포함한다. 몇몇 구현들에서, BIOS에게 경보하는 것은, 명령어들을 실행함으로써, 프로세서의 시스템 관리 모드 동안, 프로세서에게 시스템 관리 모드 명령어들을 위한 예상된 로케이션의 외부에 있는 명령어들을 실행하도록 지시하려는 검출된 시도에 응답하여 적어도 하나의 BIOS 명령어를 실행하는 것을 포함한다. 몇몇 구현들에서, 검출을 보고하기 위해 BIOS를 이용하는 것은 프로세서의 코드 셀렉터 및 명령어 포인터의 내용에 적어도 부분적으로 기초하여 악성 소프트웨어 활동과 관련된 기계 실행 가능 명령어들의 로케이션을 보고하는 것을 포함한다. 몇몇 구현들에서, 검출을 보고하기 위해 BIOS를 이용하는 것은 GPE(general purpose error) 핸들러에 의해 이용되는 스택 내용에 적어도 부분적으로 기초하여 악성 소프트웨어 활동과 관련된 기계 실행 가능 명령어들의 로케이션을 보고하는 것을 포함한다. 몇몇 구현들에서, 보고하기 위해 BIOS를 이용하는 것은 로케이션을 표시하는 데이터로 운영 체제에 의해 접근가능한 메모리를 업데이트하는 것을 포함한다. 몇몇 구현들에서, 보고하기 위해 BIOS를 이용하는 것은 검출된 악성 소프트웨어 활동을 운영 체제에게 경보하기 위해 프로세서 레지스터의 내용을 수정하는 것을 포함한다.
몇몇 구현들에서, 장치는 위에서 기술된 방법의 특징들을 수행하도록 구성되는 프로세서를 포함할 수 있다.
몇몇 실시예들에서, 적어도 하나의 기계 판독 가능 장치는 컴퓨팅 장치상에서 실행되는 것에 응답하여 컴퓨팅 장치로 하여금 위에서 기술된 방법의 특징들을 수행하게 하는 복수의 명령어를 포함하는 적어도 하나의 기계 판독 가능 장치를 포함한다.
제한된 수의 예들이 여기서 개시되기는 하였지만, 본 개시의 혜택을 입은 당업자는 이로부터 다수의 수정들 및 변동들을 알아낼 수 있을 것이다. 첨부된 청구항들은 모든 그와 같은 수정들 및 변동들을 커버하도록 의도된다.

Claims (20)

  1. 운영 체제에 의해 접근 가능한 레지스터를 포함하는 CPU(central processing unit); 및
    불법 악성 소프트웨어의 검출된 실행에 응답하여, 상기 운영 체제에게 상기 검출을 보고하기 위한 데이터를 상기 레지스터에 저장하는 기본 입출력 시스템(BIOS) 핸들러
    를 포함하는 장치.
  2. 제1항에 있어서, 상기 BIOS 핸들러는 상기 악성 소프트웨어의 검출된 실행과 관련된 적어도 하나의 실행 가능 명령어의 어드레스를 결정하고, 상기 어드레스를 표시하는 데이터를 상기 레지스터에 저장하는 장치.
  3. 제1항에 있어서, 상기 레지스터는 마이크로프로세서의 레지스터의 적어도 하나의 비트를 포함하는 장치.
  4. 제1항에 있어서, 상기 BIOS 핸들러는 상기 운영 체제에게 상기 레지스터를 체크하도록 경보하는 신호를 어써트하는 장치.
  5. 제1항에 있어서, 상기 BIOS 핸들러는 시스템 관리 인터럽트에 응답하여 호출되는 장치.
  6. 제1항에 있어서, 상기 BIOS 핸들러는, 명령어들을 실행함으로써 프로세서의 로킹된 구성 비트들의 변경을 방지하는 로크들을 먼저 제거하지 않고 상기 구성 비트들을 변경하려는 검출된 불법 시도에 응답하여 호출되도록 구성되는 장치.
  7. 제1항에 있어서, 상기 BIOS 핸들러는, 명령어들을 실행함으로써, 시스템 관리 모드 동안, 프로세서 실행을 시스템 관리 모드 명령어들을 위한 예상된 로케이션의 외부에 저장된 명령어들로 향하게 하려는 시도에 응답하여 호출되도록 구성되는 장치.
  8. 제1항에 있어서, 상기 BIOS 핸들러는 프로세서의 코드 셀렉터 및 명령어 포인터에 적어도 부분적으로 기초하여 상기 불법 악성 소프트웨어의 검출된 실행과 관련된 적어도 하나의 실행 가능 명령어의 어드레스를 결정하도록 구성되는 장치.
  9. 제1항에 있어서, 상기 BIOS 핸들러는 GPE(general protection exception) 핸들러에 의해 이용되는 스택으로부터 상기 불법 악성 소프트웨어의 검출된 실행과 관련된 적어도 하나의 실행 가능 명령어의 어드레스를 결정하도록 구성되는 장치.
  10. 제1항에 있어서, 상기 운영 체제는 호스트 운영 체제 또는 게스트 운영 체제를 포함하는 장치.
  11. 컴퓨터상에서의 불법 악성 소프트웨어의 검출된 실행을 상기 컴퓨터의 기본 입출력 시스템(BIOS)에게 경보하는 단계; 및
    상기 컴퓨터의 운영 체제에게 상기 검출을 보고하기 위해 상기 BIOS를 이용하는 단계 - 상기 BIOS를 이용하는 단계는 데이터를 CPU 레지스터에 저장하는 단계를 포함함 -
    를 포함하는 방법.
  12. 제11항에 있어서, 상기 검출을 보고하기 위해 상기 BIOS를 이용하는 단계는 상기 운영 체제에게 상기 불법 악성 소프트웨어와 관련된 적어도 하나의 기계 실행 가능 명령어의 어드레스를 보고하는 단계를 포함하는 방법.
  13. 제11항에 있어서, 상기 BIOS에게 경보하는 단계는, 명령어들을 실행함으로써 프로세서의 로킹된 구성 비트들의 변경을 방지하는 로크들을 먼저 제거하지 않고 상기 구성 비트들을 변경하려는 검출된 불법 시도에 응답하여 적어도 하나의 BIOS 명령어를 실행하는 단계를 포함하는 방법.
  14. 제11항에 있어서, 상기 BIOS에게 경보하는 단계는, 명령어들을 실행함으로써, 프로세서의 시스템 관리 모드 동안, 상기 프로세서에게 시스템 관리 모드 명령어들을 위한 예상된 로케이션의 외부에 있는 명령어들을 실행하도록 지시하려는 검출된 시도에 응답하여 적어도 하나의 BIOS 명령어를 실행하는 단계를 포함하는 방법.
  15. 제11항에 있어서, 상기 검출을 보고하기 위해 상기 BIOS를 이용하는 단계는 프로세서의 코드 셀렉터 및 명령어 포인터의 내용에 적어도 부분적으로 기초하여 상기 불법 악성 소프트웨어의 실행과 관련된 적어도 하나의 기계 실행 가능 명령어들의 어드레스를 보고하는 단계를 포함하는 방법.
  16. 제11항에 있어서, 상기 검출을 보고하기 위해 상기 BIOS를 이용하는 단계는 GPE(general protection exception) 핸들러에 의해 이용되는 스택 내용에 적어도 부분적으로 기초하여 상기 불법 악성 소프트웨어와 관련된 적어도 하나의 기계 실행 가능 명령어의 어드레스를 보고하는 단계를 포함하는 방법.
  17. 제11항에 있어서, 보고하기 위해 상기 BIOS를 이용하는 단계는 상기 불법 악성 소프트웨어와 관련된 적어도 하나의 실행 가능 명령어의 어드레스를 표시하는 데이터로 상기 운영 체제에 의해 접근 가능한 메모리를 업데이트하는 단계를 포함하는 방법.
  18. 제11항에 있어서, 보고하기 위해 상기 BIOS를 이용하는 단계는 상기 불법 악성 소프트웨어의 검출된 실행을 상기 운영 체제에게 경보하기 위해 프로세서 레지스터의 내용을 수정하는 단계를 포함하는 방법.
  19. 운영 체제에 의해 접근 가능한 CPU 레지스터; 및
    불법 악성 소프트웨어의 검출된 실행에 응답하여, 상기 운영 체제에게 상기 검출을 보고하기 위한 데이터를 상기 레지스터에 저장하는 시스템 관리 모드에 진입하는 프로세서를 포함하는 기본 입출력 시스템(BIOS) 핸들러
    를 포함하는 장치.
  20. 컴퓨팅 장치상에서 실행되는 것에 응답하여, 상기 컴퓨팅 장치로 하여금,
    불법 악성 소프트웨어의 검출된 실행에 응답하여 호출되고,
    시스템 관리 모드에서, 상기 검출된 실행의 적어도 하나의 특성화 파라미터(characterizing parameter)를 결정하고, 상기 적어도 하나의 특성화 파라미터를 대표하는(representing) 데이터를 운영 체제에 의해 접근 가능한 CPU 레지스터에 저장하게 하는 복수의 명령어를 포함하는 적어도 하나의 기계 판독가능 비일시적 저장 매체.
KR1020147026665A 2012-03-30 2012-03-30 운영 체제에의 악성 활동 보고 KR101701014B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/031511 WO2013147859A1 (en) 2012-03-30 2012-03-30 Reporting malicious activity to an operating system

Publications (2)

Publication Number Publication Date
KR20140138206A KR20140138206A (ko) 2014-12-03
KR101701014B1 true KR101701014B1 (ko) 2017-01-31

Family

ID=49260914

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147026665A KR101701014B1 (ko) 2012-03-30 2012-03-30 운영 체제에의 악성 활동 보고

Country Status (7)

Country Link
US (1) US9507937B2 (ko)
EP (1) EP2831788B1 (ko)
JP (1) JP5951879B2 (ko)
KR (1) KR101701014B1 (ko)
CN (1) CN104205113B (ko)
AU (2) AU2012375309A1 (ko)
WO (1) WO2013147859A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10275593B2 (en) * 2013-04-01 2019-04-30 Uniquesoft, Llc Secure computing device using different central processing resources
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
US9817975B2 (en) * 2015-01-26 2017-11-14 Dell Products, Lp Method for logging firmware attack event and system therefor
US9984230B2 (en) * 2015-06-26 2018-05-29 Mcafee, Llc Profiling event based exploit detection
JP6123931B1 (ja) * 2016-03-15 2017-05-10 日本電気株式会社 情報処理装置、情報処理方法、およびプログラム
US10949540B2 (en) * 2018-03-20 2021-03-16 Dell Products L.P. Security policy enforcement based on dynamic security context updates
US11151285B2 (en) * 2019-03-06 2021-10-19 International Business Machines Corporation Detecting sensitive data exposure via logging
WO2020222804A1 (en) 2019-04-30 2020-11-05 Hewlett-Packard Development Company, L.P. System management memory coherency detection
US10809944B1 (en) 2020-01-22 2020-10-20 Cypress Semiconductor Corporation Memory device resilient to cyber-attacks and malfunction

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320313A1 (en) 2007-06-25 2008-12-25 Elie Awad System and method to protect computing systems

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5911777A (en) * 1996-07-05 1999-06-15 Ncr Corporation Method and apparatus for reporting unauthorized attempt to release a portable computer from a docking station
US6581162B1 (en) * 1996-12-31 2003-06-17 Compaq Information Technologies Group, L.P. Method for securely creating, storing and using encryption keys in a computer system
TW452733B (en) * 1999-11-26 2001-09-01 Inventec Corp Method for preventing BIOS from viruses infection
JP2002269065A (ja) * 2001-03-08 2002-09-20 Mitsubishi Electric Corp プログラム可能な不揮発性メモリを内蔵したマイクロコンピュータ
US7363657B2 (en) * 2001-03-12 2008-04-22 Emc Corporation Using a virus checker in one file server to check for viruses in another file server
TWI286701B (en) * 2002-01-09 2007-09-11 Via Tech Inc Process for avoiding system infection of software viruses
US7043666B2 (en) * 2002-01-22 2006-05-09 Dell Products L.P. System and method for recovering from memory errors
US7451324B2 (en) * 2002-05-31 2008-11-11 Advanced Micro Devices, Inc. Secure execution mode exceptions
US7421431B2 (en) * 2002-12-20 2008-09-02 Intel Corporation Providing access to system management information
US7051222B2 (en) * 2002-12-31 2006-05-23 Intel Corporation Robust computer subsystem power management with or without explicit operating system support
US7308584B2 (en) * 2003-08-14 2007-12-11 International Business Machines Corporation System and method for securing a portable processing module
US20050166213A1 (en) * 2003-12-31 2005-07-28 International Business Machines Corporation Remote deployment of executable code in a pre-boot environment
US7370190B2 (en) * 2005-03-03 2008-05-06 Digimarc Corporation Data processing systems and methods with enhanced bios functionality
US7500095B2 (en) * 2006-03-15 2009-03-03 Dell Products L.P. Chipset-independent method for locally and remotely updating and configuring system BIOS
US20070258469A1 (en) * 2006-05-05 2007-11-08 Broadcom Corporation, A California Corporation Switching network employing adware quarantine techniques
US20080134321A1 (en) * 2006-12-05 2008-06-05 Priya Rajagopal Tamper-resistant method and apparatus for verification and measurement of host agent dynamic data updates
US8108768B2 (en) * 2007-07-20 2012-01-31 International Business Machines Corporation Improving efficiency of content rule checking in a content management system
WO2010116536A1 (en) * 2009-04-06 2010-10-14 Hitachi, Ltd. Storage subsystem and its control method
US8578138B2 (en) * 2009-08-31 2013-11-05 Intel Corporation Enabling storage of active state in internal storage of processor rather than in SMRAM upon entry to system management mode
JP2011113518A (ja) * 2009-11-30 2011-06-09 Toshiba Corp 情報処理装置及びロック設定方法
US9063836B2 (en) * 2010-07-26 2015-06-23 Intel Corporation Methods and apparatus to protect segments of memory
US20120297177A1 (en) * 2010-11-15 2012-11-22 Ghosh Anup K Hardware Assisted Operating System Switch
US8813227B2 (en) * 2011-03-29 2014-08-19 Mcafee, Inc. System and method for below-operating system regulation and control of self-modifying code
WO2012135192A2 (en) * 2011-03-28 2012-10-04 Mcafee, Inc. System and method for virtual machine monitor based anti-malware security
US8918907B2 (en) * 2011-04-13 2014-12-23 Phoenix Technologies Ltd. Approaches for firmware to trust an application
WO2013101122A1 (en) * 2011-12-29 2013-07-04 Intel Corporation Secure error handling

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080320313A1 (en) 2007-06-25 2008-12-25 Elie Awad System and method to protect computing systems

Also Published As

Publication number Publication date
CN104205113B (zh) 2017-07-11
KR20140138206A (ko) 2014-12-03
US20130340081A1 (en) 2013-12-19
EP2831788A4 (en) 2015-10-14
WO2013147859A1 (en) 2013-10-03
JP5951879B2 (ja) 2016-07-13
EP2831788B1 (en) 2018-05-02
US9507937B2 (en) 2016-11-29
AU2016206224A1 (en) 2016-08-04
AU2012375309A1 (en) 2014-09-25
CN104205113A (zh) 2014-12-10
JP2015514252A (ja) 2015-05-18
EP2831788A1 (en) 2015-02-04

Similar Documents

Publication Publication Date Title
KR101701014B1 (ko) 운영 체제에의 악성 활동 보고
US11861005B2 (en) 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
US11347853B2 (en) Hardware heuristic-driven binary translation-based execution analysis for return-oriented programming malware detection
US10789105B2 (en) Systems and methods involving features of hardware virtualization, hypervisor, APIs of interest, and/or other features
US9037873B2 (en) Method and system for preventing tampering with software agent in a virtual machine
US11363058B2 (en) Detecting execution of modified executable code
US9171159B2 (en) Performing security operations using binary translation
US20170068560A1 (en) Systems and methods involving features of hardware virtualization, hypervisor, pages of interest, and/or other features
US10621340B2 (en) Hybrid hypervisor-assisted security model
US9542557B2 (en) Snoop-based kernel integrity monitoring apparatus and method thereof
JP2015219682A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
US9566158B2 (en) Hardware protection of virtual machine monitor runtime integrity watcher
JP2015166952A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体
EP3535681B1 (en) System and method for detecting and for alerting of exploits in computerized systems
WO2017131679A1 (en) System management mode test operations
CN111194447B (zh) 监视控制流完整性
Suzaki et al. Kernel memory protection by an insertable hypervisor which has VM introspection and stealth breakpoints
JP2018174001A (ja) 情報処理装置、情報処理監視方法、プログラム、及び記録媒体

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
GRNT Written decision to grant