CN101477600A - 一种基于固件的软件自动防护系统及安全卡 - Google Patents

一种基于固件的软件自动防护系统及安全卡 Download PDF

Info

Publication number
CN101477600A
CN101477600A CN 200910001025 CN200910001025A CN101477600A CN 101477600 A CN101477600 A CN 101477600A CN 200910001025 CN200910001025 CN 200910001025 CN 200910001025 A CN200910001025 A CN 200910001025A CN 101477600 A CN101477600 A CN 101477600A
Authority
CN
China
Prior art keywords
module
software
automatic
operating system
implant
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 200910001025
Other languages
English (en)
Other versions
CN101477600B (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.)
TECH SAFETY INST SECRETS COMMITTEE PLA
Original Assignee
TECH SAFETY INST SECRETS COMMITTEE PLA
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 TECH SAFETY INST SECRETS COMMITTEE PLA filed Critical TECH SAFETY INST SECRETS COMMITTEE PLA
Priority to CN 200910001025 priority Critical patent/CN101477600B/zh
Publication of CN101477600A publication Critical patent/CN101477600A/zh
Application granted granted Critical
Publication of CN101477600B publication Critical patent/CN101477600B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

一种基于固件的软件自动防护系统及安全卡,所述的系统中引导模块修改INT13中断向量,让该INT13中断指向植入模块;当INT13中断被触发时,植入模块开始运行,实模式植入部分在计算机内存中修改计算机操作系统的长跳转指令,让该长跳转指令指向保护模式植入部分,当计算机操作系统进入保护模式运行时,保护模式植入部分被执行,保护模式植入部分扫描计算机内存空间,查找并修改计算机操作系统驱动链表,将自动软件安装模块链入该驱动链表中;计算机操作系统执行所述的自动软件安装模块,自动软件安装模块将安全防护模块读出并运行,对计算机进行安全防护,本发明能够自动安装安全软件,保证安全软件不被非法的停止和卸载,并且能够适用不同的操作系统。

Description

一种基于固件的软件自动防护系统及安全卡
技术领域
本发明涉及一块安全卡及一种软件自动防护系统,实现对计算机的安全保护。
背景技术
目前,公知的计算机数据安全防护系统都是采用软件的方式实现的,该方式成本低,灵活,安装容易,但如果系统重装,也需要重新安装安全防护软件,使用上不方便,而且有的使用者会使用“格式化”或“镜像恢复”的办法来去掉防护软件,当检查时又用“镜像恢复”来很容易的恢复安全软件以应付检查;有些木马、病毒也会停掉保护进程。因而软件方案可靠性低。
目前市场上的硬件安全解决方案功能单一,不具备安装任意软件的功能,比如硬盘还原卡,只能对硬盘进行还原,硬盘加密卡只能对硬盘加密等。
论文《PCl扩展ROM机制的实现方法》(计算机工程与应用,2005年第41卷第10期)只讨论了PCI的expansionROM空间的使用,没有涉及如何将卡上的软件植入操作系统中的任何内容。
专利申请“一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法”(专利申请号:200710119810.9)提出了修改int13h中断,在内存中修改windows注册表,植入内核驱动的方法,该方法只能适用windows操作系统,不具备通用性,并且该申请中没有对安全软件自动安装的相关介绍,不能处理安全软件被非法停止和卸载的行为。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供一种基于固件的软件自动防护系统及利用该系统实现的安全卡,该安全卡能够自动安装安全软件,保证安全软件不被非法的停止和卸载,并且能够适用不同的操作系统。
本发明基于固件的软件自动防护系统的技术解决方案是:包括引导模块、植入模块、自动软件安装模块和安全防护模块,所述的植入模块包括实模式植入部分和保护模式植入部分:
引导模块修改INT13中断向量,让该INT13中断指向植入模块;
当INT13中断被触发时,植入模块开始运行,实模式植入部分在计算机内存中修改计算机操作系统的长跳转指令,让该长跳转指令指向保护模式植入部分,当计算机操作系统进入保护模式运行时,保护模式植入部分被执行,保护模式植入部分扫描计算机内存空间,查找并修改计算机操作系统驱动链表,将自动软件安装模块链入该驱动链表中;
计算机操作系统执行所述的自动软件安装模块,自动软件安装模块将安全防护模块读出并运行,由安全防护模块对计算机进行安全防护。
所述的引导模块的工作过程如下:
第一步,修改BIOS数据区,分配内存;
第二步,将自身代码及植入模块复制到所述的内存中;
第三步,修改INT13中断向量,让该INT13中断指向内存中的植入模块。
所述的植入模块中的实模式植入部分工作过程如下:
第一步,判断INT13中断是否由读操作触发,如果不是由读操作触发,则执行原始的INT13中断;否则,执行读操作,扫描读入的数据块,查找所述的数据块中是否存在长跳转指令,若不存在,则中断返回,否则,转下一步;
第二步,保存当前长跳转指令的跳转地址,修改该长跳转地址,让该长跳转地址为保护模式植入部分的入口地址。
所述的植入模块中的保护模式植入部分工作过程如下:
第一步,扫描计算机内存空间,查找计算机操作系统驱动链表,为自动软件安装模块分配内存;
第二步,读取自动软件安装模块数据到所述内存中;
第三步,将自动软件安装模块的驱动信息链入查找到的计算机操作系统驱动链表中。
所述的自动软件安装模块的工作过程如下:
第一步,读取安全防护模块数据,并将这些数据以可执行文件的形式放在计算机操作系统硬盘上;
第二步,修改计算机操作系统配置信息,使安全防护模块自动运行。
本发明安全卡的技术解决方案是:一种安全卡包括PCI桥接芯片、EEPROM芯片和Flash Memory芯片;PCI桥接芯片一侧与计算机PCI插槽连接,另一侧与EEPROM芯片和Flash Memory芯片连接;EEPROM芯片中存放所述安全卡的PCI配置数据,Flash Memory芯片中存放上述软件自动防护系统;当计算机加电时,BIOS读取EEPROM芯片中的配置数据,根据读取的数据内容,执行Flash Memory芯片中的软件自动防护系统,软件自动防护系统自动安装防护软件,对计算机进行安全防护。
本发明与现有技术相比有益效果为:
(1)本发明软件自动防护系统可以自动安装安全防护软件,使计算机系统具备安全防护功能,并且本发明是基于固件的思想,具备软件的灵活性和硬件的可靠性,使得安全软件不容易被卸载和停用。
(2)本发明软件自动防护系统采用内存驱动链表扫描方式进行软件植入,能够适应从windows2000到MSVista的各个版本以及标准发行的各个Linux版本操作系统。
(3)本发明软件自动防护系统允许修改系统配置信息(MSWindows采用的是注册表,Linux采用的一系列配置文件等),并且允许安全软件能够存在于硬盘上,为安全软件提供更灵活的设计手段,不会被卡作太多的硬件上的设计限制。
(4)本发明安全卡从硬件方面保证安全防护软件的可靠运行,提高了操作系统安全防护的可靠性。
附图说明
图1为本发明安全卡电路示意图;
图2为本发明引导模块流程图;
图3为本发明实模式植入部分流程图;
图4为本发明保护模式植入部分流程图;
图5为本发明自动软件安装模块流程图。
具体实施方式
下面结合实施例对本发明进一步说明,当然本发明并不仅仅局限于该实施例。
如图1所示,本发明安全卡包括PCI桥接芯片U1、EEPROM芯片U2和Flash Memory芯片U3;本实施例PCI桥接芯片U1采用RTL8139,RTL8139是一款网卡用芯片,在这里不使用它的网络功能,只使用它的PCI桥接功能,PCI桥接芯片一侧与计算机PCI插槽连接,另一侧与EEPROM芯片U2和FlashMemory芯片U3连接;U2采用9346EEPROM,其中存放所述安全卡的PCI配置数据,U3采用29C010芯片的Flash Memory,Flash Memory中存放软件自动防护系统;当计算机加电时,BIOS读取U2中的配置数据,根据读取的数据内容,执行U3中的软件自动防护系统,软件自动防护系统自动安装防护软件,对计算机进行安全防护。
本安全卡主要由29C010内的软件自动防护系统实现自动安装软件的功能。整个自动防护系统分四部分:(一)引导模块:当计算机加电后进行硬盘引导之前会执行该部分代码;(二)植入模块:将自动软件安装模块植入操作系统的驱动链表中,以期自动软件安装模块能够被操作系统执行;(三)自动软件安装模块:该程序实际上是个运行在ring0权限的驱动,它从安全卡上读出安全防护程序,并安装;(四)安全防护模块:就是防护计算机的程序,比如杀毒软件、文件加密软件等。详细实现过程为:
(一)引导模块:
首先,要向计算机系统挂接引导向量BEV(Bootstrap Entry Vector),通过设置U2打开PCI的扩展ROM空间,在U3的空间偏移0开始按照PnP BIOS规范实现以下数据:
扩展ROM头:
0x55         扩展ROM头标记字节1
0xAA         扩展ROM头标记字节2
0xXX         初始化代码长度
0xXXXXXXXX   初始化代码入口
引导模块作用是告诉BIOS本安全卡具备BEV,需要BIOS予以执行。实现逻辑是:先对寄存器AX的bit4、5(从bit0开始计)置0,然后对bit5置1,作一个长返回,这样BIOS就知道了本卡是一个IPL(Initial Program LoadDevice)设备,需要执行BEV。
为了执行BEV,需要填写以下的PnP扩展头:
0偏移      4字节  数值为$PnP(ASCIl码),PnP头标记
0x1A偏移   2字节  BEV入口地址。
上述引导前的配置数据为PnP BIOS规范,为本领域技术人员公知的技术,可以参见Compaq Computer Corporation,Phoenix Technologies Ltd.IntelCorporation,“BIOS Boot Specification”,Version 1.01,January 11,1996中的相关介绍。
然后,引导模块通过修改INT13中断向量(计算机系统用于监控硬盘读写操作),让该INT13中断指向植入模块;工作流程如图2所示:
(1)为了防止破坏堆栈,需要先关计算机系统中断,重新设置堆栈;
(2)修改BIOS数据区,从640KB基本物理内存中分配1KB内存;
(3)将自身代码及植入模块复制到上述的1KB内存中;
(4)修改INT13中断向量,让该INT13中断指向内存中的植入模块;
(5)开计算机系统中断,恢复原来的堆栈。
因为操作系统在引导开始阶段都会使用INT13中断来读取操作系统自己的引导代码,引导模块能够通过HOOK BIOS的INT13硬盘中断来实现植入目的。
(二)植入模块:
操作系统初期引导时使用INT13中断读取自己的引导分区,因而在此期间会触发HOOK的INT13中断服务代码,进行自动安装驱动的植入分两个部分:
实模式植入部分:在该阶段计算机的CPU处于16-bit的实模式,也就是INT13中断服务代码的运行模式,操作系统初期引导使用INT13读取自己的引导分区,实模式植入部分会扫描分析读入的每一个数据块,实现植入的关键是:在数据块中找到合适的位置,用安全卡自己的代码替代这些代码,这种替代将达到两种效果:一是这些引导代码执行时能跳转到安全卡的执行区域;二是这种替代不会影响原先代码的执行。图3给出了实模式植入阶段的流程图;
(1)判断INT13中断是否由读操作触发,如果不是由读操作触发,则执行原始的INT13中断;否则,执行读操作,扫描读入的数据块,查找所述的数据块中是否存在长跳转指令,若不存在,则中断返回,否则,转下一步;
(2)保存当前长跳转指令的跳转地址,修改该长跳转地址,让该长跳转地址为保护模式植入部分的入口地址。
保护模式植入部分:由于在实模式植入部分修改了操作系统初期引导的代码,到该部分代码被执行起来的时候就处于保护模式了,代码会跳转到保护模式植入部分代码的入口地址,为了不影响原先代码的执行,当保护模式植入部分结束时要跳到原先的跳转地址,同时要注意不要因为保护模式植入代码的执行破坏了操作系统初期引导的堆栈环境。图4给出了保护模式植入部分的处理流程图。图中,“出错,停止运行”是当前内存中找不到系统驱动链表时发生的,通过分析不同的操作系统可以得到各自的系统驱动链表标志。
(1)扫描计算机内存空间,查找计算机操作系统驱动链表,为自动软件安装模块分配内存;
(2)读取自动软件安装模块数据到所述内存中;
(3)将自动软件安装模块的驱动信息链入查找到的计算机操作系统驱动链表中。
(三)自动软件安装模块:
一旦自动软件安装模块被链入操作系统驱动链表,在操作系统执行链表中的驱动时被执行,在该阶段,由于操作系统已经引导完毕,自动软件安装模块可以利用操作系统的资源完成更复杂的操作,自动软件安装模块运行在ring0权限,它从安全卡上读出安全防护程序,通过修改操作系统的注册表等配置信息来实现安全防护模块的运行。自动软件安装模块的执行流程如图5所示。
(1)读取安全防护模块数据,并将这些数据以可执行文件的形式放在计算机操作系统硬盘上;
(2)修改计算机操作系统配置信息,当操作系统进入用户交互界面时,使安全防护模块自动运行。不同的操作系统的配置信息是不一样的,比如MSWindows采用的是注册表,Linux采用的一系列配置文件等。
综上,安全卡始终能在计算机和操作系统运行的各个阶段取得控制权,因此,只要安全卡不被拔取,安全防护模块就能被运行起来。
(四)安全防护模块:
安全防护模块是根据实际可以定制的功能软件,比如杀毒软件、文件加密软件等,它们被写入安全卡内,安全卡能自动的将它们安装运行,不会被非法的停止和卸载,体现了硬件级的安全性。
本发明在以下主板和电脑上作过成功测试:超微、微星、华硕、技嘉、intel、七彩虹、华磐、IBM系列电脑、联想系列电脑;
测试的操作系统为:windows2000系列,windows2003系列,windows XP系列,ms vista系列,redhat linux系列,Fedora linux系列,SUSE linux系列。
本发明未详细说明部分属本领域技术人员公知常识。

Claims (6)

1.一种基于固件的软件自动防护系统,其特征在于:包括引导模块、植入模块、自动软件安装模块和安全防护模块,所述的植入模块包括实模式植入部分和保护模式植入部分:
引导模块修改INT13中断向量,让该INT13中断指向植入模块;
当INT13中断被触发时,植入模块开始运行,实模式植入部分在计算机内存中修改计算机操作系统的长跳转指令,让该长跳转指令指向保护模式植入部分,当计算机操作系统进入保护模式运行时,保护模式植入部分被执行,保护模式植入部分扫描计算机内存空间,查找并修改计算机操作系统驱动链表,将自动软件安装模块链入该驱动链表中;
计算机操作系统执行所述的自动软件安装模块,自动软件安装模块将安全防护模块读出并运行,由安全防护模块对计算机进行安全防护。
2、根据权利要求1所述的一种基于固件的软件自动防护系统,其特征在于所述的引导模块的工作过程如下:
第一步,修改BIOS数据区,分配内存;
第二步,将自身代码及植入模块复制到所述的内存中;
第三步,修改INT13中断向量,让该INT13中断指向内存中的植入模块。
3、根据权利要求1所述的一种基于固件的软件自动防护系统,其特征在于所述的植入模块中的实模式植入部分工作过程如下:
第一步,判断INT13中断是否由读操作触发,如果不是由读操作触发,则执行原始的INT13中断;否则,执行读操作,扫描读入的数据块,查找所述的数据块中是否存在长跳转指令,若不存在,则中断返回,否则,转下一步;
第二步,保存当前长跳转指令的跳转地址,修改该长跳转地址,让该长跳转地址为保护模式植入部分的入口地址。
4、根据权利要求1所述的一种基于固件的软件自动防护系统,其特征在于所述的植入模块中的保护模式植入部分工作过程如下:
第一步,扫描计算机内存空间,查找计算机操作系统驱动链表,为自动软件安装模块分配内存;
第二步,读取自动软件安装模块数据到所述内存中;
第三步,将自动软件安装模块的驱动信息链入查找到的计算机操作系统驱动链表中。
5、根据权利要求1所述的一种基于固件的软件自动防护系统,其特征在于所述的自动软件安装模块的工作过程如下:
第一步,读取安全防护模块数据,并将这些数据以可执行文件的形式放在计算机操作系统硬盘上;
第二步,修改计算机操作系统配置信息,使安全防护模块自动运行。
6、一种安全卡,其特征在于:包括PCI桥接芯片、EEPROM芯片和FlashMemory芯片;PCI桥接芯片一侧与计算机PCI插槽连接,另一侧与EEPROM芯片和Flash Memory芯片连接;EEPROM芯片中存放所述安全卡的PCI配置数据,Flash Memory芯片中存放权利要求1所述的软件自动防护系统;当计算机加电时,BIOS读取EEPROM芯片中的配置数据,根据读取的数据内容,执行Flash Memory芯片中的软件自动防护系统,软件自动防护系统自动安装防护软件,对计算机进行安全防护。
CN 200910001025 2009-01-20 2009-01-20 一种用于软件自动防护系统的方法及安全卡 Expired - Fee Related CN101477600B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 200910001025 CN101477600B (zh) 2009-01-20 2009-01-20 一种用于软件自动防护系统的方法及安全卡

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 200910001025 CN101477600B (zh) 2009-01-20 2009-01-20 一种用于软件自动防护系统的方法及安全卡

Publications (2)

Publication Number Publication Date
CN101477600A true CN101477600A (zh) 2009-07-08
CN101477600B CN101477600B (zh) 2010-06-09

Family

ID=40838312

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 200910001025 Expired - Fee Related CN101477600B (zh) 2009-01-20 2009-01-20 一种用于软件自动防护系统的方法及安全卡

Country Status (1)

Country Link
CN (1) CN101477600B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930201A (zh) * 2012-09-29 2013-02-13 北京奇虎科技有限公司 对主引导记录恶意程序进行处理的方法及装置
CN103324887A (zh) * 2013-07-05 2013-09-25 百度在线网络技术(北京)有限公司 移动终端的安全防御装置、方法和移动终端
WO2014048367A1 (zh) * 2012-09-29 2014-04-03 北京奇虎科技有限公司 对主引导记录恶意程序进行处理的方法及装置
WO2015081791A1 (zh) * 2013-12-05 2015-06-11 北京奇虎科技有限公司 内核级恶意软件查杀的方法和装置
CN111125710A (zh) * 2019-11-29 2020-05-08 联想(北京)有限公司 一种信息处理方法、装置、电子设备和存储介质
CN112507397A (zh) * 2020-11-23 2021-03-16 中国人民解放军战略支援部队信息工程大学 基于信息加密的微处理器固件信息保护方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2550638A1 (fr) * 1983-08-11 1985-02-15 Christophe Leveque Dispositif de protection de logiciels utilises par un ordinateur connecte a au moins un terminal peripherique
CN1124377A (zh) * 1995-12-21 1996-06-12 沈阳工业高等专科学校工矿备件公司 微型计算机硬盘信息保护技术及装置
CN1281189A (zh) * 2000-08-23 2001-01-24 深圳市宏网实业有限公司 一种网络安全服务器及其智能防护方法
CN101236498B (zh) * 2007-07-31 2011-10-19 北京理工大学 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102930201A (zh) * 2012-09-29 2013-02-13 北京奇虎科技有限公司 对主引导记录恶意程序进行处理的方法及装置
WO2014048367A1 (zh) * 2012-09-29 2014-04-03 北京奇虎科技有限公司 对主引导记录恶意程序进行处理的方法及装置
CN102930201B (zh) * 2012-09-29 2015-09-09 北京奇虎科技有限公司 对主引导记录恶意程序进行处理的方法及装置
CN103324887A (zh) * 2013-07-05 2013-09-25 百度在线网络技术(北京)有限公司 移动终端的安全防御装置、方法和移动终端
CN103324887B (zh) * 2013-07-05 2016-12-28 百度在线网络技术(北京)有限公司 移动终端的安全防御装置、方法和移动终端
WO2015081791A1 (zh) * 2013-12-05 2015-06-11 北京奇虎科技有限公司 内核级恶意软件查杀的方法和装置
CN111125710A (zh) * 2019-11-29 2020-05-08 联想(北京)有限公司 一种信息处理方法、装置、电子设备和存储介质
CN111125710B (zh) * 2019-11-29 2022-06-28 联想(北京)有限公司 一种信息处理方法、装置、电子设备和存储介质
CN112507397A (zh) * 2020-11-23 2021-03-16 中国人民解放军战略支援部队信息工程大学 基于信息加密的微处理器固件信息保护方法

Also Published As

Publication number Publication date
CN101477600B (zh) 2010-06-09

Similar Documents

Publication Publication Date Title
US10216522B2 (en) Technologies for indirect branch target security
CN101477600B (zh) 一种用于软件自动防护系统的方法及安全卡
CN109643345B (zh) 用于确定性代码流完整性保护的技术
CN101201749B (zh) 能够存储代码和数据的方法和装置
US20180211046A1 (en) Analysis and control of code flow and data flow
Bojinov et al. Address space randomization for mobile devices
CN104011733B (zh) 在系统预引导期间具有改进的只读存储器锁定的安全数据保护
EP3779745A1 (en) Code pointer authentication for hardware flow control
US10162965B2 (en) Portable media system with virus blocker and method of operation thereof
US20160275019A1 (en) Method and apparatus for protecting dynamic libraries
CN106020865A (zh) 一种系统升级方法和装置
US8312202B1 (en) Kernel acceleration technology for virtual machine optimization
CN110574028B (zh) 用于防护软件代码的方法
CN104572168A (zh) 一种bios自更新保护系统及方法
US10817211B2 (en) Method for completing a secure erase operation
CN102473223A (zh) 信息处理装置以及信息处理方法
CN102422299A (zh) 信息设备、程序、防止执行不正当程序代码的方法、及计算机能够读取的记录介质
CN100507850C (zh) 一种借助USB设备启动在Windows操作系统中嵌入内核驱动程序的方法
CN102467626A (zh) 计算机系统数据保护装置及方法
US11269988B2 (en) Automated software application verification system
US20090300307A1 (en) Protection and security provisioning using on-the-fly virtualization
CN101236498B (zh) 一种借助PCI卡启动在Windows操作系统中嵌入内核驱动程序的方法
CN102855421A (zh) 防止bios程序被盗用的方法、基本输入输出系统及计算装置
CN107209815B (zh) 用于使用返回导向编程的代码混淆的方法
CN109614773B (zh) 代码自修改方法、装置及电子设备

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
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: 20100609

Termination date: 20130120