CN102667794B - 用于保护操作系统免于非授权修改的方法和系统 - Google Patents
用于保护操作系统免于非授权修改的方法和系统 Download PDFInfo
- Publication number
- CN102667794B CN102667794B CN201080058484.5A CN201080058484A CN102667794B CN 102667794 B CN102667794 B CN 102667794B CN 201080058484 A CN201080058484 A CN 201080058484A CN 102667794 B CN102667794 B CN 102667794B
- Authority
- CN
- China
- Prior art keywords
- write
- operating system
- protect
- machine code
- instruction
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
实施例提供了一种用于保护操作系统(OS)免于非授权修改进的计算机化方法、计算机系统和计算机程序产品。计算机系统具有中央处理器(CPU)和工作存储器。OS的一部分被预定义为要被写保护。通过将OS加载到工作存储器中来启动计算机系统。加载预定义的OS部分通过达到具体OS命令来完成,该OS命令发起要由CPU执行的写保护机器代码指令以不可逆地将包含预定义OS部分的工作存储器部分切换到写保护模式。
Description
技术领域
本发明涉及一种用于保护操作系统免于非授权修改的计算机化方法、计算机系统和计算机程序产品。
背景技术
如今,许多计算机系统非常易于受到来自病毒、特洛伊木马、蠕虫、根级工具包(root kit)等的攻击。这些攻击会导致巨大的经济损失。它们不仅会降低系统的功能性能,而且会危害到例如银行系统中的关键任务数据和进程的安全性和完整性。
计算机病毒是一种能够自行复制并感染计算机的计算机程序。病毒和其它类型的恶意软件程序可以经由网络自动传播并且以执行属于病毒的代码序列的方式来操控数据或可执行代码。一些恶意软件程序具有可被计算机用户注意到的症状,但是许多则是隐秘的。
大多数计算机系统实施一些形式的保护系统,诸如病毒检查程序(checker)或防火墙。这样的病毒扫描程序搜索被认为标识病毒的某数据模式。这种方法的主要缺点在于,病毒扫描程序(scanner)要求已经由专家进行过分析的病毒的知识。病毒感染仅能够被检测到,但是却不能被预防。即使病毒扫描程序进行规律更新,系统仍然可能易于受到新病毒的攻击。此外,被搜索的字节序列可能在未感染数据中被错误地找出。从计算机系统去除病毒也是棘手且容易出现错误的。
不幸的是,恶意方和黑客所进行的攻击在击败已知保护系统方面变得越来越富有经验。病毒可以被编程为对其自身进行加密和/或经历一些变异。这二者改变了病毒的二进制签名并且可以使得其不被检测到。
恶意软件另外的示例是所谓的root kit,其利用操作系统中的弱点并且完全绕过大多数已知的保护系统。术语root kit原本是指被授予根(root)级访问的针对类似Unix操作系统的经恶意修改的管理工具集合。如果入侵者能够用root kit替代系统上的标准管理工具,则经修改的工具将允许入侵者在保护系统被启动之前获得有所提升的许可,同时对合法系统管理员隐瞒这些活动。基于内核的root kit被直接安装到操作系统的内核或驱动程序中,并且明显更加难以被例如防病毒或防间谍软件扫描所检测和预防。root kit还通过用接受秘密登录组合的可执行程序替代登录机制来在系统中安装“后门”,这进而在无论对系统上的实际账户进行何种改变的情况下都允许攻击者访问系统。
PCT专利申请WO2008/138653A1公开了一种预防计算机系统中所存储的任意种类的计算机程序和数据被操控的方法和数据处理系统。计算机系统包括存储装置以及用于将存储装置切换到写保护模式的装置。在引导期间或者应用程序的安装过程期间提出了以下步骤:(a)提示用户执行允许对可写保护的存储区域进行临时写入的切换,其中切换装置仅从操作系统之外可操作,(b)将安全相关信息存储到可写保护的存储区域中,(c)提示用户执行人工切换以限制对可写保护的存储区域的写入,(d)在计算机系统的其它运行时间期间响应于人工切换而限制对写保护存储区域的任何写入访问。
美国专利申请2007/0005919A1公开了一种计算机系统的虚拟保护系统(VPS),其中该VPS利用了虚拟机监视器(VMM)技术。用对计算机系统的特权访问引导第一操作系统。附加的操作系统对计算机系统的存储器的部分的访问被限制为只读访问。然而,经由第一操作系统模仿了对存储器的部分的非限制访问。
在现有技术的计算机系统中,操作系统控制来自多个用户的存储器访问操作和内核进程。这样的用户进程例如可以是电子邮件程序或文本处理程序。操作系统仅针对一个或多个具体的用户进程允许对具体存储器部分的写入访问,并且保护该具体存储器部分而使其免于来自其它用户进程的写入访问尝试。操作系统还禁止用户进程对已经被指派给操作系统内核进程的存储器部分进行写入访问。然而,这种访问控制可能无法保护操作系统免于黑客攻击。
基于软件的方法在长时间内是现有技术中已知的,并且其主要缺点在于一旦黑客获得要被保护的计算机系统的管理员特权则它们能够被绕过。因此,期望保护计算机系统使其免于日益富有经验的攻击并且避免已知保护系统的缺陷。
发明内容
因此,本发明的实施例的目的是提供一种用于保护存储器免于非授权修改的计算机化方法和计算机系统。
根据本发明的第一方面,提供了一种用于在具有中央处理器(CPU)和工作存储器的计算机系统中保护操作系统(OS)免于非授权修改的计算机化方法。该方法包括以下步骤:将OS的一部分预定义为要被写保护。通过将OS加载到工作存储器中而启动计算机系统。通过达到具体OS命令来完成加载预定义OS部分,该具体OS命令发起要由CPU执行的写保护机器代码指令以不可逆地将包含预定义OS部分的工作存储器部分切换到写保护模式。
在根据本发明的备选中,禁止发起将包含预定义OS部分的工作存储器部分切换回允许写入模式的OS命令。写保护机器代码指令由CPU提供。写保护机器代码指令可以通过访问具体的存储器地址来触发。写保护机器代码指令与存储关键字相关联,该存储关键字通过向CPU指示写保护模式来控制对包含预定义OS部分的工作存储器部分的访问权限。存储关键字可以被概括为所存储的描述对存储器部分的访问权限的信息。
在根据本发明的另外的备选中,计时器组件在过去预定义时间间隔之后发起写保护机器代码指令。更优选地,对预定义时间间隔的测量基于实时时钟。备选地,对预定义时间间隔的测量是基于由OS所执行的计数指令。再更优选地,指令由虚拟环境的虚拟处理单元执行。更优选地,对预定义时间间隔的测量基于虚拟环境的虚拟处理单元的计数周期。
在根据本发明的另一备选中,允许写入机器代码指令由OS之外的重置进程发起,该重置进程要由CPU执行以将包含预定义OS部分的存储器部分切换到允许写入模式。更优选地,重置进程由OS之外的管理程序提供,并且该管理程序向OS提供虚拟环境。
根据本发明的第二方面,提供了一种中央处理器(CPU),其包括用于执行写保护机器代码指令以不可逆地将包含操作系统(OS)的预定义部分的工作存储器的部分切换到写保护模式的适配装置。通过将OS加载到工作存储器中而启动计算机系统,并且通过达到发起要由CPU执行的写保护机器代码指令的具体OS命令来完成加载预定义OS部分。
根据本发明的第三方面,提供了一种计算机系统,其包括要被保护免于非授权修改的操作系统(OS)、中央处理器(CPU)和工作存储器。OS的一部分被预定义为要被写保护。该计算机系统的适配装置通过将OS加载到工作存储器中而启动计算机系统,并且通过达到具体OS命令来完成加载预定义OS部分,该具体OS命令发起要由CPU执行的写保护机器代码指令以不可逆地将包含预定义OS部分的工作存储器部分切换到写保护模式。
根据本发明的第四方面,提供了一种用于保护操作系统(OS)免于非授权修改的计算机程序产品。该计算机程序产品包括具有实现于其中的计算机可用程序代码的计算机可用介质。该计算机可用程序代码被配置为执行第一方面的步骤。
附加的特征和优势通过本发明的技术而得以实现。本发明的其它实施例和方面在这里进行更为详细地描述并且被认为是本发明的一部分。参考描述和附图以便更好地理解具有优势和特征的本发明。
附图说明
在总结本说明书的权利要求中,被认为是本发明的主题被特别地指出并明确地要求保护。本发明的以上以及其它目的、特征和优点通过以下结合附图所进行的详细描述是显而易见的,其中:
图1图示了根据本发明的实施例的用于保护操作系统的方法的流程图。
图2-图5图示了根据本发明的实施例的计算机系统的不同阶段的框图。
图6图示了根据现有技术的计算机系统的详细框图。
图7图示了根据本发明的实施例的计算机系统的详细框图。
具体实施方式
在优选实施例中,已经通过扩展现有技术的计算机系统的软件和硬件能力实现了针对存储器内容的不希望出现的操控的保护。操作系统可以标识出通常被病毒或黑客攻击所改变的关键安全信息,并且将该信息加载到存储器中能够从允许写入模式切换为写保护模式的具体部分中。在加载过程期间,存储器部分处于允许写入的模式,也就是说,计算机系统的处理器的机器代码指令能够改变特定存储器位置的内容。加载可以作为操作系统的引导过程、操作系统组件的安装或者操作系统的初始化的一部分。加载并不必被限制到操作系统的内核组件,而是可以被应用于关键任务应用的安全相关组件。要以这种方式进行保护的信息可以包括例如Windows或Linux操作系统核心的一些可执行代码,以及例如Linux系统调用表的关键安全数据结构。在加载完成之后,具体存储器部分被切换到写保护模式,并且操作系统内核和应用继续正常的系统操作。在正常的系统操作期间需要被改变的数据结构(例如用于管理Linux中的用户空间进程的数据结构)被存储在并非可写保护的正常的存储器中。在正常的系统操作期间,存储在写保护的存储器区域中的程序代码和关键安全数据可以像存储在正常的随机存取存储器(RAM)中那样被读取。然而,写入对于应用、操作系统内核以及对于任何进程都是禁止的,直至写保护被再次禁用。以下描述对应的机制。写保护预防了攻击者对安全相关信息特别是操作系统的部分进行修改。当攻击者试图向这样的写保护存储器区域进行写入时,会产生警报以指示检测到攻击尝试。
优选实施例公开了写保护管理的实现方式,其基于用于在写保护模式和允许写入模式之间进行转换的触发器以及这些触发器的实现方式集合。
将可写保护的存储器区域切换到允许写入模式的触发器可以是以下三种类型之一:
首先,硬件上电或硬件重置操作通常通过人工开动机械开关或按钮来触发。备选地,可以想象由外部硬件组件所控制的电子开关。在这些上电或重置操作之后,可写保护的存储器的初始模式应当为允许写入。在正常的系统操作期间,开关可以对存储器的所有部分或仅具体的可写保护的部分起作用。
其次,触发器可以是针对存储器的允许写入的具体部分的软件命令。该软件命令必须以其无法从所要保护的操作系统之内发出的方式而得到特权。在虚拟环境中,虚拟机(VM)运行例如Linux的访客操作系统。提供虚拟环境或主机操作系统的管理程序处于访客操作系统之外。管理程序可以被适配为发出软件命令以用于将这些具体存储器部分切换到允许写入模式。其本质在于必须不允许具有所要保护的操作系统的管理员权限的特权用户执行该软件命令。
第三,在虚拟环境中,所要保护的子系统的启动或重置可以以与硬件上电或重置相同的方式将可写保护的存储器区切换到允许写入模式。子系统可以是访客操作系统或具体进程环境。
三种类型的触发器可以如下将可写保护的存储器区域切换到写保护模式:
首先,可以提示用户经由机械或电子开关或者通过选择GUI元件或录入软件命令而经由图形用户界面来激活写保护模式。
其次,可以通过由所要保护的操作系统所发出的软件命令来激活写保护模式。该软件命令优选地在所要保护的信息被写入可写保护的存储器区域之后立即执行。该软件命令可以在引导或安装过程的具体较早阶段完成时被发出。这些具体较早阶段通常涉及操作系统的具体组件。在动态配置信息被确定并写入可写保护的存储器区域时,这些阶段还可以包括组件的初始化步骤。在引导过程的较晚阶段允许对用户应用进程进行访问之前对该信息进行写保护是有利的。该软件命令可以指定存储器的哪些部分应当被切换到写保护模式。该软件命令可以为以下之一:(a)处理器硬件所提供的用来执行切换的具体机器代码指令;(b)使得处理器保存其执行状态并且开始执行包括用于改变写保护模式的代码部分的中断处理程序的具体硬件中断;(c)当程序代码指令试图访问预定义存储器地址或预定义地址范围之外的存储器地址时,这可以在写入访问生效之前触发访问尝试的存储器地址到写保护模式的切换。
当从允许写入模式到写保护模式的转换可被来自所要保护的操作系统内的软件命令所触发时,模式改变必须具有“陷门语义(trapdoor semantics)”。这意味着切换对于所要保护的操作系统而言是不可逆的。从操作系统内必须不可能从写保护模式变回允许写入模式。
第三,到写保护模式的切换可以在已经过去预定义延迟时间之后由计时器组件所发出的信号或软件命令来触发。优选地,计时器组件处于所要保护的操作系统之外。其可以以硬件、固件或者以虚拟环境的管理程序来实现。计时器可以被实现为被初始化为预定义正值的计数器。以下事件减小计数器数值:挂钟的计时器滴答、硬件处理器的机器周期以及由硬件处理器所执行的写指令。在虚拟环境的情况下,对应的减小事件是虚拟机的机器周期或指令计数。所要保护的存储器部分在计数器值为正时保持为允许写入模式,并且一旦计数器数值达到零时就进入写保护模式。
由软件命令或计时器信号自动激活写保护模式相比人工激活的优势在于其不会被负责管理的用户所忘记。
优选地,软件命令与计时器信号相结合。当程序员忘记了软件命令或程序故障或者黑客攻击已经预防了其发出时,存储器仍然将在过去了预定义延迟时间之后响应于计时器信号而被写保护。
对可写保护的存储器进行组织具有两种变化形式。可以针对两种变化形式实现优选实施例:
在第一种变化形式中,存储器的地址空间被划分为两个部分:能够被写保护的第一部分以及非可写保护的第二部分。根据特定架构,利用基于每个存储器芯片或每个存储器组的保护的简单方法,这是可行的。第一种变化形式易于以低成本实现并且具有低的被黑客攻击所误用的风险。不利的是,操作系统软件必须被适配为支持这种存储器架构。这涉及经适配的操作系统设计、编程语言扩展、编译程序扩展,以及加载程序/链接程序扩展。
在第二种变化形式中,用户所定义的保护方案包括存储器地址空间的彼此独立的多个区。这些区不必是连续的。程序员或系统操作人员自由指定哪些地址范围要被保护。所指定的被保护存储器区域的列表必须在安全的存储器位置进行存储和维护,这可能是难以实现的。有利的是,第二种变化形式提供了高度的灵活性并且即使在操作系统软件并非被设计为支持优选实施例的存储器保护机制的情况下也可以与所有操作系统软件相结合。其缺点在于高硬件成本、用于确定那些要求保护的存储器范围的高度劳动,以及来自那些存储器范围的被程序代码或系统操作人员动作错误指定的高出错风险。
本发明的实施例保证了预防向写保护存储器区域中存储信息的任何尝试。然而,这样的尝试指示操作系统软件具有程序代码错误或者操作系统被攻击。出于审计和安全的目的,这样的非授权访问尝试可以触发以下安全相关动作中的至少一个:第一个动作可以是例如通过灯的闪烁而经由硬件组件的向系统操作人员的访问尝试警报。第二个动作可以是经由操作系统或其它软件组件的通知。可以在例如Linux syslog的系统日志中记录条目或者向系统操作人员发送电子邮件。第三个动作包括终止或挂起引起访问违例的操作系统进程。操作系统进程可能是内核或应用进程。这些第三个动作可以被扩展到用做出非法写操作的用户账号的许可所启动的所有操作系统进程。
根据优选实施例,图1图示了用于保护操作系统(OS)免于非授权修改的方法的流程图。计算机系统具有中央处理器(CPU)和工作存储器。在框101中,OS的一部分被预定义为被写保护。在框102中,通过将OS加载到工作存储器中启动计算机系统。在框103中,通过达到具体的OS命令来完成加载预定义OS部分,该OS命令发起要由CPU执行以将包含预定义OS部分的工作存储器部分不可逆地切换到写保护模式的写保护机器代码指令。
图2至图5图示了计算机系统200、300、400和500的不同阶段的框图。计算机系统具有中央处理器(CPU)201、301、401和501,工作存储器202、302、402和502,以及用于提供操作系统(OS)的存储装置203、303、403和503。
在图2中,OS 221的部分222被预定义为要被写保护。该部分222具有比OS的其它部分223、224更暗的阴影。程序代码部分211被存储在计算机系统200中。根据这些程序代码部分,CPU 201通过将OS加载到工作存储器202中来启动计算机系统。加载的开始以框箭头241为标志。在将操作系统数据加载到存储器区域231中的同时,该存储器区域处于允许写入模式。该模式由浅阴影所指示。
在图3中,CPU 301通过达到具体的OS命令312来完成加载预定义OS部分322,该OS命令312在步骤361中发起要被CPU执行以在步骤326中将包含预定义OS部分的工作存储器部分332不可逆地切换到写保护模式的写保护机器代码指令351。加载该预定义OS部分的完成由处于框箭头341顶端的条所表示。OS的预定义部分332具有比允许写入的其它OS部分333、334更深的阴影。
在图4中,计时器组件404在步骤463中发起写保护机器代码指令451,其要在过去了预定义时间间隔之后由CPU 401在步骤464中执行。该时间测量优选地在开始将OS 421或预定义OS部分422加载到工作存储器402中时在步骤462中开始。加载OS的开始由框箭头441所指示。计时器组件404优选地处于OS 431之外。
在图5中,CPU 501通过发起允许写入机器代码指令552以在步骤561中将包含预定义OS部分522的存储器部分532切换到允许写入模式来执行OS 531之外的重置进程的程序代码部分513。在允许写入模式中,OS 531的该存储器部分532和其它存储器部分533、534具有相同的浅阴影。
图6图示了根据现有技术的计算机系统600的详细框图。中央处理器硬件的核心是例如总线系统的内部通信装置601,其对存储器控制单元602、算术逻辑单元(ALU)603、浮点单元(FPU)604和其它处理器组件605、寄存器606、指令解码器607、指令指针组件608和重置组件609进行互连。指令解码器和指令指针组件提供处理器硬件和操作系统软件之间的接口,也就是所要处理的机器代码指令。机器代码指令的序列611可以包括“存储访问权限”指令612和613。现有技术的指令解码器可以处理该“存储访问权限”指令的一个操作代码。第一参数指定了二进制标志,例如“0”为“允许写入”而“1”为“写保护”。存储访问权限指令的另外的参数可以指定至少一个存储器地址。取决于存储器架构,该地址可以是指一个单独存储器页面或存储器页帧。存储器页面是相同大小的存储块,例如4k字节、8k字节、16k字节等。可以使用第二存储器地址或页面计数来指定多个页面的较大存储器范围。寄存器606提供用于少量数据的存储,其内容例如可以比随机存取存储器中所存储的数据更快地被访问。算术逻辑单元603和浮点单元604是执行算术和逻辑运算以及浮点运算的数字电路。存储器控制单元602是总线系统601和随机存取存储器(RAM)614或者简称为存储器之间的硬件接口,其独立于存储位置而提供针对数据的快速存储访问。存储器被用于数据的持久或暂时存储。存储器控制单元602包括用来临时存储数据以供频繁访问来避免来自存储器访问操作的延迟时间的高速缓存615。访问校验组件616存储指定具有例如写保护的受限访问的存储器区的存储器访问信息。访问权限被编码为存储在与存储器614的存储位置相关联的表格条目中的数字。这些表格被存储在访问校验组件。当机器代码指令试图对存储器位置进行写入时,该数字可以被用来验证机器代码指令所属的进程是否具有修改该存储器位置的适当的访问权限。存储器控制器617独立于ALU、FPU和其它处理器组件来对要存储在存储器或从存储器获取的数据进行处理。响应于重置信号,重置组件可以将处理器的存储组件的内容重置为初始状态。这可以包括从存储器、高速缓存和寄存器去除所存储的信息,并且将指令指针设置到所要处理的第一机器代码指令的初始地址。优选地,存储器访问信息也被重置以允许对存储器的大多数或所有部分的最大访问权限。重置组件可以由例如重置按钮的机电开关618或者通过硬件上电来启动。
现有技术的关键问题在于相同“存储访问权限”的机器代码指令被用于存储器部分的允许写入和禁止写入。因此,两个动作具有相同的特权级别。然而,将存储器部分切换到允许写入模式比切换到写保护模式是更具安全敏感性的。如以下所说明的,实施例通过提供用于允许写入和禁止写入的两种不同机器代码指令而解决了该问题。就以下意义而言,其无法从所要保护的操作系统内而是仅能够从操作系统之外被发起,例如其仅能够从固件组件或者从向操作系统提供虚拟环境的管理程序来发起,允许写入机器代码指令需要具有特权。
图7图示了根据优选实施例的计算机系统700的详细框图。内部通信总线系统701、ALU 703、FPU 704、其它处理器组件705、指令指针组件708和寄存器706大体与现有技术类似地进行工作。该实施例与现有技术的不同之处在于,存储器614被划分为可保护存储器718和标准存储器714。存储器控制单元702的访问校验组件716如图6中所描绘的被用来维护对标准存储器714的部分的访问权限。可保护存储器718的访问权限由存储器控制单元的附加陷门(trapdoor)组件719进行控制。存储器控制器717对从标准存储器714和可保护存储器718二者所获取并且在标准存储器714进行存储的数据进行处理。在被切换到写保护模式之前,数据仅允许被存储在可保护存储器718。存储器控制器717独立于ALU、FPU和其它处理单元进行操作。该实施例的指令解码器707被适配为处理写保护机器代码指令720以将可保护存储器718的一部分切换到写保护模式。写保护机器代码指令的一个或多个参数可以指定可保护存储器的一个或多个存储器页面的至少一个存储器地址。独立于操作系统软件,超级特权解码器722可以处理由固件组件或管理程序721所提供的单独机器代码指令723。超级权限解码器被适配为处理允许写入机器代码指令724以将可保护存储器718的一部分切换到允许写入模式。优选地,指令解码器707并不被适配为处理该允许写入机器代码指令。允许写入机器代码指令的一个或多个参数可以指定可保护存储器的一个或多个存储器页面的至少一个存储器地址。经解码的允许写入机器代码指令从超级特权解码器经由陷门重置组件725输送至存储器控制单元702的陷门组件719。随后,陷门组件将可保护存储器的所指定部分切换到允许写入模式。陷门重置组件725优选地从内部总线系统701解耦合。重置组件709将硬件上电或硬件重置信号不仅切换到总线系统701而且还切换到陷门重置组件725。该组件处理重置信号以将可保护存储器的大多数或所有部分切换到允许写入模式。写保护机器代码指令720和允许写入机器代码指令724具有不同的特权级别。操作系统的机器代码指令711仅能够发起写保护机器代码指令,而不能发起允许写入机器代码指令。如以上所描述的,用于操作系统的指令解码器可能无法对允许写入机器代码指令进行解码。
在备选实施例中,操作系统机器代码指令的编译程序可以仅支持生成写保护机器代码指令,而抑制允许写入机器代码指令的生成。
在IBM的和其它操作系统下,利用多个存储关键字或存储保护关键字对中央存储设备中的信息进行保护而免于非授权使用。存储设备中被称作存储关键字的控制字段与中央存储设备的每个4k字节帧相关联。具体的关键字被分配给系统中所执行的每项工作。当进行请求以修改中央存储位置的内容时,就将与该请求相关联的具体关键字与存储关键字进行比较。如果关键字匹配或者程序利用主关键字0执行,则请求得到满足。如果与请求相关联的关键字与存储关键字不匹配,则系统拒绝该请求并且发出程序异常中断。例如,在z/OS中,具体关键字存储在分配给每个作业的程序状态字(PSW)的4个比特中,并且允许隔离多达16个组件。存储关键字可以使用“存储访问权限”指令进行更新,例如,z/OS中的SET_STORAGE_KEY_EXTENDED(SSKE)指令。然而,存储关键字并没有提供针对操作系统内侧所运行的恶意代码的保护。
在根据本发明的实施例中,可以向存储关键字的位增加WRITE_PROTECTED位。当WRITE_PROTECTED位的值为“1”时,对应的帧处于写保护模式中,否则该帧就处于允许写入模式中。在SSKE指令不被允许切换WRITE_PROTECTED位时,处理器提供WRITE_PROTECT指令和WRITE_ENABLE指令以改变WRITE_PROTECTED位的值。WRITE_PROTECT指令设置一个或多个帧的WRITE_PROTECTED位的值“1”以保护对应的存储器部分中所存储的数据免于修改。WRITE_ENABLE指令设置WRITE_PROTECTED位的数值“0”以使得能够对存储在一个或多个帧中的数据进行写入操作。
在备选实施例中,SSKE指令可以仅将WRITE_PROTECTED位设置为值“1”,但是并不将其复位为值“0”。仅允许附加的WRITE_ENABLE指令将WRITE_PROTECTED位复位为值“0”。WRITE_PROTECTED位也可以具有值“0”以表示写保护状态。
在另外的备选实施例中,处理器提供了涉及一个或多个存储器帧的FINALIZE_STORAGE_KEY指令。该FINALIZE_STORAGE_KEY指令不允许任何未来的SSKE指令改变由之前的SSKE指令所设置的存储关键字值。FINALIZE_STORAGE_KEY指令可以为对应的存储器帧设置具体的KEY_FINALIZED标志。仅允许附加的INITIALIZE_STORAGE_KEY指令来重置具体KEY_FINALIZED标志以指示允许使用SSKE指令的存储关键字的改变。INITIALIZE_STORAGE_KEY指令甚至可以被适配为将完整的存储关键字的内容重置为初始值。
该实施例的硬件和软件设计并不支持操作系统的程序代码部分和接口执行WRITE_ENABLE指令和INITIALIZE_STORAGE_KEY指令。仅仅支持外部的超级特权解码器或管理程序组件来支持这些WRITE_ENABLE或INITIALIZE_STORAGE_KEY指令。
这里所使用的术语仅是为了描述特定实施例而并非意在对本发明进行限制。如这里所使用的,除非上下文另外清楚地指出,否则单数形式“一个”、“一”和“该”意在也包含复数形式。另外将要理解的是,当在该说明书中使用术语“包括”和/或“包含”时,其指定存在所提到的特征、整体、步骤、操作、元素和/或组件,但是并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元素、组件和/或其组合。
以上参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图图示和/或框图对本发明的多个方面进行了描述。将要理解的是,流程图图示和/或框图中的每个方框以及流程图图示和/或框图中方框的组合可以通过计算机程序指令来实施。这些计算机程序指令可以被提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器来产生机器,以使得经由计算机或其它可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个方框中所指定的功能/动作的装置。
这些计算机程序指令也可以被存储在计算机可读介质中,其能够指导计算机、其它可编程数据处理装置或其它设备以特定方式进行工作,以使得存储在计算机可读介质中的指令产生包括实施流程图和/或框图中的一个或多个方框中所指定的功能/动作的指令的制品。
计算机程序指令还可以被加载到计算机、其它可编程数据处理装置或其它设备上以使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤以产生计算机实施的处理,以使得在计算机或其它可编程装置上执行的指令提供用于实施流程图和/或框图中的一个或多个方框中所指定的功能/动作的处理。
附图中的流程图和框图图示了根据本发明各个实施例的系统、方法和计算机程序产品的可能实施方式的架构、功能和操作。就此,流程图或框图中的每个方框可以表示代码的部分、模块或分段,其包括一个或多个用于实施(多个)指定逻辑功能的可执行指令。应当注意的是,在一些备选实施例中,方框中所提到的功能可以按照不同于图中所提到的顺序发生。例如,根据所涉及的功能,连续示出的两个方框实际上可以大体同时执行,或者方框有时可以以相反的顺序来执行。还将注意到的是,框图和/或流程图图示中的每个方框以及框图和/或流程图图示中方框的组合可以通过执行特定的功能或动作的专用的基于硬件的系统或者专用的硬件和计算机指令的组合来实现。
虽然以上已经参考了本发明的特定实施例,但是本领域技术人员将会意识到的是,可以对这些实施例进行改变而并不背离本发明的原理和精神,本发明的范围由所附权利要求来限定。
Claims (14)
1.一种用于在具有中央处理器和工作存储器的计算机系统中保护操作系统免于非授权修改的计算机化方法,所述方法包括以下步骤:
将所述操作系统的一部分预定义为要被写保护;
通过将所述操作系统加载到所述工作存储器中而启动所述计算机系统;
通过达到具体操作系统命令来完成加载所述预定义操作系统部分,所述具体操作系统命令发起要由所述中央处理器执行的写保护机器代码指令以不可逆地将包含所述预定义操作系统部分的工作存储器部分切换到写保护模式。
2.根据权利要求1的方法,其中禁止发起将包含所述预定义操作系统部分的所述工作存储器部分切换回允许写入模式的操作系统命令。
3.根据权利要求1的方法,其中所述写保护机器代码指令由所述中央处理器提供。
4.根据权利要求1的方法,其中所述写保护机器代码指令通过访问具体的存储器地址来触发。
5.根据权利要求1的方法,其中所述写保护机器代码指令与存储关键字相关联,所述存储关键字通过向所述中央处理器指示所述写保护模式来控制对包含所述预定义操作系统部分的所述工作存储器部分的访问权限。
6.根据权利要求1的方法,其中计时器组件在过去预定义时间间隔之后发起所述写保护机器代码指令。
7.根据权利要求6的方法,其中对所述预定义时间间隔的测量基于实时时钟。
8.根据权利要求6的方法,其中对所述预定义时间间隔的测量基于所述操作系统所执行的计数指令。
9.根据权利要求8的方法,其中所述指令由虚拟环境的虚拟处理单元执行。
10.根据权利要求6的方法,其中对所述预定义时间间隔的测量基于虚拟环境的虚拟处理单元的计数周期。
11.根据权利要求1的方法,其中允许写入机器代码指令由所述操作系统之外的重置进程发起,所述重置进程由所述中央处理器执行以将包含所述预定义操作系统部分的所述存储器部分切换到允许写入模式。
12.根据权利要求11的方法,其中所述重置进程由所述操作系统之外的管理程序所提供,并且所述管理程序向所述操作系统提供虚拟环境。
13.一种中央处理器,其包括用于执行写保护机器代码指令以不可逆地将包含操作系统的预定义部分的工作存储器的部分切换到写保护模式的适配装置,其中通过将所述操作系统加载到所述工作存储器中而启动计算机系统,并且通过达到发起要执行的所述写保护机器代码指令的具体操作系统命令来完成加载所述预定义操作系统部分。
14.一种计算机系统,其包括用于将操作系统的一部分预定义为要被写保护而免于非授权修改的所述操作系统、中央处理器和工作存储器,以及所述计算机系统的适配装置,所述适配装置用于通过将所述操作系统加载到所述工作存储器中而启动所述计算机系统,并且用于通过达到具体操作系统命令来完成加载所述预定义操作系统部分,所述具体操作系统命令发起要由所述中央处理器执行的写保护机器代码指令以不可逆地将包含所述预定义操作系统部分的所述工作存储器部分切换到写保护模式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09180535 | 2009-12-23 | ||
EP09180535.8 | 2009-12-23 | ||
PCT/EP2010/066049 WO2011076464A1 (en) | 2009-12-23 | 2010-10-25 | Method and system for protecting an operating system against unauthorized modification |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102667794A CN102667794A (zh) | 2012-09-12 |
CN102667794B true CN102667794B (zh) | 2015-08-19 |
Family
ID=43302348
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201080058484.5A Expired - Fee Related CN102667794B (zh) | 2009-12-23 | 2010-10-25 | 用于保护操作系统免于非授权修改的方法和系统 |
Country Status (4)
Country | Link |
---|---|
JP (1) | JP5607752B2 (zh) |
CN (1) | CN102667794B (zh) |
TW (1) | TW201137660A (zh) |
WO (1) | WO2011076464A1 (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8694738B2 (en) * | 2011-10-11 | 2014-04-08 | Mcafee, Inc. | System and method for critical address space protection in a hypervisor environment |
US8973144B2 (en) | 2011-10-13 | 2015-03-03 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
US9069586B2 (en) | 2011-10-13 | 2015-06-30 | Mcafee, Inc. | System and method for kernel rootkit protection in a hypervisor environment |
TWI619038B (zh) * | 2011-11-07 | 2018-03-21 | Admedec Co Ltd | Safety box |
US8800052B2 (en) | 2012-06-29 | 2014-08-05 | Intel Corporation | Timer for hardware protection of virtual machine monitor runtime integrity watcher |
CN103632088A (zh) * | 2012-08-28 | 2014-03-12 | 阿里巴巴集团控股有限公司 | 一种木马检测方法及装置 |
DE102013209264A1 (de) * | 2013-05-17 | 2014-11-20 | Robert Bosch Gmbh | Verfahren zum Betreiben eines Kommunikationsmoduls und Kommunikationsmodul |
GB2515736A (en) | 2013-07-01 | 2015-01-07 | Ibm | Controlling access to one or more datasets of an operating system in use |
JP6129702B2 (ja) * | 2013-09-24 | 2017-05-17 | 株式会社東芝 | 情報処理装置、情報処理システム、プログラム |
US20160313938A1 (en) * | 2015-04-24 | 2016-10-27 | Qualcomm Incorporated | Fine grained memory protection to thwart memory overrun attacks |
GB2540961B (en) * | 2015-07-31 | 2019-09-18 | Arm Ip Ltd | Controlling configuration data storage |
US9984231B2 (en) * | 2015-11-11 | 2018-05-29 | Qualcomm Incorporated | Detecting program evasion of virtual machines or emulators |
US10810304B2 (en) * | 2018-04-16 | 2020-10-20 | International Business Machines Corporation | Injecting trap code in an execution path of a process executing a program to generate a trap address range to detect potential malicious code |
US11003777B2 (en) | 2018-04-16 | 2021-05-11 | International Business Machines Corporation | Determining a frequency at which to execute trap code in an execution path of a process executing a program to generate a trap address range to detect potential malicious code |
WO2020057728A1 (en) * | 2018-09-18 | 2020-03-26 | Huawei Technologies Co., Ltd. | Apparatus and method for memory protection |
US10838631B2 (en) * | 2019-02-25 | 2020-11-17 | International Business Machines Corporation | Detection of alteration of storage keys used to protect memory |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2507430B2 (ja) * | 1987-05-29 | 1996-06-12 | 富士通株式会社 | 主記憶保護方式 |
WO2000050974A2 (en) * | 1999-02-26 | 2000-08-31 | Reveo, Inc. | Globally time-synchronized systems, devices and methods |
US8856473B2 (en) * | 2005-07-01 | 2014-10-07 | Red Hat, Inc. | Computer system protection based on virtualization |
JP2007036907A (ja) * | 2005-07-29 | 2007-02-08 | Calsonic Kansei Corp | ゲートウェイ装置 |
CN101305386B (zh) * | 2005-11-07 | 2012-08-08 | 松下电器产业株式会社 | 可携带辅助存储装置 |
JP5079084B2 (ja) * | 2007-05-09 | 2012-11-21 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンピュータ・システムの操作を防止するための方法及びデータ処理システム |
JP5260081B2 (ja) * | 2008-02-25 | 2013-08-14 | パナソニック株式会社 | 情報処理装置及びその制御方法 |
CN101286142B (zh) * | 2008-05-19 | 2010-12-08 | 成都市华为赛门铁克科技有限公司 | 一种磁盘操作的保护方法及磁盘控制器 |
-
2010
- 2010-09-30 TW TW99133401A patent/TW201137660A/zh unknown
- 2010-10-25 JP JP2012545174A patent/JP5607752B2/ja not_active Expired - Fee Related
- 2010-10-25 CN CN201080058484.5A patent/CN102667794B/zh not_active Expired - Fee Related
- 2010-10-25 WO PCT/EP2010/066049 patent/WO2011076464A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2011076464A1 (en) | 2011-06-30 |
TW201137660A (en) | 2011-11-01 |
JP2013515989A (ja) | 2013-05-09 |
CN102667794A (zh) | 2012-09-12 |
JP5607752B2 (ja) | 2014-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102667794B (zh) | 用于保护操作系统免于非授权修改的方法和系统 | |
RU2703156C2 (ru) | Системы и способы обеспечения компьютерной безопасности, использующие исключения асинхронной интроспекции | |
AU2013297064B2 (en) | Methods, systems, and computer readable medium for active monitoring, memory protection and integrity verification of target devices | |
CN100533385C (zh) | 用于提供系统完整性和遗留环境模拟的方法及装置 | |
TWI470471B (zh) | 保護作業系統資源 | |
KR102189296B1 (ko) | 가상 머신 보안 어플리케이션을 위한 이벤트 필터링 | |
CN103955438B (zh) | 基于硬件辅助虚拟化技术的进程内存保护方法 | |
KR102183852B1 (ko) | 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치 | |
US20120216281A1 (en) | Systems and Methods for Providing a Computing Device Having a Secure Operating System Kernel | |
CN108154032B (zh) | 具有内存完整性保障功能的计算机系统信任根构建方法 | |
US20100175104A1 (en) | Safe and secure program execution framework with guest application space | |
EP3238070B1 (en) | Memory protection with non-readable pages | |
KR20060071308A (ko) | 가상 머신 또는 강화된 운영 시스템 등에서의 컴퓨터 보안관리 | |
Muñoz et al. | A survey on the (in) security of trusted execution environments | |
Huang et al. | Return-oriented vulnerabilities in ARM executables | |
KR100931518B1 (ko) | 가상 데스크탑을 이용한 프로그램 보호 방법 | |
KR20200041639A (ko) | 차량용 소프트웨어 업데이트 장치 및 그 제어 방법 | |
CN101071459A (zh) | 计算机系统的安全防护设置方法及其设备 | |
Manès et al. | Domain Isolated Kernel: A lightweight sandbox for untrusted kernel extensions | |
KR101013419B1 (ko) | 시스템 보호 장치 및 방법 | |
Shi et al. | Vanguard: A cache-level sensitive file integrity monitoring system in virtual machine environment | |
CN113221103B (zh) | 一种容器安全防护方法、系统及介质 | |
Korkin | Divide et Impera: MemoryRanger Runs Drivers in Isolated Kernel Spaces | |
KR101249176B1 (ko) | 컴퓨터 시스템의 보안 설정 방법 및 장치 | |
US10019576B1 (en) | Security control system for protection of multi-core processors |
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: 20150819 Termination date: 20181025 |