CN1311478A - 保护bios免于被病毒破坏的方法 - Google Patents

保护bios免于被病毒破坏的方法 Download PDF

Info

Publication number
CN1311478A
CN1311478A CN 00103400 CN00103400A CN1311478A CN 1311478 A CN1311478 A CN 1311478A CN 00103400 CN00103400 CN 00103400 CN 00103400 A CN00103400 A CN 00103400A CN 1311478 A CN1311478 A CN 1311478A
Authority
CN
China
Prior art keywords
bios
virus
smi
flash memory
writes
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
CN 00103400
Other languages
English (en)
Other versions
CN1121012C (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.)
Inventec Corp
Original Assignee
Inventec Corp
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 Inventec Corp filed Critical Inventec Corp
Priority to CN 00103400 priority Critical patent/CN1121012C/zh
Publication of CN1311478A publication Critical patent/CN1311478A/zh
Application granted granted Critical
Publication of CN1121012C publication Critical patent/CN1121012C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及一种保护BIOS免被病毒破坏的方法。它主要是利用快闪存储器被写入时的必要信号产生系统管理中断(SMI),因此当存于快闪存储器的BIOS有写入动作时,利用BIOS的SMI处理程序(handler routine)即可防止病毒。该方法首先是使快闪存储器发出的必要信号接到电脑芯片组的SMI事件来源(SMI event source)输入管脚,使芯片组能产生对应的SMI#至电脑的CPU,当CPU接收到SMI#时,便能通过BIOS的SMI处理程序检查存于快闪存储器的BIOS是否有写入,经判断结果为病毒侵入时即禁止其写入。

Description

保护BIOS免于被病毒破坏的方法
本发明涉及一种电脑固件(firmware)防护的方法,尤其是涉及一种防止电脑BIOS(basic input/output system,基本输入输出系统)被病毒破坏的方法。
电脑系统中最为关键的元件之一为引导(booting)用的固件,即BIOS,一般将其存于非易失性(non-volatile)的存储器中。BIOS为一种可执行代码(executable code),使得CPU能利用执行如初始化(initialization)、由主存储器载入操作系统的核心(kernel)以及例行I/O(input/output,输入/输出)功能等工作。
当电源打开时,CPU利用取出(fetch)存于BIOS中的指令码以启动电脑。BIOS的必须同时兼具两种互为冲突的要求,即(I)BIOS必须被完好保护,原因是如果BIOS被修改或破坏则整个系统便无法开机;(2)BIOS必须能被轻易修改,以准许版本加入改进功能或经除错后的更新(update)动作。
通常BIOS可写在EPPOM(erasable programmable read-only memory,可擦可编程化只读存储器)中,EPPOM具有用电流无法修改的好处,要修改EPPOM存储的内容,必须先将EPPOM从插槽移出,然后以紫外线常时间照射才能实现。因此写在EPPOM中的BIOS可免于电脑病毒的侵害。但是反过来说,存于EPPOM的BIOS就不能随时地升级更新。近来,由于电脑系统结构不断的推陈出新,BIOS是否能随时更新变得相当重要,因此现在的BIOS固件便多采用快闪存储器(flash memory)。然而,由于易于修改,BIOS快闪存储器就容易受电脑病毒的破壤,一旦受到病毒的感染便会造成相当严重的后果。典型的电脑病毒侵入,病毒码将执行一代码序列(code sequence)以修改BIOS内容,一旦BISO被不当修改,受感染的可执行代码将进一步散播至BIOS码的其它区域或操作系统的核心。而且,由于BIOS是电脑系统开机后第一个被执行的程序,先于任何系统或网络扫毒软件启动之前,使得检测与扫除以侵犯BIOS为主的病毒工作更加困难,尤其这种病毒常常能够躲过扫毒软件的扫描,而变得无法获知其是否存在。
现有对BIOS的保护大致上可分成两种方式:(1)采用硬件(H/W)保护,即利用jumper(跨接线)或GPIO(General Purpose I/O,通用型输入/输出)控制快闪存储器Vcc 12V的输入信号,以防止快闪存储器被写入。这种方法虽然有不错的保护效果,但操作并不方便,缺点是对病毒的防范及反应略嫌消极;(2)采用软件(S/W)保护,一般常见方式即为S/W的保护,对于有些快闪存储器不支持上述的H/W保护,会直接用对快闪存储器下一组命令(command)的方式进行防毒。然而这种方法的缺点是这组命令为快闪存储器制订的规格之一,因此很容易被病毒以软件的方式解除保护,如CIH病毒便可破解这种软件保护。
因此,本发明的目的在于提出一种保护BIOS免于被病毒破坏的方法,其利用快闪存储器被写入时的必要信号产生SMI(system managementinterrupt,系统管理中断),因此当存于快闪存储器的BIOS有写入动作时,便能利用BIOS的SMI处理程序(handler routine)来防止病毒。
根据上述发明目的提供的保护BIOS免于被病毒破坏的方法,其通过存有BIOS的一快闪存储器与一芯片组的SMI事件来源输入管脚形成连通,实现防止病毒写入快闪快储器,其步聚至少包括:(a)执行相关BIOS设定以匹配来自快闪存储器的一必要信号WE#;(b)电脑CPU接收由芯片组发出的-SMI信号;(c)至BIOS的SMI handler routine检查SMI来源;(d)判定SMI来源为快闪存储器被病毒写入;以及(e)禁止病毒的写入。其中步骤(a)还包括:(a1)执行BIOS启动时的POST;(a2)初始化SMIhandler routine;(a3)对芯片组执行相关设定,使快闪存储器被写入时芯片组能产生-SMI信号;(a4)设定I/O trap SMI功能以防止病毒失能SMI以及(a5)载入操作系统。
为使本发明的上述和其它目的、特征和优点能更简单易懂,故举一较佳实施例,并结合附图,进一步详细说明如下。
图1给出本发明电脑系统硬件电路结构示意图;
图2本发明保护BIOS免于被病毒破坏的方法的硬件设定示意图;
图3给出本发明保护BIOS免于被病毒破坏的方法的软件设定流程图;以及
图4给出本发明保护BIOS免于被病毒破坏的方法的实施流程图。
在本发明中所述及的电脑病毒为一段可执行的程序码,以其在开机时感染操作系统为例,将会对存有BIOS程序码的快闪存储器有写入的动作,造成BIOS被修改而无法开机。如果无法及时发现病毒的侵入,即无中毒警告功能通知使用者及早处理,则病毒便会继续破坏其它装置如磁盘或存储器等,使得存于这些存储单元内的数据被修改或删除而造成严重的损失。
因此本发明所述的方法主要是保护存有BIOS的快闪存储器不被病毒侵害,即通过BIOS快闪存储器有写入产生时,判断此写入动作是否为不正常的写入,若经判定结果为病毒便由电脑发出中毒警告,紧接着便采取避免电脑系统受感染的防范措施。具体的实施流程如下文所述。
在此之前,请参照图1所示的电脑硬件电路图,以了解电脑系统大致的结构。一般目前所广为使用的计算机系统,其CPU10通过CPU总线20与北桥NB(north bridge)30相连接,而北桥30除了与存储器(可以是SDRAM、EDORAM等存储器)40相接之外,还通过AGP总线50与AGP VGA卡60相连。此外,北桥30则经由PCI总线70与南桥80相接,用以传递数据与信息。而南桥80除了与硬盘(HDD)90、光盘机(CD ROM或DVD ROM)100、USB(Universal Serial Bus,通用串联式总线)110、输入装置(例如鼠标、键盘等)120相接,用以存取或输入数据之外,还分别通过XD总线130及ISA总线140,以分别与BIOS 150及声频装置(Audio,例如声卡)160相接。其中北桥30与南桥80都为主机板上的控制芯片组(chipset),在CPU10附近的北桥芯片30又称为系统主机芯片,在总线附近的南桥芯片是负责外围设备的外围设备芯片。
首先探讨电脑系统如何得知BIOS快闪存储器被写入。本发明实现的方式是利用快闪存储器被写入时必要信号可产生SMI的特性,据以获知BIOS快闪存储器有写入的动作。这要从硬件设定及BIOS设定两部分着手。请参照图2,其给出本发明的硬件设定中,连通BIOS快闪存储器与芯片组的SMI事件来源输入管脚(event source input pin)的示意图。在此较佳实施例中,BIOS快闪存储器16利用一转接单元14连接至系统芯片组12,例如为上述的南桥芯片30,芯片组12则连至CPU10。其中,转接单元14可利用逻辑电路(logic circuit)或利用SIO(super I/O,输入/输出控制器)实现,主要是芯片组12所需接收的SMI来源(cause)相当多,而芯片组12的SMI事件来源输入管脚却有限,因此最好是通过转接单元14的集成与控制,使芯片组12能获知由BIOS快闪存储器的SMI来源。不过,如果芯片组12有空出的管脚,也可省去通过转接单元14,直接将BIOS快闪存储器16连接至芯片组12。这一硬件设定方式是在主机板布线(layout)时完成,利用电路设计使BIOS快闪存储器16发出必要信号,如为一WE#(write enable信号)的输出,通过逻辑电路或SIO的转接单元14或直接传送到芯片组12,使芯片组12得知SMI来源而发出SMI#至CPU 10。
完成硬件设定之后,接下来需再结合BIOS的设定,请参照图3,其给出经修改BIOS程序码后启动BIOS的流程。由于一般电脑系统中,BIOS快闪存储器可产生SMI信号的功能并未被打开。也就是说,就算是上述硬件设定都完成了,仍需结合BIOS程序码的修改,系统才能得知对应的SMI#来源为来自BIOS快闪存储器16被写入所产生。首先,如步骤101,当电脑开机时,便会开始启动“引导程序(booting)”,在启动BIOS的过程中首先会执行POST(Power-On Self-Test,加电自检),其包括启动各种测试以确定电脑功能为正确,以及初始化一定硬件装置内的寄存器,且大部分POST执行时也包括载入BIOS程序码(code)到存储器中。在POST开始后,如步骤102,需将BIOS快闪存储器发出SMI信号的功能打开,因此进行初始化SMI处理程序的程序。接着,如步骤103,由BIOS对芯片组12执行相关的设定,以匹配来自于BIOS快闪存储器或逻辑电路或SIO的输入信号。并且,如步骤104的防范措施,设定I/O trap SMI功能以防止病毒失能(disable)SMI功能。最后,如步骤105,POST执行完之后,电脑便载入一如微软的MS-DOS或Windows的操作系统。
完成相关的硬件及软件设定后,接下来以图4所示的流程步骤说明本发明处置病毒侵入的方法。如步骤201,当CPU 10接到一SMI#后便会至BIOS的SMI处理程序中,以检查SMI来源为何(步骤202)。如步骤203,当判定为BIOS快闪存储器的写入而引发此SMI#,且写入的动作并非BIOS或BIOS更新工具程序所造成,也就是说写入为病毒不正常修改BIOS(步骤204),则系统便发出警报信号(步骤205),如发出哔哔声或具有特殊音节的声音,以提醒使用者病毒正欲破坏BIOS。并且如步骤207,系统将采取禁止病毒写入的相关措施。此外,在步骤203中判定SMI#产生来源并非是由BIOS快闪存储器的写入所造成,系统便会继续进行其它的SMI处理程序内容(步骤208),最后再回到OS或AP(applicationprogram,应用程序)中(步骤209)。而步骤204中,若判定出BIOS快闪存储器的写入为BIOS或BIOS更新程序或其它非不正常写入的原因,则也会回到OS或AP的步骤209。至于步骤207中,采用的禁止写入方式不同会有不同的处理方式,详细内容请见以下说明。
先说明步骤204中如何判断BIOS快闪存储器被写入产生SMI#是为病毒程序所造成的方法,提出三种较佳实施例如下:
(1)使BIOS或者BIOS更新程序要写入BIOS快闪存储器之前,先在存储器中某一特定位置写入某一特定值,即为设定一flash写入标记(flag),做完再将之清除。因此当BIOS的SMI处理程序判断SMI发生原因是否为BIOS快闪存储器被写入时,检查上述flash写入标记是否存在。若是,则是BIOS或者BIOS更新程序所为;若flash标记不存在,则判定为病毒程序破坏BIOS快闪存储器。
(2)使BIOS或BIOS更新程序写入BIOS快闪存储器时一律呼叫BIOS服务程序来完成,而BIOS服务程序一定放在存储器000E0000h至000FFFFF ROM的地址中。而当SMI发生,CPU进入SMM(system managementmode)时,会把中断前正在执行程序的地址,以CS(code segment,程序码区段)或EIP(expanded instruction pointer,扩充指令指针)等寄存器存储于SMRAM中。因此当BIOS快闪存储器被写入而产生SMI时,SMI处理程序检查中断前正在执行程序的地址是否在存储器000E0000h至000FFFFF的地址中。若是,则是BIOS或者BIOS更新程序所为;若不是,则认定为病毒所为。
(3)使BIOS或BIOS更新程序要写入BIOS快闪存储器之前,先将BIOS快闪存储器被写入产生SMI#的开关关闭,等写完后再重新打开。这样,写入过程中不会产生SMI#。因为病毒程序不知道或无法关闭上述SMI#的开关,所以当SMI处理程序发现因BIOS快闪存储器被写入而产生SMI时,则认定为病毒程序所为。
至于步骤207禁止病毒写入的方法,即SMI处理程序处理病毒破坏BIOS快闪存储器的方法,提出两种较佳实施例如下:
(1)利用系统扬声器(speaker)不断发出特殊声音以警告使用者。CPU就不断执行此一声音程序,不再离开SMI处理程序以免CPU回到病毒程序破坏BIOS快闪存储器,或者避免其进一步破坏硬盘等其它装置。由于此时系统呈现当机状态,使用者可根据声音查询使用者手册或者询问电脑公司,可以得知电脑已经中毒。
(2)利用SMI处理程序在存储器中特定位置写入一特定值,即为设定一中毒标记。因为BIOS快闪存储器数据被写入前必须先对其特定地址写入一连串的命令码,故SMI处理程序可于SMRAM的CPU寄存器值中破坏病毒的写入命令码,使其写入命令失效,无法破坏BIOS快闪存储器。因此,本方法最后会进行上述步骤208而回到OS,此时再对应写一程序于OS下执行,定期检查存储器中的中毒标记,或发现中毒标记被设立,则立即于屏幕上显示信息以警告使用者。
虽然本发明已以较佳实施例公开如上,但它并非用以限定本发明。任何本领域的技术人员,在不脱离本发明的精神和范围内,可作适当的更改与润饰,因此本发明的保护范围应当以权利要求所界定的范围为准。

Claims (9)

1.一种保护BIOS免于被病毒破坏的方法,其通过存有BIOS的一快闪存储器与一芯片组的SMI事件来源输入管脚形成连通,实现防止病毒写入该快闪存储器,其步骤至少包括:
执行相关BIOS设定以匹配来自该快闪存储器的一必要信号;
电脑CPU接收由该芯片组发出的一SMI信号;
至BIOS的SMI处理程序检查SMI来源;
判定该SMI来源为该快闪存储器被病毒写入;以及禁止该病毒的写入。
2.如权利要求1所述的保护BIOS免于被病毒破坏的方法,其中该必要信号为一WE#(可写入信号)。
3.如权利要求1所述的保护BIOS免于被病毒破坏的方法,其中该执行硬件设定的步骤包括:
执行BIOS启动时的POST;
初始化该SMI处理程序;
对该芯片组执行相关设定,使该快闪存储器被写入时该芯片组能产生一SMI信号;
设定I/O trap SMI功能以防止病毒关闭SMI;以及
载入操作系统。
4.如权利要求1所述的保护BIOS免于被病毒破坏的方法,其中判定该快闪存储器为病毒写入的步骤还包括:
设定一经授权程序写入该快闪存储器时,先写入一flash写入标记于一存储器;以及
SMI处理程序至该存储器内检查该标记不存在,认定写入为病毒程序所为。
5.如权利要求1所述的保护BIOS免于被病毒破坏的方法,其中判定该快闪存储器为病毒写入的步骤还包括:
设定一经授权程序写入该快闪存储器时,将呼叫BIOS服务程序;以及
SMI处理程序检查中断前正被执行的程序地址是不在存储器000E0000h至000FFFFF的地址中,认定写入为病毒程序所为。
6.如权利要求1所述的保护BIOS免于被病毒破坏的方法,其中判定该快闪存储器为病毒写入的步骤还包括,设定一经授权程序写入该BIOS快闪存储器时,将关闭产生SMI信号,故SMI处理程序检查SMI来源为该快闪存储器被写入所造成时,认定写入为病毒程序所为。
7.如权利要求4至6中任一项所述的保护BIOS免于被病毒破坏的方法,其中该经授权程序包括BIOS或BIOS更新程序中任何一个。
8.如权利要求1所述的保护BIOS免于被病毒破坏的方法,其中禁止该病毒的写入的步骤还包括:
发出警讯声音;以及
使执行不离开SMI处理程序。
9.如权利要求1所述的保护BIOS免于被病毒破坏的方法,其中禁止该病毒的写入的步骤还包括:
SMI处理程序于一存储器写入一中毒标记;
SMI处理程序破坏病毒写入一地址的一命令序列,使该写入命令失能;
回到操作系统;以及
检查该存储器存有该中毒标记,显示一警告信息。
CN 00103400 2000-03-03 2000-03-03 保护bios免于被病毒破坏的方法 Expired - Fee Related CN1121012C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 00103400 CN1121012C (zh) 2000-03-03 2000-03-03 保护bios免于被病毒破坏的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 00103400 CN1121012C (zh) 2000-03-03 2000-03-03 保护bios免于被病毒破坏的方法

Publications (2)

Publication Number Publication Date
CN1311478A true CN1311478A (zh) 2001-09-05
CN1121012C CN1121012C (zh) 2003-09-10

Family

ID=4576956

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 00103400 Expired - Fee Related CN1121012C (zh) 2000-03-03 2000-03-03 保护bios免于被病毒破坏的方法

Country Status (1)

Country Link
CN (1) CN1121012C (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100385421C (zh) * 2000-06-12 2008-04-30 华硕电脑股份有限公司 可编程芯片软件防写保护的方法
CN103679020A (zh) * 2012-09-14 2014-03-26 纬创资通股份有限公司 病毒警报装置和病毒警报方法
CN107886005A (zh) * 2017-11-24 2018-04-06 广东虹勤通讯技术有限公司 一种系统管理中断的加密处理方法及系统

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100385421C (zh) * 2000-06-12 2008-04-30 华硕电脑股份有限公司 可编程芯片软件防写保护的方法
CN103679020A (zh) * 2012-09-14 2014-03-26 纬创资通股份有限公司 病毒警报装置和病毒警报方法
CN107886005A (zh) * 2017-11-24 2018-04-06 广东虹勤通讯技术有限公司 一种系统管理中断的加密处理方法及系统

Also Published As

Publication number Publication date
CN1121012C (zh) 2003-09-10

Similar Documents

Publication Publication Date Title
US6591362B1 (en) System for protecting BIOS from virus by verified system management interrupt signal source
JP3539907B2 (ja) ブート可能プログラムを備えたコンピュータ
US5367682A (en) Data processing virus protection circuitry including a permanent memory for storing a redundant partition table
US7367062B2 (en) Method for BIOS security of computer system
KR100298620B1 (ko) 컴퓨터시스템의i/o어드레스공간으로매핑된레지스터에대한액세스제어시스템
US9563439B2 (en) Caching unified extensible firmware interface (UEFI) and/or other firmware instructions in a non-volatile memory of an information handling system (IHS)
US7827376B2 (en) System and method for protecting hidden protected area of HDD during operation
US9323933B2 (en) Apparatus and method for selecting and booting an operating system based on path information
CN105718277A (zh) 一种bios更新的保护方法、装置和系统
US6775734B2 (en) Memory access using system management interrupt and associated computer system
US6920566B2 (en) Secure system firmware by disabling read access to firmware ROM
KR101816866B1 (ko) 감시 대상 시스템의 기밀성 및 무결성 감시 장치 및 방법
JP2020520037A (ja) 孤立したユーザーコンピューティング部を有するコンピュータ
US7430683B2 (en) Method and apparatus for enabling run-time recovery of a failed platform
US20170262341A1 (en) Flash memory-hosted local and remote out-of-service platform manageability
CN1121012C (zh) 保护bios免于被病毒破坏的方法
US6907521B2 (en) Enabling video BIOS and display drivers to leverage system BIOS platform abstract
EP1357454A1 (en) Data processing system and method with protected BIOS
KR101013419B1 (ko) 시스템 보호 장치 및 방법
US20060136608A1 (en) System and method for control registers accessed via private operations
US20040098527A1 (en) Method and apparatus for an I/O controller to alert an external system management controller
TW461997B (en) Write protection method of programmable chipset software
JP2004234263A (ja) コンピュータ管理システム
JP4865213B2 (ja) 割込みコントローラ
JPH0816420A (ja) 小型情報処理装置のエラー処理方法

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20030910

Termination date: 20170303