CN1311478A - 保护bios免于被病毒破坏的方法 - Google Patents
保护bios免于被病毒破坏的方法 Download PDFInfo
- 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
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
本发明涉及一种电脑固件(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处理程序破坏病毒写入一地址的一命令序列,使该写入命令失能;
回到操作系统;以及
检查该存储器存有该中毒标记,显示一警告信息。
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)
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 | 广东虹勤通讯技术有限公司 | 一种系统管理中断的加密处理方法及系统 |
-
2000
- 2000-03-03 CN CN 00103400 patent/CN1121012C/zh not_active Expired - Fee Related
Cited By (3)
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 |