專利名稱:用于保護(hù)操作系統(tǒng)免于非授權(quán)修改的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種用于保護(hù)操作系統(tǒng)免于非授權(quán)修改的計(jì)算機(jī)化方法、計(jì)算機(jī)系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。
背景技術(shù):
如今,許多計(jì)算機(jī)系統(tǒng)非常易于受到來(lái)自病毒、特洛伊木馬、蠕蟲、根級(jí)工具包(root kit)等的攻擊。這些攻擊會(huì)導(dǎo)致巨大的經(jīng)濟(jì)損失。它們不僅會(huì)降低系統(tǒng)的功能性能,而且會(huì)危害到例如銀行系統(tǒng)中的關(guān)鍵任務(wù)數(shù)據(jù)和進(jìn)程的安全性和完整性。計(jì)算機(jī)病毒是一種能夠自行復(fù)制并感染計(jì)算機(jī)的計(jì)算機(jī)程序。病毒和其它類型的惡意軟件程序可以經(jīng)由網(wǎng)絡(luò)自動(dòng)傳播并且以執(zhí)行屬于病毒的代碼序列的方式來(lái)操控?cái)?shù)據(jù)或可執(zhí)行代碼。一些惡意軟件程序具有可被計(jì)算機(jī)用戶注意到的癥狀,但是許多則是隱秘的。大多數(shù)計(jì)算機(jī)系統(tǒng)實(shí)施一些形式的保護(hù)系統(tǒng),諸如病毒檢查程序(checker)或防火墻。這樣的病毒掃描程序搜索被認(rèn)為標(biāo)識(shí)病毒的某數(shù)據(jù)模式。這種方法的主要缺點(diǎn)在于,病毒掃描程序(scanner)要求已經(jīng)由專家進(jìn)行過(guò)分析的病毒的知識(shí)。病毒感染僅能夠被檢測(cè)到,但是卻不能被預(yù)防。即使病毒掃描程序進(jìn)行規(guī)律更新,系統(tǒng)仍然可能易于受到新病毒的攻擊。此外,被搜索的字節(jié)序列可能在未感染數(shù)據(jù)中被錯(cuò)誤地找出。從計(jì)算機(jī)系統(tǒng)去除病毒也是棘手且容易出現(xiàn)錯(cuò)誤的。不幸的是,惡意方和黑客所進(jìn)行的攻擊在擊敗已知保護(hù)系統(tǒng)方面變得越來(lái)越富有經(jīng)驗(yàn)。病毒可以被編程為對(duì)其自身進(jìn)行加密和/或經(jīng)歷一些變異。這二者改變了病毒的二進(jìn)制簽名并且可以使得其不被檢測(cè)到。惡意軟件另外的示例是所謂的root kit,其利用操作系統(tǒng)中的弱點(diǎn)并且完全繞過(guò)大多數(shù)已知的保護(hù)系統(tǒng)。術(shù)語(yǔ)root kit原本是指被授予根(root)級(jí)訪問的針對(duì)類似Unix操作系統(tǒng)的經(jīng)惡意修改的管理工具集合。如果入侵者能夠用root kit替代系統(tǒng)上的標(biāo)準(zhǔn)管理工具,則經(jīng)修改的工具將允許入侵者在保護(hù)系統(tǒng)被啟動(dòng)之前獲得有所提升的許可,同時(shí)對(duì)合法系統(tǒng)管理員隱瞞這些活動(dòng)?;趦?nèi)核的root kit被直接安裝到操作系統(tǒng)的內(nèi)核或驅(qū)動(dòng)程序中,并且明顯更加難以被例如防病毒或防間諜軟件掃描所檢測(cè)和預(yù)防。root kit還通過(guò)用接受秘密登錄組合的可執(zhí)行程序替代登錄機(jī)制來(lái)在系統(tǒng)中安裝“后門”,這進(jìn)而在無(wú)論對(duì)系統(tǒng)上的實(shí)際賬戶進(jìn)行何種改變的情況下都允許攻擊者訪問系統(tǒng)。PCT專利申請(qǐng)W02008/138653A1公開了一種預(yù)防計(jì)算機(jī)系統(tǒng)中所存儲(chǔ)的任意種類的計(jì)算機(jī)程序和數(shù)據(jù)被操控的方法和數(shù)據(jù)處理系統(tǒng)。計(jì)算機(jī)系統(tǒng)包括存儲(chǔ)裝置以及用于將存儲(chǔ)裝置切換到寫保護(hù)模式的裝置。在引導(dǎo)期間或者應(yīng)用程序的安裝過(guò)程期間提出了以下步驟(a)提示用戶執(zhí)行允許對(duì)可寫保護(hù)的存儲(chǔ)區(qū)域進(jìn)行臨時(shí)寫入的切換,其中切換裝置僅從操作系統(tǒng)之外可操作,(b)將安全相關(guān)信息存儲(chǔ)到可寫保護(hù)的存儲(chǔ)區(qū)域中,(C)提示用戶執(zhí)行人工切換以限制對(duì)可寫保護(hù)的存儲(chǔ)區(qū)域的寫入,(d)在計(jì)算機(jī)系統(tǒng)的其它運(yùn)行時(shí)間期間響應(yīng)于人工切換而限制對(duì)寫保護(hù)存儲(chǔ)區(qū)域的任何寫入訪問。
美國(guó)專利申請(qǐng)2007/0005919A1公開了一種計(jì)算機(jī)系統(tǒng)的虛擬保護(hù)系統(tǒng)(VPS),其中該VPS利用了虛擬機(jī)監(jiān)視器(VMM)技術(shù)。用對(duì)計(jì)算機(jī)系統(tǒng)的特權(quán)訪問引導(dǎo)第一操作系統(tǒng)。附加的操作系統(tǒng)對(duì)計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器的部分的訪問被限制為只讀訪問。然而,經(jīng)由第一操作系統(tǒng)模仿了對(duì)存儲(chǔ)器的部分的非限制訪問。在現(xiàn)有技術(shù)的計(jì)算機(jī)系統(tǒng)中,操作系統(tǒng)控制來(lái)自多個(gè)用戶的存儲(chǔ)器訪問操作和內(nèi)核進(jìn)程。這樣的用戶進(jìn)程例如可以是電子郵件程序或文本處理程序。操作系統(tǒng)僅針對(duì)一個(gè)或多個(gè)具體的用戶進(jìn)程允許對(duì)具體存儲(chǔ)器部分的寫入訪問,并且保護(hù)該具體存儲(chǔ)器部分而使其免于來(lái)自其它用戶進(jìn)程的寫入訪問嘗試。操作系統(tǒng)還禁止用戶進(jìn)程對(duì)已經(jīng)被指派給操作系統(tǒng)內(nèi)核進(jìn)程的存儲(chǔ)器部分進(jìn)行寫入訪問。然而,這種訪問控制可能無(wú)法保護(hù)操作系統(tǒng)免于黑客攻擊?;谲浖姆椒ㄔ陂L(zhǎng)時(shí)間內(nèi)是現(xiàn)有技術(shù)中已知的,并且其主要缺點(diǎn)在于一旦黑客獲得要被保護(hù)的計(jì)算機(jī)系統(tǒng)的管理員特權(quán)則它們能夠被繞過(guò)。因此,期望保護(hù)計(jì)算機(jī)系統(tǒng)使其免于日益富有經(jīng)驗(yàn)的攻擊并且避免已知保護(hù)系統(tǒng)的缺陷。
發(fā)明內(nèi)容
因此,本發(fā)明的實(shí)施例的目的是提供一種用于保護(hù)存儲(chǔ)器免于非授權(quán)修改的計(jì)算機(jī)化方法和計(jì)算機(jī)系統(tǒng)。根據(jù)本發(fā)明的第一方面,提供了一種用于在具有中央處理器(CPU)和工作存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)中保護(hù)操作系統(tǒng)(OS)免于非授權(quán)修改的計(jì)算機(jī)化方法。該方法包括以下步驟將OS的一部分預(yù)定義為要被寫保護(hù)。通過(guò)將OS加載到工作存儲(chǔ)器中而啟動(dòng)計(jì)算機(jī)系統(tǒng)。通過(guò)達(dá)到具體OS命令來(lái)完成加載預(yù)定義OS部分,該具體OS命令發(fā)起要由CPU執(zhí)行的寫保護(hù)機(jī)器代碼指令以不可逆地將包含預(yù)定義OS部分的工作存儲(chǔ)器部分切換到寫保護(hù)模式。在根據(jù)本發(fā)明的備選中,禁止發(fā)起將包含預(yù)定義OS部分的工作存儲(chǔ)器部分切換回允許寫入模式的OS命令。寫保護(hù)機(jī)器代碼指令由CPU提供。寫保護(hù)機(jī)器代碼指令可以通過(guò)訪問具體的存儲(chǔ)器地址來(lái)觸發(fā)。寫保護(hù)機(jī)器代碼指令與存儲(chǔ)關(guān)鍵字相關(guān)聯(lián),該存儲(chǔ)關(guān)鍵字通過(guò)向CPU指示寫保護(hù)模式來(lái)控制對(duì)包含預(yù)定義OS部分的工作存儲(chǔ)器部分的訪問權(quán)限。存儲(chǔ)關(guān)鍵字可以被概括為所存儲(chǔ)的描述對(duì)存儲(chǔ)器部分的訪問權(quán)限的信息。在根據(jù)本發(fā)明的另外的備選中,計(jì)時(shí)器組件在過(guò)去預(yù)定義時(shí)間間隔之后發(fā)起寫保護(hù)機(jī)器代碼指令。更優(yōu)選地,對(duì)預(yù)定義時(shí)間間隔的測(cè)量基于實(shí)時(shí)時(shí)鐘。備選地,對(duì)預(yù)定義時(shí)間間隔的測(cè)量是基于由OS所執(zhí)行的計(jì)數(shù)指令。再更優(yōu)選地,指令由虛擬環(huán)境的虛擬處理單元執(zhí)行。更優(yōu)選地,對(duì)預(yù)定義時(shí)間間隔的測(cè)量基于虛擬環(huán)境的虛擬處理單元的計(jì)數(shù)周期。在根據(jù)本發(fā)明的另一備選中,允許寫入機(jī)器代碼指令由OS之外的重置進(jìn)程發(fā)起,該重置進(jìn)程要由CPU執(zhí)行以將包含預(yù)定義OS部分的存儲(chǔ)器部分切換到允許寫入模式。更優(yōu)選地,重置進(jìn)程由OS之外的管理程序提供,并且該管理程序向OS提供虛擬環(huán)境。根據(jù)本發(fā)明的第二方面,提供了一種中央處理器(CPU),其包括用于執(zhí)行寫保護(hù)機(jī)器代碼指令以不可逆地將包含操作系統(tǒng)(OS)的預(yù)定義部分的工作存儲(chǔ)器的部分切換到寫保護(hù)模式的適配裝置。通過(guò)將OS加載到工作存儲(chǔ)器中而啟動(dòng)計(jì)算機(jī)系統(tǒng),并且通過(guò)達(dá)到發(fā)起要由CPU執(zhí)行的寫保護(hù)機(jī)器代碼指令的具體OS命令來(lái)完成加載預(yù)定義OS部分。
根據(jù)本發(fā)明的第三方面,提供了一種計(jì)算機(jī)系統(tǒng),其包括要被保護(hù)免于非授權(quán)修改的操作系統(tǒng)(OS)、中央處理器(CPU)和工作存儲(chǔ)器。OS的一部分被預(yù)定義為要被寫保護(hù)。該計(jì)算機(jī)系統(tǒng)的適配裝置通過(guò)將OS加載到工作存儲(chǔ)器中而啟動(dòng)計(jì)算機(jī)系統(tǒng),并且通過(guò)達(dá)到具體OS命令來(lái)完成加載預(yù)定義OS部分,該具體OS命令發(fā)起要由CPU執(zhí)行的寫保護(hù)機(jī)器代碼指令以不可逆地將包含預(yù)定義OS部分的工作存儲(chǔ)器部分切換到寫保護(hù)模式。根據(jù)本發(fā)明的第四方面,提供了一種用于保護(hù)操作系統(tǒng)(OS)免于非授權(quán)修改的計(jì)算機(jī)程序產(chǎn)品。該計(jì)算機(jī)程序產(chǎn)品包括具有實(shí)現(xiàn)于其中的計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用介質(zhì)。該計(jì)算機(jī)可用程序代碼被配置為執(zhí)行第一方面的步驟。附加的特征和優(yōu)勢(shì)通過(guò)本發(fā)明的技術(shù)而得以實(shí)現(xiàn)。本發(fā)明的其它實(shí)施例和方面在這里進(jìn)行更為詳細(xì)地描述并且被認(rèn)為是本發(fā)明的一部分。參考描述和附圖以便更好地理解具有優(yōu)勢(shì)和特征的本發(fā)明。
在總結(jié)本說(shuō)明書的權(quán)利要求中,被認(rèn)為是本發(fā)明的主題被特別地指出并明確地要求保護(hù)。本發(fā)明的以上以及其它目的、特征和優(yōu)點(diǎn)通過(guò)以下結(jié)合附圖所進(jìn)行的詳細(xì)描述是顯而易見的,其中圖I圖示了根據(jù)本發(fā)明的實(shí)施例的用于保護(hù)操作系統(tǒng)的方法的流程圖。圖2-圖5圖示了根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)的不同階段的框圖。圖6圖示了根據(jù)現(xiàn)有技術(shù)的計(jì)算機(jī)系統(tǒng)的詳細(xì)框圖。圖7圖示了根據(jù)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng)的詳細(xì)框圖。
具體實(shí)施例方式在優(yōu)選實(shí)施例中,已經(jīng)通過(guò)擴(kuò)展現(xiàn)有技術(shù)的計(jì)算機(jī)系統(tǒng)的軟件和硬件能力實(shí)現(xiàn)了針對(duì)存儲(chǔ)器內(nèi)容的不希望出現(xiàn)的操控的保護(hù)。操作系統(tǒng)可以標(biāo)識(shí)出通常被病毒或黑客攻擊所改變的關(guān)鍵安全信息,并且將該信息加載到存儲(chǔ)器中能夠從允許寫入模式切換為寫保護(hù)模式的具體部分中。在加載過(guò)程期間,存儲(chǔ)器部分處于允許寫入的模式,也就是說(shuō),計(jì)算機(jī)系統(tǒng)的處理器的機(jī)器代碼指令能夠改變特定存儲(chǔ)器位置的內(nèi)容。加載可以作為操作系統(tǒng)的引導(dǎo)過(guò)程、操作系統(tǒng)組件的安裝或者操作系統(tǒng)的初始化的一部分。加載并不必被限制到操作系統(tǒng)的內(nèi)核組件,而是可以被應(yīng)用于關(guān)鍵任務(wù)應(yīng)用的安全相關(guān)組件。要以這種方式進(jìn)行保護(hù)的信息可以包括例如Windows或Linux操作系統(tǒng)核心的一些可執(zhí)行代碼,以及例如Linux系統(tǒng)調(diào)用表的關(guān)鍵安全數(shù)據(jù)結(jié)構(gòu)。在加載完成之后,具體存儲(chǔ)器部分被切換到寫保護(hù)模式,并且操作系統(tǒng)內(nèi)核和應(yīng)用繼續(xù)正常的系統(tǒng)操作。在正常的系統(tǒng)操作期間需要被改變的數(shù)據(jù)結(jié)構(gòu)(例如用于管理Linux中的用戶空間進(jìn)程的數(shù)據(jù)結(jié)構(gòu))被存儲(chǔ)在并非可寫保護(hù)的正常的存儲(chǔ)器中。在正常的系統(tǒng)操作期間,存儲(chǔ)在寫保護(hù)的存儲(chǔ)器區(qū)域中的程序代碼和關(guān)鍵安全數(shù)據(jù)可以像存儲(chǔ)在正常的隨機(jī)存取存儲(chǔ)器(RAM)中那樣被讀取。然而,寫入對(duì)于 應(yīng)用、操作系統(tǒng)內(nèi)核以及對(duì)于任何進(jìn)程都是禁止的,直至寫保護(hù)被再次禁用。以下描述對(duì)應(yīng)的機(jī)制。寫保護(hù)預(yù)防了攻擊者對(duì)安全相關(guān)信息特別是操作系統(tǒng)的部分進(jìn)行修改。當(dāng)攻擊者試圖向這樣的寫保護(hù)存儲(chǔ)器區(qū)域進(jìn)行寫入時(shí),會(huì)產(chǎn)生警報(bào)以指示檢測(cè)到攻擊嘗試。優(yōu)選實(shí)施例公開了寫保護(hù)管理的實(shí)現(xiàn)方式,其基于用于在寫保護(hù)模式和允許寫入模式之間進(jìn)行轉(zhuǎn)換的觸發(fā)器以及這些觸發(fā)器的實(shí)現(xiàn)方式集合。將可寫保護(hù)的存儲(chǔ)器區(qū)域切換到允許寫入模式的觸發(fā)器可以是以下三種類型之首先,硬件上電或硬件重置操作通常通過(guò)人工開動(dòng)機(jī)械開關(guān)或按鈕來(lái)觸發(fā)。備選地,可以想象由外部硬件組件所控制的電子開關(guān)。在這些上電或重置操作之后,可寫保護(hù)的存儲(chǔ)器的初始模式應(yīng)當(dāng)為允許寫入。在正常的系統(tǒng)操作期間,開關(guān)可以對(duì)存儲(chǔ)器的所有部分或僅具體的可寫保護(hù)的部分起作用。其次,觸發(fā)器可以是針對(duì)存儲(chǔ)器的允許寫入的具體部分的軟件命令。該軟件命令必須以其無(wú)法從所要保護(hù)的操作系統(tǒng)之內(nèi)發(fā)出的方式而得到特權(quán)。在虛擬環(huán)境中,虛擬機(jī)(VM)運(yùn)行例如Linux的訪客操作系統(tǒng)。提供虛擬環(huán)境或主機(jī)操作系統(tǒng)的管理程序處于訪客操作系統(tǒng)之外。管理程序可以被適配為發(fā)出軟件命令以用于將這些具體存儲(chǔ)器部分切換到允許寫入模式。其本質(zhì)在于必須不允許具有所要保護(hù)的操作系統(tǒng)的管理員權(quán)限的特權(quán)用戶執(zhí)行該軟件命令。
第三,在虛擬環(huán)境中,所要保護(hù)的子系統(tǒng)的啟動(dòng)或重置可以以與硬件上電或重置相同的方式將可寫保護(hù)的存儲(chǔ)器區(qū)切換到允許寫入模式。子系統(tǒng)可以是訪客操作系統(tǒng)或具體進(jìn)程環(huán)境。三種類型的觸發(fā)器可以如下將可寫保護(hù)的存儲(chǔ)器區(qū)域切換到寫保護(hù)模式首先,可以提示用戶經(jīng)由機(jī)械或電子開關(guān)或者通過(guò)選擇⑶I元件或錄入軟件命令而經(jīng)由圖形用戶界面來(lái)激活寫保護(hù)模式。其次,可以通過(guò)由所要保護(hù)的操作系統(tǒng)所發(fā)出的軟件命令來(lái)激活寫保護(hù)模式。該軟件命令優(yōu)選地在所要保護(hù)的信息被寫入可寫保護(hù)的存儲(chǔ)器區(qū)域之后立即執(zhí)行。該軟件命令可以在引導(dǎo)或安裝過(guò)程的具體較早階段完成時(shí)被發(fā)出。這些具體較早階段通常涉及操作系統(tǒng)的具體組件。在動(dòng)態(tài)配置信息被確定并寫入可寫保護(hù)的存儲(chǔ)器區(qū)域時(shí),這些階段還可以包括組件的初始化步驟。在引導(dǎo)過(guò)程的較晚階段允許對(duì)用戶應(yīng)用進(jìn)程進(jìn)行訪問之前對(duì)該信息進(jìn)行寫保護(hù)是有利的。該軟件命令可以指定存儲(chǔ)器的哪些部分應(yīng)當(dāng)被切換到寫保護(hù)模式。該軟件命令可以為以下之一 (a)處理器硬件所提供的用來(lái)執(zhí)行切換的具體機(jī)器代碼指令;(b)使得處理器保存其執(zhí)行狀態(tài)并且開始執(zhí)行包括用于改變寫保護(hù)模式的代碼部分的中斷處理程序的具體硬件中斷;(C)當(dāng)程序代碼指令試圖訪問預(yù)定義存儲(chǔ)器地址或預(yù)定義地址范圍之外的存儲(chǔ)器地址時(shí),這可以在寫入訪問生效之前觸發(fā)訪問嘗試的存儲(chǔ)器地址到寫保護(hù)模式的切換。當(dāng)從允許寫入模式到寫保護(hù)模式的轉(zhuǎn)換可被來(lái)自所要保護(hù)的操作系統(tǒng)內(nèi)的軟件命令所觸發(fā)時(shí),模式改變必須具有“陷門語(yǔ)義(trapdoor semantics)”。這意味著切換對(duì)于所要保護(hù)的操作系統(tǒng)而言是不可逆的。從操作系統(tǒng)內(nèi)必須不可能從寫保護(hù)模式變回允許寫入模式。第三,到寫保護(hù)模式的切換可以在已經(jīng)過(guò)去預(yù)定義延遲時(shí)間之后由計(jì)時(shí)器組件所發(fā)出的信號(hào)或軟件命令來(lái)觸發(fā)。優(yōu)選地,計(jì)時(shí)器組件處于所要保護(hù)的操作系統(tǒng)之外。其可以以硬件、固件或者以虛擬環(huán)境的管理程序來(lái)實(shí)現(xiàn)。計(jì)時(shí)器可以被實(shí)現(xiàn)為被初始化為預(yù)定義正值的計(jì)數(shù)器。以下事件減小計(jì)數(shù)器數(shù)值掛鐘的計(jì)時(shí)器滴答、硬件處理器的機(jī)器周期以及由硬件處理器所執(zhí)行的寫指令。在虛擬環(huán)境的情況下,對(duì)應(yīng)的減小事件是虛擬機(jī)的機(jī)器周期或指令計(jì)數(shù)。所要保護(hù)的存儲(chǔ)器部分在計(jì)數(shù)器值為正時(shí)保持為允許寫入模式,并且一旦計(jì)數(shù)器數(shù)值達(dá)到零時(shí)就進(jìn)入寫保護(hù)模式。由軟件命令或計(jì)時(shí)器信號(hào)自動(dòng)激活寫保護(hù)模式相比人工激活的優(yōu)勢(shì)在于其不會(huì)被負(fù)責(zé)管理的用戶所忘記。優(yōu)選地,軟件命令與計(jì)時(shí)器信號(hào)相結(jié)合。當(dāng)程序員忘記了軟件命令或程序故障或者黑客攻擊已經(jīng)預(yù)防了其發(fā)出時(shí),存儲(chǔ)器仍然將在過(guò)去了預(yù)定義延遲時(shí)間之后響應(yīng)于計(jì)時(shí)器信號(hào)而被寫保護(hù)。
對(duì)可寫保護(hù)的存儲(chǔ)器進(jìn)行組織具有兩種變化形式??梢葬槍?duì)兩種變化形式實(shí)現(xiàn)優(yōu)選實(shí)施例在第一種變化形式中,存儲(chǔ)器的地址空間被劃分為兩個(gè)部分能夠被寫保護(hù)的第一部分以及非可寫保護(hù)的第二部分。根據(jù)特定架構(gòu),利用基于每個(gè)存儲(chǔ)器芯片或每個(gè)存儲(chǔ)器組的保護(hù)的簡(jiǎn)單方法,這是可行的。第一種變化形式易于以低成本實(shí)現(xiàn)并且具有低的被黑客攻擊所誤用的風(fēng)險(xiǎn)。不利的是,操作系統(tǒng)軟件必須被適配為支持這種存儲(chǔ)器架構(gòu)。這涉及經(jīng)適配的操作系統(tǒng)設(shè)計(jì)、編程語(yǔ)言擴(kuò)展、編譯程序擴(kuò)展,以及加載程序/鏈接程序擴(kuò)展。在第二種變化形式中,用戶所定義的保護(hù)方案包括存儲(chǔ)器地址空間的彼此獨(dú)立的多個(gè)區(qū)。這些區(qū)不必是連續(xù)的。程序員或系統(tǒng)操作人員自由指定哪些地址范圍要被保護(hù)。所指定的被保護(hù)存儲(chǔ)器區(qū)域的列表必須在安全的存儲(chǔ)器位置進(jìn)行存儲(chǔ)和維護(hù),這可能是難以實(shí)現(xiàn)的。有利的是,第二種變化形式提供了高度的靈活性并且即使在操作系統(tǒng)軟件并非被設(shè)計(jì)為支持優(yōu)選實(shí)施例的存儲(chǔ)器保護(hù)機(jī)制的情況下也可以與所有操作系統(tǒng)軟件相結(jié)合。其缺點(diǎn)在于高硬件成本、用于確定那些要求保護(hù)的存儲(chǔ)器范圍的高度勞動(dòng),以及來(lái)自那些存儲(chǔ)器范圍的被程序代碼或系統(tǒng)操作人員動(dòng)作錯(cuò)誤指定的高出錯(cuò)風(fēng)險(xiǎn)。本發(fā)明的實(shí)施例保證了預(yù)防向?qū)懕Wo(hù)存儲(chǔ)器區(qū)域中存儲(chǔ)信息的任何嘗試。然而,這樣的嘗試指示操作系統(tǒng)軟件具有程序代碼錯(cuò)誤或者操作系統(tǒng)被攻擊。出于審計(jì)和安全的目的,這樣的非授權(quán)訪問嘗試可以觸發(fā)以下安全相關(guān)動(dòng)作中的至少一個(gè)第一個(gè)動(dòng)作可以是例如通過(guò)燈的閃爍而經(jīng)由硬件組件的向系統(tǒng)操作人員的訪問嘗試警報(bào)。第二個(gè)動(dòng)作可以是經(jīng)由操作系統(tǒng)或其它軟件組件的通知??梢栽诶鏛inux syslog的系統(tǒng)日志中記錄條目或者向系統(tǒng)操作人員發(fā)送電子郵件。第三個(gè)動(dòng)作包括終止或掛起引起訪問違例的操作系統(tǒng)進(jìn)程。操作系統(tǒng)進(jìn)程可能是內(nèi)核或應(yīng)用進(jìn)程。這些第三個(gè)動(dòng)作可以被擴(kuò)展到用做出非法寫操作的用戶賬號(hào)的許可所啟動(dòng)的所有操作系統(tǒng)進(jìn)程。根據(jù)優(yōu)選實(shí)施例,圖I圖示了用于保護(hù)操作系統(tǒng)(OS)免于非授權(quán)修改的方法的流程圖。計(jì)算機(jī)系統(tǒng)具有中央處理器(CPU)和工作存儲(chǔ)器。在框101中,OS的一部分被預(yù)定義為被寫保護(hù)。在框102中,通過(guò)將OS加載到工作存儲(chǔ)器中啟動(dòng)計(jì)算機(jī)系統(tǒng)。在框103中,通過(guò)達(dá)到具體的OS命令來(lái)完成加載預(yù)定義OS部分,該OS命令發(fā)起要由CPU執(zhí)行以將包含預(yù)定義OS部分的工作存儲(chǔ)器部分不可逆地切換到寫保護(hù)模式的寫保護(hù)機(jī)器代碼指令。圖2至圖5圖示了計(jì)算機(jī)系統(tǒng)200、300、400和500的不同階段的框圖。計(jì)算機(jī)系統(tǒng)具有中央處理器(CPU) 201、301、401和501,工作存儲(chǔ)器202、302、402和502,以及用于提供操作系統(tǒng)(OS)的存儲(chǔ)裝置203、303、403和503。在圖2中,OS 221的部分222被預(yù)定義為要被寫保護(hù)。該部分222具有比OS的其它部分223、224更暗的陰影。程序代碼部分211被存儲(chǔ)在計(jì)算機(jī)系統(tǒng)200中。根據(jù)這些程序代碼部分,CPU 201通過(guò)將OS加載到工作存儲(chǔ)器202中來(lái)啟動(dòng)計(jì)算機(jī)系統(tǒng)。加載的開始以框箭頭241為標(biāo)志。在將操作系統(tǒng)數(shù)據(jù)加載到存儲(chǔ)器區(qū)域231中的同時(shí),該存儲(chǔ)器區(qū)域處于允許寫入模式。該模式由淺陰影所指示。在圖3中,CPU 301通過(guò)達(dá)到具體的OS命令312來(lái)完成加載預(yù)定義OS部分322,該OS命令312在步驟361中發(fā)起要被CPU執(zhí)行以在步驟326中將包含預(yù)定義OS部分的工作存儲(chǔ)器部分332不可逆地切換到寫保護(hù)模式的寫保護(hù)機(jī)器代碼指令351。加載該預(yù)定義OS部分的完成由處于框箭頭341頂端的條所表示。OS的預(yù)定義部分332具有比允許寫入的其它OS部分333、334更深的陰影。在圖4中,計(jì)時(shí)器組件404在步驟463中發(fā)起寫保護(hù)機(jī)器代碼指令451,其要在過(guò)、去了預(yù)定義時(shí)間間隔之后由CPU 401在步驟464中執(zhí)行。該時(shí)間測(cè)量?jī)?yōu)選地在開始將OS421或預(yù)定義OS部分422加載到工作存儲(chǔ)器402中時(shí)在步驟462中開始。加載OS的開始由框箭頭441所指示。計(jì)時(shí)器組件404優(yōu)選地處于OS 431之外。在圖5中,CPU 501通過(guò)發(fā)起允許寫入機(jī)器代碼指令552以在步驟561中將包含預(yù)定義OS部分522的存儲(chǔ)器部分532切換到允許寫入模式來(lái)執(zhí)行OS 531之外的重置進(jìn)程的程序代碼部分513。在允許寫入模式中,OS 531的該存儲(chǔ)器部分532和其它存儲(chǔ)器部分533、534具有相同的淺陰影。圖6圖示了根據(jù)現(xiàn)有技術(shù)的計(jì)算機(jī)系統(tǒng)600的詳細(xì)框圖。中央處理器硬件的核心是例如總線系統(tǒng)的內(nèi)部通信裝置601,其對(duì)存儲(chǔ)器控制單元602、算術(shù)邏輯單元(ALU) 603、浮點(diǎn)單元(FPU) 604和其它處理器組件605、寄存器606、指令解碼器607、指令指針組件608和重置組件609進(jìn)行互連。指令解碼器和指令指針組件提供處理器硬件和操作系統(tǒng)軟件之間的接口,也就是所要處理的機(jī)器代碼指令。機(jī)器代碼指令的序列611可以包括“存儲(chǔ)訪問權(quán)限”指令612和613?,F(xiàn)有技術(shù)的指令解碼器可以處理該“存儲(chǔ)訪問權(quán)限”指令的一個(gè)操作代碼。第一參數(shù)指定了二進(jìn)制標(biāo)志,例如“O”為“允許寫入”而“I”為“寫保護(hù)”。存儲(chǔ)訪問權(quán)限指令的另外的參數(shù)可以指定至少一個(gè)存儲(chǔ)器地址。取決于存儲(chǔ)器架構(gòu),該地址可以是指一個(gè)單獨(dú)存儲(chǔ)器頁(yè)面或存儲(chǔ)器頁(yè)幀。存儲(chǔ)器頁(yè)面是相同大小的存儲(chǔ)塊,例如4k字節(jié)、8k字節(jié)、16k字節(jié)等。可以使用第二存儲(chǔ)器地址或頁(yè)面計(jì)數(shù)來(lái)指定多個(gè)頁(yè)面的較大存儲(chǔ)器范圍。寄存器606提供用于少量數(shù)據(jù)的存儲(chǔ),其內(nèi)容例如可以比隨機(jī)存取存儲(chǔ)器中所存儲(chǔ)的數(shù)據(jù)更快地被訪問。算術(shù)邏輯單元603和浮點(diǎn)單元604是執(zhí)行算術(shù)和邏輯運(yùn)算以及浮點(diǎn)運(yùn)算的數(shù)字電路。存儲(chǔ)器控制單元602是總線系統(tǒng)601和隨機(jī)存取存儲(chǔ)器(RAM) 614或者簡(jiǎn)稱為存儲(chǔ)器之間的硬件接口,其獨(dú)立于存儲(chǔ)位置而提供針對(duì)數(shù)據(jù)的快速存儲(chǔ)訪問。存儲(chǔ)器被用于數(shù)據(jù)的持久或暫時(shí)存儲(chǔ)。存儲(chǔ)器控制單元602包括用來(lái)臨時(shí)存儲(chǔ)數(shù)據(jù)以供頻繁訪問來(lái)避免來(lái)自存儲(chǔ)器訪問操作的延遲時(shí)間的高速緩存615。訪問校驗(yàn)組件616存儲(chǔ)指定具有例如寫保護(hù)的受限訪問的存儲(chǔ)器區(qū)的存儲(chǔ)器訪問信息。訪問權(quán)限被編碼為存儲(chǔ)在與存儲(chǔ)器614的存儲(chǔ)位置相關(guān)聯(lián)的表格條目中的數(shù)字。這些表格被存儲(chǔ)在訪問校驗(yàn)組件。當(dāng)機(jī)器代碼指令試圖對(duì)存儲(chǔ)器位置進(jìn)行寫入時(shí),該數(shù)字可以被用來(lái)驗(yàn)證機(jī)器代碼指令所屬的進(jìn)程是否具有修改該存儲(chǔ)器位置的適當(dāng)?shù)脑L問權(quán)限。存儲(chǔ)器控制器617獨(dú)立于ALU、FPU和其它處理器組件來(lái)對(duì)要存儲(chǔ)在存儲(chǔ)器或從存儲(chǔ)器獲取的數(shù)據(jù)進(jìn)行處理。響應(yīng)于重置信號(hào),重置組件可以將處理器的存儲(chǔ)組件的內(nèi)容重置為初始狀態(tài)。這可以包括從存儲(chǔ)器、高速緩存和寄存器去除所存儲(chǔ)的信息,并且將指令指針設(shè)置到所要處理的第一機(jī)器代碼指令的初始地址。優(yōu)選地,存儲(chǔ)器訪問信息也被重置以允許對(duì)存儲(chǔ)器的大多數(shù)或所有部分的最大訪問權(quán)限。重置組件可以由例如重置按鈕的機(jī)電開關(guān)618或者通過(guò)硬件上電來(lái)啟動(dòng)?,F(xiàn)有技術(shù)的關(guān)鍵問題在于相同“存儲(chǔ)訪問權(quán)限”的機(jī)器代碼指令被用于存儲(chǔ)器部分的允許寫入和禁止寫入。因此,兩個(gè)動(dòng)作具有相同的特權(quán)級(jí)別。然而,將存儲(chǔ)器部分切換到允許寫入模式比切換到寫保護(hù)模式是更具安全敏感性的。如以下所說(shuō)明的,實(shí)施例通過(guò)提供用于允許寫入和禁止寫入的兩種不同機(jī)器代碼指令而解決了該問題。就以下意義而言,其無(wú)法從所要保護(hù)的操作系統(tǒng)內(nèi)而是僅能夠從操作系統(tǒng)之外被發(fā)起,例如其僅能夠從固件組件或者從向操作系統(tǒng)提供虛擬環(huán)境的管理程序來(lái)發(fā)起,允許寫入機(jī)器代碼指令需要具有特權(quán)。圖7圖示了根據(jù)優(yōu)選實(shí)施例的計(jì)算機(jī)系統(tǒng)700的詳細(xì)框圖。內(nèi)部通信總線系統(tǒng)701、ALU 703、FPU 704、其它處理器組件705、指令指針組件708和寄存器706大體與現(xiàn)有技術(shù)類似地進(jìn)行工作。該實(shí)施例與現(xiàn)有技術(shù)的不同之處在于,存儲(chǔ)器614被劃分為可保護(hù)存儲(chǔ)器718和標(biāo)準(zhǔn)存儲(chǔ)器714。存儲(chǔ)器控制單元702的訪問校驗(yàn)組件716如圖6中所描繪的被用來(lái)維護(hù)對(duì)標(biāo)準(zhǔn)存儲(chǔ)器714的部分的訪問權(quán)限??杀Wo(hù)存儲(chǔ)器718的訪問權(quán)限由存儲(chǔ)器控制單元的附加陷門(trap door)組件719進(jìn)行控制。存儲(chǔ)器控制器717對(duì)從標(biāo)準(zhǔn)存儲(chǔ) 器714和可保護(hù)存儲(chǔ)器718 二者所獲取并且在標(biāo)準(zhǔn)存儲(chǔ)器714進(jìn)行存儲(chǔ)的數(shù)據(jù)進(jìn)行處理。在被切換到寫保護(hù)模式之前,數(shù)據(jù)僅允許被存儲(chǔ)在可保護(hù)存儲(chǔ)器718。存儲(chǔ)器控制器717獨(dú)立于ALU、FPU和其它處理單元進(jìn)行操作。該實(shí)施例的指令解碼器707被適配為處理寫保護(hù)機(jī)器代碼指令720以將可保護(hù)存儲(chǔ)器718的一部分切換到寫保護(hù)模式。寫保護(hù)機(jī)器代碼指令的一個(gè)或多個(gè)參數(shù)可以指定可保護(hù)存儲(chǔ)器的一個(gè)或多個(gè)存儲(chǔ)器頁(yè)面的至少一個(gè)存儲(chǔ)器地址。獨(dú)立于操作系統(tǒng)軟件,超級(jí)特權(quán)解碼器722可以處理由固件組件或管理程序721所提供的單獨(dú)機(jī)器代碼指令723。超級(jí)權(quán)限解碼器被適配為處理允許寫入機(jī)器代碼指令724以將可保護(hù)存儲(chǔ)器718的一部分切換到允許寫入模式。優(yōu)選地,指令解碼器707并不被適配為處理該允許寫入機(jī)器代碼指令。允許寫入機(jī)器代碼指令的一個(gè)或多個(gè)參數(shù)可以指定可保護(hù)存儲(chǔ)器的一個(gè)或多個(gè)存儲(chǔ)器頁(yè)面的至少一個(gè)存儲(chǔ)器地址。經(jīng)解碼的允許寫入機(jī)器代碼指令從超級(jí)特權(quán)解碼器經(jīng)由陷門重置組件725輸送至存儲(chǔ)器控制單元702的陷門組件719。隨后,陷門組件將可保護(hù)存儲(chǔ)器的所指定部分切換到允許寫入模式。陷門重置組件725優(yōu)選地從內(nèi)部總線系統(tǒng)701解耦合。重置組件709將硬件上電或硬件重置信號(hào)不僅切換到總線系統(tǒng)701而且還切換到陷門重置組件725。該組件處理重置信號(hào)以將可保護(hù)存儲(chǔ)器的大多數(shù)或所有部分切換到允許寫入模式。寫保護(hù)機(jī)器代碼指令720和允許寫入機(jī)器代碼指令724具有不同的特權(quán)級(jí)別。操作系統(tǒng)的機(jī)器代碼指令711僅能夠發(fā)起寫保護(hù)機(jī)器代碼指令,而不能發(fā)起允許寫入機(jī)器代碼指令。如以上所描述的,用于操作系統(tǒng)的指令解碼器可能無(wú)法對(duì)允許寫入機(jī)器代碼指令進(jìn)行解碼。在備選實(shí)施例中,操作系統(tǒng)機(jī)器代碼指令的編譯程序可以僅支持生成寫保護(hù)機(jī)器代碼指令,而抑制允許寫入機(jī)器代碼指令的生成。在IBM的Z/OS 和其它操作系統(tǒng)下,利用多個(gè)存儲(chǔ)關(guān)鍵字或存儲(chǔ)保護(hù)關(guān)鍵字對(duì)中央存儲(chǔ)設(shè)備中的信息進(jìn)行保護(hù)而免于非授權(quán)使用。存儲(chǔ)設(shè)備中被稱作存儲(chǔ)關(guān)鍵字的控制字段與中央存儲(chǔ)設(shè)備的每個(gè)4k字節(jié)幀相關(guān)聯(lián)。具體的關(guān)鍵字被分配給系統(tǒng)中所執(zhí)行的每項(xiàng)工作。當(dāng)進(jìn)行請(qǐng)求以修改中央存儲(chǔ)位置的內(nèi)容時(shí),就將與該請(qǐng)求相關(guān)聯(lián)的具體關(guān)鍵字與存儲(chǔ)關(guān)鍵字進(jìn)行比較。如果關(guān)鍵字匹配或者程序利用主關(guān)鍵字O執(zhí)行,則請(qǐng)求得到滿足。如果與請(qǐng)求相關(guān)聯(lián)的關(guān)鍵字與存儲(chǔ)關(guān)鍵字不匹配,則系統(tǒng)拒絕該請(qǐng)求并且發(fā)出程序異常中斷。例如,在z/OS中,具體關(guān)鍵字存儲(chǔ)在分配給每個(gè)作業(yè)的程序狀態(tài)字(PSW)的4個(gè)比特中,并且允許隔離多達(dá)16個(gè)組件。存儲(chǔ)關(guān)鍵字可以使用“存儲(chǔ)訪問權(quán)限”指令進(jìn)行更新,例如,z/OS中的SET_STORAGE_KEY_EXTENDED (SSKE)指令。然而,存儲(chǔ)關(guān)鍵字并沒有提供針對(duì)操作系統(tǒng)內(nèi)側(cè)所運(yùn)行的惡意代碼的保護(hù)。
在根據(jù)本發(fā)明的實(shí)施例中,可以向存儲(chǔ)關(guān)鍵字的位增加WRITE_PROTECTED位。當(dāng)WRITE_PROTECTED位的值為“ I ”時(shí),對(duì)應(yīng)的幀處于寫保護(hù)模式中,否則該幀就處于允許寫入模式中。在SSKE指令不被允許切換WRITE_PROTECTED位時(shí),處理器提供WRITE_PR0TECT指令和WRITE_ENABLE指令以改變WRITE_PROTECTED位的值。WRITE_PR0TECT指令設(shè)置一個(gè)或多個(gè)幀的WRITE_PROTECTED位的值“ I ”以保護(hù)對(duì)應(yīng)的存儲(chǔ)器部分中所存儲(chǔ)的數(shù)據(jù)免于修改。WRITE_ENABLE指令設(shè)置WRITE_PROTECTED位的數(shù)值“O”以使得能夠?qū)Υ鎯?chǔ)在一個(gè)或多個(gè)幀中的數(shù)據(jù)進(jìn)行寫入操作。在備選實(shí)施例中,SSKE指令可以僅將WRITE_PROTECTED位設(shè)置為值“ I ”,但是并不將其復(fù)位為值“O”。僅允許附加的WRITE_ENABLE指令將WRITE_PROTECTED位復(fù)位為值“O”。WRITE_PROTECTED位也可以具有值“O”以表示寫保護(hù)狀態(tài)。在另外的備選實(shí)施例中,處理器提供了涉及一個(gè)或多個(gè)存儲(chǔ)器幀的FINALIZE_ST0RAGE_KEY指令。該FINALIZE_STORAGE_KEY指令不允許任何未來(lái)的SSKE指令改變由之前的SSKE指令所設(shè)置的存儲(chǔ)關(guān)鍵字值。FINALIZE_STORAGE_KEY指令可以為對(duì)應(yīng)的存儲(chǔ)器幀設(shè)置具體的KEY_FINALIZED標(biāo)志。僅允許附加的INITIALIZE_STORAGE_KEY指令來(lái)重置具體KEY_FINALIZED標(biāo)志以指示允許使用SSKE指令的存儲(chǔ)關(guān)鍵字的改變。INITIALIZE_ST0RAGE_KEY指令甚至可以被適配為將完整的存儲(chǔ)關(guān)鍵字的內(nèi)容重置為初始值。該實(shí)施例的硬件和軟件設(shè)計(jì)并不支持操作系統(tǒng)的程序代碼部分和接口執(zhí)行WRITE_ENABLE指令和INITIALIZE_STORAGE_KEY指令。僅僅支持外部的超級(jí)特權(quán)解碼器或管理程序組件來(lái)支持這些WRITE_ENABLE或INITIALIZE_STORAGE_KEY指令。這里所使用的術(shù)語(yǔ)僅是為了描述特定實(shí)施例而并非意在對(duì)本發(fā)明進(jìn)行限制。如這里所使用的,除非上下文另外清楚地指出,否則單數(shù)形式“一個(gè)”、“一”和“該”意在也包含復(fù)數(shù)形式。另外將要理解的是,當(dāng)在該說(shuō)明書中使用術(shù)語(yǔ)“包括”和/或“包含”時(shí),其指定存在所提到的特征、整體、步驟、操作、元素和/或組件,但是并不排除存在或添加一個(gè)或多個(gè)其他特征、整體、步驟、操作、元素、組件和/或其組合。以上參考根據(jù)本發(fā)明實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程示和/或框圖對(duì)本發(fā)明的多個(gè)方面進(jìn)行了描述。將要理解的是,流程示和/或框圖中的每個(gè)方框以及流程示和/或框圖中方框的組合可以通過(guò)計(jì)算機(jī)程序指令來(lái)實(shí)施。這些計(jì)算機(jī)程序指令可以被提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器來(lái)產(chǎn)生機(jī)器,以使得經(jīng)由計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的指令創(chuàng)建用于實(shí)現(xiàn)流程圖和/或框圖的一個(gè)或多個(gè)方框中所指定的功能/動(dòng)作的裝置。這些計(jì)算機(jī)程序指令也可以被存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,其能夠指導(dǎo)計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備以特定方式進(jìn)行工作,以使得存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令產(chǎn)生包括實(shí)施流程圖和/或框圖中的一個(gè)或多個(gè)方框中所指定的功能/動(dòng)作的指令的制品。計(jì)算機(jī)程序指令還可以被加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上以使得在計(jì)算機(jī)、其它可編程裝置或其它設(shè)備上執(zhí)行一系列操作步驟以產(chǎn)生計(jì)算機(jī)實(shí)施的處理,以使得在計(jì)算機(jī)或其它可編程裝置上執(zhí)行的指令提供用于實(shí)施流程圖和/或框圖中的一個(gè)或多個(gè)方框中所指定的功能/動(dòng)作的處理。附圖中的流程圖和框示了根據(jù)本發(fā)明各個(gè)實(shí)施例的系統(tǒng)、方法和計(jì)算機(jī)程序產(chǎn)品的可能實(shí)施方式的架構(gòu)、功能和操作。就此,流程圖或框圖中的每個(gè)方框可以表示代碼的部分、模塊或分段,其包括一 個(gè)或多個(gè)用于實(shí)施(多個(gè))指定邏輯功能的可執(zhí)行指令。應(yīng)當(dāng)注意的是,在一些備選實(shí)施例中,方框中所提到的功能可以按照不同于圖中所提到的順序發(fā)生。例如,根據(jù)所涉及的功能,連續(xù)示出的兩個(gè)方框?qū)嶋H上可以大體同時(shí)執(zhí)行,或者方框有時(shí)可以以相反的順序來(lái)執(zhí)行。還將注意到的是,框圖和/或流程示中的每個(gè)方框以及框圖和/或流程示中方框的組合可以通過(guò)執(zhí)行特定的功能或動(dòng)作的專用的基于硬件的系統(tǒng)或者專用的硬件和計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。雖然以上已經(jīng)參考了本發(fā)明的特定實(shí)施例,但是本領(lǐng)域技術(shù)人員將會(huì)意識(shí)到的是,可以對(duì)這些實(shí)施例進(jìn)行改變而并不背離本發(fā)明的原理和精神,本發(fā)明的范圍由所附權(quán)利要求來(lái)限定。
權(quán)利要求
1.一種用于在具有中央處理器(CPU)和工作存儲(chǔ)器的計(jì)算機(jī)系統(tǒng)中保護(hù)操作系統(tǒng)(OS)免于非授權(quán)修改的計(jì)算機(jī)化方法,所述方法包括以下步驟 將所述OS的一部分預(yù)定義為要被寫保護(hù); 通過(guò)將所述OS加載到所述工作存儲(chǔ)器中而啟動(dòng)所述計(jì)算機(jī)系統(tǒng); 通過(guò)達(dá)到具體OS命令來(lái)完成加載所述預(yù)定義OS部分,所述具體OS命令發(fā)起要由所述CPU執(zhí)行的寫保護(hù)機(jī)器代碼指令以不可逆地將包含所述預(yù)定義OS部分的工作存儲(chǔ)器部分切換到寫保護(hù)模式。
2.根據(jù)權(quán)利要求I的方法,其中禁止發(fā)起將包含所述預(yù)定義OS部分的所述工作存儲(chǔ)器部分切換回允許寫入模式的OS命令。
3.根據(jù)權(quán)利要求I的方法,其中所述寫保護(hù)機(jī)器代碼指令由所述CPU提供。
4.根據(jù)權(quán)利要求I的方法,其中所述寫保護(hù)機(jī)器代碼指令通過(guò)訪問具體的存儲(chǔ)器地址來(lái)觸發(fā)。
5.根據(jù)權(quán)利要求I的方法,其中所述寫保護(hù)機(jī)器代碼指令與存儲(chǔ)關(guān)鍵字相關(guān)聯(lián),所述存儲(chǔ)關(guān)鍵字通過(guò)向所述CPU指示所述寫保護(hù)模式來(lái)控制對(duì)包含所述預(yù)定義OS部分的所述工作存儲(chǔ)器部分的訪問權(quán)限。
6.根據(jù)權(quán)利要求I的方法,其中計(jì)時(shí)器組件在過(guò)去預(yù)定義時(shí)間間隔之后發(fā)起所述寫保護(hù)機(jī)器代碼指令。
7.根據(jù)權(quán)利要求6的方法,其中對(duì)所述預(yù)定義時(shí)間間隔的測(cè)量基于實(shí)時(shí)時(shí)鐘。
8.根據(jù)權(quán)利要求6的方法,其中對(duì)所述預(yù)定義時(shí)間間隔的測(cè)量基于所述OS所執(zhí)行的計(jì)數(shù)指令。
9.根據(jù)權(quán)利要求8的方法,其中所述指令由虛擬環(huán)境的虛擬處理單元執(zhí)行。
10.根據(jù)權(quán)利要求6的方法,其中對(duì)所述預(yù)定義時(shí)間間隔的測(cè)量基于虛擬環(huán)境的虛擬處理單元的計(jì)數(shù)周期。
11.根據(jù)權(quán)利要求I的方法,其中允許寫入機(jī)器代碼指令由所述OS之外的重置進(jìn)程發(fā)起,所述重置進(jìn)程由所述CPU執(zhí)行以將包含所述預(yù)定義OS部分的所述存儲(chǔ)器部分切換到允許寫入模式。
12.根據(jù)權(quán)利要求11的方法,其中所述重置進(jìn)程由所述OS之外的管理程序所提供,并且所述管理程序向所述OS提供虛擬環(huán)境。
13.一種中央處理器(CPU),其包括用于執(zhí)行寫保護(hù)機(jī)器代碼指令以不可逆地將包含操作系統(tǒng)(OS)的預(yù)定義部分的工作存儲(chǔ)器的部分切換到寫保護(hù)模式的適配裝置,其中通過(guò)將所述OS加載到所述工作存儲(chǔ)器中而啟動(dòng)計(jì)算機(jī)系統(tǒng),并且通過(guò)達(dá)到發(fā)起要執(zhí)行的所述寫保護(hù)機(jī)器代碼指令的具體OS命令來(lái)完成加載所述預(yù)定義OS部分。
14.一種計(jì)算機(jī)系統(tǒng),其包括用于將操作系統(tǒng)(OS)的一部分預(yù)定義為要被寫保護(hù)而免于非授權(quán)修改的所述OS、中央處理器(CPU)和工作存儲(chǔ)器,以及所述計(jì)算機(jī)系統(tǒng)的適配裝置,所述適配裝置用于通過(guò)將所述OS加載到所述工作存儲(chǔ)器中而啟動(dòng)所述計(jì)算機(jī)系統(tǒng),并且用于通過(guò)達(dá)到具體OS命令來(lái)完成加載所述預(yù)定義OS部分,所述具體OS命令發(fā)起要由所述CPU執(zhí)行的寫保護(hù)機(jī)器代碼指令以不可逆地將包含所述預(yù)定義OS部分的所述工作存儲(chǔ)器部分切換到寫保護(hù)模式。
15.一種用于保護(hù)操作系統(tǒng)(OS)免于非授權(quán)修改的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括具有實(shí)現(xiàn)于其中的計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用介質(zhì),所述計(jì)算機(jī)可用程序代碼被配置為執(zhí)行之前權(quán)利要求I至12中任一項(xiàng)的步驟。
全文摘要
實(shí)施例提供了一種用于保護(hù)操作系統(tǒng)(OS)免于非授權(quán)修改進(jìn)的計(jì)算機(jī)化方法、計(jì)算機(jī)系統(tǒng)和計(jì)算機(jī)程序產(chǎn)品。計(jì)算機(jī)系統(tǒng)具有中央處理器(CPU)和工作存儲(chǔ)器。OS的一部分被預(yù)定義為要被寫保護(hù)。通過(guò)將OS加載到工作存儲(chǔ)器中來(lái)啟動(dòng)計(jì)算機(jī)系統(tǒng)。加載預(yù)定義的OS部分通過(guò)達(dá)到具體OS命令來(lái)完成,該OS命令發(fā)起要由CPU執(zhí)行的寫保護(hù)機(jī)器代碼指令以不可逆地將包含預(yù)定義OS部分的工作存儲(chǔ)器部分切換到寫保護(hù)模式。
文檔編號(hào)G06F21/00GK102667794SQ201080058484
公開日2012年9月12日 申請(qǐng)日期2010年10月25日 優(yōu)先權(quán)日2009年12月23日
發(fā)明者C·伯恩特雷格, H·斯莫林克西, W·格勒里希 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司