KR20070030931A - Secure storage tracking for anti-virus speed-up - Google Patents

Secure storage tracking for anti-virus speed-up Download PDF

Info

Publication number
KR20070030931A
KR20070030931A KR1020077001977A KR20077001977A KR20070030931A KR 20070030931 A KR20070030931 A KR 20070030931A KR 1020077001977 A KR1020077001977 A KR 1020077001977A KR 20077001977 A KR20077001977 A KR 20077001977A KR 20070030931 A KR20070030931 A KR 20070030931A
Authority
KR
South Korea
Prior art keywords
area
scan
safety
code
identifier
Prior art date
Application number
KR1020077001977A
Other languages
Korean (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
Priority to US10/894,588 priority Critical
Application filed by 인터내셔널 비지네스 머신즈 코포레이션 filed Critical 인터내셔널 비지네스 머신즈 코포레이션
Priority to KR1020077001977A priority patent/KR20070030931A/en
Publication of KR20070030931A publication Critical patent/KR20070030931A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity

Abstract

컴퓨터 시스템은 최종 바이러스 스캔 이래로 저장 디바이스의 파일 또는 저장 영역이 변경되었는지 신뢰성있게 추적할 수 있는 안전 서브시스템을 포함한다. 상기 신뢰성있는 정보는 바이러스와 같은 부적합 코드 또는 데이터, 및 실효성이 없거나 오류가 있는 레지스트리 엔트리에 대해 스캔을 빠르게 하는데 이용될 수 있다. 바이러스의 경우, 변경된 파일 또는 저장 영역은 바이러스 정의(super-set)의 상위 집합에 대해 스캔된다. 미변경 파일 또는 저장 영역은 바이러스 정의의 서브세트(subset)에 대해 스캔된다. The computer system includes a safety subsystem that can reliably track whether a file or storage area of the storage device has changed since the last virus scan. The reliable information can be used to speed up scanning for invalid code or data, such as viruses, and invalid or erroneous registry entries. In the case of a virus, the modified file or storage area is scanned for a superset of virus definitions. Unchanged files or storage areas are scanned for a subset of virus definitions.

Description

안티-바이러스 속도 향상을 위한 안전 저장 추적 방법{SECURE STORAGE TRACKING FOR ANTI-VIRUS SPEED-UP}Safe storage tracking method to speed up anti-viruses {SECURE STORAGE TRACKING FOR ANTI-VIRUS SPEED-UP}
본 발명은 부적합 또는 악성 코드에 대한 스캔을 빠르게 할 수 있는 방법, 프로그램 제품, 컴퓨터 시스템 및 기타 정보 처리 시스템에 관한 것으로, 보다 상세하게는 최종 바이러스 스캔 이래로 어느 파일 또는 저장 위치가 변경되었는지 신뢰성있게 추적하고, 변경된 파일 또는 변경되지 않았으나 새로운 바이러스에 대해 스캔되지 않은 파일들만 스캔함으로써 바이러스 스캔을 빠르게 할 수 있는 컴퓨터 시스템에 관한 것이다. The present invention relates to methods, program products, computer systems, and other information processing systems that can quickly scan for nonconforming or malicious code, and more particularly, to reliably track which files or storage locations have changed since the last virus scan. The present invention relates to a computer system that can quickly scan a virus by scanning only changed files or files that have not been changed but not scanned for a new virus.
초기의 컴퓨터는 “독립형(stand alone)” 으로서 다른 컴퓨터와 통신할 수 없었으나, 요즈음 대부분의 컴퓨터는 데이터의 공유, 이메일링, 프로그램의 다운로딩, 오퍼레이션 조정 등을 포함한 다양한 목적을 위해 다른 컴퓨터와 통신할 수 있다. 이 통신은 LAN(Local Area Network) 또는 WAN(Wide Area Network)에 로깅(logging)함에 의해 이루어질 수 있다. 이러한 확장된 범위는 명백한 이점을 갖는 반면에, 악영향에의 노출, 특히 바이러스에 대한 노출이 증가하는 손실을 가져온다.Early computers were “stand alone” and couldn't communicate with other computers, but these days most computers can communicate with other computers for a variety of purposes, including sharing data, emailing, downloading programs, and coordinating operations. Can communicate. This communication may be accomplished by logging to a local area network (LAN) or a wide area network (WAN). While this extended range has obvious advantages, it leads to an increased loss of exposure to adverse effects, especially exposure to viruses.
바이러스는 생물학적 대응어와 유사하게, 일반적으로 다른 건전한 일부 코드 또는 데이터를 감염시키는 프로그래밍 코드이다. 바이러스는, 감염된 컴퓨터가 비효율적으로 작업하게 하거나, 완전히 고장나게 하는 것과 같이, 바람직하지 못한 결과를 야기한다. 많은 바이러스의 또다른 방심할 수 없는 특징은 네트워크를 통해 다른 컴퓨터에 전파되는 그들의 능력이다. A virus is a programming code that generally infects some other healthy code or data, similar to a biological counterpart. Viruses have undesirable consequences, such as causing an infected computer to work inefficiently or to fail completely. Another indifferent feature of many viruses is their ability to spread to other computers over a network.
파일 감염자, 시스템(또는 부트-레코드) 감염자, 웜(worm) 및 매크로 바이러스를 포함하한 적어도 네 개의 주분류의 바이러스가 발견될 수 있다. 파일 감염자는 그 자체를 프로그램 파일에 부속시킨다. 프로그램이 로드되는 경우, 바이러스 또한 로드되어, 바이러스가 그의 악영향을 실시하게 한다. 시스템 감염자는 오퍼레이팅 시스템(operating system)의 레지스트리를 감염시키거나, 하드 디스크의 마스터 부트 레코드와 같은 특정 하드웨어를 감염시킨다. 마스터 부트 레코드 감염은 다음의 재부팅시 하드 드라이브를 종종 실행할 수 없게 하여, 컴퓨터를 부팅하는 것을 불가능하게 한다. 웜 바이러스는 메모리 또는 네트워크 대역폭을 소모하여, 컴퓨터가 응답할 수 없게 한다. 매크로 바이러스는 가장 통상적인 바이러스 중의 하나로, 워드 프로세서 프로그램을 감염시킨다. At least four major classes of viruses can be found, including file infectors, system (or boot-record) infectors, worms, and macro viruses. The file infector attaches itself to the program file. When a program is loaded, the virus is also loaded, causing the virus to carry out its adverse effects. System infectors infect the registry of an operating system or certain hardware, such as a master boot record on a hard disk. Master boot record infection often makes the hard drive inoperable on the next reboot, making it impossible to boot the computer. Worm viruses consume memory or network bandwidth, making the computer unresponsive. Macro viruses are one of the most common viruses that infect word processor programs.
또다른 통상적인 유형의 바이러스는 브라우저 및 이메일을 노린다. 이러한 하나의 바이러스는 DoS(Denial of Service) 공격을 일으킨다. DoS 바이러스는 웹사이트가 방문자를 받아들일 수 없게 한다. 일반적으로, 이러한 공격은 감염된 수백만의 컴퓨터들이 (부지불식간에) 웹 사이트에 충돌하도록 하여, 그 결과 웹 사이트의 버퍼가 오버플로우되게 한다. Another common type of virus targets browsers and emails. One such virus causes a Denial of Service (DoS) attack. DoS viruses make websites unacceptable to visitors. In general, these attacks cause millions of infected computers to (unknowingly) crash the website, resulting in the website's buffer overflowing.
바이러스에 대항하기 위하여, 안티-바이러스 프로그램이 기록되고, 새로운 바이러스에 대해 유효하도록 계속해서 업데이트된다. 이러한 안티-바이러스 프로그램은 (CD-ROM과 같은) 물리적 미디어를 통해 전달되거나, 또는 인터넷과 같은 네트워크를 통해 다운로드된다. 안티-바이러스 프로그램은 데이터를 컴퓨터 시스템의 각 저장 디바이스의 데이터와, 모든 알려진 바이러스 유형에 대한 모든 알려진 바이러스 서명을 포함한 바이러스 정의 파일과 비교한다. 이러한 과정은 “스캐닝(scanning)”이라 칭해진다. 통상적으로 업데이트 또한 다운로드되어, 이러한 업데이트가 빠르게 전개되도록 제공한다. To combat the virus, an anti-virus program is recorded and continuously updated to be valid for new viruses. Such anti-virus programs are delivered via physical media (such as a CD-ROM) or downloaded over a network such as the Internet. The anti-virus program compares the data with data from each storage device of the computer system and a virus definition file containing all known virus signatures for all known virus types. This process is called "scanning". Typically, updates are also downloaded to provide for these updates to be deployed quickly.
그러나, 바이러스 스캔을 완료하는 데 필요한 시간은 점차 증가하여 받아들이기 어려우며 문제가 되고 있다. 받아들이기 어려운 스캔 시간에 기여하는 두 가지 요소로는 스캔되어야 할 데이터의 양과, 식별자를 포함하는 바이러스 정의 파일의 크기가 있다. 이들 요소 둘 다 표면상으로 제한없이 증가하고 있다. 데스크톱 시스템이 일 테라바이트(terabyte)에 달하는 디스크 용량을 갖는 것이 곧 일반화될 것이다. 바이러스를 만드는 해커들은 바이러스를 만들고자 하는 자극이 보다 강해질 것으로 보이며, 이들은 더욱 증가하는 속도로 바이러스를 만들고 있다. 한편, 스캐닝 프로세스에 필요한 시간은 디스크 액세스 속도에 보다 관련되므로, 하드 디스크를 스캐닝하는데 걸리는 시간은 증가된 프로세서 속도에 따라 두드러지게 증가하지 않는다. 증가된 스캔 시간에 의해 야기되는 문제점은 시간이 흐름에 따라 상당히 심각하고 가시화될 것이다. 이들 요소로 인해, 결국 바이러스 스캔을 완료하는 데 24시간보다 더 걸릴 것이기 때문에, 단순히 가까운 미래에 일상의 바이러스 스캔이 불가능할 것을 예측할 수 있다. 또한, 스캐닝 프로세스가 일어나는 시간 동 안 워크 스테이션을 이용할 수 없게 될 수 있다. 따라서, 생산성에 악영향을 미치고, 종국의 비용 분석에서는 문제를 해결하기 위한 추가의 시스템 비용이 이치에 맞음이 드러날 것이다. However, the time required to complete a virus scan has gradually increased and becomes unacceptable and problematic. Two factors contribute to the unacceptable scan time: the amount of data to be scanned and the size of the virus definition file containing the identifier. Both of these elements are increasing on the surface without limitation. It will soon be common for desktop systems to have terabytes of disk capacity. Hackers who make viruses are likely to be more stimulating to make them, and they are building viruses at ever increasing rates. On the other hand, since the time required for the scanning process is more related to the disk access speed, the time taken to scan the hard disk does not increase significantly with the increased processor speed. The problems caused by increased scan time will be quite serious and visible over time. Because of these factors, it will eventually take longer than 24 hours to complete the virus scan, so we can simply predict that everyday virus scanning will be impossible in the near future. In addition, the workstation may become unavailable during the time the scanning process takes place. Thus, adversely affecting productivity, and eventually cost analysis will reveal that additional system cost to solve the problem makes sense.
또다른 배경 영역으로는 동시에 공용 하드웨어 플랫폼을 통한 상이한 오퍼레이팅 시스템에 대해, 또는 이용가능한 하드웨어 자원이 전부 이용된 경우에 대해, 기록된 응용 프로그램을 운영하기 위한 필요성에서 비롯한 가상 머신 및 가상 머신 모니터를 수반한다. 1960년대 말 이래로 가상 머신 모니터는 연구 주제가 되었고, “VMM(Virtual Machine Monitor)”로 알려지게 되었다. 당 업계에 통상적인 기술을 가진 자라면, 예를 들어 R.P. Goldberg, “Survey of Virtual Machine Research”IEEE computer, Vol.7, No.6, 1974를 참조하도록 권한다. 1970년대 동안에, 또다른 예로서, International Business Machines Corporation은 그의 VM/370 시스템에 이용하기 위한 가상 머신 모니터를 채택하였다. Another background area involves virtual machines and virtual machine monitors, including the need to run a recorded application, for different operating systems at the same time through a common hardware platform, or when all available hardware resources are used up. do. Since the late 1960s, virtual machine monitors have been the subject of research and became known as "VMM (Virtual Machine Monitor)." If you are a person of ordinary skill in the art, for example, R.P. Goldberg, “Survey of Virtual Machine Research” IEEE computer, Vol. 7, No. 6, 1974. During the 1970s, as another example, International Business Machines Corporation adopted a virtual machine monitor for use with its VM / 370 system.
때때로 문헌에서 “hypervisor”로 언급되는 가상 머신 모니터는 하드웨어의 최상부에서 직접 운영하고, 머신의 모든 하드웨어 자원을 가상화하는 소프트웨어의 일부이다. 가상 머신 모니터의 인터페이스는 머신의 하드웨어 인터페이스와 동일하기 때문에, 오퍼레이팅 시스템은 VMM의 존재를 판단할 수 없다. 그 결과, 하드웨어 인터페이스가 기초 하드웨어와 1대1 호환 가능한 경우, 동일한 오퍼레이팅 시스템은 가상 머신 모니터의 최상부나, 그대로의 하드웨어의 최상부에서 운영할 수 있다. 그리하여, 시스템 자원의 작은 서브세트(subset)만 필요한 경우에는 오퍼레이팅 시스템의 다중 인스턴스를, 또는 단지 오퍼레이팅 시스템 커널의 인스턴스만 운 영하는 것이 가능하다. 각 인스턴스를 가상 머신이라 한다. 오퍼레이팅 시스템은 가상 머신을 통해 복제되거나, 별개의 다른 오퍼레이팅 시스템이 각 가상 머신마다 이용될 수 있다. 어떠한 경우에든, 가상 머신은 완전히 자율적이며, 하드웨어 인터럽트(interrupt)와 같은 하드웨어 자원에의 접속을 위해 가상 머신 모니터에 의존한다. A virtual machine monitor, sometimes referred to in the literature as a "hypervisor", is the piece of software that runs directly on top of the hardware and virtualizes all the hardware resources of the machine. Since the interface of the virtual machine monitor is the same as the hardware interface of the machine, the operating system cannot determine the presence of the VMM. As a result, if the hardware interface is one-to-one compatible with the underlying hardware, the same operating system can operate on top of the virtual machine monitor or on top of the hardware as it is. Thus, if only a small subset of system resources is needed, it is possible to run multiple instances of the operating system, or just an instance of the operating system kernel. Each instance is called a virtual machine. The operating system can be replicated through a virtual machine, or a separate, different operating system can be used for each virtual machine. In any case, the virtual machine is completely autonomous and relies on the virtual machine monitor for access to hardware resources such as hardware interrupts.
안전성의 저감 없이 스캔 시간을 가속화시킬 수 있는 장치, 프로그램 제품, 및 방법에 대한 필요성이 대두된다. 또한, 이러한 감소된 스캔 시간을 달성할 수 있는 플랫폼을 제공하는 장치가 필요하게 되었다. 또한, 보다 효율적이고 안전한 방식으로 스캔을 실행하는 장치에 의해 제공된 안전한 플랫폼을 이용하는 프로그램 제품 및 방법이 필요하게 되었다. There is a need for devices, program products, and methods that can accelerate scan time without compromising safety. There is also a need for an apparatus that provides a platform that can achieve this reduced scan time. There is also a need for program products and methods that utilize a secure platform provided by devices that perform scans in a more efficient and secure manner.
보여지는 바와 같이, 개시된 실시예는 전술한 필요성을 충족시키고 추가적인 목적을 달성하고자 한다. 본 발명은 최종 바이러스 스캔 이래로 파일 또는 저장 디바이스의 저장 영역이 변경되었는지 추적할 수 있는 방법, 프로그램 제품, 및 시스템을 제공한다. 또한, 이전의 스캔에 관련된 변수를 저장하는 안전 영역이 제공된다. 그 다음, 상기 정보를 이용하여, 스캔되는 파일의 수를 감소시킴에 의해, 그리고 또는 스캐닝에 이용된 부적합 코드 식별자의 수를 감소시킴에 의해, 부적합 코드 또는 데이터에 대한 스캔을 빠르게 할 수 있다. As can be seen, the disclosed embodiments are intended to meet the aforementioned needs and achieve further objects. The present invention provides methods, program products, and systems that can track whether a storage area of a file or storage device has changed since the last virus scan. In addition, a safe area is provided for storing variables related to previous scans. The information can then be used to speed up scanning for non-compliant codes or data by reducing the number of files scanned and by reducing the number of non-compliant code identifiers used for scanning.
본 발명의 일 실시예에 따르면, 프로세서와 프로세서에 의해 제 1 오퍼레이팅 시스템 하에 실행되는 코드를 저장하는 메인 메모리를 포함하는 시스템, 제 1 오퍼레이팅 시스템 하에 실행되는 코드에 액세스 불가능한 안전 메모리를 갖는 안전 시스템, 및 제 1 영역과 판독-기록 영역으로 세분된 저장 디바이스에 의해, 상기 언급된 문제를 해결한다. 제 1 영역은 안전 시스템의 제어 하에 정상 판독-전용 상태도 되고 기록가능한 상태도 되도록 안전하게 구성될 수 있다. 안전 시스템은 적어도 하나의 신뢰 변수를 안전 메모리에 유지시킨다. 신뢰 변수는 저장 디바이스 사의 악성 코드에 대한 최종 스캔의 발생을 식별하고, 신뢰 변수를 참조하여 관련 결과를 보고함에 의해, 최종 스캔에 관련된 상태에 대한 요청에 응답한다. 또한, 안전 시스템은 제 1 영역을 기록가능한 상태로 구성하도록 제공된 요청에 응답하여 안전 메모리의 외부로 인증 절차를 불러낸다. According to one embodiment of the invention, a system comprising a processor and a main memory for storing code executed by the processor under the first operating system, a safety system having a safety memory inaccessible to code executed under the first operating system, And by the storage device subdivided into a first area and a read-write area, the above-mentioned problem is solved. The first area can be safely configured to be either a normal read-only state or a recordable state under the control of the safety system. The safety system maintains at least one trust variable in safety memory. The trust variable responds to a request for a status related to the final scan by identifying the occurrence of the final scan for the malware of the storage device and reporting the relevant results with reference to the trust variable. The safety system also invokes an authentication procedure out of the safety memory in response to a request provided to configure the first area into a recordable state.
상기 언급된 문제를 해결하기 위한 본 발명의 일 실시예에 따르면, 최종 스캔 이래로 저장 디바이스의 영역이 기록되었는지의 여부를 신뢰성있게 판단하도록 안전 서브시스템에 문의하는 단계를 포함하는 방법이 제공된다. 안전 서브시스템은 오퍼레이팅 시스템으로부터 실행되는 코드에 액세스 불가능한 메모리를 포함한다. 판단은 안전 서브시스템에 의해 액세스 불가능한 메모리의 참조를 통해 신뢰를 준다. 본 방법은 최종 스캔 이래로 영역이 기록되었다는 상기 문의로부터의 신뢰성있는 판단에 응답하여, 부적합 코드의 식별자에 대해 상기 영역을 스캔하는 단계를 더 포함한다. According to one embodiment of the present invention for solving the above-mentioned problem, a method is provided that includes querying the safety subsystem to reliably determine whether an area of a storage device has been recorded since the last scan. The safety subsystem includes memory that is inaccessible to code executing from the operating system. The judgment is trusted through a reference to memory that is inaccessible by the safety subsystem. The method further includes scanning the area for an identifier of the nonconforming code in response to a reliable determination from the query that the area has been recorded since the last scan.
본 발명의 일 실시예에 따라, 최종 스캔 이래로 저장 디바이스의 영역이 기록되었는지의 여부를 신뢰성있게 판단하도록 안전 서브시스템에 문의하는 단계를 포함하는 방법이 제공된다. 안전 서브시스템은 오퍼레이팅 시스템으로부터 실행되는 코드에 액세스 불가능한 메모리를 포함한다. 판단은 안전 서브시스템에 의한 액세스 불가능한 메모리의 참조를 통해 신뢰를 준다. 본 방법은 이전의 부적합 코드의 식별자가 최종 스캔에 포함되었는지의 여부를 판단하는 단계 및 (1) 최종 스캔 이래로 영역이 기록되지 않았다는 상기 문의로부터의 판단에 응답하여, (2) 이전의 식별자가 최종 스캔에 포함되었다는 판단에 응답하여, 이전의 부적합 코드의 식별자에 대해 상기 영역의 스캔을 우회하는 단계를 더 포함한다. In accordance with one embodiment of the present invention, a method is provided that includes querying a safety subsystem to reliably determine whether an area of a storage device has been recorded since the last scan. The safety subsystem includes memory that is inaccessible to code executing from the operating system. The judgment is trusted through a reference to inaccessible memory by the safety subsystem. The method determines whether an identifier of a previous nonconforming code is included in the final scan, and (1) in response to a determination from the query that the area has not been recorded since the last scan, (2) the previous identifier is final. In response to determining that the scan was included, bypassing the scan of the area for an identifier of a previous non-conforming code.
본 발명의 일 실시예에 따라, 최종 스캔 이래로 저장 디바이스의 영역이 기록되었는지의 여부를 신뢰성있게 판단하도록 안전 서브시스템에 문의하는 단계를 포함하는 방법이 제공된다. 안전 서브시스템은 오퍼레이팅 시스템으로부터 실행되는 코드에 액세스 불가능한 메모리를 포함한다. 판단은 안전 서브시스템에 의한 액세스 불가능한 메모리의 참조를 통해 신뢰성를 준다. 본 방법은 최종 스캔 이래로 제 1 영역이 기록되었다는 상기 문의로부터의 신뢰성있는 판단에 응답하여, 알려진 부적합 코드의 식별자에 대해 상기 제 1 영역을 스캔하는 단계, 이전의 부적합 코드의 식별자가 최종 스캔에 포함되었는지의 여부를 판단하는 단계, 및 (1) 최종 스캔 이래로 제 1 영역이 기록되지 않았다는 상기 문의로부터의 판단에 응답하여, (2) 이전의 식별자가 최종 스캔에 포함되었다는 판단에 응답하여, 이전의 부적합 코드의 식별자에 대해 상기 제 1 영역의 스캔을 우회하는 단계를 더 포함한다. In accordance with one embodiment of the present invention, a method is provided that includes querying a safety subsystem to reliably determine whether an area of a storage device has been recorded since the last scan. The safety subsystem includes memory that is inaccessible to code executing from the operating system. The judgment is credible through reference to inaccessible memory by the safety subsystem. The method scans the first region for an identifier of a known nonconforming code in response to a reliable determination from the query that the first region has been recorded since the last scan, the identifier of the previous nonconforming code being included in the final scan. Judging whether the first area has not been recorded since the last scan, and (2) in response to the determination that the previous identifier was included in the final scan, Bypassing the scan of the first region for an identifier of the non-conforming code.
본 발명의 일 실시예에서는 악성 코드에 대해 저장 디바이스의 판독-기록 영역 내 파일을 스캔하는 단계를 포함하는 방법이 제공된다. 저장 디바이스는 제 1 영역 및 판독-기록 영역으로 세분화된다. 제 1 영역은 정상 판독-전용 상태도 되고 기록가능한 상태도 되도록 안전하게 구성할 수 있다. 상기 영역의 구성은 오퍼레이팅 시스템 하에 실행되는 코드에 액세스 불가능한 안전 메모리를 갖는 안전 시스템의 제어 하에 이루어진다. 본 방법은 아무런 악성 코드도 발견되지 않는 적어도 하나의 파일을 성공적으로 스캔하는 경우, 제 1 영역을 기록가능한 상태로 구성하도록 상기 안전 시스템의 제 1 안전 수단을 기동 및 인증하되, 상기 인증은 상기 안전 메모리의 외부에서 실시하는 것인 단계; 판독-기록 영역의 성공적으로 스캔된 파일을 제 1 영역에 기록하는 단계; 및 성공적으로 스캔된 파일을 기록한 후 제 1 영역을 판독-전용 상태로 구성하는 단계를 더 포함한다. In one embodiment of the invention, a method is provided that includes scanning a file in a read-write area of a storage device for malicious code. The storage device is divided into a first area and a read-write area. The first area can be safely configured to be either a normal read-only state or a recordable state. The configuration of this area is under the control of a safety system having a safety memory inaccessible to code executing under the operating system. The method activates and authenticates the first safety means of the safety system to configure the first area into a recordable state upon successful scanning of at least one file where no malicious code is found, wherein the authentication is the safety Performing outside of the memory; Writing the successfully scanned file of the read-write area to the first area; And configuring the first region in a read-only state after recording the successfully scanned file.
본 발명의 다양한 실시예는 컴퓨터(또는 기타 전자 장치)로 하여금 본 발명의 임의의 실시예에 따른 과정을 실행하도록 프로그램하는 데 이용될 수 있는 명령어들이 저장된 기계-판독 가능한 매체를 포함하는 컴퓨터 프로그램 제품으로서 제공될 수 있다. Various embodiments of the present invention include a computer program product comprising a machine-readable medium having stored thereon instructions which may be used to program a computer (or other electronic device) to execute a process according to any embodiment of the present invention. It can be provided as.
이제 하기 첨부된 도면을 참조하여 본 발명을 단지 예로서 설명할 것이다.The invention will now be described by way of example only with reference to the accompanying drawings, in which: FIG.
도 1은 악성 코드에 대한 스캔을 빠르게 할 수 있는 자원을 통합한 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템의 블록도이다.1 is a block diagram of a computer system in accordance with a preferred embodiment of the present invention incorporating resources that may speed up scanning for malicious code.
도 2는 본 발명의 바람직한 실시예에 따라 데이터 참조의 안전한 추적 및 안전한 데이터 보호를 제공하기에 적합한 보호 영역, 판독/기록 영역, 집적 드라이브 전자장치를 갖는 디스크 드라이브를 간략하게 나타낸 개략 정면도이다.2 is a simplified front view of a disk drive having a protection area, read / write area, integrated drive electronics suitable for providing secure tracking of data references and secure data protection in accordance with a preferred embodiment of the present invention.
도 3은 본 발명의 바람직한 실시예에 이용되는 디스크 드라이브의 집적 드라 이브 전자장치의 확대 블록도로, 상기 집적 드라이브 전자장치의 주변에 다른 하드웨어를 포함한다. 3 is an enlarged block diagram of an integrated drive electronic device of a disk drive used in the preferred embodiment of the present invention, and includes other hardware in the periphery of the integrated drive electronic device.
도 4는 보호 영역 및 판독/기록 영역에 대해 다른 레이아웃을 갖는 본 발명의 일 실시예에 따른 개별 디스크 드라이브 플래터의 평면도이다.4 is a plan view of an individual disc drive platter according to an embodiment of the present invention having different layouts for the protected area and the read / write area.
도 5는 보호 영역 및 판독/기록 영역에 대해 다른 레이아웃을 갖는 본 발명의 일 실시예에 따른 개별 디스크 드라이브 플래터의 평면도이다.5 is a plan view of an individual disc drive platter according to an embodiment of the present invention having different layouts for the protected area and the read / write area.
도 6은 보호 영역에 대한 변경이 일어나지 않은 정상 모드에서 동작하면서 판독/기록 영역의 데이터를 캐시하는 로직의 흐름도이다.6 is a flow diagram of logic for caching data in a read / write area while operating in a normal mode in which no change to the protected area has occurred.
도 7은 본 발명의 일 실시예에 따라 최종 바이러스 스캔 이래로 기록된 모든 파일들을 스캔하는 로직을 나타낸 흐름도이다. 7 is a flow diagram illustrating logic for scanning all files recorded since the last virus scan in accordance with one embodiment of the present invention.
도 8은 본 발명의 일 실시예에 따라 보호 영역 내 변경되지 않은 파일들을 스캔하는 로직을 나타낸 흐름도이다. 8 is a flowchart illustrating logic for scanning unchanged files in a protection area according to an embodiment of the present invention.
도 9는 본 발명의 일 실시예에 따라 보호 영역 내 변경되지 않은 파일들의 서브세트를 스캔하는 로직을 나타낸 흐름도이다. 9 is a flow diagram illustrating logic for scanning a subset of unchanged files in a protected area according to one embodiment of the invention.
도 10은 각각의 영역에서 바이러스 스캔의 성공적인 운영 후에 타임스탬프가 안전 메모리에 저장되는 본 발명의 바람직한 실시예에 따라, 각 판독/기록 및 보호 영역마다 하나의 타임스탬프가 기입된 테이블이다. FIG. 10 is a table with one timestamp written for each read / write and protected area, in accordance with a preferred embodiment of the present invention in which the timestamp is stored in a secure memory after successful operation of a virus scan in each area.
도 11은 제어기 및 안전 메모리가 디스크 제어기에 위치한 본 발명에 따른 일 실시예의 블록도이다.Figure 11 is a block diagram of one embodiment according to the present invention with a controller and a secure memory located in a disk controller.
도 12는 제어기 및 안전 메모리가 IDE 케이블에 위치한 본 발명에 따른 일 실시예의 블록도이다.12 is a block diagram of one embodiment in accordance with the present invention in which a controller and a safety memory are located on an IDE cable.
도 13은 안전 메모리 및 기타 보호 기능을 구현하기 위해 하드웨어-구현 제어기 대신에 가상 머신 모니터가 채용된 본 발명의 일 실시예에 따라, 가상 소프트웨어를 운영하는 컴퓨터 시스템의 추상 계층을 도시한 시스템 가상 계층도이다. FIG. 13 is a system virtual layer illustrating an abstract layer of a computer system running virtual software, in accordance with an embodiment of the present invention wherein a virtual machine monitor is employed in place of a hardware-implemented controller to implement safe memory and other protection functions. It is also.
도 14는 판독/기록 영역으로부터 보호 영역으로의 파일 이동이 물리적이라기보다 논리적으로 실행되는 본 발명의 일 실시예에 따라, 최종 바이러스 스캔 이래로 기록된 모든 파일들을 스캔하는 로직을 나타낸 흐름도이다. FIG. 14 is a flow diagram illustrating logic to scan all files recorded since the last virus scan, according to one embodiment of the invention where file movement from the read / write area to the protected area is performed logically rather than physically.
이하, 본 발명의 바람직한 실시예를 통해 도시된 첨부된 도면을 참조하여 본 발명을 보다 상세하게 설명할 것이나, 뒤에 이은 명세서의 개시에 있어서 당업자라면 여기에 기술된 발명을 변경할 수 있으며, 여전히 본 발명의 바람직한 결과를 얻을 수 있음을 이해하여야 한다. 따라서, 뒤에 이은 설명은 광범위한 것으로 해석하며, 여기 개시된 내용은 본 발명을 교시하기 위한 것으로서, 본 발명이 이에 한정되는 것은 아니다.Hereinafter, the present invention will be described in more detail with reference to the accompanying drawings, which are shown through preferred embodiments of the present invention. It should be understood that a desirable result can be obtained. Accordingly, the following description is to be interpreted as extensive, and the content disclosed herein is for teaching the present invention, but the present invention is not limited thereto.
이하, 첨부된 도면을 참조하여, 본 발명의 바람직한 실시 형태를 설명하며, 도면 중 동일한 참조 번호는 동일한 요소 또는 동일한 단계를 나타낸다. 본 발명의 상세한 설명을 통해 언급되는“일 실시예”, “실시 형태” 또는 이들과 유사한 용어는 본 발명의 적어도 하나의 실시예에 포함되는 실시예와 관련하여 설명되는 특정 사양, 구조, 또는 특징을 의미한다. 따라서, 본 발명의 상세한 설명을 통한“일 실시예에서”, “실시 형태에서” 및 이들과 유사한 용어의 구문은 반드시 그러한 것은 아니지만 모두 동일한 실시예를 언급할 수 있다. DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention will now be described with reference to the accompanying drawings, wherein like reference numerals denote like elements or like steps. The terms “one embodiment”, “embodiment” or the like, which are referred to through the detailed description of the present invention, are specific specifications, structures, or features described in connection with the embodiments included in at least one embodiment of the present invention. Means. Thus, the phrases of “in one embodiment”, “in an embodiment” and the like throughout the description of the present invention may refer to the same embodiment, although not necessarily all.
도 1은 바이러스와 같은 악성 코드를 포함한 부적합 코드에 대한 스캔을 빠르게 할 수 있는 자원을 통합한 본 발명의 바람직한 실시예에 따른 컴퓨터 시스템의 블록도이다. 도 1에 도시된 예시적인 실시예는 퍼스널 컴퓨터의 ThinkCentre 또는 ThinkPad 시리즈의 하나와 같은 데스크톱 컴퓨터 시스템이거나, IBM(International Business Machines) Corporation of Armonk, New York에 의해 판매되는 Intellistation과 같은 워크스테이션 컴퓨터일 수 있다. 그러나 뒤에 이은 설명으로부터 명백하듯이, 본 발명은 임의의 데이터 처리 시스템에 바이러스 스캔 등의 효력 및 안전성을 증가시키기 위해 적용될 수 있다(ThinkCentre, ThinkPad 및 Intellistation은 IBM Corporation의 상표임). 1 is a block diagram of a computer system in accordance with a preferred embodiment of the present invention incorporating resources that may speed up scanning for nonconforming code, including malicious code such as viruses. The exemplary embodiment shown in FIG. 1 may be a desktop computer system such as ThinkCentre or a ThinkPad series of personal computers, or a workstation computer such as Intellistation sold by International Business Machines Corporation of Armonk, New York. have. However, as will be apparent from the description which follows, the present invention can be applied to any data processing system to increase the effectiveness and safety of virus scanning and the like (ThinkCentre, ThinkPad and Intellistation are trademarks of IBM Corporation).
도 1에 도시된 바와 같이, 컴퓨터 시스템(100)은 적어도 하나의 시스템 프로세서(42)를 포함하고, 이는 프로세서 버스(44)에 의해 ROM(Read-Only Memory, 40) 및 시스템 메모리(46)에 연결된다. IBM Corporation에 의해 제조되는 프로세서인 PowerPCTM 라인의 하나를 포함할 수 있는 시스템 프로세서(42)는 전원 공급시 ROM(50) 내에 저장된 부트 코드(41)를 실시하고 그에 따라 시스템 메모리(46)에 저장된 오퍼레이팅 시스템 및 응용 프로그램 소프트웨어의 제어 하에 데이터를 처리하는 범용 프로세서이다. 시스템 프로세서(42)는 프로세서 버스(44) 및 호스트 브릿지(48)를 통해 PCI(Peripheral Component Interconnect) 로컬 버스(50)에 연결될 수 있다. PCI 로컬 버스(50)는 어댑터 및 브릿지를 포함한, 다수 디바이스의 결합 을 지원한다. 이들 디바이스 중에는 컴퓨터 시스템(100)을 LAN(10)에 접속시키는 네트워크 어댑터(66)가 있고, 컴퓨터 시스템(100)을 디스플레이(69)에 접속시키는 그래픽 어댑터(68)가 있다. PCI 로컬 버스(50)를 통한 통신은 로컬 PCI 제어기(52)에 의해 제어되고, 이는 메모리 버스(54)를 통해 NVRAM(non-volatile random access memory)에 차례로 연결된다. 로컬 PCI 제어기(52)는 제 2 호스트 브릿지(60)를 통해 추가의 버스 및 디바이스에 연결될 수 있다. EIDE 디스크 제어기(72)는 프로세서(42)를 포함한 임의의 다른 시스템 컴포넌트에 의해 디스크 드라이브(200)에/로부터 이루어지는 접속 또는 참조를 제어한다. As shown in FIG. 1, the computer system 100 includes at least one system processor 42, which is provided to the read-only memory 40 and the system memory 46 by the processor bus 44. Connected. System processor 42, which may include one of the PowerPC lines of processors manufactured by IBM Corporation, executes boot code 41 stored in ROM 50 upon power up and thus stored in system memory 46 A general purpose processor that processes data under the control of an operating system and application software. The system processor 42 may be connected to the Peripheral Component Interconnect (PCI) local bus 50 via the processor bus 44 and the host bridge 48. PCI local bus 50 supports the combination of multiple devices, including adapters and bridges. Among these devices are a network adapter 66 that connects the computer system 100 to the LAN 10, and a graphics adapter 68 that connects the computer system 100 to the display 69. Communication over PCI local bus 50 is controlled by local PCI controller 52, which in turn is connected to non-volatile random access memory (NVRAM) via memory bus 54. The local PCI controller 52 may be connected to additional buses and devices through the second host bridge 60. EIDE disk controller 72 controls connections or references made to / from disk drive 200 by any other system component, including processor 42.
컴퓨터 시스템(100)은 ISA(Industry Standard Architecture) 버스(62)를 더 포함하고, 이 버스(62)는 ISA 브릿지(64)에 의해 PCI 로컬 버스(50)에 연결된다. ISA 버스(62)에는 입력/출력(I/O; input/output) 제어기(70)가 연결되어 있으며, 이 제어기(70)는 컴퓨터 시스템(100)와 키보드 및 마우스와 같이 결합된 주변 디바이스 사이의 통신을 제어한다. 또한, I/O 제어기(70)는 직렬 및 병렬 포트를 통해 컴퓨터 시스템(100)에 의한 외부의 통신을 지원한다. Computer system 100 further includes an Industry Standard Architecture (ISA) bus 62, which is connected to PCI local bus 50 by an ISA bridge 64. An input / output (I / O) controller 70 is connected to the ISA bus 62, which connects the computer system 100 to a peripheral device coupled such as a keyboard and mouse. Control communication. In addition, I / O controller 70 supports external communication by computer system 100 through serial and parallel ports.
당업계에 통상적인 지식을 가진 자라면 일반적으로 오퍼레이팅 시스템 및 파일 시스템의 작업 지식을 갖는다. FAT 파일 시스템에 관련하여, 1986년 ISBN 0-914845-77-2, Ray Duncan에 의한 Advanced MS-DOS: The Microsoft guide for Assembly Language and C programmers의 8장에 FAT 파일 시스템의 구조에 대해 개시되어 있으며, 여기서는 이 내용을 참조로서 포함한다. 바람직한 실시예에서 FAT 시스템이 이용되었으나, 본 발명의 기술적 사상 및 범위를 벗어나지 않고 다른 파 일 시스템이 이용될 수도 있다. Those skilled in the art generally have a working knowledge of operating systems and file systems. Regarding the FAT file system, Chapter 8 of 1986 ISBN 0-914845-77-2, Advanced MS-DOS: The Microsoft guide for Assembly Language and C programmers by Ray Duncan, describes the structure of the FAT file system. , Which is hereby incorporated by reference. Although the FAT system is used in the preferred embodiment, other file systems may be used without departing from the spirit and scope of the present invention.
여기에 이용되었듯이, 클러스터는 디스크 드라이브(200)를 통해 데이터에 액세스하기 위해 오퍼레이팅 시스템의 파일 시스템 드라이버에 의해 이용되는 논리 유닛이다. 각각의 논리 클러스터는 일반적으로 인접한 다수의 물리적 섹터를 포함한다. 각 FAT 파티션은 파일의 디렉토리, 파일 할당 테이블의 2개의 복사본, 및 데이터 영역을 포함한다고 가정된다. 파일의 디렉토리는 각 파일의 이름, 및 시작 클러스터, 관련 일자 등을 포함한 그의 속성을 포함한다. 파일 할당 테이블은 각 파일을 포함하는 클러스터의 연결 리스트를 포함한다.As used herein, a cluster is a logical unit used by the file system driver of the operating system to access data through the disk drive 200. Each logical cluster generally includes a plurality of contiguous physical sectors. Each FAT partition is assumed to contain a directory of files, two copies of the file allocation table, and a data area. The directory of files includes the name of each file and its attributes, including the starting cluster, related date, and the like. The file allocation table contains a linked list of clusters containing each file.
시스템 메모리(46)가 고갈된 오퍼레이팅 시스템(46)은 미리 할당된(pre-allocated) 클러스터에 컴퓨터 파일을 직접 저장하거나, 또는 파일이 하나의 클러스터에 맞추기에 너무 큰 경우에는 파일을 조각으로 나누어 하드 디스크(200) 상의 각 클러스터에 이들 조각을 저장함으로써 컴퓨터 파일을 저장한다. FAT 파일 시스템은 오퍼레이팅 시스템으로 하여금 파일의 각 조각의 위치 및 시퀀스를 추적할 수 있게 하고, 또한 오퍼레이팅 시스템으로 하여금 어떤 클러스터가 할당되지 않고 신규 파일에 이용될 수 있는지 식별할 수 있게 한다. 컴퓨터(100)가 파일을 참조하는 경우, FAT 파일 시스템은 파일의 각 조각을 파일 시스템 드라이버에 의해 조립된 하나의 유닛으로 재조립하기 위한 참조로서의 역할을 한다.Operating system 46, which is depleted of system memory 46, stores computer files directly in a pre-allocated cluster or, if the file is too large to fit into one cluster, breaks the file into pieces. Computer files are stored by storing these pieces in each cluster on disk 200. The FAT file system enables the operating system to track the location and sequence of each piece of a file, and also allows the operating system to identify which cluster is available for new files without being allocated. When the computer 100 references a file, the FAT file system serves as a reference for reassembling each piece of file into one unit assembled by the file system driver.
대부분의 사용자에게 있어서, 컴퓨터 시스템에 저장된 대부분의 데이터는 시간에 걸쳐 변경되지 않은 채로 유지되는 것으로 알려져왔다. 바이러스 스캔과 같은, 부적합 또는 악성 코드에 대한 스캔은 통상적으로 매주 실행된다. 스캔은 종종 업데이트되는 바이러스 정의 파일을 참조하여 실행된다. 그러나 시간이 흐름에 따라 바이러스 정의 파일 자체가 바이러스 서명, 코드 조각, 데이터 조각, 해쉬 등과 같은 대개 변경되지 않은 바이러스 식별자를 포함하게 된다. 따라서, 알려진 바와 같이, 대다수의 스캔 활동은 변경되지 않은 데이터에 대해 변경되지 않은 식별자에 의해 스캔되는 것이다. 본 발명의 다양한 양상 및 실시예는 최종 성공적인 스캔 이래로 보통 대부분의 데이터인 데이터가 변경되지 않았는지 스캐닝 응용 프로그램이 안전하게 판단할 수 있는 플랫폼을 제공하고, 대부분의 식별자인 변경되지 않은 식별자의 스캔을 우회함으로써, 바이러스와 같은 부적합 코드에 대해 컴퓨터 시스템을 스캔하는 데 필요한 시간을 감소시키고자 한다. For most users, most of the data stored on computer systems have been known to remain unchanged over time. Scans for invalid or malicious code, such as virus scans, are typically run weekly. The scan is often run with reference to the virus definitions file being updated. Over time, however, the virus definition file itself usually contains unaltered virus identifiers, such as virus signatures, code snippets, data snippets, and hashes. Thus, as is known, the majority of scan activity is to be scanned by an unchanged identifier for unchanged data. Various aspects and embodiments of the present invention provide a platform on which a scanning application can safely determine whether data, which is usually most data, has not changed since the last successful scan, and bypasses the scan of most identifiers that are not changed. Thereby reducing the time required to scan a computer system for noncompliant code, such as a virus.
도 2는 본 발명의 바람직한 실시예에 따라 데이터 참조의 안전한 추적 및 안전한 데이터 보호를 제공하기에 적합한 보호 영역(202), 판독/기록 영역(204), 집적 드라이브 전자장치(201)를 갖는 디스크 드라이브(200)를 간략하게 나타낸 개략 정면도이다. 다른 실시예에서는, 디스크 드라이브(200)가 종래의 디스크 드라이브이고, 시스템의 다른 곳에서 안전한 추적 및 안전한 데이터 보호 특징이 제공될 수 있을 것이다. 그러나, 도 2에 도시된 바람직한 실시예에서는, 컴퓨터 시스템에 축적된 대부분의 데이터가 최근의 바이러스 스캔에 관련하여 변경되지 않았으므로, 대부분의 개별 디스크 또는 플래터(202)는 악성 코드에 대해 성공적으로 스캔된 변경되지않은 데이터를 위해 예비 할당된다. 디스크 드라이브의 개별 디스크, 플래터(204)는 최종 성공적인 스캔 이래로 기록된 데이터를 위해 예비 할당된다. 드라이브(200)의 내부적으로, 집적 드라이브 전자장치(201)는 플래터(204)에 새로 기록 된 파일의 캐시를 유지시키고, 정상 동작 동안 보호 플래터(202)를 판독-전용 액세스 모드로 유지한다. 드라이브(200)의 외부적으로, 집적 드라이브 전자장치(201)는 전체 디스크 드라이브가 기록 가능한 것으로 보이는 파일 시스템 드라이버에 통상적인 인터페이스를 제공한다. 이러한 구성은 (1) 오퍼레이팅 시스템에 부적합하게 실시되는 악성 코드가 보호 데이터 영역(202)을 변경할 수 없고, (2) 파일 일자 및 속성 데이터가 신뢰될 수 있는 플랫폼을 제공한다. 이하, 보다 자세한 구현예의 세부 사항을 설명한다.2 is a disk drive having a protection area 202, read / write area 204, integrated drive electronics 201, suitable for providing secure tracking of data references and secure data protection in accordance with a preferred embodiment of the present invention. It is a schematic front view which shows 200 briefly. In other embodiments, disk drive 200 is a conventional disk drive, and secure tracking and secure data protection features may be provided elsewhere in the system. However, in the preferred embodiment shown in Figure 2, since most of the data accumulated in the computer system has not changed in relation to recent virus scans, most individual disks or platters 202 have been successfully scanned for malicious code. Reserved for unchanged data. Individual disks, platters 204 of the disk drive are pre-allocated for the data written since the last successful scan. Internally of the drive 200, the integrated drive electronics 201 maintains a cache of newly written files on the platter 204 and keeps the protection platter 202 in read-only access mode during normal operation. External to drive 200, integrated drive electronics 201 provide a conventional interface to file system drivers in which the entire disk drive appears to be writable. This configuration provides a platform in which (1) malicious code improperly implemented in the operating system cannot change the protected data area 202, and (2) the file date and attribute data can be trusted. Hereinafter, the details of the more detailed implementation will be described.
디스크 드라이브(200)에 대해 여기에 설명되지 않는 구현예의 세부 사항은 통상적인 것으로 간주된다. 대체로 하드 디스크 드라이브의 구성에 관한 세부 사항은 본 발명의 완전한 이해를 얻기 위해 필수적이지 않은 세부 사항들이므로 생략된다. Details of implementations not described herein for the disk drive 200 are considered to be conventional. In general, details regarding the configuration of the hard disk drive are omitted because they are details that are not essential for a full understanding of the present invention.
도 3은 본 발명의 바람직한 실시예에 이용되는 디스크 드라이브(200)의 집적 드라이브 전자장치의 확대 블록도로, 상기 집적 드라이브 전자장치의 주변에 다른 하드웨어를 포함한다. 하드 디스크(200)의 집적 드라이브 전자장치(201)는 커넥터(307, 306)를 거쳐 케이블(308)을 통해 시스템(100)에 연결된다. 커넥터(306)는 하드 디스크 드라이브(200)에 필수 요소인 반면, 커넥터(307)는 케이블(308)의 일부를 형성한다. 인터페이스(304)는 저-레벨 결합 인터페이스를 처리하고, ATA 규격에 따르며 디스크 제어기(72)와 같은 EIDE 제어기와 접속하는 하드 디스크 드라이브에서 일반적으로 발견되는 표준 칩으로서 구현된다. 바람직한 실시예에서는 IDE 드라이브가 이용되었으나, 본 발명의 범위에서 벗어나지 않고 SCSI 드라이브 및 다 른 저장 디바이스가 이용될 수 있다. 제어기(301)는 본 실시예의 안전 및 보호 사양을 처리하며, 여기에 흐름도를 참조하여 설명되는 바와 같이 기능한다. 제어기(301)는 H8과 같은 마이크로제어기(microcontroller)로서 구현될 수 있으며, 안전 메모리(302)에 연결된다. 안전 메모리(302)는 제어기(301)에 의해서만 어드레스 가능하기 때문에, 이에 따라 시스템 메모리(46)의 외부에서 시스템 프로세서(42)에 의해 실시되는 오퍼레이팅 시스템 하에서 실행되는 바이러스는 안전 메모리(302)에 액세스할 수 없다. I/O 명령을 통해, 제어기(301)는 바이러스-스캔 특정 변수를 안전 메모리(302)의 비휘발성부에 저장한다. 또한, 제어기(301)는 바람직한 실시예의 안전 및 보호 사양의 이용을 요청하는 안티-바이러스 스캐닝 소프트웨어에 인증 서비스를 제공하기 위해 안전 메모리(302)의 외부에서 인증 코드를 실행시킨다. 비휘발성부에 더하여, 안전 메모리(302)는 비휘발성부에서보다 더 높은 속도로 인증 코드를 실행시키고, 임시 변수 등을 저장하기 위한 랜덤 액세스 메모리부를 포함한다. 예를 들어, 흐름도의 설명에서 언급되는 바와 같이, 보호 영역(202)을 판독 전용 액세스 모드로부터 판독/기록 액세스 모드로 변경하기 위해 제어기(301)가 인증을 요청한다. 3 is an enlarged block diagram of an integrated drive electronics of the disk drive 200 used in the preferred embodiment of the present invention, including other hardware in the periphery of the integrated drive electronics. The integrated drive electronics 201 of the hard disk 200 are connected to the system 100 via cables 308 via connectors 307 and 306. Connector 306 is an integral part of hard disk drive 200, while connector 307 forms part of cable 308. The interface 304 is implemented as a standard chip that handles low-level coupling interfaces, conforms to the ATA specification, and is commonly found in hard disk drives that interface with EIDE controllers, such as disk controller 72. Although IDE drives are used in the preferred embodiment, SCSI drives and other storage devices may be used without departing from the scope of the present invention. The controller 301 handles the safety and protection specifications of this embodiment and functions as described herein with reference to the flowchart. The controller 301 may be implemented as a microcontroller such as H8 and connected to the safety memory 302. Since the safe memory 302 is only addressable by the controller 301, a virus running under an operating system implemented by the system processor 42 outside of the system memory 46 thus accesses the safe memory 302. Can not. Through the I / O command, the controller 301 stores the virus-scan specific variables in the nonvolatile portion of the safety memory 302. The controller 301 also executes the authentication code outside of the secure memory 302 to provide an authentication service to anti-virus scanning software that requests the use of the safety and protection features of the preferred embodiment. In addition to the nonvolatile portion, the secure memory 302 includes a random access memory portion for executing the authentication code at a higher speed than in the nonvolatile portion, and storing temporary variables and the like. For example, as mentioned in the description of the flowchart, the controller 301 requests authentication to change the protected area 202 from a read only access mode to a read / write access mode.
일 실시예에서, 흐름도에 도시된 것들과 같은 소정의 안전 동작 및 서비스를 인증하기 위한 목적으로 디지털 서명 구조가 제어기(301) 및 안전 메모리(302)에 의해 구현된다. 예를 들어, 바이러스 스캐너와 같은 응용 프로그램에 의해 안전 동작 또는 서비스가 요청된다. 응용 프로그램은 개인키와 공용키를 갖도록 가정되며, 제어기(301)는 응용 프로그램의 공용키 정보에 대해 비밀히 관여하는 것으로 가정 된다. 이 구조에 따르면, 응용 프로그램은 제어기(301)로부터 인증을 필요로 하는 안전 서비스를 요청한다. 이에 응답하여, 제어기(301)는 한번의(단일 이용) 랜덤 번호, N1을 생성하고, N1을 응용 프로그램에 통신한다. 이에 응답하여, 응용 프로그램은 HMAC(Hashed Message Authentication Code) 함수를 이용함에 의해 디지털 방식으로 N1을 신호하고, N1과 응용 프로그램의 개인키를 결합하여 대응하는 한번의 암호, P1를 생성한다. SHA-1이 안전 해싱 방법으로서 이용되고, 현재 사서 공격(dictionary attacks)으로부터 면역인 것으로 여겨진다. 그 다음, 응용 프로그램은 제어기(301)에 P1을 통신한다. 이에 응답하여, 제어기(301)는 소정의 동의된 SHA-1 HMAC의 주어진 지식으로 P1과 응용 프로그램의 공용키를 복호화하여, 암호 P1의 인증을 검증한다. 검증되면, 응용 프로그램은 요청되는 안전 수단에 액세스가 주어진다. In one embodiment, a digital signature structure is implemented by controller 301 and secure memory 302 for the purpose of authenticating certain secure operations and services, such as those shown in the flow chart. For example, a safe operation or service is requested by an application such as a virus scanner. It is assumed that the application has a private key and a public key, and the controller 301 is assumed to secretly engage in the public key information of the application. According to this structure, the application program requests a security service from the controller 301 that requires authentication. In response, the controller 301 generates one (single use) random number, N1, and communicates N1 to the application. In response, the application program digitally signals N1 by using a hashed message authentication code (HMAC) function, and combines N1 and the private key of the application to generate a corresponding password, P1. SHA-1 is used as a safe hashing method and is currently considered immune from dictionary attacks. The application program then communicates P1 to the controller 301. In response, the controller 301 decrypts P1 and the public key of the application program with the given knowledge of the predetermined agreed SHA-1 HMAC to verify the authenticity of the cipher P1. Once verified, the application is given access to the requested safety measures.
다른 인증 기술이 이용될 수 있다. 일 실시예에서는, 하드웨어 지원 전자 서명 기술이 이용된다. 공용키가 디스크 드라이브(200)를 통해 제어기(301)에 인지되고(또는, 다른 실시예에 설명되는 바와 같이 다른 위치에서), 개인키가 TCG TPM 또는 스마트 카드(Smart Card)와 같은 일부 공간에 안전하게 유지된다. TPM 사양에 관심있는 독자들이라면, 인터넷을 통해 www.trustedcomputinggroup.org에서, TCG TPM Specification Version 1.2을 찾을 수 있다. 그리하여, TPM 또는 스마트 카드에 대한 인증이 안전 경로 또는 망막 눈 스캔 또는 지문 인식 서브시스템과 같은 바이오메트릭(biometric)을 통해 행해질 수 있으며, 이에 따라 요청된 인증을 일으킨다.Other authentication techniques can be used. In one embodiment, a hardware assisted electronic signature technique is used. The public key is recognized by the controller 301 via the disk drive 200 (or at another location as described in other embodiments) and the private key is stored in some space, such as a TCG TPM or a Smart Card. Keep safe Readers interested in the TPM specification can find the TCG TPM Specification Version 1.2 on the Internet at www.trustedcomputinggroup.org . Thus, authentication for the TPM or smart card can be done via a biometric such as a safe path or a retinal eye scan or fingerprint recognition subsystem, thus resulting in the requested authentication.
마찬가지로, 제어기(301)의 기능이 가상 머신 모니터에 내재된, 도 13에 도시된 가상 머신 모니터 실시예에 대해, 가상 머신 모니터로 하여금 키보드 및 스크린(도 13에 도시않음)을 제어하게 하고, 직접 암호 인증을 허용하는 응용 프로그램을 운영하거나, 그러한 응용 프로그램이 운영되는 안전 가상 머신을 제공하게 함에 의해, 인증이 행해질 수 있다. 또한, 이 암호는 하드웨어 제어기에 직접 통과될 것 같지 않으나, 사서 공격에 대항하여 추가적인 보호를 제공하기 위해 랜덤 번호와 함께 이용된다.Similarly, for the virtual machine monitor embodiment shown in FIG. 13, in which the functionality of the controller 301 is inherent in the virtual machine monitor, allows the virtual machine monitor to control the keyboard and screen (not shown in FIG. 13) and directly. Authentication can be done by operating an application that allows password authentication, or by providing a secure virtual machine on which such an application is run. This cipher is also unlikely to be passed directly to the hardware controller, but is used with random numbers to provide additional protection against librarian attacks.
일 실시예에서는, 인증 미디어로부터 하드웨어로의 인증 검증을 제공하고 있는 직접적인 경로로 바이러스에 면역인, 직접적인 암호를 입력하는 안전한 “신뢰 경로”를 제공할 수 있다. 이 실시예에서, 버튼과 같은 단순한 것이 암호를 대신하여 이용될 수 있으며, 바이러스로서는 버튼을 물리적으로 “누를 수(push)”있는 방법이 없을 것이다. In one embodiment, a direct “route” that is immune to viruses, may provide a secure “trust path” that is immune to viruses by a direct path providing authentication verification from authentication media to hardware. In this embodiment, something as simple as a button can be used in place of a password, and there would be no way for a virus to physically “push” the button.
일 실시예에서는, 단순화를 원하는 경우, 단순한 암호가 이용되어 작용할 수 있다. 그러나, 직접 암호와 같은 단순한 구조는 그러한 인증만 찾도록 특별히 고안된 바이러스 또는 Trojan에 의해 침입될 수 있다. 그렇지만, 직접 암호는 최소 레벨의 안전성을 제공하고, 바이러스 스캔 직후에 실시될 수 있어 위험을 최소화할 수 있다. In one embodiment, simple cryptography may be used to act if simplicity is desired. However, simple constructs such as direct passwords can be invaded by Trojans or viruses specifically designed to find only such authentication. However, direct cryptography provides a minimum level of security and can be enforced immediately after virus scanning, minimizing risk.
인증 코드를 실시하는 형태로 안전 메모리의 참조에 의해, 또는 안전 메모리(302)에 저장된 타임스탬프, 파일 또는 클러스터 속성과 같은 저장된 변수와 기타 참조에 의해, 플랫폼은 악성 코드에 의해 도달할 수 없는 안전 메모리(302)의 참조로부터 신뢰를 준다. By reference to the secure memory in the form of an authorization code, or by stored variables such as timestamps, files, or cluster attributes stored in the secure memory 302, and other references, the platform may not be reachable by malicious code. Trust is given from the reference to memory 302.
다른 실시예에서는, 안전 메모리가 이용될 수 없는 경우, 타임스탬프 등과 같은 신뢰 변수가 비안전 메모리(도시되지 않음)에 부호화된 형태로 저장된다. 이 액세스는 확실히 액세스 불가능한 메모리를 이용하는 경우만큼 안전할 수는 없으나, 최소 레벨의 기능성을 제공한다. 신뢰 변수에 의존하는 스캐닝 프로그램은 이 실시예의 비안전 메모리에 액세스하여 신뢰 변수를 얻고, 표준 복호화 기술을 이용하여 그 인증을 판단할 수 있다. 암호문이 안전성을 제공하는 한, 변수의 내용은 악성 코드에 이용될 수 없다. 악성 코드가 이 실시예의 비안전 메모리에 저장된 신뢰 변수를 침해하는 경우에, 표준 복호화 기술은 이러한 침해를 검출할 수 있다. 신뢰 변수의 복호화시 스캐닝 프로그램에 의해 부정적인 작용이 검출되는 경우, 여기에 설명되는 스캔을 빠르게 할 수 있는 기술이 우회되고, 악성 코드에 대한 스캐닝이 디스크 드라이브에 저장된 모든 파일에 대해 실행된다. In another embodiment, if a secure memory is not available, a trusted variable, such as a timestamp, is stored in encoded form in an unsafe memory (not shown). This access is certainly not as secure as using inaccessible memory, but it provides a minimum level of functionality. A scanning program that depends on the trust variable may access the insecure memory of this embodiment to obtain the trust variable and determine its authentication using standard decryption techniques. As long as the ciphertext provides security, the contents of the variable are not available to the malicious code. In the case where malicious code violates trust variables stored in the insecure memory of this embodiment, standard decryption techniques can detect this breach. If a negative action is detected by the scanning program upon decryption of the confidence variable, the technique to speed up the scan described herein is bypassed, and scanning for malicious code is performed on all files stored on the disk drive.
이제 도 3에 도시된 실시예의 설명으로 되돌아가면, 제어기(301)는 저-레벨 회로(305)에 접속되고, 제어기(301)가 없는 경우에는 ATA 인터페이스(304)가 마찬가지의 방식으로 접속된다. 저-레벨 드라이브 회로(305)는 스핀들 모터 개시 및 회전 속도를 포함한 저-레벨 디스크 드라이브 기능, 엑추에이터 이동, 오류 보정, 및 헤드 전류와 비트 부호화 프로토콜을 포함하여 보호 플래터(202) 및 판독/기록 플래터(204)에 대한 판독 및 기록 전류를 제어한다. Returning now to the description of the embodiment shown in FIG. 3, the controller 301 is connected to the low-level circuit 305, and in the absence of the controller 301, the ATA interface 304 is connected in a similar manner. Low-level drive circuitry 305 includes protection platter 202 and read / write platters, including low-level disk drive functions, including spindle motor start and rotation speed, actuator movement, error correction, and head current and bit encoding protocols. Control the read and write current for 204.
일 실시예에서, 안전 메모리(302)의 비휘발성부 또는 이의 부분부(sub-portion)는 하드 드라이브 자체의 보호 섹터 또는 트랙으로서 구현될 수 있다. In one embodiment, the nonvolatile portion or sub-portion of secure memory 302 may be implemented as a protected sector or track of the hard drive itself.
도 4는 보호 영역 및 판독/기록 영역에 대해 다른 레이아웃을 갖는 본 발명의 일 실시예에 따른 개별 디스크 드라이브 플래터의 평면도이다. 도 4에 도시된 실시예에서는, 보호 및 판독/기록 영역을 각각의 플래터로 구분하기보다, 개별 디스크의 임의의 하나의 표면 또는 모든 디스크가 보호 영역(402) 및 판독/기록 영역(404)으로 구분될 수 있다. 최종 성공적인 스캔 이래로 기록되어온 파일은 외부의 판독/기록 트랙(404)에 캐시된다. 최종 스캔에서 성공적으로 스캔된 파일은 내부의 보호 트랙(402)에 유지시킨다. 4 is a plan view of an individual disc drive platter according to an embodiment of the present invention having different layouts for the protected area and the read / write area. In the embodiment shown in FIG. 4, rather than dividing the protected and read / write areas into separate platters, any one surface or all of the disks of the individual disks are protected area 402 and read / write area 404. Can be distinguished. Files that have been written since the last successful scan are cached in an external read / write track 404. The file that was successfully scanned in the last scan is kept in the internal protection track 402.
도 5는 보호 영역 및 판독/기록 영역에 대해 다른 레이아웃을 갖는 본 발명의 일 실시예에 따른 개별 디스크 드라이브 플래터의 평면도이다. 도 5에 도시된 실시예에서는, 보호 및 판독/기록 영역을 각각의 플래터 또는 각각의 트랙으로 구분하기보다, 보호 영역(502) 및 판독/기록 영역(504)은 안전 메모리(302)에 테이블에 보유함으로써 제어기(301)에 의해 논리적으로 추적될(차지될) 수 있다. 따라서, 다른 실시예에서와 같이 보호 및 판독/기록 영역 간의 구분은 물리적이거나 연속적일 필요가 없다. 제어기(301)에 의해 추적되는 영역은 클러스터(논리적) 또는 섹터(물리적)일 수 있고, 클러스터의 그룹 또는 섹터의 그룹 또는 심지어 개별 트랙일 수도 있다. 그러나, 디스크에서 디렉토리는 클러스터로서 보유되므로 클러스터를 추적하는 것이 가장 편리하며, 영역을 추적하는 데 이용되는 테이블의 비휘발성부는 안전 메모리(302)에서 정상적으로 구현될 수 있고, 하드 디스크 자체에서 디렉토리에 포함될 수 있다. 다른 실시예와 유사한 방식으로, 파일이 변경되었는지와 같은 판단은 메인 프로세서(42)의 제어 하에 오퍼레이팅 시스템으로부터 실행되는 바이러스에 의해 액세스 불가능한 안전 메모리(302)에 보유된 테이블을 참조함에 따라 신뢰를 준다. 5 is a plan view of an individual disc drive platter according to an embodiment of the present invention having different layouts for the protected area and the read / write area. In the embodiment shown in FIG. 5, rather than dividing the protected and read / write areas into respective platters or respective tracks, the protected area 502 and read / write area 504 are stored in a table in the safe memory 302. By holding it can be logically tracked (charged) by the controller 301. Thus, as in other embodiments, the distinction between the protected and read / write areas need not be physical or continuous. The area tracked by the controller 301 may be a cluster (logical) or sector (physical) and may be a group of clusters or a group of sectors or even individual tracks. However, since directories on disk are held as clusters, it is most convenient to keep track of clusters, and the non-volatile portions of the tables used to track areas can be implemented normally in safe memory 302, and included in directories on the hard disk itself. Can be. In a manner similar to other embodiments, a determination such as whether a file has been modified gives confidence by referring to a table held in safe memory 302 that is inaccessible by a virus running from the operating system under the control of the main processor 42. .
제어기(301) 및 안전 메모리(302)는 사실상, 안전 서브시스템 플랫폼을 형성하고, 이에 의해 안티-바이러스 스캐닝 응용 프로그램은 안티-바이러스 스캔의 효율성을 향상시키기 위해 안티-바이러스 파라미터를 신뢰성있게 판단할 수 있다. 안티-바이러스 프로그램은 클러스터가 아닌 파일 레벨에 대해 작업하고, 오퍼레이팅 시스템의 파일 시스템 드라이버는 본래 파일이 아닌 클러스터를 기록하므로, 제어기(301)는 최종 성공적인 스캔 이래로 기록된 클러스터에 대해 클러스터를 파일명과 상관시킨다. 이는 파일 시스템 드라이버에 의해 기록된 각 클러스터에 대해 하드 디스크 파티션의 디렉토리 및 파일 할당 테이블을 참조함에 의해 행해지며, 스테이징 판독/기록 영역(204)에서 캐시된 파일에 대해 대응하는 파일명을 얻게 된다. 보다 상세하게 설명되는 바와 같이, 판독/기록 영역(204)에 저장된 이들 파일은 일단 그들이 악성 코드에 대해 성공적으로 스캔되면, 결국 보호 영역의 일부에 이동되거나, 또는 보호 영역으로 변환될 것이다. The controller 301 and the safety memory 302 actually form a safety subsystem platform, whereby an anti-virus scanning application can reliably determine anti-virus parameters to improve the efficiency of anti-virus scanning. have. Since the anti-virus program works at the file level, not the cluster, and the operating system's file system driver writes the cluster, not the original file, the controller 301 correlates the cluster with the file name for the cluster that has been written since the last successful scan. Let's do it. This is done by referring to the directory and file allocation table of the hard disk partition for each cluster written by the file system driver, and get the corresponding file name for the cached file in the staging read / write area 204. As will be explained in more detail, these files stored in read / write area 204 will eventually be moved to a portion of the protected area or converted to the protected area once they are successfully scanned for malicious code.
일 실시예에서, 캐싱을 위한 다른 방법으로서, 전체 디스크는 판독/기록모드로 남을 수 있다. 이 실시예에서, 제어기(301) 및 안전 메모리(302)는 안전 메모리(302)에 기록된 클러스터의 리스트를 보유함으로써 최종 바이러스 스캔 이래로 하드 디스크의 어느 영역이 변경되었는지 안전하게 추적하도록 행할 수 있다. 그 다음 최종 바이러스 스캔 이래로 변경된 파일들의 리스트는 상기 언급한 바와 같이 디렉토리로부터 안티-바이러스 소프트웨어를 위해 끌어낼 수 있다. 이 실시예는 보 호 영역을 갖는 캐시된 실시예에 관련하여 감소된 레벨의 안전성을 제공한다. In one embodiment, as another method for caching, the entire disk may remain in read / write mode. In this embodiment, the controller 301 and the safe memory 302 can do so by keeping a list of clusters recorded in the safe memory 302 to safely track which areas of the hard disk have changed since the last virus scan. The list of files that have changed since the last virus scan can then be extracted for anti-virus software from the directory as mentioned above. This embodiment provides a reduced level of safety with respect to cached embodiments with protected areas.
도 6은 보호 영역에 대한 변경이 일어나지 않은 정상 모드에서 동작하면서 판독/기록 영역의 데이터를 캐시하는 로직의 흐름도이다. 도 6에 도시된 로직은 도 3의 제어기(301)에서 구현될 수 있다. 오퍼레이팅 시스템의 파일 시스템 드라이버로부터 하드 디스크 드라이브의 참조가 수신되는 경우, 캐싱 프로세스가 시작된다(602). 참조가 기록 참조인지 판독 참조인지를 판단하기 위해 제 1 문의가 이루어진다(604). 참조가 기록 참조라고 판단되는 경우(604), 데이터는 판독/기록 영역(204)에 기록된다(606). 참조가 판독 참조인 경우(604), 데이터가 판독/기록 영역(204)에 존재하는지에 대해 제 2 문의가 이루어진다(608). 데이터가 판독/기록 영역에 존재한다고 판단되는 경우(608), 데이터는 판독/기록 영역(204)으로부터 판독된다(610). 그렇지 않다면, 데이터가 판독/기록 영역(204)에 존재하지 않는다고 판단되는 경우(608), 데이터는 보호 영역(202)으로부터 판독된다.6 is a flow diagram of logic for caching data in a read / write area while operating in a normal mode in which no change to the protected area has occurred. The logic shown in FIG. 6 may be implemented in the controller 301 of FIG. 3. If a reference to the hard disk drive is received from the file system driver of the operating system, the caching process begins (602). A first query is made 604 to determine if the reference is a write reference or a read reference. If it is determined that the reference is a write reference (604), the data is recorded (606) in the read / write area 204. If the reference is a read reference (604), a second query is made (608) as to whether data exists in the read / write area 204. If it is determined that the data exists in the read / write area (608), the data is read from the read / write area 204 (610). Otherwise, if it is determined (608) that data does not exist in the read / write area 204, the data is read from the protected area 202.
도 7은 본 발명의 일 실시예에 따라 최종 바이러스 스캔 이래로 기록된 모든 파일들을 스캔하는 로직을 나타낸 흐름도이다. 도 7에서 점선의 오른쪽에 도시된 프로세스는 판독/기록 영역(305)의 파일을 스캐닝하는 프로세스동안 안티-바이러스 소프트웨어에 의해 실행된다. 점선의 왼쪽에 도시된 프로세스는 안티-바이러스 소프트웨어 응용 프로그램에 의해 행해된 동작에 응답하여 하드 디스크 드라이브(200)의 집적 드라이브 전자장치(210)의 제어기(301)에 의해 실행된다. 동일한 규칙이 도 8 및 도 9에 이용되고, 즉 응용 프로그램 동작은 오른쪽에, 제어기(301) 응답은 왼쪽에 도시한다. 먼저 안티-바이러스 소프트웨어는 최종 바이러스 스캔 이 래로 기록된 파일의 디렉토리를 요청한다(701). 이에 응답하여, 제어기(301)는 판독/기록 영역(204) 내 파일의 디렉토리를 전달한다(702). 그 다음, 안티-바이러스 소프트웨어는 모든 알려진 바이러스 식별자에 대해 각 파일을 바이러스 스캔한다(704). 악성 코드의 식별자 또는 서명은 정상적으로 해쉬의 형태를 취하나, 오퍼레이팅 시스템의 레지스트리를 스캔하기 위한 코드 조각, 데이터 조각, 및 레지스트리 엔트리를 포함한 다른 형태를 취할 수 있다. 판독/기록 영역(204)에 바이러스가 발견되는 경우, 그 다음 보정 동작이 행해진다(706). 바이러스 스캔의 성공적인 완료 이후, 안티-바이러스 소프트웨어는 판독/기록 영역(204)의 파일에 대해 새로운 성공적인 바이러스 스캔 완료 일자를 안전하게 로그(log)한다(707). 새로운 성공적인 바이러스 스캔 완료 일자를 안전하게 로그하려는 요청은 안전 메모리(302)에의 기록을 수반하므로, 제어기(301)는 초기에 인증 절차로서 이러한 요청에 응답한다(708). 인증 절차는 여기에 전술한 임의의 인증 절차일 수 있다(708). 인증이 성공적인 경우(708), 제어기(301)는 판독/기록 영역(204)에 대해 안전 메모리(302)에 타임스탬프를 기록한다(709). 이 타임스탬프는 최종 성공적인 바이러스 스캔이 완료된 시간을 나타내고, 이후의 스캔에 대해 스캐닝을 최소화하기 위해 나중에 이용된다. 다음으로, 안티-바이러스 소프트웨어는 성공적으로 스캔된 파일의 캐시 플러시(cache flush)를 요청한다(710). 요청에 응답하여(710), 제어기(301)는 인증 루틴을 실행한다(712). 인증이 성공적인 경우(712), 보호 영역(202)의 액세스 모드는 판독/기록 모드로 변경되고(713), 판독/기록 영역(204)으로부터 파일이 보호 영역으로 이동된다(714). 이동 과정의 일부로서, 스캔된 파일을 보호 영역(202)에 성 공적으로 기록한 후, 성공적으로 스캔된 파일은 판독-기록 영역(204)으로부터 삭제된다. 그 다음 보호 영역(20)의 액세스 모드는 판독-전용 액세스 모드로 변경되고(715), 승인은 안티-바이러스 소프트웨어에 되돌아온다. 따라서, 대다수의 식별자, 모든 식별자는 소수의 파일, 최종 스캔 이래로 변경된 이들 파일들에만 대해 스캔된다. 7 is a flow diagram illustrating logic for scanning all files recorded since the last virus scan in accordance with one embodiment of the present invention. The process shown to the right of the dashed line in FIG. 7 is executed by anti-virus software during the process of scanning the file in read / write area 305. The process shown to the left of the dashed line is executed by the controller 301 of the integrated drive electronics 210 of the hard disk drive 200 in response to the actions performed by the anti-virus software application. The same rules are used in Figures 8 and 9, i.e. application operation is shown on the right, and the controller 301 response is shown on the left. First, the anti-virus software requests a directory of the recorded files since the last virus scan (701). In response, the controller 301 passes 702 a directory of files in the read / write area 204. The anti-virus software then virus scans each file for all known virus identifiers (704). The identifier or signature of the malicious code normally takes the form of a hash, but may take other forms, including pieces of code, pieces of data, and registry entries to scan the registry of the operating system. If a virus is found in the read / write area 204, a correction operation is then performed (706). After successful completion of the virus scan, the anti-virus software safely logs 707 the new successful virus scan completion date for the file in the read / write area 204. Since the request to securely log the new successful virus scan completion date involves writing to the secure memory 302, the controller 301 initially responds to this request as an authentication procedure (708). The authentication procedure may be any authentication procedure described herein above (708). If authentication is successful (708), controller 301 writes a timestamp to secure memory 302 for read / write area 204 (709). This timestamp represents the time when the last successful virus scan was completed and is later used to minimize scanning for subsequent scans. The anti-virus software then requests 710 a cache flush of the successfully scanned file. In response to the request (710), the controller 301 executes (712) an authentication routine. If authentication is successful (712), the access mode of the protected area 202 is changed to read / write mode (713), and the file is moved from the read / write area 204 to the protected area (714). As part of the migration process, after successfully writing the scanned file to the protection area 202, the successfully scanned file is deleted from the read-write area 204. The access mode of the protected area 20 is then changed to read-only access mode (715) and the authorization is returned to the anti-virus software. Thus, the majority of identifiers, all identifiers, are scanned for only a few files, only those files that have changed since the last scan.
도 8은 본 발명의 일 실시예에 따라 보호 영역 내 변경되지 않은 파일들을 스캔하는 로직을 나타낸 흐름도이다. 안티-바이러스 소프트웨어는 처음에 최종 바이러스 스캔 이래로 기록되지 않은 파일의 디렉토리를 요청한다(802). 이에 응답하여, 제어기(301)는 보호 영역(202) 내 파일의 디렉토리를 돌려준다(804). 이들 파일은 이전의 스캔에 포함된 식별자에 대해 스캔될 필요가 없다. 따라서, 안티-바이러스 소프트웨어는 보호 영역(202) 내 모든 파일을 이전의 스캔에 포함되지 않은 새로 도입된 식별자에 대해서만 스캔한다. 이들 새로운 식별자는 통상적으로 매주 인터넷으로부터 다운로드되고, 바이러스 정의 파일에서 소수의 식별자 세트를 나타낸다. 보정 동작이 필요한 경우(808), 예를 들어 바이러스가 발견된 경우에서와 같이, 정상 모드의 동작시 판독-전용 모드로 설정된 보호 영역(202)에 대한 데이터에 관련하여 보정 동작이 발생할 필요가 있다(808). 따라서, 보정 동작을 취하기 위해(808), 보호 영역(202)을 기록가능한 모드로 변경하여야 한다. 따라서, 보정 동작이 필요한 경우(808), 안티-바이러스 소프트웨어는 액세스 모드 변경 동작을 인증하고(812), 인증이 성공한다면(812), 보호 영역(202)은 판독/기록 모드로 변경된다(813). 그 다음 제어기(301)는 보정 동작이(808) 보호 영역(202)에 행해지도록 허용한다(814). 보정 동작에 이어, 제어기(301)는 보호 영역(202)의 액세스 모드를 판독-전용 액세스 모드로 다시 변경한다(815). 일단 바이러스 스캔이 완료되고 성공적이라면, 그 다음 안티-바이러스 소프트웨어는 안전 서브시스템으로부터 이러한 로그를 요청함으로써, 보호 영역(202)에 대해 새로운 성공적인 완료 일자를 로그한다(818). 이러한 요청의 수신시, 제어기(301)는 인증 루틴을 호출하고(819), 성공한다면, 보호 영역(202)에 대해 안전 메모리(302)에 성공적인 스캔 완료 타임스탬프를 기록한다(820). 최종 스캔 일자 이래로 식별자가 새로 도입되었는지의 여부를 판단함에 있어서 스캔 동안 참조되는 것이 이 타임스탬프이다(806). 타임스탬프는 제어기(301)에 의해서만 액세스 가능하며, 시스템 프로세서(42)에 의한 오퍼레이팅 시스템 하에 실행되는 악성 코드에 의해 액세스 불가능한 안전 메모리(302)에 저장되기 때문에 이 판단은 신뢰될 수 있다. 타임스탬프가 안전 메모리(302)에 성공적으로 기록된 후, 승인이 안티-바이러스 소프트웨어에 송신된다. 따라서, 소수의 식별자, 최종 스캔 이래로 새로 다운로드된 이들 식별자들만(타임스탬프에 의해 검증되는 바와 같이), 다수의 파일, 보호 영역(202) 내 상주하는 변경되지 않은 파일들에 대해 스캔된다. 8 is a flowchart illustrating logic for scanning unchanged files in a protection area according to an embodiment of the present invention. The anti-virus software initially requests a directory of files that have not been recorded since the last virus scan (802). In response, the controller 301 returns 804 the directory of the file in protected area 202. These files do not need to be scanned for the identifiers included in the previous scan. Thus, anti-virus software scans all files in protected area 202 only for newly introduced identifiers that are not included in the previous scan. These new identifiers are typically downloaded from the Internet every week and represent a small set of identifiers in the virus definition file. When a correction operation is required (808), for example when a virus is found, a correction operation needs to occur in relation to the data for the protection area 202 set to the read-only mode in the normal mode of operation. (808). Thus, to take corrective action 808, the protection area 202 must be changed to a recordable mode. Thus, if a correction operation is required (808), the anti-virus software authenticates the access mode change operation (812), and if authentication succeeds (812), the protection area 202 is changed to read / write mode (813). ). The controller 301 then allows the correction operation 808 to be performed in the protection area 202 (814). Following the corrective operation, the controller 301 changes the access mode of the protection area 202 back to a read-only access mode (815). Once the virus scan is complete and successful, the anti-virus software then logs 818 a new successful completion date for the protected area 202 by requesting this log from the safety subsystem. Upon receipt of this request, the controller 301 invokes an authentication routine (819), and if successful, writes a successful scan completion timestamp to the secure memory 302 for the protected area 202 (820). This timestamp is referenced during the scan in determining whether an identifier has been newly introduced since the last scan date (806). This decision can be trusted because the timestamp is only accessible by the controller 301 and is stored in the secure memory 302 which is inaccessible by malicious code executed under the operating system by the system processor 42. After the time stamp is successfully recorded in the secure memory 302, the acknowledgment is sent to the anti-virus software. Thus, only a few identifiers, only those identifiers that have been newly downloaded since the last scan (as verified by the timestamp), are scanned for multiple files, unchanged files residing within the protected area 202.
도 9는 본 발명의 일 실시예에 따라 보호 영역 내 변경되지 않은 파일들의 서브세트를 스캔하는 로직을 나타낸 흐름도이다. 이 실시예는 도 8과 유사하며, 새로운 식별자가 다운로드된 경우, 보호 영역 내 모든 파일보다 적은 파일을 스캔할 수 있게 한다. 이는 보호 영역(202) 내 파일이 바이러스가 존재하기 시작한 걸로 인지된 일자보다 최근인지 식별에 의해 이루어진다. 따라서, 식별자가 인터넷으로 부터 다운로드된 경우, 적용될 수 있다면 식별자는 이러한 최초 인지된 일자 정보를 포함한다. 보호 영역은 정상 동작 동안 판독-전용 액세스 모드로 유지되고 인증 절차를 통해서만 변경될 수 있기 때문에, 보호 영역 내 파일의 파일 일자는 신뢰될 수 있다. 그 다음 안티-바이러스 소프트웨어는 바이러스의 최초 인지된 일자와 파일의 변경 일자를 비교하고, 바이러스의 최초 인지된 일자 이후에 생성되거나 변경된 파일들만 스캔한다. 9 is a flow diagram illustrating logic for scanning a subset of unchanged files in a protected area according to one embodiment of the invention. This embodiment is similar to that of Fig. 8, which allows scanning of fewer files than all files in the protected area when a new identifier is downloaded. This is done by identifying whether the file in protected area 202 is newer than the date that the virus was known to have started. Thus, if the identifier is downloaded from the Internet, the identifier includes this initially recognized date information, if applicable. Since the protected area remains in read-only access mode during normal operation and can only be changed through the authentication procedure, the file date of the file in the protected area can be trusted. The anti-virus software then compares the file's original recognized date with the file's change date, and scans only those files created or changed after the virus's first recognized date.
도 7, 도 8 및 도 9의 실시예에 대하여, 오퍼레이팅 시스템에 부적합하게 실행되는 코드가 보호 영역(202)에 판독 액세스를 갖는다 해도, 보호 영역(202)은 기록에 대해 정상적으로 액세스 불가능하므로 보호 영역(202)을 안전 서브시스템의 일부로서 간주함으로써, 여기에 설명된 본 발명의 요지에 모순되는 것이 아니다. 이들 영역은 안티-바이러스 스캔을 완료하여 안티-바이러스 소프트웨어가 알려진 아무런 바이러스도 시스템에서 활동적으로 운영하고 있지 않다고 판단한 직후에만 기록할 수 있다. 따라서, 도 9에서 주어진 예에 대하여, 일자를 판단하는 안티-바이러스 소프트웨어에 의해 직접 보호 영역(202)을 판독함으로써 파일 일자의 식별이 실행될 수 있다(906). 보호 영역(202)에의 기록 액세스는 오퍼레이팅 시스템에 부적합하게 실행되는 코드에 정상적으로 주어지지 않기 때문에, 이들 일자는 신뢰될 수 있다. 7, 8 and 9, even if code executed inappropriately in the operating system has read access to the protected area 202, the protected area 202 is normally inaccessible to the recording and thus the protected area. By considering 202 as part of the safety subsystem, it is not contradictory to the subject matter described herein. These areas can only be recorded immediately after the anti-virus scan completes and the anti-virus software determines that no known virus is actively running on the system. Thus, for the example given in FIG. 9, identification of the file date may be performed 906 by reading the protection area 202 directly by anti-virus software that determines the date. Since write access to the protected area 202 is not normally given to code that executes inappropriately for the operating system, these dates can be trusted.
도 10은 각각의 영역에서 바이러스 스캔의 성공적인 운영 후에 타임스탬프가 안전 메모리에 저장되는 본 발명의 바람직한 실시예에 따라, 각 판독/기록 및 보호 영역마다 하나의 타임스탬프가 기입된 테이블(1002)이다. 영역 0은 보호 영역(202) 에 대응한다. 영역 1은 판독/기록 영역(204)에 대응한다. 어느 식별자가 각각의 영역의 스캐닝에 이용되어야 하는지 안티-바이러스 소프트웨어가 안전하게 판단할 수 있도록 이들 타임스탬프가 보유된다. 판독/기록 영역(204)에 저장된 파일의 파일 일자는 신뢰될 수 없음을 주의하자. 따라서, 판독/기록 영역(204)에 대응하는 타임스탬프는 캐시된 스테이징 영역이 보호 영역(202) 내로 플러시된 최종 시간을 나타낸다. 판독/기록 영역(204)에 저장된 모든 파일은 도 7에 도시된 바와 같이 모든 알려진 식별자에 대해 스캔된다. 10 is a table 1002 with one timestamp written for each read / write and protected area, in accordance with a preferred embodiment of the present invention in which the timestamp is stored in a secure memory after successful operation of a virus scan in each area. . Zone 0 corresponds to protection zone 202. Area 1 corresponds to read / write area 204. These timestamps are retained so that anti-virus software can safely determine which identifiers should be used for scanning each area. Note that the file date of the file stored in read / write area 204 cannot be trusted. Thus, the timestamp corresponding to the read / write area 204 represents the last time the cached staging area was flushed into the protection area 202. All files stored in read / write area 204 are scanned for all known identifiers as shown in FIG.
도 11은 제어기 및 안전 메모리가 하드 디스크(200) 자체보다 디스크 제어기(72)에 위치한 본 발명에 따른 일 실시예의 블록도이다. 이에 따라 이 실시예에서는, 디스크 드라이브(200)가 완전히 종래의 구성으로 이루어진다. 이 실시예에서 보호 영역(202) 및 판독/기록 영역(204)은 제어기(1101)에 의해 논리적으로 보유된다. 이 실시예의 제어기(1101)는 영역(202, 204)의 보유와 관련하여, 그리고 안티-바이러스 소프트웨어 요청 및 문의에 응답하여, 상기 설명된 실시예의 제어기(301)에 따라 기능한다. 다른 점으로는, 제어기(1101)를 위한 I/O 인터페이스와 프로토콜이 그 위치로 인해 상기 설명된 제어기(301)와 상이하다. 안전 메모리(1102)는 오퍼레이팅 시스템 하에 실행되는 코드와 액세스 불가능하고, 이에 따라 상기 설명된 실시예의 안전 메모리(302)와 유사한 방식으로, 도 11의 실시예에 신뢰를 준다.11 is a block diagram of one embodiment in accordance with the present invention in which the controller and secure memory are located in the disk controller 72 rather than the hard disk 200 itself. Accordingly, in this embodiment, the disk drive 200 has a completely conventional configuration. In this embodiment, the protection area 202 and the read / write area 204 are logically held by the controller 1101. The controller 1101 of this embodiment functions in accordance with the controller 301 of the embodiment described above in connection with the retention of the regions 202, 204 and in response to anti-virus software requests and queries. In other respects, the I / O interface and protocol for the controller 1101 differ from the controller 301 described above due to its location. The secure memory 1102 is inaccessible with the code executed under the operating system, thus giving confidence to the embodiment of FIG. 11 in a manner similar to the secure memory 302 of the embodiment described above.
도 12는 제어기(1201) 및 안전 메모리(1202)가 IDE 케이블(308)에 위치한 본 발명에 따른 일 실시예의 블록도이다. 따라서, 안전 서브시스템은 본 발명에 벗어나지 않고 시스템의 전체에 걸쳐서 위치될 수 있다. 실제로, 안전 서브시스템의 제 어기 및 안전 메모리 컴포넌트는 동일한 서브어셈블리에 위치될 필요는 없다. 12 is a block diagram of one embodiment in accordance with the present invention in which controller 1201 and secure memory 1202 are located on IDE cable 308. Thus, safety subsystems can be located throughout the system without departing from the invention. In practice, the controller and safety memory components of the safety subsystem need not be located in the same subassembly.
도 13은 안전 메모리 및 기타 보호 기능을 구현하기 위해 하드웨어-구현 제어기 대신에 가상 머신 모니터가 채용된 본 발명의 일 실시예에 따라, 가상 소프트웨어를 운영하는 컴퓨터 시스템의 추상 계층을 도시한 시스템 가상 계층도이다. 이 실시예에 따르면, 특정 하드웨어를 필요로 하지 않는다. 최저 레벨의 추상에는 하드웨어 층(1300)이며, 이는 컴퓨터 시스템의 물리적 하드웨어 층이다. 가상 머신 모니터 층(1302)은 하드웨어 층(1300)의 상부에 놓인 매개층이며, 컴퓨터 시스템 상에서 운영하는 소프트웨어에 의해 시스템 메모리(46) 및 디스크 제어기(72)에의 모든 액세스 시도를 차단한다. 가상 머신 모니터 층(1302) 내에서는, 상술된 임의의 실시예에 따른 제어기(301)의 기능이 가상 머신 모니터 자체의 일부로서 실시되는 것이다. 그러한 것으로, 컴퓨터 시스템은 가상 머신 모니터가 제공하는 모든 안전성 및 격리 사양을 이용한다. 최고 레벨의 추상에는 궁극적으로 오퍼레이팅 시스템 및 소프트웨어 응용 프로그램을 운영하는 가상 머신(1304, 1306)이 놓인다. 가상 머신은 다른 가상 머신의 존재를 인지할 수 없도록 구성된다. 마찬가지로, 시스템 메모리(46)는 임의의 오퍼레이팅 시스템으로부터 실행되는 코드에 의한 직접적인 액세스가 불가능한 안전 메모리를 할당하도록 가상 머신 모니터(1302)에 의해 가상화되며, 이 가상 안전 메모리는 시스템의 전력이 들어오는 동안 안전 메모리(302)와 유사하게 기능한다. 따라서, 가상 머신-1(1304)에서 OS-1에 부적합하게 실행되는 바이러스는 예를 들어, 인증 절차를 함부로 변경하거나, 신뢰 변수에 액세스할 수 없을 것이다. 머신에 전력이 들어오지 않는 동안에, 안전 변수, 인증 코 드 등은 비안전 비휘발성 메모리에 부호화된 데이터를 저장하고 복구하는 임의의 공지된 방법을 이용하여, 임의의 비휘발성 메모리에 안전하게 저장되어야 한다. 그러므로, 여기에 설명된 실시예는 하드웨어 구현에 한정되지 않는다. FIG. 13 is a system virtual layer illustrating an abstract layer of a computer system running virtual software, in accordance with an embodiment of the present invention wherein a virtual machine monitor is employed in place of a hardware-implemented controller to implement safe memory and other protection functions. It is also. According to this embodiment, no specific hardware is required. The lowest level of abstraction is the hardware layer 1300, which is the physical hardware layer of the computer system. The virtual machine monitor layer 1302 is an intermediate layer on top of the hardware layer 1300 and blocks all access attempts to the system memory 46 and the disk controller 72 by software running on the computer system. Within the virtual machine monitor layer 1302, the functionality of the controller 301 according to any of the embodiments described above is implemented as part of the virtual machine monitor itself. As such, the computer system utilizes all the safety and isolation specifications provided by the virtual machine monitor. At the highest level of abstraction lies virtual machines 1304, 1306, which run operating systems and software applications. The virtual machine is configured to not recognize the existence of another virtual machine. Similarly, system memory 46 is virtualized by virtual machine monitor 1302 to allocate safe memory that is not directly accessible by code running from any operating system, which is safe while powering up the system. It functions similarly to the memory 302. Thus, a virus running improperly on OS-1 in virtual machine-1 1304 will not be able to, for example, tamper with the authentication procedure or access trust variables. While the machine is not powered up, safety variables, authentication codes, etc., must be stored securely in any nonvolatile memory, using any known method of storing and restoring encoded data in non-safety nonvolatile memory. Therefore, the embodiments described herein are not limited to hardware implementation.
도 14는 판독/기록 영역으로부터 보호 영역으로의 파일 이동이 물리적이라기보다 논리적으로 실행되는 본 발명의 일 실시예에 따라, 최종 바이러스 스캔 이래로 기록된 모든 파일들을 스캔하는 로직을 나타낸 흐름도이다. 이 실시예는 도 5에 도시된 바와 같이 논리적으로 구성된 보호 및 판독/기록 영역으로서 바람직하게 구현된다. 판독/기록 영역에 데이터를 캐시하고 보호 영역에 캐시를 플러시하기 보다, 이 실시예는 필요에 따라 보호 영역을 판독/기록 영역으로, 판독/기록 영역을 보호 영역으로 변환한다. 아래에 설명되는 바를 제외하고는, 도 14에 도시된 과정은 도 7에 도시된 과정과 유사하다. 안티-바이러스 소프트웨어는 먼저 최종 바이러스 스캔 이래로 기록된 파일의 디렉토리를 요청한다. 이에 응답하여, 제어기(301)는 변경된 파일의 디렉토리를 전달한다(1402). 이는 도 5에 도시된 바와 같은 판독/기록 영역(504) 내 파일의 디렉토리일 것이다. 이 실시예에서는, 안티-바이러스 소프트웨어가 파일이 판독/기록 영역으로부터 보호 영역으로 논리적으로 또는 물리적으로 이동되었는지에 대해 특별히 인지할 필요는 없다. 요청은 성공적으로 스캔된 파일의 캐시 플러시 또는 변환을 위한 것일 수 있다(1410). 요청에 응답하여(1410), 제어기(301)는 인증 루틴을 실시한다. 인증이 성공한다면, 판독/기록 영역(504)의 성공적으로 스캔된 파일은 변환되거나(1414), 논리적 보호 영역(502)에 추가된다. 그 다음 승인이 안티-바이러스 소프트웨어에 되돌아온다. 두 영역 간의 디스크 공간의 할당은 동적이고, 이에 따라 임의의 하나의 영역이 공간이 바닥날 가능성은 더 적을 것이다. 새로운 파일이 보호 영역(502)에 추가되는 경우, 그 저장 위치는 “논리적” 보호 영역(502)을 정의하는 테이블에 추가된다. 보호 영역(502)의 무한한 성장을 방지하기 위해, 보호 영역에 임의의 새로 추가된 파일의 이전의 복사본(즉, 보호 영역에 현재 상주하는 복사본)은 논리적 보호 영역으로부터 삭제되고, 논리적 “판독-기록”영역에 추가되고, 선택적으로 비어있거나 또는 지워진 것으로서 표시될 수 있다. 도 7에 도시된 과정과 같이, 이 과정을 이용하여, 대다수의 식별자, 모든 식별자는 소수의 파일, 최종 스캔 이래로 변경된 파일들만에 대해 스캔된다. FIG. 14 is a flow diagram illustrating logic to scan all files recorded since the last virus scan, according to one embodiment of the invention where file movement from the read / write area to the protected area is performed logically rather than physically. This embodiment is preferably implemented as a logically constructed protection and read / write area as shown in FIG. Rather than caching data in the read / write area and flushing the cache in the protected area, this embodiment converts the protected area into a read / write area and the read / write area into a protected area as needed. Except as described below, the process shown in FIG. 14 is similar to the process shown in FIG. Anti-virus software first requests a directory of recorded files since the last virus scan. In response, the controller 301 forwards the directory of changed files (1402). This would be a directory of files in read / write area 504 as shown in FIG. In this embodiment, the anti-virus software does not need to be particularly aware of whether the file has been logically or physically moved from the read / write area to the protected area. The request may be for cache flush or translation of the successfully scanned file (1410). In response to the request (1410), the controller 301 executes an authentication routine. If authentication succeeds, the successfully scanned file of read / write area 504 is converted 1414 or added to logical protection area 502. Approval is then returned to the anti-virus software. The allocation of disk space between the two regions is dynamic, so there is less chance that any one region runs out of space. When a new file is added to the protected area 502, its storage location is added to the table that defines the "logical" protected area 502. To prevent the infinite growth of protected area 502, previous copies of any newly added files in the protected area (i.e., copies currently residing in the protected area) are deleted from the logical protected area, and the logical “read-write” Can be added to an area and optionally marked as empty or erased. As with the process shown in Figure 7, using this process, the majority of identifiers, all identifiers, are scanned for only a few files, only files that have changed since the last scan.
도 14에 도시된 실시예는 도 13에 관련하여 설명된 바와 같이 가상 머신 관리자로서 구현될 수 있다. The embodiment shown in FIG. 14 may be implemented as a virtual machine manager as described with respect to FIG. 13.
다른 실시예로 스캔되는 영역이 먼저 판독-전용 상태로 놓인 후 보호 영역에 기록 또는 보호 영역으로의 변환이 발생하는 경우가 가능하다. 다른 방법으로, 일단 스캔되면, 파일이 스캔되는 시간과 그들이 기록 또는 변환되는 시간 사이에 실행되는 바이러스로부터의 공격에 파일이 무너지지 않도록, 스캔되는 영역이 먼저 판독-전용 스테이징 영역으로 이동될 수 있다. 그러나, 이러한 방법의 실시예에서는 제시된 다른 실시예보다 많은 디스크 공간을 차지한다. 본 발명의 실시예는 컴퓨터(또는 기타 전자 디바이스)로 하여금 본 발명의 임의의 실시예에 다른 과정을 실행하도록 프로그램하는 데 이용될 수 있는 명령어가 저장된 기계-판독가능한 매체를 포함하는 컴퓨터 프로그램 제품으로서 제공될 수 있다. 기계-판독가능한 매체 는 플로피 디스켓, 광학 디스크, CD-ROMs, 및 광학 자기 디스크, ROMs, RAMs, EPROMs, EEPROMs, 자기 또는 광학 카드, 또는 전자 명령어를 저장하기 적합한 기타 유형의 미디어/기계-판독 가능한 매체를 포함할 수 있으나, 이에 한정되지 않는다. 또한, 본 발명의 실시예는 또한 컴퓨터 프로그램 제품으로서 다운로드될 수 있으며, 프로그램은 통신 링크(예컨대, 모뎀 또는 네트워크 접속)를 통해 리모트 컴퓨터로부터 캐리어 웨이브 또는 다른 전달 매체에 내재된 데이터 신호에 의해 요청하는 컴퓨터로 이동될 수 있다. In another embodiment, it is possible that the area to be scanned is first placed in a read-only state and then a write or conversion to the protected area occurs in the protected area. Alternatively, once scanned, the scanned area may first be moved to a read-only staging area so that the file does not collapse in the attack from the virus being executed between the time the files are scanned and the time they are recorded or converted. However, embodiments of this method take up more disk space than other embodiments presented. An embodiment of the present invention is a computer program product comprising a machine-readable medium having stored thereon instructions which can be used to program a computer (or other electronic device) to execute another process in any embodiment of the present invention. Can be provided. Machine-readable media include floppy diskettes, optical disks, CD-ROMs, and optical magnetic disks, ROMs, RAMs, EPROMs, EEPROMs, magnetic or optical cards, or other types of media / machine-readable media suitable for storing electronic instructions. The medium may include, but is not limited to. In addition, embodiments of the present invention may also be downloaded as a computer program product, the program being requested by data signals embedded in a carrier wave or other transmission medium from a remote computer via a communication link (eg, a modem or network connection). Can be moved to a computer.
여기에 주어진 단계의 순서는 단지 예시적인 목적을 위한 것이며, 여기에 설명된 본 발명의 요지를 구현하는 데 있어서 다른 순서의 단계를 이용하는 것이 가능한 다른 실시예에 대하여 한정하는 것으로서 해석되어서는 안된다. 청구범위 내 임의의 순서의 단계들은 명료함을 위한 것으로, 임의의 특정 순서의 단계가 행해져야하는 것을 의미하는 것은 아니다. The order of steps given herein is for illustrative purposes only and should not be construed as limiting to other embodiments where it is possible to use other order of steps in implementing the subject matter described herein. Any order of steps in the claims is for clarity and does not imply that any particular order of steps should be taken.
도면과 상세한 설명에 있어서 본 발명의 바람직한 실시예에 대해 설명하였고, 특정 용어가 이용되었으나 이에 따라 주어진 설명은 단지 일반적으로 서술하기 위한 방식으로 전문 용어를 이용한 것으로, 이에 한정하여서는 안된다. Although the preferred embodiments of the present invention have been described in the drawings and detailed description, specific terms have been used, but the description given therein is merely for the purpose of general description and should not be limited thereto.

Claims (36)

  1. 최종 스캔 이래로 저장 디바이스의 영역이 기록되었는지의 여부를 신뢰성있게 판단하도록 안전 서브시스템에 문의하는 단계로서, 상기 안전 서브시스템은 신뢰 변수를 포함하고, 상기 판단은 상기 안전 서브시스템에 의한 상기 신뢰 변수의 참조를 통해 신뢰를 주는 것인,상기 문의하는 단계; 및Querying the safety subsystem to reliably determine whether an area of the storage device has been written since the last scan, the safety subsystem including a confidence variable, wherein the determination of the trust variable by the safety subsystem Inquiring through reference; And
    상기 최종 스캔 이래로 영역이 기록되었다는 상기 문의로부터의 신뢰성있는 판단에 응답하여, 부적합 코드의 식별자에 대해 상기 영역을 스캔하는 단계In response to a reliable determination from the query that an area has been written since the last scan, scanning the area for an identifier of a nonconforming code
    를 포함하는 방법. How to include.
  2. 최종 스캔 이래로 저장 디바이스의 영역이 기록되었는지의 여부를 신뢰성있게 판단하도록 안전 서브시스템에 문의하는 단계로서, 상기 안전 서브시스템은 신뢰 변수를 포함하고, 상기 판단은 상기 안전 서브시스템에 의한 상기 신뢰 변수의 참조를 통해 신뢰를 주는 것인, 상기 문의하는 단계; Querying the safety subsystem to reliably determine whether an area of the storage device has been written since the last scan, the safety subsystem including a confidence variable, wherein the determination of the trust variable by the safety subsystem Inquiring through trust;
    이전의 부적합 코드의 식별자가 상기 최종 스캔에 포함되었는지의 여부를 판단하는 단계; 및 Determining whether an identifier of a previous nonconforming code is included in the final scan; And
    상기 최종 스캔 이래로 영역이 기록되지 않았다는 상기 문의로부터의 판단과 상기 이전의 식별자가 상기 최종 스캔에 포함되었다는 판단에 응답하여, 상기 이전의 부적합 코드의 식별자에 대해 상기 영역의 스캔을 우회(bypass)하는 단계In response to a determination from the query that the region has not been written since the last scan and a determination that the previous identifier was included in the final scan, bypassing the scan of the region with respect to the identifier of the previous nonconforming code. step
    를 포함하는 방법. How to include.
  3. 최종 스캔 이래로 저장 디바이스의 제 1 영역이 기록되었는지의 여부를 신뢰성있게 판단하도록 안전 서브시스템에 문의하는 단계로서, 상기 안전 서브시스템은 오퍼레이팅 시스템으로부터 실행되는 코드에 액세스 불가능한 메모리를 포함하고, 상기 판단은 상기 안전 서브시스템에 의해 상기 액세스 불가능한 메모리의 참조를 통해 신뢰를 주는 것인, 상기 문의하는 단계; Querying the safety subsystem to reliably determine whether the first area of the storage device has been written since the last scan, wherein the safety subsystem includes memory inaccessible to code executed from the operating system, the determination being Inquiring by the secure subsystem via a reference to the inaccessible memory;
    상기 최종 스캔 이래로 제 1 영역이 기록되었다는 상기 문의로부터의 신뢰성있는 판단에 응답하여 부적합 코드의 알려진 식별자에 대해 상기 제 1 영역을 스캔하는 단계; Scanning the first area for a known identifier of the nonconforming code in response to a reliable determination from the query that the first area has been written since the last scan;
    이전의 부적합 코드의 식별자가 상기 최종 스캔에 포함되었는지의 여부를 판단하는 단계; 및 Determining whether an identifier of a previous nonconforming code is included in the final scan; And
    상기 최종 스캔 이래로 제 1 영역이 기록되지 않았다는 상기 문의로부터의 판단과 상기 이전의 식별자가 상기 최종 스캔에 포함되었다는 판단에 응답하여, 상기 이전의 부적합 코드의 식별자에 대해 상기 제 1 영역의 스캔을 우회하되, 상기 스캔의 우회로 인해 우회 영역이 발생되는 것인 우회하는 단계In response to a determination from the query that the first area has not been written since the last scan and a determination that the previous identifier was included in the last scan, bypassing the scan of the first area for an identifier of the previous nonconforming code. However, bypassing that the bypass area is generated due to the bypass of the scan
    를 포함하는 방법. How to include.
  4. 청구항 3에 있어서,The method according to claim 3,
    상기 이전의 식별자 및 알려진 식별자는 악성 코드의 식별자이며, 상기 최종 스캔은 상기 악성 코드에 대한 이전의 스캔인 것인 방법.Wherein said previous identifier and known identifier are identifiers of malicious code, and said final scan is a previous scan for said malicious code.
  5. 청구항 4에 있어서,The method according to claim 4,
    상기 식별자는 상기 오퍼레이팅 시스템의 레지스트리에서 서명, 코드 조각, 데이터 조각, 해쉬, 및 레지스트리 엔트리로 이루어진 그룹으로부터 선택되는 것인 방법.Wherein the identifier is selected from the group consisting of a signature, a code snippet, a data snippet, a hash, and a registry entry in the registry of the operating system.
  6. 청구항 4에 있어서,The method according to claim 4,
    상기 안전 서브시스템으로부터 상기 악성 코드에 대한 이전의 스캔이 실시된 시간과 관련되며 상기 액세스 불가능한 메모리로 인해 신뢰되는 신뢰성있는 스캔 타임스탬프를 요청하는 단계; 및Requesting a reliable scan timestamp from the security subsystem that is related to the time at which the previous scan for the malicious code was performed and that is trusted due to the inaccessible memory; And
    새로운 식별자 일자에 출현한 것으로 알려진 악성 코드와 관련된 새로운 식별자에 대해 상기 우회 영역을 스캔하는 단계로서, 상기 우회 영역의 스캔은 상기 새로운 식별자 일자에 관한 새로운 식별자 타임스탬프가 상기 신뢰성있는 스캔 타임스탬프보다 이르다는 판단에 응답하여 발생되는 것인, 상기 스캔하는 단계Scanning the bypass area for a new identifier associated with malicious code known to appear on a new identifier date, wherein the scan of the bypass area has a new identifier timestamp associated with the new identifier date earlier than the reliable scan timestamp Is generated in response to the determination;
    를 더 포함하는 방법.How to include more.
  7. 악성 코드에 대해 저장 디바이스의 스캔 영역에 있는 파일을 스캔하는 단계로서, 상기 저장 디바이스는 제 1 영역과 상기 스캔 영역으로 세분되고, 상기 제 1 영역은 정상 판독-전용 상태도 되고 기록가능한 상태도 되도록 안전하게 구성될 수 있고, 상기 구성은 오퍼레이팅 시스템 하에 실행되는 코드에 액세스 불가능한 안전 메모리를 갖는 안전 시스템의 제어 하에 있는 것인, 상기 스캔하는 단계; Scanning a file in a scan area of a storage device for malicious code, wherein the storage device is subdivided into a first area and the scan area, the first area being both a normal read-only state and a recordable state; Scanning, wherein the configuration is under the control of a safety system having a safety memory that is inaccessible to code executed under the operating system;
    아무런 악성 코드도 발견되지 않는 적어도 하나의 파일을 성공적으로 스캔하는 경우, 상기 제 1 영역을 기록가능한 상태로 구성하도록 상기 안전 시스템의 제 1 안전 수단을 기동 및 인증하는 단계로서, 상기 인증은 상기 안전 메모리의 외부에서 실시하는 것인, 상기 기동 및 인증하는 단계;Upon successful scanning of at least one file where no malicious code is found, activating and authenticating first safety means of the safety system to configure the first area into a recordable state, wherein the authentication is the safety Activating and authenticating, performed outside of memory;
    상기 스캔 영역의 성공적으로 스캔된 파일을 상기 제 1 영역에 기록하는 단계; 및Writing a successfully scanned file of the scan area to the first area; And
    상기 성공적으로 스캔된 파일을 기록하는 단계 이후, 상기 제 1 영역을 판독-전용 상태로 구성하는 단계After recording the successfully scanned file, configuring the first area in a read-only state.
    를 포함하는 방법. How to include.
  8. 청구항 7에 있어서,The method according to claim 7,
    상기 성공적으로 스캔된 파일을 기록하는 단계 이후, 상기 스캔 영역으로부터 상기 성공적으로 스캔된 파일을 삭제하는 단계를 더 포함하는 방법.And after recording the successfully scanned file, deleting the successfully scanned file from the scan area.
  9. 청구항 8에 있어서,The method according to claim 8,
    상기 제 1 안전 수단에 대한 인증은 암호, 디지털 서명, 및 바이오메트릭으로 이루어진 그룹으로부터 선택되는 인증인 것인 방법. The authentication for the first safety means is an authentication selected from the group consisting of cryptography, digital signatures, and biometrics.
  10. 청구항 7에 있어서,The method according to claim 7,
    상기 제 1 영역 및 상기 스캔 영역은 논리적으로 세분된 것인 방법.And the first area and the scan area are logically subdivided.
  11. 청구항 7에 있어서,The method according to claim 7,
    상기 제 1 영역 및 상기 스캔 영역은 물리적으로 세분된 것인 방법.Wherein the first region and the scan region are physically subdivided.
  12. 청구항 11에 있어서,The method according to claim 11,
    상기 물리적으로 세분된 영역은 상기 저장 디바이스 상에 각각 인접하는 영역인 것인 방법. Wherein the physically divided regions are contiguous regions on the storage device, respectively.
  13. 청구항 7에 있어서,The method according to claim 7,
    상기 제 1 안전 수단의 인증은 가상 머신 모니터의 제어 하에 실시되는 것인 방법. Authentication of the first safety means is performed under control of a virtual machine monitor.
  14. 청구항 7에 있어서,The method according to claim 7,
    상기 안전 시스템은 상기 안전 메모리가 상기 오퍼레이팅 시스템을 실시하는 메인 프로세서에 추가로 액세스 불가능하도록 하드웨어 내에서 실행되고, 상기 하드웨어는 저장 제어기, 저장 디바이스 케이블, 및 저장 디바이스로 이루어진 그룹으로부터 선택된 위치에 물리적으로 위치된 것인 방법. The safety system is implemented in hardware such that the safety memory is further inaccessible to the main processor implementing the operating system, the hardware being physically located at a location selected from the group consisting of a storage controller, a storage device cable, and a storage device. Where located.
  15. 프로세서;A processor;
    상기 프로세서에 의해 오퍼레이팅 시스템 하에 실행되는 코드를 저장하는 메인 메모리;A main memory for storing code executed by the processor under an operating system;
    상기 프로세서에 의해 상기 오퍼레이팅 시스템 하에 실행되는 코드에 액세스 불가능한 안전 메모리를 갖는 안전 시스템; 및A safety system having a secure memory inaccessible to code executed by the processor under the operating system; And
    상기 프로세서 및 상기 안전 시스템에 연결되어 동작하고, 제 1 영역 및 판독-기록 영역으로 세분된 저장 디바이스로서, 상기 제 1 영역은 상기 안전 시스템의 제어 하에 정상 판독-전용 상태도 되고 기록가능한 상태도 되도록 안전하게 구성될 수 있는 것인, 상기 저장 디바이스;A storage device coupled to and operating in said processor and said safety system, said storage device being subdivided into a first region and a read-write region, said first region being either a normal read-only state or a recordable state under the control of said safety system; The storage device, which can be configured securely;
    를 포함하고,Including,
    상기 안전 시스템은 상기 저장 디바이스 상의 악성 코드에 대한 최종 스캔의 발생을 식별하는 적어도 하나의 신뢰 변수를 상기 안전 메모리에 유지시키며, 상기 신뢰 변수를 참조하여 관련 결과를 보고함으로써 상기 최종 스캔에 관련된 상태에 대한 요청에 응답하고, 상기 안전 시스템은 상기 제 1 영역을 기록가능한 상태로 구성하도록 제공된 요청에 응답하여 인증 절차를 불러내고, 상기 인증은 상기 안전 메모리의 외부에서 실시되는 것인 장치. The safety system maintains in the safe memory at least one trust variable that identifies the occurrence of a final scan for malicious code on the storage device, and reports the relevant result with reference to the trust variable to determine a state related to the final scan. In response to the request, the safety system invokes an authentication procedure in response to a request provided to configure the first area to be in a recordable state, wherein the authentication is performed outside of the safety memory.
  16. 청구항 15에 있어서,The method according to claim 15,
    상기 인증은 암호, 디지털 서명, 및 바이오메트릭으로 이루어진 그룹으로부터 선택되는 것인 장치.Wherein the authentication is selected from the group consisting of cryptography, digital signatures, and biometrics.
  17. 청구항 15에 있어서,The method according to claim 15,
    상기 제 1 영역 및 상기 판독-기록 영역은 논리적으로 세분된 것인 장치.And said first area and said read-write area are logically subdivided.
  18. 청구항 15에 있어서,The method according to claim 15,
    상기 제 1 영역 및 상기 판독-기록 영역은 물리적으로 세분된 것인 장치.And said first area and said read-write area are physically subdivided.
  19. 청구항 18에 있어서,The method according to claim 18,
    상기 물리적으로 세분된 영역은 상기 저장 디바이스 상에 각각 인접하는 영역인 것인 장치. And wherein said physically divided areas are contiguous areas on said storage device, respectively.
  20. 청구항 15에 있어서,The method according to claim 15,
    상기 안전 시스템은 가상 머신 모니터로서 구현되는 것인 장치.The safety system is implemented as a virtual machine monitor.
  21. 청구항 15에 있어서,The method according to claim 15,
    상기 안전 시스템은 상기 안전 메모리가 상기 프로세서에 추가로 액세스 불가능하도록 하드웨어 내에서 실행되고, 상기 하드웨어는 저장 제어기, 저장 디바이스 케이블, 및 저장 디바이스로 이루어진 그룹으로부터 선택된 위치에 물리적으로 위치된 것인 장치.The safety system is implemented in hardware such that the safety memory is further inaccessible to the processor, the hardware being physically located at a location selected from the group consisting of a storage controller, a storage device cable, and a storage device.
  22. 저장 디바이스를 제 1 영역 및 판독-기록 영역으로 세분하는 단계로서, 상기 제 1 영역은 정상 판독-전용 상태도 되고 기록가능한 상태도 되도록 안전하게 구성될 수 있고, 상기 저장 디바이스는 상기 제 1 영역에 액세스하는 모드를 구성하려는 시도에 응답하여 안전 수단을 부여하는 것인, 상기 세분하는 단계;Subdividing the storage device into a first area and a read-write area, wherein the first area can be securely configured to be either a normal read-only state or a recordable state, the storage device accessing the first area Subdividing the safety means in response to an attempt to configure a mode to do so;
    상기 저장 디바이스에 대한 액세스를 캐시하는 단계로서, 액세스 중인 데이터가 상기 판독-기록 영역으로부터 빠진 경우 상기 제 1 영역에 대한 판독 액세스를 지시하는 단계와; 액세스 중인 데이터가 상기 판독-기록 영역 내에 있는 경우 상기 판독-기록 영역에 대한 판독 액세스를 지시하는 단계에 의해 수행되는 것인,상기 캐시하는 단계;Caching access to the storage device, the method comprising: directing read access to the first area if the data being accessed is missing from the read-write area; If the data being accessed is within the read-write area, the step of indicating read access to the read-write area;
    상기 판독-기록 영역에 대한 기록 액세스를 지시하는 단계;Instructing write access to the read-write area;
    악성 코드에 대해 상기 판독-기록 영역의 파일을 스캔하는 단계;Scanning a file in the read-write area for malicious code;
    아무런 악성 코드도 발견되지 않는 적어도 하나의 파일을 성공적으로 스캔하는 경우, 상기 제 1 영역을 기록가능한 액세스 모드로 구성하도록 상기 저장 디바이스의 제 1 안전 수단을 기동하는 단계;Upon successful scanning of at least one file where no malicious code is found, activating first safety means of the storage device to configure the first area to a recordable access mode;
    상기 판독-기록 영역의 성공적으로 스캔된 파일을 상기 제 1 영역에 기록하는 단계; Writing a successfully scanned file of the read-write area to the first area;
    상기 제 1 영역을 판독-전용 액세스 모드로 구성하도록 상기 저장 디바이스의 제 2 안전 수단을 기동하는 단계; 및Activating second safety means of the storage device to configure the first area in a read-only access mode; And
    상기 판독-기록 영역으로부터 상기 성공적으로 스캔된 파일을 삭제하는 단계Deleting the successfully scanned file from the read-write area
    를 포함하는 방법. How to include.
  23. 청구항 22에 있어서,The method according to claim 22,
    상기 기록가능한 액세스 모드는 판독-기록 모드인 것인 방법.And said writeable access mode is a read-write mode.
  24. 컴퓨터 판독가능한 프로그램 코드가 저장된 컴퓨터 이용가능한 매체를 포함하는 제품으로서, A product comprising a computer usable medium having stored thereon computer readable program code, the product comprising:
    상기 제품의 컴퓨터 판독가능한 프로그램 코드는, 최종 스캔 이래로 저장 디바이스의 영역이 기록되었는지의 여부를 신뢰성있게 판단하도록 안전 서브시스템에 문의하는 단계; 및 상기 최종 스캔 이래로 영역이 기록되었다는 상기 문의로부터의 신뢰성있는 판단에 응답하여 부적합 코드의 식별자에 대해 상기 영역을 스캔하는 단계를 수행하며, The computer readable program code of the product may include: querying the safety subsystem to reliably determine whether an area of the storage device has been recorded since the last scan; And scanning the area for an identifier of a nonconforming code in response to a reliable determination from the query that the area has been recorded since the last scan,
    상기 컴퓨터 판독가능한 프로그램 코드는 상기 판단에 신뢰를 주는 신뢰 변수에 액세스 불가능한 것인 제품. Wherein the computer readable program code is inaccessible to a trust variable trusting the judgment.
  25. 컴퓨터 판독가능한 프로그램 코드가 저장된 컴퓨터 이용가능한 매체를 포함하는 제품으로서, A product comprising a computer usable medium having stored thereon computer readable program code, the product comprising:
    상기 제품의 컴퓨터 판독가능한 프로그램 코드는, 최종 스캔 이래로 저장 디바이스의 영역이 기록되었는지의 여부를 신뢰성있게 판단하도록 안전 서브시스템에 문의하는 단계; 이전의 부적합 코드의 식별자가 상기 최종 스캔에 포함되었는지의 여부를 판단하는 단계; 및 상기 최종 스캔 이래로 영역이 기록되지 않았다는 상기 문의로부터의 판단과 상기 이전의 식별자가 상기 최종 스캔에 포함되었다는 판단에 응답하여 상기 이전의 부적합 코드의 식별자에 대해 상기 영역의 스캔을 우회하는 단계를 수행하며, The computer readable program code of the product may include: querying the safety subsystem to reliably determine whether an area of the storage device has been recorded since the last scan; Determining whether an identifier of a previous nonconforming code is included in the final scan; And bypassing the scan of the area with respect to the identifier of the previous nonconforming code in response to the determination from the query that the area has not been recorded since the last scan and the determination that the previous identifier was included in the final scan. ,
    상기 컴퓨터 판독가능한 프로그램 코드는 상기 신뢰성 있는 판단에 신뢰를 주는 신뢰 변수에 액세스 불가능한 것인 제품. Wherein the computer readable program code is inaccessible to a trust variable that gives confidence to the trusted judgment.
  26. 컴퓨터 판독가능한 프로그램 코드가 저장된 컴퓨터 이용가능한 매체를 포함하는 제품으로서, A product comprising a computer usable medium having stored thereon computer readable program code, the product comprising:
    상기 제품의 컴퓨터 판독가능한 프로그램 코드는, 최종 스캔 이래로 저장 디바이스의 제 1 영역이 기록되었는지의 여부를 신뢰성있게 판단하도록 안전 서브시스템에 문의하는 단계; 상기 최종 스캔 이래로 제 1 영역이 기록되었다는 상기 문의로부터의 신뢰성있는 판단에 응답하여 부적합 코드의 알려진 식별자에 대해 상기 제 1 영역을 스캔하는 단계; 이전의 부적합 코드의 식별자가 상기 최종 스캔에 포함되었는지의 여부를 판단하는 단계; 및 상기 최종 스캔 이래로 제 1 영역이 기록되지 않았다는 상기 문의로부터의 판단과 상기 이전의 식별자가 상기 최종 스캔에 포함되었다는 판단에 응답하여 상기 이전의 부적합 코드의 식별자에 대해 상기 제 1 영역의 스캔을 우회하는 단계로서, 상기 스캔의 우회로 인해 우회 영역이 발생되는 것인, 상기 우회하는 단계를 수행하며, The computer readable program code of the product may include: querying the safety subsystem to reliably determine whether a first area of the storage device has been written since the last scan; Scanning the first area for a known identifier of the nonconforming code in response to a reliable determination from the query that the first area has been written since the last scan; Determining whether an identifier of a previous nonconforming code is included in the final scan; And in response to determining from the query that the first area has not been recorded since the last scan and determining that the previous identifier was included in the last scan, bypasses the scan of the first area with respect to the identifier of the previous nonconforming code. Performing the bypassing step, wherein a bypass area is generated due to the bypass of the scan,
    상기 컴퓨터 판독가능한 프로그램 코드는 상기 신뢰성 있는 판단에 신뢰를 주는 안전 메모리에 직접적으로 액세스 불가능한 것인 제품. Wherein the computer readable program code is not directly accessible to a secure memory that trusts the reliable judgment.
  27. 청구항 26에 있어서,The method of claim 26,
    상기 이전의 식별자 및 알려진 식별자는 악성 코드의 식별자이며, 상기 최종 스캔은 상기 악성 코드에 대한 이전의 스캔인 것인 제품. Wherein said previous identifier and known identifier are identifiers of malicious code, and said final scan is a previous scan for said malicious code.
  28. 청구항 27에 있어서,The method of claim 27,
    상기 식별자는 상기 오퍼레이팅 시스템의 레지스트리에서 서명, 코드 조각, 데이터 조각, 해쉬, 및 레지스트리 엔트리로 이루어진 그룹으로부터 선택되는 것인 제품. Wherein the identifier is selected from the group consisting of signature, code snippet, data snippet, hash, and registry entry in the registry of the operating system.
  29. 청구항 27에 있어서,The method of claim 27,
    상기 코드는 상기 안전 서브시스템으로부터 상기 악성 코드에 대한 이전의 스캔이 실시된 시간과 관련되며 상기 액세스 불가능한 메모리로 인해 신뢰되는 신뢰성있는 스캔 타임스탬프를 요청하는 단계; 및 새로운 식별자 일자에 출현한 것으로 알려진 악성 코드와 관련된 새로운 식별자에 대해 상기 우회 영역을 스캔하는 단계로서, 상기 우회 영역의 스캔은 상기 새로운 식별자 일자에 관한 새로운 식별자 타임스탬프가 상기 신뢰성있는 스캔 타임스탬프보다 이르다는 판단에 응답하여 발생되는 것인, 상기 스캔하는 단계를 더 수행하는 것인 제품.The code requesting a reliable scan timestamp from the security subsystem that is related to the time at which the previous scan for the malicious code was performed and trusted due to the inaccessible memory; And scanning the bypass area for a new identifier associated with malicious code known to appear on a new identifier date, wherein the scan of the bypass area has a new identifier timestamp associated with the new identifier date that is greater than the reliable scan timestamp. Product which is generated in response to the determination that it is early to further perform the scanning step.
  30. 컴퓨터 판독가능한 프로그램 코드가 저장된 컴퓨터 이용가능한 매체를 포함하는 제품으로서, A product comprising a computer usable medium having stored thereon computer readable program code, the product comprising:
    상기 제품의 컴퓨터 판독가능한 프로그램 코드는, 악성 코드에 대해 제 1 영역과 스캔 영역으로 세분된 저장 디바이스의 상기 스캔 영역 내 파일을 스캔하는 단계로서, 상기 제 1 영역은 정상 판독-전용 상태도 되고 기록가능한 상태도 되도록 안전하게 구성될 수 있고, 상기 구성은 오퍼레이팅 시스템 하에 실행되는 코드와 액세스 불가능한 안전 메모리를 갖는 안전 시스템의 제어 하에 있는 것인, 상기 스캔하는 단계; 아무런 악성 코드도 발견되지 않는 적어도 하나의 파일을 성공적으로 스캔하는 경우, 상기 제 1 영역을 기록가능한 상태로 구성하도록 상기 안전 시스템의 제 1 안전 수단을 기동 및 인증하되, 상기 인증은 상기 안전 메모리의 외부에서 실시하는 것인 단계; 상기 스캔 영역의 성공적으로 스캔된 파일을 상기 제 1 영역에 기록하는 단계; 및 상기 성공적으로 스캔된 파일을 기록하는 단계 이후 상기 제 1 영역을 판독-전용 상태로 구성하는 단계를 수행하기 위해 유효한 제품.The computer readable program code of the product scans a file in the scan area of the storage device subdivided into a first area and a scan area for malicious code, wherein the first area is also in a normal read-only state and is recorded. Scanning, wherein the configuration is under the control of a safety system having inaccessible safety memory and code executed under the operating system; Upon successful scanning of at least one file where no malicious code is found, the first safety means of the safety system is activated and authenticated to configure the first area into a recordable state, wherein the authentication is performed by the secure memory. To be carried out externally; Writing a successfully scanned file of the scan area to the first area; And configuring the first area in a read-only state after recording the successfully scanned file.
  31. 청구항 30에 있어서,The method of claim 30,
    상기 코드는 상기 성공적으로 스캔된 파일을 기록하는 단계 이후, 상기 스캔 영역으로부터 상기 성공적으로 스캔된 파일을 삭제하는 단계를 더 수행하기 위해 유효한 것인 제품.The code is valid for further performing the step of deleting the successfully scanned file from the scan area after the step of recording the successfully scanned file.
  32. 청구항 31에 있어서,The method according to claim 31,
    상기 제 1 안전 수단에 대한 인증은 암호, 디지털 서명, 및 바이오메트릭으로 이루어진 그룹으로부터 선택되는 인증인 것인 제품.Wherein the authentication for the first safety measure is an authentication selected from the group consisting of cryptography, digital signatures, and biometrics.
  33. 청구항 30에 있어서,The method of claim 30,
    상기 제 1 영역 및 상기 스캔 영역은 논리적으로 세분된 것인 제품.Wherein the first region and the scan region are logically subdivided.
  34. 청구항 30에 있어서,The method of claim 30,
    상기 제 1 영역 및 상기 스캔 영역은 물리적으로 세분된 것인 제품.Wherein the first region and the scan region are physically subdivided.
  35. 청구항 34에 있어서,The method of claim 34, wherein
    상기 물리적으로 세분된 영역은 상기 저장 디바이스 상에 각각 인접하는 영역인 것인 제품.Wherein said physically subdivided areas are each contiguous areas on said storage device.
  36. 청구항 30에 있어서,The method of claim 30,
    상기 제 1 안전 수단의 인증은 가상 머신 모니터의 제어 하에 실시되는 것인 제품.Said first safety means being authenticated under the control of a virtual machine monitor.
KR1020077001977A 2004-07-20 2005-05-12 Secure storage tracking for anti-virus speed-up KR20070030931A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US10/894,588 2004-07-20
KR1020077001977A KR20070030931A (en) 2004-07-20 2005-05-12 Secure storage tracking for anti-virus speed-up

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020077001977A KR20070030931A (en) 2004-07-20 2005-05-12 Secure storage tracking for anti-virus speed-up

Publications (1)

Publication Number Publication Date
KR20070030931A true KR20070030931A (en) 2007-03-16

Family

ID=43655421

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020077001977A KR20070030931A (en) 2004-07-20 2005-05-12 Secure storage tracking for anti-virus speed-up

Country Status (1)

Country Link
KR (1) KR20070030931A (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012091341A1 (en) * 2010-12-31 2012-07-05 Ahnlab., Inc. Method and apparatus for detecting a malware in files
WO2013048492A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Mechanism for providing a secure environment for acceleration of software applications at computing devices
US9270657B2 (en) 2011-12-22 2016-02-23 Intel Corporation Activation and monetization of features built into storage subsystems using a trusted connect service back end infrastructure

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012091341A1 (en) * 2010-12-31 2012-07-05 Ahnlab., Inc. Method and apparatus for detecting a malware in files
KR101217709B1 (en) * 2010-12-31 2013-01-02 주식회사 안랩 Apparatus and Method for Detecting Malicious Code
US9129109B2 (en) 2010-12-31 2015-09-08 Anhlab, Inc. Method and apparatus for detecting a malware in files
WO2013048492A1 (en) * 2011-09-30 2013-04-04 Intel Corporation Mechanism for providing a secure environment for acceleration of software applications at computing devices
US9270657B2 (en) 2011-12-22 2016-02-23 Intel Corporation Activation and monetization of features built into storage subsystems using a trusted connect service back end infrastructure

Similar Documents

Publication Publication Date Title
JP4627547B2 (en) Secure storage tracking for antivirus acceleration
US7581252B2 (en) Storage conversion for anti-virus speed-up
KR101487865B1 (en) Computer storage device having separate read-only space and read-write space, removable media component, system management interface, and network interface
US8788763B2 (en) Protecting memory of a virtual guest
US7693838B2 (en) Method and apparatus for securely accessing data
JP5079084B2 (en) Method and data processing system for preventing operation of a computer system
KR101201118B1 (en) System and method of aggregating the knowledge base of antivirus software applications
US8782351B2 (en) Protecting memory of a virtual guest
US20060230454A1 (en) Fast protection of a computer's base system from malicious software using system-wide skins with OS-level sandboxing
JP2010527075A (en) Reliable operating environment for malware detection
EP2652666B1 (en) Storage drive based antimalware methods and apparatuses
US20080168545A1 (en) Method for Performing Domain Logons to a Secure Computer Network
KR100704721B1 (en) method for computer protection with real-time monitoring and thereby computer and thereby system
US9396329B2 (en) Methods and apparatus for a safe and secure software update solution against attacks from malicious or unauthorized programs to update protected secondary storage
EP3627368B1 (en) Auxiliary memory having independent recovery area, and device applied with same
KR20030090568A (en) System for protecting computer resource and method thereof
KR20210068035A (en) Techniques for protecting selected disks in computer systems
KR20070030931A (en) Secure storage tracking for anti-virus speed-up
US20170053118A1 (en) Changed Block Tracking Driver for Agentless Security Scans of Virtual Disks
US9219728B1 (en) Systems and methods for protecting services
KR102239902B1 (en) Apparatus and method for file system protection on auxiliary storage device
WO2011095484A1 (en) Method of countermeasure against the installation-by-tearing of viruses onto a secure portable mass storage device
US20200210568A1 (en) Self-protection of anti-malware tool and critical system resources protection
RU85249U1 (en) HARDWARE ANTI-VIRUS
GB2441909A (en) Scanning files in subdivided storage area for malicious code

Legal Events

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