CN1989471A - 用于限制对分区的计算机系统的系统管理程序接口的外部访问的方法 - Google Patents
用于限制对分区的计算机系统的系统管理程序接口的外部访问的方法 Download PDFInfo
- Publication number
- CN1989471A CN1989471A CNA2005800246848A CN200580024684A CN1989471A CN 1989471 A CN1989471 A CN 1989471A CN A2005800246848 A CNA2005800246848 A CN A2005800246848A CN 200580024684 A CN200580024684 A CN 200580024684A CN 1989471 A CN1989471 A CN 1989471A
- Authority
- CN
- China
- Prior art keywords
- subregion
- processing
- adapter
- calling
- address
- 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
Images
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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/85—Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
- Hardware Redundancy (AREA)
Abstract
一种减少对计算机系统中的系统管理程序接口的外部访问从而减少攻击可能性的系统和方法。在优选实施例中,将用于调用的地址用来填充表,其中这些地址是针对发出请求的计算机而特别选定的。例如,在一个实施例中,例行程序搜索发出请求的计算机的适配器类型并用特定于该适配器类型的调用来填充表。不将其他类型的调用放在该表中。相反,这些调用由将返回错误的例行程序代替。在其他实施例中,将操作系统类型用于确定用哪些地址来填充表。下面将更全面地说明这些实施例及其他实施例。
Description
技术领域
本发明一般地涉及计算机系统中的安全性,并且特别地涉及限制分区的计算机系统上的攻击弱点。
背景技术
由于安全性问题受到越来越高的关注,IT(信息技术)产业正在经历快速的转变以增强在各方面的安全性。目前一些国家已经引入通用准则评估(Common Criteria Evaluation)方法,该严格且昂贵的方法用来评估IT系统所拥有的安全保障水平。该方法包含IT产品开发的所有方面,范围从开发活动发生的构造安全性,CM系统,开发活动,直至并包括用以防止篡改的对产品的安全递送。目前美国政府要求用于国家安全、关键的基础设施和国家防御系统的所有IT设备完成该项评估。另外,金融业和卫生业正在引入这种评估作为购买其系统时所提出的要求的一部分。
当前的系统管理程序设计具有暴露的外部接口用以对所加载的操作系统提供一般服务(非硬件特定的(non-hardware specific)),诸如中断管理,页表项(PTE)管理,转换控制项(TCE)管理,以及用来处理专门硬件资源的专门接口,诸如Federation或InfiniBand(IB)适配器。
图3示出了一个用于诸如系统管理程序之类的平台固件的已知系统。系统管理程序可以从国际商业机器公司获得。系统管理程序302包括系统管理程序I/F304,该系统管理程序I/F304使得可以访问用于各分区310、312、314的系统管理程序调用(H_call)。根据特定适配器硬件,一些调用308为硬件依赖的,而一些调用306为非硬件依赖的。所有类型的分区都配备有两种类型的接口。
目前国际商业机器公司正在引入第一个聚合的系统管理程序设计,该设计支持在单一平台上同时运行多个不同的操作系统。在这种系统管理程序设计中,允许多个操作系统通过系统管理程序接口访问所有的系统管理程序调用(H_call)。在当前的设计中,有多于350个系统管理程序调用,一些专用于(RS/6000平台体系结构的)RPA分区,一些专用于OS/400分区,并且一些是共享的。
在当前的产品计划中,众所周知,由于该产业正在偏离诸如OS/400之类的专有OS(操作系统),大多数系统将只支持RPA分区。大多数已交付的系统将只使用AIX或Linux分区,因此特定于OS/400分区的暴露的系统管理程序接口代表了在只支持RPA的系统中不存在产品价值的易受攻击的点。相反地,需要OS/400分区的客户很可能不会同时使用RPA分区,在同一系统中同时使用RPA分区和非RPA分区的那些消费者在整个市场中只占很小的比例。
在当前的系统中,只有少量平台支持Federation适配器,并且InfiniBand适配器的计划只用于一小部分系统,然而,所有平台都公开了对这些适配器的系统管理程序调用。在p6xx系列中,p625、p630、p640、p650、p655、p670和p690中,只有p670和p690对Federation适配器提供硬件支持,并且p670和p690系统中只有非常小的一部分配备有Federation适配器。这些接口在未安装适配器时代表未使用的不必要的攻击点。
一项关于系统安全性的分析表明,暴露的外部接口是外部威胁的攻击点,增加接口数目意味着弱点的增加。另外,该分析表明,并且在很多出版物中已详细描述,在每KLOC(千行代码)中大约有一个安全缺陷。
根据从2003年5月的可信计算组织的背景介绍会(TrustedComputing Group’s Backgrounder)中摘录的内容:
通过创建和使用这些规范而解决的关键问题是由于日益复杂并且自动化的攻击工具,正在发现的弱点的数量的迅速增加,以及用户的移动性的增加等因素的结合而带来的软件攻击威胁的增加。该大量的弱点部分地是由于现代系统的不可思议的复杂性而造成的。例如,典型的Unix或Windows系统,包括主要的应用程序,代表上亿条代码的量级。最近的研究表明,典型的产品级别软件大约在每千条源代码中就有一个和安全性相关的错误。这样,典型的系统会潜在地具有十万个安全性错误。
用于POWER5 LPAR平台的当前计划正要经历一次完整的安全评估以达到EAL4+级公共标准的要求。考虑到前述平台评估,两个关键的方面为分区间的保护和分区之间的访问控制。另外的未使用的接口的暴露代表了在使用这些系统期间弱点的显著增加和测试工作量的增加。
针对该问题的当前解决方法是将代码包括在每个专用于专门硬件的H-CALL(系统管理程序调用)中,其中该专门硬件查看适配器的存在和/或检查适配器是否已初始化。这就需要很多例行程序中的代码,而不是只具有单一的直接出口点。
因此,具有一种用于加强分区的系统对系统管理程序的调用的访问安全性的改进的方法和设备是有利的。
发明内容
根据第一个方面,本发明提供了一种用于限制计算机系统的外部接口的方法,包括以下计算机实现的步骤:在第一计算机中搜索特定属性;用一组地址填充表;其中该一组地址用来根据该属性来填充该表;并且其中该表的至少一些条目填充有返回错误的例行程序。
根据第二个方面,本发明提供了一种用于限制计算机系统的外部接口的方法,包括:用于在第一计算机中搜索特定属性的装置;用于用一组地址填充表的装置;其中该一组地址用来根据该属性来填充该表;并且其中该表的至少一些条目填充有返回错误的例行程序。
根据第三个方面,本发明提供了一种计算机程序,包括当所述程序在计算机上运行时适用于执行上述方法的步骤的程序代码装置。
优选地,提供了一种具有多个分区的计算机系统,包括:可通过接口访问的第一分区,其中用和第一分区相关联的地址填充表;可通过接口访问的第二分区,其中和第二分区相关联的地址不出现在该表中。更加优选地,基于发出请求的计算机是否具有特定的硬件适配器类型来将地址输入表。更为优选地,基于发出请求的计算机是否具有特定的硬件适配器类型将地址填入表中。进一步更加优选地,其中接口为控制对多个分区的访问的系统管理程序,并且其中地址为用于系统管理程序调用的地址。
本发明提供了一种减少对计算机系统中的分区的外部访问的方法、设备和计算机指令,从而减小攻击的可能性。在优选实施例中,用于调用的地址用来填充表,其中地址是针对发出请求的计算机而特别地选定的。例如,在一个实施例中,例行程序搜索发出请求的计算机的适配器类型,并用特定于该适配器类型的调用来填充表。其他类型的调用并不输入该表中。相反地,这些调用由将返回错误的例行程序代替。在其他实施例中,使用操作系统类型来确定将何种地址用于填充表。下面将更全面地说明这些实施例及其他实施例。
附图说明
从属权利要求中阐明了确信是本发明所特有的新颖特征。然而,参考结合附图而阅读的以下对说明性实施例的详细描述,可以最好地理解本发明本身以及优选使用模式,其进一步的目的和优点,其中:
图1是可以实现本发明的数据处理系统的框图。
图2是可以实现本发明的示例性的经逻辑分区的平台的框图。
图3示出了已知的具有系统管理程序的分区的数据处理系统,其中每个类型的调用可以访问每个分区。
图4示出了根据本发明优选实施例的用于保持系统管理程序调用地址的静态表和动态表。
图5示出了根据本发明优选实施例的静态表和动态表,其中一些动态表条目填充有返回错误的例行程序。
图6示出了具有用于实现本发明优选实施例的处理步骤的流程图。
图7示出了系统管理程序和计算机系统中的分区,其中所有分区都是可见的。
图8示出了根据本发明优选实施例的系统管理程序和分区,其中一个分区对外部调用来说是隐藏的。
图9示出了根据本发明优选实施例的系统管理程序和分区,其中两个分区对外部调用来说是隐藏的。
图10示出了用于实现本发明优选实施例的静态表和动态表。
图11示出了具有用于实现本发明优选实施例的处理步骤的流程图。
具体实施方式
现在参考附图,并且特别地参考图1,其中描述了可以实现本发明的数据处理系统的框图。数据处理系统100可以是包括连接到系统总线106的多个处理器101、102、103和104的对称多处理器(SMP)系统。例如,数据处理系统100可以是实现为网络中的服务器的IBMeServer,即纽约阿芒克的国际商业机器公司的产品。作为替代,可以采用单处理器系统。连接到系统总线106的还有存储控制器/高速缓存108,其可以提供到多个本地存储器160-163的接口。I/O总线桥110连接到系统总线106并提供到I/O总线112的接口。正如所描述的,可以将存储控制器/高速缓存108和I/O总线桥110进行集成。
数据处理系统100是经逻辑分区的(LPAR)数据处理系统。这样,数据处理系统100可以同时运行多个异构的操作系统(或单一操作系统的多个实例)。这些多个操作系统中的每个操作系统可以具有在其中执行的任意数量的软件程序。数据处理系统100是经逻辑分区的,这样可以将不同的PCII/O适配器120-121、128-129和136,图形适配器148,以及硬盘适配器149指派给不同的逻辑分区。在这种情况下,图形适配器148为显示装置(未示出)提供连接,而硬盘适配器1 49则提供用以控制硬盘150的连接。
这样,例如,假设数据处理系统100分为三个逻辑分区P1、P2和P3。每个PCII/O适配器120-121、128-129和136,图形适配器148,以及硬盘适配器149,每个主处理器101-104,以及本地存储器160-163中的存储器被分别指定给这三个分区。在这些例子中,存储器160-163可以采取双列直插存储器模块(DIMM)的形式。DIMM通常并不是在每DIMM的基础上指派给分区。相反,分区会得到在平台上观察到的全部存储器的一部分。例如,可以将处理器101,本地存储器160-163中的一部分存储器,以及I/O适配器120、128和129指定给逻辑分区P1;可以将处理器102-103,本地存储器160-163中的一部分存储器,以及PCII/O适配器121和136指定给逻辑分区P2;并且可以将处理器104,本地存储器160-163中的一部分存储器,图形适配器148,以及硬盘适配器149指定给逻辑分区P3。
将在数据处理系统100内执行的每个操作系统指派给不同的逻辑分区。这样,在数据处理系统100内执行的每个操作系统只能访问在其逻辑分区内的那些I/O单元。这样,例如,高级交互执行(AIX)操作系统的一个实例可以在分区P1内执行,AIX操作系统中的第二个实例(映像)可以在分区P2内执行,并且Linux或OS/400操作系统可以在逻辑分区P3内运行。
连接到I/O总线112的外围组件互连(PCI)主桥114提供到PCI本地总线115的接口。多个PCI输入/输出适配器120-121可以通过PCI到PCI桥116、PCI总线118、PCI总线119、I/O插槽170以及I/O插槽171连接到PCI总线115。PCI到PCI桥116提供到PCI总线118和PCI总线119的接口。将PCII/O适配器120和121分别放置在I/O插槽170和171中。典型的PCI总线实现将支持四到八个I/O适配器(即,用于插入连接器的扩展插槽)。每个PCTI/O适配器120-121在数据处理系统100和输入/输出设备之间提供接口,该输入/输出设备诸如作为数据处理系统100的客户端的其他网络计算机。
附加的PCI主桥122为附加的PCI总线123提供接口。PCI总线123连接到多个PCII/O适配器128-129。PCII/O适配器128-129可以通过PCI到PCI桥124、PCI总线126、PCI总线127、I/O插槽172以及I/O插槽173连接到PCI总线123。PCI到PCI桥124提供到PCI总线126和PCI总线127的接口。将PCI I/O适配器128和129分别放置在I/O插槽172和173中。以这种方式,可以通过每个PCI I/O适配器128-129来支持诸如调制解调器或网络适配器之类的附加I/O设备。以这种方式,数据处理系统100可以连接到多个网络计算机。
插入I/O插槽174的存储映射的图形适配器148可以通过PCI总线144、PCI到PCI桥142、PCI总线141和PCI主桥140连接到I/O总线112。可以将硬盘适配器149放置在连接到PCI总线145的I/O插槽175中。依次地,该总线连接到PCI到PCI桥142,该PCI到PCI桥142通过PCI总线141连接到PCI主桥140。
PCI主桥130为PCI总线131提供用以连接到I/O总线112的接口。PCI I/O适配器136连接到I/O插槽176,该I/O插槽176通过PCI总线133连接到PCI到PCI桥132。PCI到PCI桥132连接到PCI总线131。该PCI总线还将PCI主桥130连接到服务处理器邮箱接口和ISA总线访问通道逻辑194和PCI到PCI桥132。服务处理器邮箱接口和ISA总线访问通道逻辑194对发往PCI/ISA桥193的PCI访问进行转发。NVRAM存储器(非易失性存储器)192连接到ISA总线196。服务处理器135通过其本地PCI总线195连接到服务处理器邮箱接口和ISA总线访问通道逻辑194。服务处理器135还通过多个JTAG/I2C总线134连接到处理器101-104。JTAG/I2C总线134是JTAG/scan(JTAG/扫描)总线(参见IEEE1149.1)和飞利浦I2C总线的结合。然而,作为替代,可以只用飞利浦I2C总线或只用JTAG/scan总线来代替JTAG/I2C总线134。主处理器101、102、103和104的所有SPATTN信号可以一起连接到服务处理器的中断输入信号。该服务处理器135具有其自己的本地存储器191,并且可以访问硬件OP面板190。
当数据处理系统100初始开机时,服务处理器135使用JTAG/I2C总线134来询问系统(主)处理器101-104、存储控制器/高速缓存108和I/O桥110。在这一步骤完成时,服务处理器135就具有了对该数据处理系统100的设备清单和拓朴的理解。服务处理器135还在通过询问主处理器101-104、存储控制器/高速缓存108和I/O桥110而找到的所有元件上执行内置自测试(BIST)、基本保证测试(BAT)和存储器测试。服务处理器135收集和报告针对在BIST、BAT和存储器测试期间检测到的故障的任意错误信息。
如果移除在BIST、BAT和存储器测试期间发现的故障元件之后,对系统资源的配置仍然可能是有意义/有效的,则数据处理系统100可以前进到向本地(主)存储器160-163中加载可执行的代码。然后,服务处理器135释放主处理器101-104以便执行加载到本地存储器160-163中的代码。在主处理器101-104执行来自数据处理系统100内的对应操作系统的代码的同时,服务处理器135进入监视和报告错误的模式。由服务处理器135监视的项的类型包括例如冷却风扇速度和操作、温度传感器、电源调整器,以及处理器101-104、本地存储器160-163和I/O桥110所报告的可恢复的和不可恢复的错误。
服务处理器135负责保存和报告与数据处理系统100中的所有受监视的项相关的错误信息。服务处理器135还基于错误类型和已定义的门限而采取措施。例如,服务处理器135可以记录处理器的高速缓存上的过多的可恢复错误,并判断这是硬失效的先兆。基于该判断,服务处理器135可以标出该资源以便在当前运行的会话和未来的初始程序加载(IPL)期间解除配置。IPL有时还称为“引导”或“引导程序”。
数据处理系统100可以使用市面上有售的各种计算机系统来实现。例如,数据处理系统100可以使用可从国际商业机器公司获得的IBMeServer iSeries Model 840系统来实现。这样的系统可以支持使用OS/400操作系统的逻辑分区,该操作系统同样可以从国际商业机器公司获得。
本领域的普通技术人员应当意识到,图1中描述的硬件可以改变。例如,作为对所描述的硬件的补充或替代,还可以使用诸如光盘驱动器等其他外围设备。所描述的例子并非旨在暗示对本发明进行体系结构上的限制。
现在参考图2,其中描述了可以实现本发明的示例性的经逻辑分区的平台的框图。可以将经逻辑分区的平台200中的硬件实现为例如图1中的数据处理系统100。经逻辑分区的平台200包括分区的硬件230,操作系统202、204、206、208,以及分区管理固件210。操作系统202、204、206、208可以是单一操作系统的多个副本或同时在经逻辑分区的平台200上运行的多个异构操作系统。这些操作系统可以使用OS/400来实现,OS/400被设计为与诸如系统管理程序之类的分区管理固件进行接口连接。OS/400只用作这些说明性实施例中的一个例子。当然,根据特定实现,可以使用诸如AIX和Linux之类的其他类型的操作系统。操作系统202、204、206、208位于分区203、205、207和209中。
系统管理程序软件是可以用于实现平台(在该例子中为分区管理)固件210,并可以从国际商业机器公司获得的软件的一个例子。固件是存储在存储芯片中的“软件”,该存储芯片在不需要电源的情况下保持其内容,诸如,例如,只读存储器(ROM)、可编程ROM(PROM)、可擦除可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)以及非易失性随机存取存储器(非易失性RAM)。
另外,这些分区还包括分区固件211、213、215和217。分区固件211、213、215和217可以通过使用初始引导程序代码、IEEE-1275标准公开固件,以及可以从国际商业机器公司获得的运行时抽象软件(RTAS)来实现。当将分区203、205、207和209实例化时,平台固件210将引导程序代码的副本下载到分区203、205、207和209上。其后,控制转移到引导程序代码,其中该引导程序代码随后下载开放固件和RTAS。然后,将与分区相关联或指派给分区的处理器分配到分区的存储器来执行分区固件。
分区的硬件230包括多个处理器232-238、多个系统内存单元240-246、多个输入/输出(I/O)适配器248-262、以及存储器单元270。可以将每个处理器232-238、内存单元240-246、NVRAM存储器298以及I/O适配器248-262指定给经逻辑分区的平台200内的多个分区中的一个分区,其中每个分区对应于操作系统202、204、206和208中的一个操作系统。
平台固件210针对分区203、205、207和209执行多种功能和服务来创建和加强对经逻辑分区的平台200的分区。平台固件210是与底层硬件相同的固件实现的虚拟机。这样,平台固件210使得可以通过对经逻辑分区的平台200的所有硬件资源进行虚拟化而同时执行独立OS映像202、204、206和208。
服务处理器290可以用于提供多种服务,诸如处理分区中的平台错误。这些服务还可以用作服务代理来将错误报告给供应商,诸如国际商业机器公司。可以通过诸如硬件管理控制台280之类的硬件管理控制台来控制不同分区的运行。硬件管理控制台280是独立的数据处理系统,系统管理员可以从中执行各种功能,包括重新分配资源到不同分区。
图4示出了用于实现本发明优选实施例的一组表。在第一优选实施例中,本发明基于安装在发出请求的计算机中的专门硬件适配器的存在而动态地限制所存在的外部系统管理程序接口的数量。通过限制外部计算机对某些系统管理程序调用的访问,限制了对系统管理程序所在的某些分区的访问。
在这个例子中,静态表402包括所有H_call地址。H_call,或系统管理程序调用,是分区固件所使用的服务。当RTAS实例化(运行时抽象服务)发生时,在SMP模式下,将所有的RTAS调用路由到使用H_Call的系统管理程序。这些调用不对操作系统公开,而且在系统管理程序和/或分区固件方便时会经受变化。H_call的例子包括:h_get_xive(h_获得xive),其被pSeries固件调用来获得xive中断控制寄存器的内容;以及h_pci_config_read(h_pci配置_读取),如果适配器隶属于发出调用的分区,则h_pci_config_read读取PCI适配器配置空间。
动态表404用于根据适配器类型而复制对发出请求的计算机来说应当可用的那些调用地址。在这个例子中,发出请求的计算机可以访问所有的H_call(并从而可以访问所有的分区),所以用所有的H_call填充动态表。
图5示出了一种情况,其中发出请求的计算机并不能访问所有的H_call。基于发出请求的计算机的适配器类型(或其他可检测的硬件属性),只用来自表502的某些H_call 506、510来填充动态表504。用将返回错误消息的地址来对调用508进行替换。因此,本发明的机制限制了外部接口的数量,而不限制针对各种类型的分区和适配器进行通信所需的能力。
图7示出了一种情形,其中一些分区共享系统管理程序调用。在这个例子中,系统管理程序702包括系统管理程序I/F 704,其使得调用706、708和710对于访问各分区712、714、716可用。在这个例子中,所有分区对于外部接口都是暴露的。
图8示出了本发明的一个说明性的实施例,其是基于分区类型而不是适配器类型,使用对分区的限制来实现的。在这个例子中,系统管理程序802包括系统管理程序I/F 804和各种共享的和分区特定的调用806、808、810。在这个例子中,H_call 810对于发出请求的计算机不可用,因此发出请求的计算机只能访问分区812、814。
图9是图8的补充,原因是其示出了相反的情况,即仅对针对分区910的调用的访问对外部计算机或请求来说是可访问的。注意,在图8和图9中,共享调用906都是可访问的,同时不必要的分区对外部计算机来说是隐藏的。
图10针对静态表1002和动态表1004示出了这种情况。一旦系统管理程序发现了操作系统的类型和要与之进行通信的分区,则将用于与该分区进行通信的相关地址用来填充表1004,使得可以访问这些地址,以便进行对相关地址910的H_call。表1004的其余单元由将返回错误的地址来填充。
图6和图11描述了用于实现本发明实施例的流程图。图6示出了一个实施例,其中基于用于与系统管理程序和分区进行通信的硬件适配器的类型用多个地址来填充动态表。该处理优选地结合数据处理系统100而在系统管理程序302中实现。该处理开始于搜索发出请求的计算机的专门硬件适配器(步骤600)。进行关于是否识别出了适配器的确定(步骤602)。如果识别出了适配器,则将用于该适配器的适当调用从静态表复制到动态表(步骤604)。如果存在更多适配器(步骤606),则该处理将重复。如果没有识别出适配器,则将要返回错误的例行程序复制到动态表。
图11开始于进行搜索以查看发出请求的计算机是否正在请求访问特定操作系统或分区类型(步骤1100)。在优选实施例中,这是通过读取系统的特定VPD(重要产品数据)类型来完成的。如果识别出分区(步骤1102)则将对该分区的适当调用复制到动态表(步骤1104)。如果发现了更多分区(步骤1106),则该处理将重复。如果没有识别出该分区,则将要返回错误的例行程序复制到动态表(步骤1108)。该处理优选地结合数据处理系统100而在系统管理程序302中实现。
在说明性的实施例中,发出请求的计算机可以通过常规系统管理程序接口进行调用。系统管理程序接口例如使用令牌来对动态表调用进行索引,以便识别动态表中的正确位置用以寻找地址。
在其他的说明性实施例中,系统管理程序只在启动时公开初始调用。然后,对分区进行初始化使得该调用对例如适配器进行初始化,并且初始化H_call将暴露其他相关的接口。这可以用于适配器可以安装但不经常使用的系统中。然后,在需要适配器之前,只公开经初始化的H_call。
本发明以若干方式提供了相对于其他系统的优点,包括监视接口的开销较低,以及对外部接口隐藏不需要的H_Call,从而限制了外部攻击的途径。此外,本发明实现了减少开销的特定出口点,而不是增加针对每个调用的代码。就公开的KLOC、维护和减少处理的执行时间而言,此处的创新做法更加安全。
重要的是注意到,尽管已经在全功能数据处理系统的上下文中描述了本发明,但本领域的普通技术人员应当意识到,本发明的处理能够以指令的计算机可读介质和多种形式分布,并且不管实际应用于执行该分布的特定类型的信号承载媒介如何,本发明都同样适用。计算机可读介质的例子包括:可记录型介质,诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM;传输型介质,诸如数字通信链路和模拟通信链路,有线通信链路,使用诸如射频和光波传输之类的传输形式的无线链路。计算机可读介质可以采取经编码的格式的形式,该格式将被解码以实际用于特定数据处理系统中。
已经出于说明和描述的目的提出了对本发明的描述,并且该描述并非旨在穷举或将本发明限制为所公开的形式。本领域的普通技术人员将很容易想到很多修改和变更。对实施例进行了选择和描述,以便最好地说明本发明的原理和实际应用,并且以便使得本领域的普通技术人员能够针对各种实施例而理解本发明,这些实施例具有适合于所考虑的特定应用的各种修改。
Claims (23)
1.一种用于限制计算机系统的外部接口的方法,包括以下计算机实现的步骤:
在第一计算机中搜索特定属性;
用一组地址填充表;
其中所述一组地址用来根据所述属性来填充所述表;并且
其中所述表中的至少一些条目填充有返回错误的例行程序。
2.根据权利要求1所述的方法,其中所述表中的所述地址用来与所述计算机系统的分区进行通信。
3.根据权利要求1所述的方法,其中所述特定属性为适配器类型。
4.根据权利要求1所述的方法,其中所述特定属性为操作系统类型。
5.根据任意前述权利要求所述的方法,其中所述计算机系统具有多个分区,并且其中至少一个分区对所述第一计算机来说不可访问。
6.根据权利要求5所述的方法,其中系统管理程序通过使用系统管理程序调用来控制对所述分区的访问。
7.根据权利要求5或权利要求6所述的方法,其中和所述至少一个分区关联的地址并不出现在所述表中。
8.根据权利要求5到7中任一项所述的方法,还包括以下步骤:
提供用于平台固件调用的数据结构,其中所述数据结构用来接收来自经逻辑分区的数据处理系统中的分区的调用;以及
将指针放置到用来处理从所述分区中接收的所述调用的处理,其中使得选定的处理对所述调用来说不可用。
9.根据权利要求8所述的方法,其中所述选定的处理针对对所述分区中的特定类型的分区来说不可用的处理以及在所述经逻辑分区的数据处理系统中不可用的硬件的处理中的至少一个。
10.根据权利要求8或权利要求9所述的方法,其中所述指针指向所述处理。
11.根据权利要求8到10中任一项所述的方法,其中所述用于所述选定处理的指针即到当调用所述选定处理时返回错误消息的例行程序的指针。
12.一种用于限制计算机系统的外部接口的系统,包括:
用于在第一计算机中搜索特定属性的装置;
用于用一组地址填充表的装置;
其中所述一组地址用来根据所述属性来填充所述表;并且
其中所述表的至少一些条目填充有返回错误的例行程序。
13.根据权利要求12所述的系统,其中所述表的所述地址用来与所述计算机系统的分区进行通信。
14.根据权利要求12所述的系统,其中所述特定属性为适配器类型。
15.根据权利要求12所述的系统,其中所述特定属性为操作系统类型。
16.根据权利要求12到15中任一项所述的系统,其中所述计算机系统具有多个分区,并且其中至少一个分区对所述第一计算机来说不可访问。
17.根据权利要求16所述的系统,其中系统管理程序通过使用系统管理程序调用来控制对所述分区的访问。
18.根据权利要求16或权利要求17所述的系统,其中和所述至少一个分区关联的地址并不出现在所述表中。
19.根据权利要求16到18中任一项所述的系统,还包括:
用于提供用于平台固件调用的数据结构的装置,其中所述数据结构用来接收来自经逻辑分区的数据处理系统中的分区的调用;以及
用于将指针放置到用来处理从所述分区中接收的所述调用的处理的装置,其中使得选定的处理对所述调用来说不可用。
20.根据权利要求19所述的系统,其中所述选定的处理针对对所述分区中的特定类型的分区来说不可用的处理以及在所述经逻辑分区的数据处理系统中不可用的硬件的处理中的至少一个。
21.根据权利要求19或权利要求20所述的系统,其中所述指针指向所述处理。
22.根据权利要求19到21中任一项所述的系统,其中所述用于所述选定处理的指针即到当调用所述选定处理时返回错误消息的例行程序的指针。
23.一种计算机程序,包括当所述程序在计算机上运行时适合于执行根据权利要求1到11中任一项所述的全部步骤的程序代码装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/897,228 | 2004-07-22 | ||
US10/897,228 US7577991B2 (en) | 2004-07-22 | 2004-07-22 | Method to enhance platform firmware security for logical partition data processing systems by dynamic restriction of available external interfaces |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1989471A true CN1989471A (zh) | 2007-06-27 |
CN100549905C CN100549905C (zh) | 2009-10-14 |
Family
ID=34970400
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005800246848A Active CN100549905C (zh) | 2004-07-22 | 2005-06-22 | 用于限制对分区的计算机系统的系统管理程序接口的外部访问的方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US7577991B2 (zh) |
EP (1) | EP1782150A1 (zh) |
CN (1) | CN100549905C (zh) |
WO (1) | WO2006008219A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102015214385A1 (de) | 2015-07-29 | 2017-02-02 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Absichern der Anwendungsprogrammierschnittstelle eines Hypervisors |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7197509B2 (en) * | 2003-07-31 | 2007-03-27 | International Business Machines Corporation | Method, system, and computer program product for managing persistent data across different releases |
US7493370B2 (en) * | 2004-10-29 | 2009-02-17 | International Business Machines Corporation | Two stage method for dynamically determining primary adapter in a heterogeneous N-way adapter configuration |
US8407785B2 (en) | 2005-08-18 | 2013-03-26 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media protecting a digital data processing device from attack |
US8732824B2 (en) * | 2006-01-23 | 2014-05-20 | Microsoft Corporation | Method and system for monitoring integrity of running computer system |
US7870336B2 (en) * | 2006-11-03 | 2011-01-11 | Microsoft Corporation | Operating system protection against side-channel attacks on secrecy |
US8518001B2 (en) * | 2007-06-13 | 2013-08-27 | The Procter & Gamble Company | Skin treatment device |
US7904460B2 (en) * | 2008-04-23 | 2011-03-08 | Microsoft Corporation | Determining computer information from processor properties |
US8938609B2 (en) * | 2009-11-13 | 2015-01-20 | Qualcomm Incorporated | Methods and apparatus for priority initialization of a second processor |
KR20120070771A (ko) * | 2010-12-22 | 2012-07-02 | 한국전자통신연구원 | 정량적 보안 정책 평가 장치 및 방법 |
WO2013040598A1 (en) | 2011-09-15 | 2013-03-21 | The Trustees Of Columbia University In The City Of New York | Systems, methods, and media for detecting return-oriented programming payloads |
JP6033183B2 (ja) * | 2013-07-31 | 2016-11-30 | 京セラドキュメントソリューションズ株式会社 | 画像形成装置、及び画像形成装置の起動方法 |
US9367414B2 (en) * | 2014-06-27 | 2016-06-14 | Vmware, Inc. | Persisting high availability protection state for virtual machines stored on distributed object-based storage |
JP6370752B2 (ja) * | 2015-08-20 | 2018-08-08 | ファナック株式会社 | 加工機における主軸の放熱構造 |
RU2609761C1 (ru) * | 2015-09-30 | 2017-02-02 | Акционерное общество "Лаборатория Касперского" | Способ выполнения кода в режиме гипервизора |
US11480613B2 (en) * | 2020-12-18 | 2022-10-25 | Arm Limited | Method and/or system for testing devices in non-secured environment |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6691146B1 (en) * | 1999-05-19 | 2004-02-10 | International Business Machines Corporation | Logical partition manager and method |
US6279046B1 (en) * | 1999-05-19 | 2001-08-21 | International Business Machines Corporation | Event-driven communications interface for logically-partitioned computer |
US6438671B1 (en) | 1999-07-01 | 2002-08-20 | International Business Machines Corporation | Generating partition corresponding real address in partitioned mode supporting system |
US6678825B1 (en) * | 2000-03-31 | 2004-01-13 | Intel Corporation | Controlling access to multiple isolated memories in an isolated execution environment |
US6877158B1 (en) * | 2000-06-08 | 2005-04-05 | International Business Machines Corporation | Logical partitioning via hypervisor mediated address translation |
US6629162B1 (en) * | 2000-06-08 | 2003-09-30 | International Business Machines Corporation | System, method, and product in a logically partitioned system for prohibiting I/O adapters from accessing memory assigned to other partitions during DMA |
US7058768B2 (en) * | 2002-04-17 | 2006-06-06 | Microsoft Corporation | Memory isolation through address translation data edit control |
US7076802B2 (en) * | 2002-12-31 | 2006-07-11 | Intel Corporation | Trusted system clock |
US20050216759A1 (en) * | 2004-03-29 | 2005-09-29 | Rothman Michael A | Virus scanning of input/output traffic of a computer system |
EP1766494B1 (en) * | 2004-05-19 | 2018-01-03 | CA, Inc. | Method and system for isolating suspicious objects |
US7640543B2 (en) * | 2004-06-30 | 2009-12-29 | Intel Corporation | Memory isolation and virtualization among virtual machines |
US7634812B2 (en) * | 2004-07-21 | 2009-12-15 | Microsoft Corporation | Filter generation |
US8166254B2 (en) * | 2008-06-06 | 2012-04-24 | International Business Machines Corporation | Hypervisor page fault processing in a shared memory partition data processing system |
-
2004
- 2004-07-22 US US10/897,228 patent/US7577991B2/en not_active Expired - Fee Related
-
2005
- 2005-06-22 EP EP05753958A patent/EP1782150A1/en not_active Withdrawn
- 2005-06-22 CN CNB2005800246848A patent/CN100549905C/zh active Active
- 2005-06-22 WO PCT/EP2005/052912 patent/WO2006008219A1/en active Application Filing
-
2009
- 2009-07-07 US US12/498,795 patent/US7954156B2/en not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102015214385A1 (de) | 2015-07-29 | 2017-02-02 | Robert Bosch Gmbh | Verfahren und Vorrichtung zum Absichern der Anwendungsprogrammierschnittstelle eines Hypervisors |
US10445125B2 (en) | 2015-07-29 | 2019-10-15 | Robert Bosch Gmbh | Method and device for securing the application programming interface of a hypervisor |
Also Published As
Publication number | Publication date |
---|---|
CN100549905C (zh) | 2009-10-14 |
US7954156B2 (en) | 2011-05-31 |
US7577991B2 (en) | 2009-08-18 |
EP1782150A1 (en) | 2007-05-09 |
WO2006008219A1 (en) | 2006-01-26 |
US20090265783A1 (en) | 2009-10-22 |
US20060021033A1 (en) | 2006-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100549905C (zh) | 用于限制对分区的计算机系统的系统管理程序接口的外部访问的方法 | |
US7139940B2 (en) | Method and apparatus for reporting global errors on heterogeneous partitioned systems | |
US6839892B2 (en) | Operating system debugger extensions for hypervisor debugging | |
JP4157710B2 (ja) | Pci入出力スロットの論理分割を実施する方法および装置 | |
US6567897B2 (en) | Virtualized NVRAM access methods to provide NVRAM CHRP regions for logical partitions through hypervisor system calls | |
US7543305B2 (en) | Selective event registration | |
US8352940B2 (en) | Virtual cluster proxy to virtual I/O server manager interface | |
US6792514B2 (en) | Method, system and computer program product to stress and test logical partition isolation features | |
US7266658B2 (en) | System, method, and computer program product for prohibiting unauthorized access to protected memory regions | |
JP4270394B2 (ja) | 論理パーティション・データ処理システムにおける不正なオペレーティング・システムのローディング及び実行を防ぐための方法及びシステム | |
US6877158B1 (en) | Logical partitioning via hypervisor mediated address translation | |
US7257734B2 (en) | Method and apparatus for managing processors in a multi-processor data processing system | |
US6971002B2 (en) | Method, system, and product for booting a partition using one of multiple, different firmware images without rebooting other partitions | |
JP3815569B2 (ja) | ロジカル・パーティション・データ処理システムにおいてパーティション・ファームウェアを同時更新及び活動化するための方法及び装置 | |
US20060218261A1 (en) | Creating and removing application server partitions in a server cluster based on client request contexts | |
US7610429B2 (en) | Method and system for determining device criticality in a computer configuration | |
US20050076179A1 (en) | Cache optimized logical partitioning a symmetric multi-processor data processing system | |
US7496729B2 (en) | Method and apparatus to eliminate interpartition covert storage channel and partition analysis | |
US6934888B2 (en) | Method and apparatus for enhancing input/output error analysis in hardware sub-systems | |
JP2003067206A (ja) | Lparシステムにおいて装置をダイナミックに割り当てるための方法 | |
US20060282449A1 (en) | Accessing a common data structure via a customized rule |
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 |