CN107430661A - 计算设备的离线扫描方法和系统 - Google Patents

计算设备的离线扫描方法和系统 Download PDF

Info

Publication number
CN107430661A
CN107430661A CN201680014455.6A CN201680014455A CN107430661A CN 107430661 A CN107430661 A CN 107430661A CN 201680014455 A CN201680014455 A CN 201680014455A CN 107430661 A CN107430661 A CN 107430661A
Authority
CN
China
Prior art keywords
computing device
kernel
memory
operating system
file
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201680014455.6A
Other languages
English (en)
Other versions
CN107430661B (zh
Inventor
吉里·布拉希克
兹德涅克·马扎尔
沃伊捷赫·沃伯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Avis Software Pte Ltd
Avast Software sro
Original Assignee
Exploit Prevention Labs Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Exploit Prevention Labs Inc filed Critical Exploit Prevention Labs Inc
Publication of CN107430661A publication Critical patent/CN107430661A/zh
Application granted granted Critical
Publication of CN107430661B publication Critical patent/CN107430661B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system

Landscapes

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

Abstract

要准备计算设备(例如,运行基于Windows NT的操作系统)进行离线扫描,无需使用可移动介质(如CD和USB设备)和不需要用户修改BIOS设置,在保护模式操作系统在计算设备上运行时收集和验证有关保护模式操作系统和计算设备的参数。可以将备用操作系统(例如,Linux操作系统)的内核映射到设备的存储器,可以启动保护模式操作系统的关闭,可以准备备用操作系统内核的系统环境,并且可以将计算设备的控制转移或传递到备用操作系统内核。

Description

计算设备的离线扫描方法和系统
相关临时申请的交叉应用
本申请要求于2015年3月3日提交的美国临时专利申请No.62/127,544的权益,其全部内容通过引用并入本申请中。
版权声明
本专利文件的公开内容部分包含受版权保护的材料。版权所有者不反对专利文件或专利公开的拓制,因为其出现在美国专利商标局专利文件或记录中,仅用于对本专利申请的申请过程的考虑,否则保留全部版权。
技术领域
本发明一般涉及计算机安全性,更具体地说,涉及准备为运行基于Windows NT的操作系统的计算设备进行离线扫描和去除高级威胁的改进的方法和系统。
背景技术
在Microsoft Windows NT系统系统(即Windows 2000,XP,Vista,7,8,8.1及其服务器副本)上运行的防病毒软件(AV)的主要挑战之一是在打击威胁时需要访问操作系统(OS)的服务(如操作系统的内核模式功能和结构)。由于许多高级威胁(例如rootkit)损害或以其他方式篡改这些服务,所以AV通常在检测和/或消除这些威胁方面无效。
该问题的一个解决方案是使计算机脱机(通过关闭OS)并从受信任的环境扫描计算机的硬盘驱动器(HDD)。各种AV产品的设计旨在实现该方案,包括AVG Rescue CD,AviraAntiVir Rescue System和Kaspersky Rescue Disk。然而,这些实施方案中的每一个需要实质性的用户知识和涉及清理过程-配置可信环境,用户不仅必须从下载的ISO映像创建可启动光盘(CD)或从下载安装程序创建可启动通用串行总线(USB)磁盘,但也必须理解到足以通过计算机的基本输入/输出系统(BIOS)界面来修改计算机的启动顺序。鉴于不同的计算机制造商不同地实现其BIOS界面,后者对于典型的用户来说可能是相当具有挑战性的,因此不存在不同的计算机的用户可以执行的简单程序。实际上,用于进行被感染计算机的离线扫描和/或清理的常规方法可以包括以下方法:
1.识别在运行时无法移除的高级威胁(例如,抗性恶意软件)。
2.用户下载ISO映像或包括启动加载程序(即Syslinux)的安装程序,并创建可启动CD或USB存储设备。
3.用户关闭Windows OS。
4.计算机重新启动,其中央处理单元(CPU)从保护模式切换到实模式。
5.电脑运行开机自检(POST)。
6.用户进入BIOS并修改启动顺序,使计算机的CD-ROM或USB驱动器具有超过HDD的启动优先级。
7.从CD/USB设备加载启动加载程序(即Syslinux)并执行。
8.启动加载程序加载LinuxTM内核(即vmlinuz)和初始RAM磁盘(即initrd.lzm)。
9.CPU从实模式切换到保护模式,执行被传递给Linux内核。
10.Linux内核初始化,安装根文件系统,并显示用户界面(UI)。
11.用户指示计算机执行离线扫描(和清理任务),并在完成后重新启动计算机。
12.计算机重新启动并运行POST。
13.用户重新进入BIOS并将启动顺序恢复到先前的设置,使得HDD具有超过CD-ROM/USB驱动器的启动优先级(这避免了例如从相应的驱动器中忘记的CD或USB设备的后来非预期启动)。
14.Windows OS重新启动。
鉴于用户参与上述和其他类似的常规方法的过分需求,需要一种为计算机准备进行离线扫描和去除高级威胁的简单且用户友好的改进方法。
发明内容
一般来说,本发明的目的是提供一种准备计算设备,特别是运行基于Windows NT的操作系统的设备,用于离线扫描和去除高级威胁的改进方法。
根据本发明的示例性实施方案,提供了一种用于准备恶意代理的计算设备的离线扫描的创造性方法,而不需要改变计算设备的启动顺序设置。计算设备可以包括至少一个处理器,至少一个存储器和安装在至少一个存储器中的保护模式操作系统。该方法可以包括,在保护模式操作系统在计算设备上运行时,收集和验证关于保护模式操作系统和计算设备中的至少一个的参数。该方法还可以包括将备用操作系统的内核映射到至少一个存储器,启动保护模式操作系统的关闭,准备内核用系统环境,以及将计算设备的控制传送到内核。
根据另一示例性实施方案,本发明的方法可以包括安装内核模式驱动器,收集和验证关于计算设备的当前环境的数据,将Linux内核映射到计算设备的至少一个存储器,以及启动具有注册回调的保护模式操作系统的关闭。该方法还可以包括在注册回调中为Linux内核准备一个新环境,并将计算设备的控制传递给Linux内核。
本发明的多个实施方案涉及消除上述常规方法的至少步骤2、4-9和13。
在至少一个实施方案中,可以将Windows内核模式驱动程序配置为在RAM(即,计算机的主要易失性存储器)中准备与Linux内核二进制程序的相同存储器布局,因为Syslinux启动加载程序否则将在上述常规方法步骤8中执行。后续的执行可以传递给Linux内核,例如,它可以假设计算设备的控制允许离线扫描和清理(例如,常规方法的步骤10和11)。
在某些实施方案中,Windows内核模式驱动程序可以在Windows OS关闭进程结束时准备存储器布局。这可以确保在将系统控制转移到Linux OS之前将RAM中的所有数据和高速缓存都写入HDD,否则可能会导致不必要的数据丢失。
本发明的实施方案有利地提供即使非计算机精通的用户可以执行的简化的离线扫描和清理方法,因为它消除了创建可启动设备的需要以及修改计算设备的BIOS设置的需要。
本发明的另外的方面和优点将部分地是显而易见的,并且部分地将从说明书中显而易见。
因此,本发明包括几个步骤以及这些步骤中的一个或多个与其他每个步骤的关联,并且体现了全部如以下详细公开中所示例的适于实现这些步骤的构造特征、要素的组合以及部件的布置,并且本发明的范围将在权利要求中予以说明。
附图说明
为了更全面地理解本发明,以下结合附图进行说明,其中:
图1是根据本发明的一个实施方案的计算设备和被配置为准备用于有限用户参与的计算设备离线扫描的示例性系统的示意图;
图2是示出根据本发明的一个实施方案的用于准备计算设备离线扫描的示例性方法的流程图;和
图3是示出根据本发明的一个实施方案的用于准备计算设备离线扫描的详细示例性方法的流程图。
具体实施方式
根据本发明的实施方案,提供了准备用于计算设备(例如,运行基于WindowsTMNTTM的OS)脱机扫描和清理的新方法,一种有利的OS“切换”的方法。这种方法不需要附加的可移动媒体(如CD或USB存储设备)和/或修改存储在计算设备的HDD上的数据并减低了在准备计算设备的脱机扫描中用户参与和互动的需要(例如,对BIOS设置修改)。该方法可以提供用于在设备的HDD上进行离线扫描的所有必要的数据。
在现在过时的实模式操作系统中,包括MicrosoftTMDOSTM和Windows 3.X、95TM、98TM和METM,OS的“切换”相对简单,考虑到这些OS通过BIOS服务具有对物理硬件的完全控制,并通过无限制访问BIOS调用来提供对硬件的所有执行的程序控制。然而,现代操作系统,例如基于NT内核的Microsoft Windows系列(即Windows 2000TM,XPTM,VistaTM,7TM,8TM,8.1TM及其服务器副本)只能在系统启动的初始阶段(即操作系统启动的实模式阶段)短时间内使用BIOS调用。此后,这些操作系统将处理器切换或转换为保护模式,其中BIOS服务不可用,并且所有对硬件的访问都由操作系统的内核和相关驱动程序进行。例如,包括AVG RescueCD,Kaspersky Rescue Disk,Loadlin,coLinux和Kdump在内的常规产品和解决方案要么不适用于基于Windows NT的操作系统,要么不提供简单和用户友好的方式来准备计算机用于离线扫描和清理。
图1是根据本发明的一个实施方案的计算设备100和系统150的示意图,该系统150被配置为准备用于有限用户参与的设备离线扫描。计算设备100可以包括处理器102(例如,微处理器或其他数据处理设备)和存储器104(例如非易失性存储器如硬盘驱动器,易失性存储器,或两者)。根据其配置,计算设备100可以包括多个处理器和存储器。可以使用处理器102来运行操作系统,特别是基于Windows NT的OS,并且可以执行一个或多个软件应用程序。
如上所述,用于准备计算机(例如,运行基于Windows NT的OS)进行离线扫描的常规方法对于非精通的计算机用户来说难以沿循或执行。在本发明的优选实施方案中,系统150可以通过自动准备离线扫描用可信环境和消除对外部存储介质(例如,CD和USB设备)的需要以及对设备启动顺序设置修改的需要来减少用户参与的需要。例如,系统150可以(例如,当安装到计算设备100时)被配置为通过收集启动备用操作系统所需的信息(例如,使用BIOS服务),停止在所有处理器上的OS,并将模拟系统环境条件与在Windows OS的实模式阶段启动后通常存在的情况相符来切换基于Windows NT的OS以进行离线扫描。根据一个实施方案,系统150可以例如包括启动结构的安装包(以下称为ARLBoot结构)。该安装包可以包括可用于收集关于计算机系统设置的信息的用户模式实用程序(UMU)152,触发OS切换(从基于Windows NT的OS到诸如Linux OS的备用OS),并强制Windows OS关机。该软件包还可以包括配置为收集附加数据,将备用操作系统内核(例如,Linux内核)映射到存储器中,为内核配置系统环境,并启动内核的内核模式驱动程序(KMD)154。
系统150不应与使用处理器虚拟化的产品(例如coLinux)混淆,这些产品仅允许在同一计算设备上同时操作两个操作系统-这样的产品需要处理器支持,并且必须提前准备,即在用户打开电脑之前。
在某些实施方案中,UMU和KMD可以作为可下载包(即,来自因特网)提供,并且被配置为解包到计算设备的HDD。在一些实施方案中,UMU可以在解包包装后自动安装KMD,而无需用户交互。应当理解,UMU和KMD可以替代地作为单独的可下载部分提供。
图2是示出了使用ARLBoot准备用于计算设备离线扫描的示例性方法200的流程图。例如,方法200可以在ARLBoot下载到计算设备100上并由用户初始化之后(例如,当用户选择或激活包时,例如通过双击包文件),在基于Windows NT的OS正在设备上运行同时开始(在步骤202)。ARLBoot可以安装KMD(步骤204),收集数据并验证设备环境(步骤206),并将Linux内核映射到计算设备上的存储器(步骤208)。ARLBoot还可以通过注册的回调来启动OS的关闭(步骤210),并且在注册的回调中为Linux内核准备设备环境(步骤212)。在步骤214,ARLBoot可以将计算设备的控制转移或传递给Linux内核。然后,Linux内核可以启动和开始脱机扫描应用程序用于扫描和/或清理设备。
图3是示出了用于准备计算设备的离线扫描的详细示例性方法300的流程图。从OS“切换”的第一阶段开始,UMU可以收集在用户模式下可用的信息和/或参数(步骤302),包括Linux内核和初始RAM盘(例如,initrd)文件在计算设备的硬盘驱动器(例如,存储器104)上的定位,用于Linux内核的用户提供或默认命令行,提供给Linux内核的视频模式以及设备保留存储器的存储器映射[例如,使用系统提供的界面,例如通过Windows的应用程序编程接口(API)可用的SetupDiGetClassDevsEx、CM_Get_First_Log_Conf_Ex和/或CM_Get_Next_Res_Des_Ex]。
然后,UMU可以向KMD发出具有该信息的DeviceIO呼叫,并请求KMD发起启动LinuxOS(步骤304)。
在步骤306,KMD可以验证收集的信息和/或参数,并且可以收集附加信息,包括可用处理器的数量(例如,使用系统变量KeNumberProcessors),操作系统版本(例如,使用系统功能RtlGetVersion),系统存储器映射(例如,使用由系统功能RtlCmDecodeMemIoResource解码的系统注册表子项\Registry\Machine\HARDWARE\RESOURCEMAP\System Resources(系统资源)),存储在计算设备HDD上的Linux内核和RAM磁盘的路径和被Linux文件覆盖的存储器内容。
在步骤308,KMD可以解析Linux内核文件并确定保护模式入口点,例如通过读取位于文件偏移量0x01f1的结构setup_header。保护模式入口点的位置可以由setup_sects字段确定。随后可以使用setup_header结构来获取有关Linux内核的信息,并且可以作为在内核对计算设备给与控制时提供给Linux内核的启动参数的基础。
在步骤310,KMD可以读取Linux内核和RAM磁盘文件,并将它们映射到可用的非分页物理连续的存储器中,例如使用MmAllocateContiguousMemorySpecifyCache界面。这可以通过执行最大允许物理存储器地址和对齐要求(例如,setup_header结构的pref_address、initrd_addr_max和kernel_alignment项目)来实现。
如果在步骤310处物理上连续的存储器的分配失败(例如,由于低存储器条件或存储器碎片),则可以在步骤311确定存储器中的文件的目标物理地址。这可以使用由从UMU提供的设备保留的存储器映射和从注册表获取的系统注册表映射来进行。以这种方式,目标存储器区域不与任何物理设备保留的存储器和KMD使用的存储器重叠。然后,在步骤311a,文件可被读取到标准非分页存储器池。这可以包括检查和丢弃分配,使得分配的页面的物理地址不与目标存储器区域重叠。在某些实施方案中,该方法可另外包括重写存储器的规划,这涉及在步骤311b用文件(即,在步骤311a读取的文件)覆盖目标物理存储器。这可以刚好在切换操作系统之前发生。
在步骤312,KMD分配辅助数据结构,例如使用MmAllocateContiguousMemorySpecifyCache,使得这些结构属于可用的最低2千兆字节(GB)的物理存储器,并且不与目标存储器区域重叠(例如,在计划重写存储器的步骤311b的情况下)。这些数据结构可以包括Linux零页面,用于汇编代码执行OS切换的页面,页表项(PTE),Linux内核命令行,全局描述符表(GDT),中断描述符表(IDT)和用于计算设备的每个处理器的堆栈(Stack)。在某些实施方案中,这些数据结构中的一些可以包含静态数据(例如汇编代码,命令行等)。在这种情况下,也可以在步骤312适当地初始化这些特定结构。
在步骤314,KMD可以尝试访问Windows OS中可用的未记录的BIOS模拟器,例如使用系统提供的功能MmGetSystemRoutineAddress。模拟器界面可以包括x86BiosCall,x86BiosAllocateBuffer,x86BiosFreeBuffer,x86BiosReadMemory和x86BiosWriteMemory功能。如果模拟器可用并被初始化,则在步骤314a,KMD还可以使用模拟器来检索BIOS(例如,E820)存储器映射(例如,BIOS调用0x15)。此外,KMD可以使用模拟器来稍后将显示器的图形模式切换回文本模式(例如,BIOS调用0x10)。如果BIOS模拟器不可用,则可以使用在步骤306中获得的存储器映射(步骤314b)。
在步骤316,KMD可以填写Linux启动参数(例如,zero_page),例如使用在步骤308中获得的setup_header结构以及其他信息,包括视频模式参数(例如,预先设置或基于用户设置从BIOS模拟器调用0x10获得的),在步骤310中获得的存储器中的Linux内核和初始RAM盘的物理地址和大小,在步骤312中获得的存储器中的Linux内核命令行的地址以及在步骤314中获得的存储器映射。
在步骤318,KMD可以在Windows OS中注册最后机会关机通知,例如使用系统提供的功能IoRegisterLastChanceShutdownNotification,以便刚好在关闭系统之前调用其回调函数。
在步骤320,KMD可以从UMU完成DeviceIo呼叫,并且可以通知UMU关于第一阶段的状态(例如,成功或失败)。直到此时,系统没有进行任何修改,没有发生对系统稳定性的影响。
在步骤322,UMU可以启动计算机关机,例如使用系统提供的功能ExitWindowsEx。然后,关机可以继续进行到“最后机会关机通知”阶段(例如,在所有文件系统被刷新之后)。
在步骤324,可以调用在步骤318中注册的KMD的关机调度回调,其可以启动操作系统“切换”的第二阶段。
操作系统“切换”的第二阶段是刚好在计算机关闭之前(例如,恰好在ACPI呼叫之前)的状态。因此,在这个阶段,所有的用户进程已被终止,并且所有的数据已被刷新到HDD。这可能对可用的系统资源构成某些限制。在本发明的示例性实施方案中,KMD可以通过拥有提前分配的所有必要的资源来解决这个问题(例如,附加存储器可以在步骤314之后被分配,然后在步骤326中随后用适当的结构占据)。在步骤326,KMD可以准备新的控制结构以供处理器用于虚拟到物理存储器的转换(例如,分页)。可以为每个处理器架构定义这些结构(例如,x86、具有物理地址扩展的x86、x64等)。这些结构的格式是已知的,并在适当的处理器手册中有描述。可以在步骤312中分配的页面中创建控制结构,使得:最低2GB的存储器被翻译,使用大的(例如,4MB)页面,存储器被标记为读写和存在(例如,未分页到磁盘),虚拟与物理存储器的映射为1:1,因此存储器中任何字节的虚拟地址与其物理地址相同。
在步骤328,KMD可以将显示切换到文本模式。这可以使用BIOS模拟器(例如,BIOS调用0x10)(如果可用)或者通过直接写入到视频图形阵列(VGA)寄存器(例如,使用系统提供的例程WRITE_PORT_UCHAR)来实现。
在步骤330,KMD可以发出IPI呼叫(例如,使用系统提供的功能KeIpiGenericCall,其在Windows Server 2003TM和更高版本的Windows中可用),使得在该过程中后续步骤的相同代码在所有处理器上被执行。在早期版本的Windows(特别是Windows XP)上,实施类似的技术[例如使用发送到所有处理器的延迟过程调用,如通过KeInsertQueueDpc]。
在步骤332,KMD可以在每个处理器上执行以下操作:将IRQL升高到最大值(例如,KeRaiseIrql);禁止中断(例如,使用汇编指令CLI),通过写入CR3控制寄存器来切换页面表,使得最低2GB的存储器被映射1:1(例如,使用在步骤326中准备的控制结构);将全局描述符表(GDT)和中断描述符表(IDT)复制到在步骤312中分配的1:1映射的存储器区域中的新位置(例如,使用汇编指令SGDT/LGDT),使得它们不能被覆盖;并将堆栈切换到在步骤312中分配的新位置(例如,使用汇编指令MOV)。
在步骤334,KMD可以在除了处理器#0的所有处理器上执行以下操作(例如,处理器号可以由系统提供的功能KeGetCurrentProcessorNumber获得):将GDT和IDT切换到具有与在启动的第一阶段中Linux利用的那些相同的入口的最小表(例如,其可以包括采用在步骤332中使用的相同技术)并且跳转到位于步骤312中准备的辅助数据结构中的汇编代码。然后汇编代码可以:关闭分页(例如,清零CR0寄存器中的适当的位(bit));如果处理器是x64处理器架构,则将处理器切换到x86兼容模式(例如,通过使用RETFQ跳转到x86代码段);通过写入共享存储器位置来通知处理器#0;以及使用HLT指令停止处理器。在步骤334期间,KMD在处理器#0上等待所有其他处理器完成该步骤(例如,通过使用忙等待)。
如果在步骤310中物理连续存储器的分配失败并且计划进行重写目标物理存储器的附加步骤311b,则此时可以执行步骤311b,使得Linux内核映像和RAM盘被复制(从它们在步骤310被映射的位置)到它们在1:1空间中的目标地址,从而覆盖其中驻留的任何数据。在步骤336,KMD可以:将GDT和IDT切换到与在启动的第一阶段Linux利用的那些相同的入口的最小表(其可以包括采用在步骤332中使用的相同技术);关闭分页(例如,清除CR0寄存器中的适当的位);如果处理器是x64处理器架构,则将处理器切换到x86兼容模式(例如,通过使用RETFQ跳转到x86代码段);在切换到保护模式后,根据Linux内核的要求配置寄存器;并跳转到在步骤308中获得的保护模式内核入口点地址。
在步骤338,Linux内核可以自身解压缩,探测硬件并加载初始RAM磁盘。在步骤340,Linux内核可以从RAM磁盘启动初始化脚本(init脚本),这可以映射计算设备的HDD。这可能需要Linux内核使用与常规硬盘驱动控制器和磁盘相关联的驱动程序编译。
在映射磁盘之后,步骤340还可以包括利用初始化脚本来定位适当的安装文件夹(例如,ARLBoot安装文件夹),使用ext2文件系统定位包含准备好的磁盘映像的文件,并将根目录更改为这个文件。然后,标准Linux初始化进程可以启动以引发离线扫描用户界面(UI)。
应当理解,在方法200和300中所示的步骤仅仅是说明性的,并且可以修改或省略现有的步骤,可以添加附加步骤,并且可以改变某些步骤的顺序。
因此,本发明的实施方案有利地提供一个高效、方便的为运行保护模式的操作系统如基于Windows NT的操作系统的计算机准备脱机扫描的方法,消除了可移动介质如CD和USB设备的需要和用户修改计算机的BIOS设置的需要。
应当理解,前述主题可以体现为设备、系统、方法和/或计算机程序产品。因此,一些或全部主题内容可以体现在硬件和/或软件中(包括固件、常驻软件、微代码、状态机、门阵列等)。此外,所述主题可以在计算机可用或计算机可读存储介质上以计算机程序产品的形式出现,所述存储介质具有可通过指令执行系统或联合指令执行系统在介质中体现的计算机可用或计算机可读程序代码。计算机可用或计算机可读介质可以是可通过或联合指令执行系统、装置或设备容纳、存储、通信、传播或传输程序的任何介质。
计算机可用或计算机可读介质可以是例如电子、磁、光、电磁、红外或半导体系统、装置、设备或传播介质。计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括用于存储诸如计算机可读指令、数据结构,程序模块或其他数据的信息的任何方法或技术中实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EEPROM、闪存或可用于存储信息并且可由指令执行系统访问的其它存储器技术。
通信介质通常体现为计算机可读指令,数据结构,程序模块或调制数据信号如载波或其他传输机制中的其他数据,并且包括任何信息传递介质(有线或无线)。调制数据信号可以被定义为具有以对信号中的信息进行编码的方式设置或改变的其一个或多个特征的信号。
当主题体现在计算机可执行指令的一般上下文中时,实施方案可以包括由一个或多个系统、计算机或其他设备执行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,可以在各种实施方案中根据需要组合或分发程序模块的功能。
本领域普通技术人员将理解,本文中使用的术语“因特网”是指通过一组标准协议(例如TCP/IP和HTTP)链接在一起的计算机网络(公共和/或私有)的集合,形成全球分布式网络。虽然这个术语是指现在通常被称为互联网的内容,但它也旨在涵盖将来可能做出的变化,包括对现有协议的改变和添加。
因此,可以看出,有效地实现了上述目的,尤其在上述描述和附图中显而易见的上述目,并且由于实施上述方法以及关于系统所述的构造中在不脱离本发明的精神和范围的情况下可以做出某些变化,因此意欲包含在上述说明中并且附图中所示的所有内容应被解释为示例性的而不是限制性的。
还应当理解,所附权利要求旨在覆盖本文所描述的本发明的所有通用和具体特征以及在语言上可能落入本发明的范围的所有陈述。

Claims (25)

1.一种准备恶意代理的计算设备离线扫描的方法,该方法不需要改变计算设备的启动顺序设置,所述计算设备具有至少一个处理器,至少一个存储器和安装在所述至少一个存储器中的保护模式操作系统,所述方法包括:
在保护模式操作系统在所述计算设备上运行时,收集和验证关于所述保护模式操作系统和所述计算设备中的至少一个的参数;
将备用操作系统的内核映射到所述至少一个存储器;
启动保护模式操作系统的关闭;
准备内核用系统环境;和
将计算设备的控制转移到内核。
2.根据权利要求1所述的方法,还包括:
初始化离线扫描应用程序;和
使用离线扫描应用程序进行计算设备的离线扫描。
3.根据权利要求1所述的方法,还包括将驱动程序安装到所述至少一个存储器上。
4.根据权利要求3所述的方法,其中所述驱动器包括内核模式驱动器。
5.根据权利要求1所述的方法,其中所述至少一个存储器包括至少一个硬盘驱动器(HDD)。
6.根据权利要求1所述的方法,其中所述保护模式操作系统包括Windows 2000、XP、Vista、7、8、8.1及其服务器副本中的一个。
7.根据权利要求1所述的方法,其中收集参数包括读取在用户模式中可用的系统参数。
8.根据权利要求1所述的方法,其中验证参数包括验证备用操作系统的内核的路径、存储在所述至少一个存储器中的RAM盘的路径,以及存储在被备用操作系统的文件覆盖的至少一个存储器中的内容中的至少一个。
9.根据权利要求1所述的方法,其中所述备用操作系统是Linux操作系统。
10.根据权利要求1所述的方法,还包括解析所述内核并识别保护模式入口点。
11.根据权利要求1所述的方法,其中映射所述内核包括读取所述备用操作系统的内核和文件,以及将所述内核和所述文件分配给所述至少一个存储器的可用部分。
12.根据权利要求11所述的方法,其中所述至少一个存储器的可用部分包括非分页物理连续存储器和标准非分页池中的至少一个。
13.根据权利要求11所述的方法,其中准备系统环境包括映射所述内核的虚拟存储器和所述备用操作系统的文件。
14.根据权利要求13所述的方法,其中准备系统环境进一步包括使用与所述备用操作系统相关联的表来操作所述计算设备的至少一个处理器。
15.根据权利要求1所述的方法,还包括将辅助数据结构分配给所述至少一个存储器的预定义部分。
16.根据权利要求15所述的方法,其中所述至少一个存储器的所述预定义部分包括物理存储器的最低两千兆字节(2GB)。
17.根据权利要求1所述的方法,还包括填写所述备用操作系统的启动参数。
18.根据权利要求1所述的方法,还包括在所述保护模式操作系统中注册最后机会关机通知。
19.根据权利要求1所述的方法,其中启动关闭是通过注册的关闭回调进行的。
20.根据权利要求1所述的方法,其中转移控制包括转换到内核入口点。
21.根据权利要求20所述的方法,还包括:
解包内核;
探测计算设备的硬件;和
使用备用操作系统的文件加载初始RAM磁盘。
22.根据权利要求21所述的方法,进一步包括启动所述RAM盘的文件中的一个,以在所述至少一个存储器上定位ext2文件系统映像,并将系统根修改为ext2文件系统映像。
23.根据权利要求1所述的方法,其中所述计算设备包括至少一个显示器,所述方法还包括将显示切换到文本模式。
24.一种系统,其包括被配置为实现权利要求1的方法的安装、收集和启动步骤的用户模式实用程序,以及被配置为实现权利要求1的方法的验证、映射、准备和转移步骤的内核模式驱动程序。
25.一种准备恶意代理的计算设备的离线扫描的方法,该方法不需要改变计算设备的启动顺序设置,所述计算设备具有至少一个处理器,至少一个存储器和安装在所述至少一个存储器中保护模式操作系统,所述方法包括:
安装内核模式驱动程序;
收集和验证关于计算设备的当前环境的数据;
将Linux内核映射到计算设备的至少一个存储器;
使用注册的回调启动保护模式操作系统的关闭;
在注册的回调中,为Linux内核准备一个新的环境;和
将计算设备的控制传递给Linux内核。
CN201680014455.6A 2015-03-03 2016-03-02 计算设备的离线扫描方法和系统 Active CN107430661B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201562127544P 2015-03-03 2015-03-03
US62/127,544 2015-03-03
PCT/US2016/020456 WO2016141061A1 (en) 2015-03-03 2016-03-02 Method and system for offline scanning of computing devices

Publications (2)

Publication Number Publication Date
CN107430661A true CN107430661A (zh) 2017-12-01
CN107430661B CN107430661B (zh) 2020-07-03

Family

ID=56848581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680014455.6A Active CN107430661B (zh) 2015-03-03 2016-03-02 计算设备的离线扫描方法和系统

Country Status (3)

Country Link
US (1) US9836602B2 (zh)
CN (1) CN107430661B (zh)
WO (1) WO2016141061A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026452A (zh) * 2019-11-20 2020-04-17 北京明朝万达科技股份有限公司 一种远程32位进程注入64位进程的方法及系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080091934A1 (en) * 2006-10-17 2008-04-17 Independent Security Evaluators, Llc Method and apparatus for limiting access to sensitive data
CN101770386A (zh) * 2010-03-08 2010-07-07 北京飞天诚信科技有限公司 一种Linux嵌入式系统的安全启动方法
US20110209220A1 (en) * 2010-02-22 2011-08-25 F-Secure Oyj Malware removal
CN103473508A (zh) * 2013-09-17 2013-12-25 肖楠 操作系统内核运行时安全验证方法
CN103729597A (zh) * 2014-01-16 2014-04-16 宇龙计算机通信科技(深圳)有限公司 系统启动校验方法、系统启动校验装置和终端
CN103823692A (zh) * 2013-12-31 2014-05-28 北京华虹集成电路设计有限责任公司 一种计算机操作系统启动方法
US20140372746A1 (en) * 2010-10-13 2014-12-18 International Business Machines Corporation Port throttling across an operating system restart during a hot upgrade

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088513A1 (en) 2002-10-30 2004-05-06 Biessener David W. Controller for partition-level security and backup
US7424601B2 (en) * 2004-07-07 2008-09-09 Yongyong Xu Methods and systems for running multiple operating systems in a single mobile device
US7627898B2 (en) * 2004-07-23 2009-12-01 Microsoft Corporation Method and system for detecting infection of an operating system
TWI279724B (en) * 2005-09-07 2007-04-21 Mitac Technology Corp Method for fast activating execution of computer multimedia playing from standby mode
US9329973B2 (en) * 2006-03-22 2016-05-03 British Telecommunications Public Limited Company Method and apparatus for automated testing software
US8291209B2 (en) * 2007-08-01 2012-10-16 Splashtop Inc. Integration model for instant-on environment
CA2704838A1 (en) * 2008-10-07 2010-04-15 Research In Motion Limited Dynamic alteration of input mode on touch screen device
US8533830B1 (en) * 2009-03-31 2013-09-10 Mcafee, Inc. System, method, and computer program product for mounting an image of a computer system in a pre-boot environment for validating the computer system
WO2011074168A1 (ja) * 2009-12-14 2011-06-23 パナソニック株式会社 情報処理装置
US8819225B2 (en) * 2010-11-15 2014-08-26 George Mason Research Foundation, Inc. Hardware-assisted integrity monitor
US9767282B2 (en) * 2010-12-14 2017-09-19 Microsoft Technology Licensing, Llc Offline scan, clean and telemetry using installed antimalware protection components
EP3651042A1 (en) * 2011-03-22 2020-05-13 Telefonaktiebolaget LM Ericsson (publ) Method for switching between virtualized and non-virtualized system operation
US20140229942A1 (en) * 2012-09-21 2014-08-14 Willard Monty Wiseman Isolated guest creation in a virtualized computing system
WO2014141678A1 (ja) * 2013-03-12 2014-09-18 パナソニック株式会社 バスシステムおよびコンピュータプログラム
US9563457B2 (en) * 2013-11-18 2017-02-07 Bitdefender IPR Management Ltd. Enabling a secure environment through operating system switching
US9766944B2 (en) * 2014-03-25 2017-09-19 Microsoft Technology Licensing, Llc Dynamic partition dual boot mobile phone device
GB2527569B (en) * 2014-06-26 2016-06-08 Ibm Booting a computer from a user trusted device with an operating system loader stored thereon

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080091934A1 (en) * 2006-10-17 2008-04-17 Independent Security Evaluators, Llc Method and apparatus for limiting access to sensitive data
US20110209220A1 (en) * 2010-02-22 2011-08-25 F-Secure Oyj Malware removal
CN101770386A (zh) * 2010-03-08 2010-07-07 北京飞天诚信科技有限公司 一种Linux嵌入式系统的安全启动方法
US20140372746A1 (en) * 2010-10-13 2014-12-18 International Business Machines Corporation Port throttling across an operating system restart during a hot upgrade
CN103473508A (zh) * 2013-09-17 2013-12-25 肖楠 操作系统内核运行时安全验证方法
CN103823692A (zh) * 2013-12-31 2014-05-28 北京华虹集成电路设计有限责任公司 一种计算机操作系统启动方法
CN103729597A (zh) * 2014-01-16 2014-04-16 宇龙计算机通信科技(深圳)有限公司 系统启动校验方法、系统启动校验装置和终端

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111026452A (zh) * 2019-11-20 2020-04-17 北京明朝万达科技股份有限公司 一种远程32位进程注入64位进程的方法及系统
CN111026452B (zh) * 2019-11-20 2023-10-20 北京明朝万达科技股份有限公司 一种远程32位进程注入64位进程的方法及系统

Also Published As

Publication number Publication date
US9836602B2 (en) 2017-12-05
WO2016141061A1 (en) 2016-09-09
US20160259938A1 (en) 2016-09-08
CN107430661B (zh) 2020-07-03

Similar Documents

Publication Publication Date Title
US9384094B2 (en) Method and system for instant restore of system volume from a backup image
US9329943B2 (en) Methods and systems for instant restore of system volume
CN102207896B (zh) 虚拟机崩溃文件生成技术
US10338935B2 (en) Customizing program logic for booting a system
CA2534792C (en) A system and method for transferring a computing environment between computers of dissimilar configurations
US8539515B1 (en) System and method for using virtual machine for driver installation sandbox on remote system
US9117081B2 (en) Strongly isolated malware scanning using secure virtual containers
US8312212B2 (en) Systems and methods for attaching a virtual machine virtual hard disk to a host machine
CN108475217B (zh) 用于审计虚拟机的系统及方法
US20110265076A1 (en) System and Method for Updating an Offline Virtual Machine
US8495628B2 (en) Para-virtualization in a nested virtualization environment using reduced number of nested VM exits
US8910155B1 (en) Methods and systems for injecting endpoint management agents into virtual machines
US9178900B1 (en) Detection of advanced persistent threat having evasion technology
US20140351935A1 (en) Method, apparatus and virtual machine for detecting malicious program
US9311126B2 (en) System and method for virtual partition monitoring
JP2005322242A (ja) 仮想環境からのハードウェアへの直接アクセスの提供
TW200813833A (en) Launching hypervisor under running operating system
US10860393B2 (en) Tracking driver load and unload on windows OS
US20150363320A1 (en) Write back caching of boot disk in a uefi environment
RU2586576C1 (ru) Способ выполнения обращения к процедурам загрузочного драйвера
US10803167B1 (en) Systems and methods for executing application launchers
US20060112313A1 (en) Bootable virtual disk for computer system recovery
US8572742B1 (en) Detecting and repairing master boot record infections
CN107430661A (zh) 计算设备的离线扫描方法和系统
JP5275456B2 (ja) ハイパーバイザーを使用したディスクレスクライアント

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TA01 Transfer of patent application right
TA01 Transfer of patent application right

Effective date of registration: 20200615

Address after: Amsterdam city of Holland

Applicant after: Avis Software Pte. Ltd.

Address before: California, USA

Applicant before: AVG Netherlands, B.V.

Effective date of registration: 20200615

Address after: Prague, Czech

Applicant after: AVAST SOFTWARE S.R.O.

Address before: Amsterdam city of Holland

Applicant before: Avis Software Pte. Ltd.