用于檢查軟件的方法及系統(tǒng)的制作方法
【專利摘要】本發(fā)明公開了一種用于檢查軟件的方法和系統(tǒng)。該系統(tǒng)包括:鉤錨模塊,收集對應(yīng)于在啟動系統(tǒng)時在內(nèi)核上執(zhí)行的每個處理的處理控制模塊信息。此外,該系統(tǒng)包括:安全服務(wù)模塊,基于收集的處理控制塊信息通過將安全服務(wù)模塊插入到處理的內(nèi)存區(qū)域中來搜索并且防御處理的缺陷。
【專利說明】用于檢查軟件的方法及系統(tǒng)
[0001]相關(guān)申請的交叉引用
[0002]本申請基于并且要求于2012年12月31日提交至韓國知識產(chǎn)權(quán)局的韓國專利申請第10-2012-0158397號的優(yōu)先權(quán),通過引用將本申請的公開內(nèi)容全部結(jié)合在此。
【技術(shù)領(lǐng)域】
[0003]本發(fā)明涉及一種用于檢查軟件的方法和系統(tǒng),具體地,涉及以下技術(shù),該技術(shù)通過以安全服務(wù)模塊取代處理器的特定內(nèi)存區(qū)域來執(zhí)行相應(yīng)的故障搜索動作和主動防御動作。
【背景技術(shù)】
[0004]主動防御是一種預(yù)測即將發(fā)生的攻擊導(dǎo)致被懷疑的攻擊喪失能力的方法,該主動防御是從國家防御武器系統(tǒng)開始的一項研究。在信息技術(shù)(IT)領(lǐng)域已經(jīng)對于作為防御網(wǎng)絡(luò)和網(wǎng)絡(luò)領(lǐng)域中的惡意代碼攻擊的系統(tǒng)安全維護方法的主動防御進行了積極研究。即,主動防御的代表性實例可包括通過檢查經(jīng)過可靠性等級彼此不同的網(wǎng)絡(luò)(例如,數(shù)據(jù)防火墻)的數(shù)據(jù)來搜索對于系統(tǒng)安全有威脅的元素(諸如病毒和DDoS (分布式拒絕服務(wù))攻擊)并拒絕威脅元素的活動。
[0005]對于主動防御的大多數(shù)研究解決在功能上彼此獨立的系統(tǒng)之間的攻擊和防御的問題。即,當預(yù)測到或者搜索到來自于不被信任的外部系統(tǒng)的攻擊時,進而防御該攻擊,則能夠維護內(nèi)部系統(tǒng)的安全。
[0006]同時,由于系統(tǒng)中的程序可能被改變,所以應(yīng)當針對使用異常處理和安全代碼的程序來設(shè)計程序,以防止上述問題。然而,因為整體軟件的徹底異常處理對系統(tǒng)的性能造成了負擔(dān),則可能未考慮到彼此相對的元素之間的平衡。
【發(fā)明內(nèi)容】
[0007]因此,本發(fā)明提供了一種檢查軟件的方法和系統(tǒng),其通過以安全服務(wù)模塊取代處理器的特定內(nèi)存區(qū)域,利用鉤錨(hooking)和信息標簽技術(shù)執(zhí)行相應(yīng)的故障搜索動作和主動防御動作,從而能夠在搜索故障發(fā)生的同時減少系統(tǒng)行為的中斷。
[0008]此外,本發(fā)明提供一種檢查軟件的方法和系統(tǒng),其能夠?qū)崿F(xiàn)依照故障類型而定義的各種主動防御動作,從而防止故障,同時即使在搜索到故障時也能夠保持該系統(tǒng)自身的功能。
[0009]本發(fā)明進一步提供一種檢查軟件的方法和系統(tǒng),其通過支持針對在管理系統(tǒng)的內(nèi)核級而非針對每個應(yīng)用程序的單獨等級上的運行時缺陷的主動防御動作來有效且防御性地設(shè)計性能。
[0010]此外,本發(fā)明提供了一種用于檢查軟件的方法,該方法包括:鉤錨對應(yīng)于內(nèi)核上的處理的處理控制塊;從處理控制塊(PCB, process control block)獲得針對該處理的地址值的執(zhí)行信息;將安全模塊注入具有有效地址值的內(nèi)存區(qū)域;并且在執(zhí)行該處理期間調(diào)用插入有安全服務(wù)模塊的內(nèi)存區(qū)域時,由注入到對應(yīng)的內(nèi)存區(qū)域中的安全服務(wù)模塊搜索該處理的缺陷。
[0011]PCB可實時管理針對處理的名稱、ID (標識)、優(yōu)先級、以及地址值中的至少一個的信息,以及針對內(nèi)核中的力處理器(force processor)、共享對象、文件、以及互斥中至少一個的運行時資源信息。
[0012]安全服務(wù)模塊的注入可包括針對安全服務(wù)數(shù)據(jù)和信息標簽分配存儲空間;以及將所分配的存儲空間的大小信息存儲在信息標簽的存儲空間中。
[0013]該方法進一步包括向執(zhí)行應(yīng)用程序提供分配有安全服務(wù)數(shù)據(jù)的存儲空間的地址信息。對處理的缺陷的搜索包括訪問事件發(fā)生在所分配的存儲空間中時檢查信息標簽的存儲空間;并且確認對于存儲在信息標簽中的存儲空間的大小信息來說訪問事件的訪問范圍是否為有效范圍。
[0014]該方法進一步包括當確認訪問事件的訪問范圍是否為有效范圍的確認結(jié)果不是有效范圍時,忽略該訪問事件的訪問。
[0015]該方法進一步包括:當確認訪問事件的訪問范圍是否為有效范圍的所確認的結(jié)果不是有效范圍時,將訪問事件的訪問范圍調(diào)整至有效范圍。對于處理的缺陷的搜索可包括釋放事件發(fā)生在所分配的存儲空間中時,檢查信息標簽的存儲空間;以及基于存儲在信息標簽中的信息確認發(fā)生該釋放事件的存儲空間是否是可釋放的有效地址空間。
[0016]該方法進一步包括當確認存儲空間是否是可釋放的有效地址空間的確認結(jié)果是有效地址空間時,執(zhí)行針對對應(yīng)的存儲空間的釋放事件。
[0017]該方法進一步包括在執(zhí)行釋放事件之后初始化分配給對應(yīng)地址空間的變量;執(zhí)行對應(yīng)于在搜索該處理的缺陷時搜索到的缺陷的防御動作;執(zhí)行對應(yīng)于忽略動作、繼續(xù)動作、警告動作、重復(fù)動作、終止動作的搜索到的缺陷的類型的防御動作。
[0018]在本發(fā)明的另一方面中,一種檢查軟件的系統(tǒng),可包括:鉤錨模塊,收集對應(yīng)于在啟動系統(tǒng)時在內(nèi)核上執(zhí)行的每個處理的處理控制塊(PCB)信息;以及安全服務(wù)模塊,通過基于收集的PCB信息將該安全服務(wù)模塊注入到處理的內(nèi)存區(qū)域中來搜索并且防御該處理的缺陷。
【專利附圖】
【附圖說明】
[0019]結(jié)合附圖,通過以下詳細描述,本發(fā)明的目標、特征以及優(yōu)勢將更加顯而易見,其中:
[0020]圖1是示出了根據(jù)本發(fā)明的示例性實施方式的用于檢查軟件的系統(tǒng)的配置的示例圖;
[0021]圖2是示意地示出了根據(jù)本發(fā)明的示例性實施方式的檢查軟件的系統(tǒng)的操作的示例圖;
[0022]圖3是示出了根據(jù)本發(fā)明的示例性實施方式的用于檢查軟件的方法的操作流程的示例流程圖;
[0023]圖4是示出了應(yīng)用于本發(fā)明的示例性實施方式的處理控制塊(PCB)的示例圖;
[0024]圖5是示出了根據(jù)本發(fā)明的示例性實施方式的分配有安全服務(wù)模塊的存儲空間的結(jié)構(gòu)的示例性示意圖;
[0025]圖6是根據(jù)本發(fā)明的示例性實施方式的安全服務(wù)模塊的執(zhí)行代碼的示例性示意圖;
[0026]圖7A至圖7D是示出了應(yīng)用于本發(fā)明的示例性實施方式的代碼的示例性示意圖;
[0027]圖8是描述了根據(jù)本發(fā)明的示例性實施方式的檢查軟件的系統(tǒng)的主動防御操作的示例性示意圖;以及圖9A至圖9C是示出了根據(jù)本發(fā)明的示例性實施方式的用于檢查軟件的系統(tǒng)的各個主動防御類型的代碼的示例性示意圖。
【具體實施方式】
[0028]應(yīng)當理解,本文中所使用的術(shù)語“車輛(vehicle)”或“車輛的(vehicular)”或其他類似術(shù)語包括廣義的機動車輛,諸如包括運動型多用途車輛(SUV)、公共汽車、卡車、各種商用車輛的載客車輛;包括各種小船、海船的船只;航天器等;并且包括混合動力車輛、電動車輛、燃油車、插電混合動力車、燃料電池車輛和其他替代燃料車輛(例如,燃料來源于非汽油能源)。
[0029]本文中所使用的措辭僅是為了描述特定實施方式而并不旨在對本發(fā)明進行限制。除非上下文另有明確說明,否則如本文中所使用的單數(shù)形式“一(a)”、“一(an)”及“該”也旨在包括復(fù)數(shù)形式。還應(yīng)當理解,當術(shù)語“包括”和/或“包含”用于本說明書時,其描述了存在所述特征、整體、步驟、操作、元件及/或組件,但并不排除存在或附加有一個或多個其它特征、整體、步驟、操作、元件、組件及/或其組合。作為本文中所用的術(shù)語“和/或”包括一個或多個相關(guān)的所列項的任何及所有組合。
[0030]進一步地,本發(fā)明的控制邏輯可體現(xiàn)為非暫存性計算機可讀介質(zhì),在計算機可讀介質(zhì)上包含由處理器、控制器/控制單元等執(zhí)行的可執(zhí)行程序指令。計算機可讀介質(zhì)的實例包括但并不限于:R0M、RAM、光盤(CD) -ROM、磁帶、軟盤、閃存驅(qū)動、智能卡和光學(xué)數(shù)據(jù)內(nèi)存裝置。計算機可讀介質(zhì)也可分布在網(wǎng)絡(luò)耦合的計算機系統(tǒng)中,從而以分布式方式內(nèi)存并且例如由車載通信服務(wù)器(telematics server)或控制器局域網(wǎng)絡(luò)(CAN)執(zhí)行該計算機可讀介質(zhì)。
[0031 ] 在下文中,將參照附圖描述本發(fā)明的實施方式。
[0032]圖1是示出了根據(jù)本發(fā)明的用于檢查軟件的系統(tǒng)的配置的示例圖,圖2是示意地示出了根據(jù)本發(fā)明的檢查軟件的系統(tǒng)的操作的示例圖。參照圖1和圖2,用于檢查軟件的系統(tǒng)包括鉤錨模塊110,該鉤錨模塊被配置為收集針對對應(yīng)于在啟動系統(tǒng)時執(zhí)行的各個應(yīng)用程序I至10的處理的處理控制塊(PCB) 20的信息;以及安全服務(wù)模塊120,被配置為基于收集到的PCB20的信息將該安全服務(wù)模塊注入到處理的特定內(nèi)存區(qū)域中從而搜索并且防御系統(tǒng)中的處理的故障。
[0033]此處,代理100,即,檢查軟件的系統(tǒng)的ROPHE AD代理,被配置為管理鉤錨模塊110和安全服務(wù)模塊120。此處,作為“對高風(fēng)險錯誤的遠程運行時保護-主動防御裝置”縮寫的ROPHE AD是一種運行在嵌入式Iinux平臺中的自動化工具。
[0034]此外,鉤錨模塊110是存在于內(nèi)核上的模塊,該鉤錨模塊可鉤錨存在于內(nèi)核上的PCB20以獲得針對處理的內(nèi)存區(qū)域的執(zhí)行信息。應(yīng)用于本發(fā)明中的鉤錨技術(shù)是一種攔截執(zhí)行路徑的代表性技術(shù),在了解運行時的系統(tǒng)的軟件執(zhí)行情況時,鉤錨技術(shù)是一種有用的方法。因此,本發(fā)明可被配置為監(jiān)測故障發(fā)生的情況,同時通過應(yīng)用鉤錨技術(shù)使該系統(tǒng)的基本行為的中斷最小化。鉤錨模塊110向用于檢查軟件的系統(tǒng)的代理100提供獲得的信息,如圖2的(I)所示。
[0035]安全服務(wù)模塊120可注入到在各個應(yīng)用程序I至10的每個處理中可能出現(xiàn)故障的內(nèi)存區(qū)域,以允許在執(zhí)行處理時相應(yīng)內(nèi)存區(qū)域中由安全服務(wù)例程取代安全服務(wù)模塊并被執(zhí)行。換言之,如圖2的(2)中所示,代理100可基于鉤錨模塊110鉤錨的PCB信息將安全模塊120注入到每個應(yīng)用程序I至10中,并且通過注入到每個應(yīng)用程序I至10的安全服務(wù)模塊120攔截對處理的攻擊,以執(zhí)行如圖2的(3)中所示的主動防御。
[0036]具體地,注入到各個應(yīng)用程序I至10的安全服務(wù)模塊120可包括對處理的故障發(fā)生進行預(yù)測的故障搜索例程以及執(zhí)行針對每種故障類型的防御功能的主動防御例程。此處,故障搜索例程可確定輸入指針變量是否是有效內(nèi)存地址值,并且主動防御例程在該變量不是有效地址值時將該輸入指針變量初始化為安全的空(NULL)值,從而防止發(fā)生故障。
[0037]因此,安全服務(wù)模塊120可被配置為通過利用由代理100提供的PCB信息來執(zhí)行故障搜索例程,并且根據(jù)故障搜索例程的執(zhí)行結(jié)果執(zhí)行主動防御例程。
[0038]如上所述的根據(jù)本發(fā)明的示例性實施方式配置的用于檢查軟件的系統(tǒng)的操作流程在下面將進行詳細描述。
[0039]圖3是示出了根據(jù)本發(fā)明的用于檢查軟件的系統(tǒng)的用于檢測軟件的方法的操作流程的示例性流程圖。參照圖3,用于檢查軟件的系統(tǒng)可以被配置為使用鉤錨模塊鉤錨對應(yīng)于內(nèi)核上的處理的相應(yīng)處理控制塊(PCB) (S100),并且從PCB獲得針對相應(yīng)處理的地址空間的執(zhí)行信息(S110)。具體地,PCB可以存在于內(nèi)核上并且可被配置為存儲針對相應(yīng)處理的名稱、ID、優(yōu)先級、以及地址值中至少一個的處理信息,以及針對力處理器、共享對象、文件、以及互斥中至少一個的運行時資源信息,并且實時地管理它們。
[0040]同時,用于檢查軟件的系統(tǒng)基于從“S110”處理中獲得的信息,將安全服務(wù)模塊注入具有處理的有效地址值的內(nèi)存區(qū)域。具體地,注入的安全服務(wù)模塊120可包括預(yù)測處理中故障發(fā)生的故障搜索例程以及執(zhí)行針對每種故障類型的防御功能的主動防御例程。
[0041]因此,注入到具有處理的有效地址值的內(nèi)存區(qū)域中的安全服務(wù)模塊可被配置為在執(zhí)行處理時調(diào)用相應(yīng)內(nèi)存區(qū)域時執(zhí)行故障搜索例程并且搜索處理的故障(S130),并且在搜索到故障時執(zhí)行主動防御例程以由此執(zhí)行針對處理的故障的主動防御(S140 )。具體地,將參照圖6至圖9C詳細地描述安全服務(wù)模塊的故障搜索例程和主動防御例程。
[0042]圖4是示出了應(yīng)用于本發(fā)明的處理控制塊(PCB)的示例圖。如圖4所示,應(yīng)用于本發(fā)明的PCB被配置為存儲處理信息及其運行時資源信息。
[0043]舉例說明,PCB可被配置為存儲有關(guān)相應(yīng)處理的以下信息,諸如處理ID、處理句柄、內(nèi)存器指針、EXE加載的基指針、處理名稱、程序計數(shù)器(PC)、輸出表位置、輸入表位置、資源表位置、模塊的虛擬基地址、最大棧大小、多個內(nèi)存對象、以及優(yōu)先級狀態(tài)等等,并且根據(jù)處理的狀態(tài)實時管理存儲的信息。
[0044]圖5是示出了根據(jù)本發(fā)明的示例性實施方式分配有安全服務(wù)模塊的內(nèi)存區(qū)域的結(jié)構(gòu)的示例性示意圖。當根據(jù)本發(fā)明的用于檢查軟件的系統(tǒng)的代理注入到處理的內(nèi)存區(qū)域時,相應(yīng)的應(yīng)用程序可以被配置為將針對安全服務(wù)模塊的存儲空間520分配給有效地址值的內(nèi)存區(qū)域。具體地,除安全服務(wù)模塊之外,還可以附加地分配存儲運行時執(zhí)行信息的信息標簽的存儲空間510。
[0045]分配給信息標簽和安全服務(wù)模塊的存儲空間510和520如圖5所示。具體地,分配給安全服務(wù)模塊的存儲空間520的大小信息可以存儲在信息標簽的存儲空間510中。具體地,安全服務(wù)模塊的故障搜索例程可被配置為通過使用存儲在信息標簽中的存儲空間520的大小信息來確定相應(yīng)內(nèi)存區(qū)域的地址值是否包含在有效地址區(qū)域內(nèi),從而搜索相應(yīng)內(nèi)存區(qū)域的故障。當然,信息標簽的存儲空間510通過根據(jù)檢測類型來擴展存儲空間而存儲各種信息。
[0046]然而,針對分配有信息標簽和安全服務(wù)模塊的存儲空間510和520的起始地址可向相應(yīng)應(yīng)用程序提供分配有安全服務(wù)模塊的存儲空間520的起始地址,而針對信息標簽的存儲空間510的信息可以是僅能夠在內(nèi)核級被識別的隱藏空間。
[0047]圖6是示出了根據(jù)本發(fā)明的示例性實施方式的安全服務(wù)模塊的執(zhí)行代碼的示例性示意圖。參照圖6,注入到每個應(yīng)用程序中的安全服務(wù)模塊可包括對于處理中故障發(fā)生進行預(yù)測的故障搜索例程以及執(zhí)行針對每種故障類型的防御功能的主動防御例程。具體地,安全服務(wù)模塊可被配置為以安全服務(wù)的地址值取代圖6所示的3)原始服務(wù)的地址值,使得在請求執(zhí)行相應(yīng)內(nèi)存區(qū)域的原始服務(wù)時,可執(zhí)行該安全服務(wù)。
[0048]在執(zhí)行安全服務(wù)的情況下,首先,運行I)的用于故障檢測動作的執(zhí)行代碼,并且在由故障檢測例程檢測到故障的情況下,運行2)的用于主動防御動作的執(zhí)行代碼,從而執(zhí)行針對發(fā)生缺陷的防御。
[0049]當故障檢測例程沒有檢測到缺陷時,執(zhí)行3)的原始服務(wù)。舉例說明,當訪問事件調(diào)用包括分配有安全服務(wù)模塊的存儲空間的內(nèi)存區(qū)域時,可執(zhí)行缺陷搜索例程,并且缺陷搜索例程可首先調(diào)用和檢查存儲分配有安全服務(wù)模塊的存儲空間的大小信息的信息標簽的存儲空間。此時,缺陷搜索例程可基于存儲在信息標簽的存儲空間中的存儲空間的大小信息來檢查訪問事件的訪問范圍是否是有效范圍。
[0050]當然,當訪問事件的訪問范圍不是有效范圍時,主動防御例程可被配置為忽略對于相應(yīng)內(nèi)存區(qū)域的訪問或者根據(jù)該情形將訪問范圍調(diào)整到有效范圍,從而使得可以繼續(xù)該執(zhí)行。作為另一實施例,當包括分配有安全服務(wù)模塊的存儲空間的內(nèi)存區(qū)域被釋放事件調(diào)用時,缺陷搜索例程可以調(diào)用信息標簽的存儲空間,以檢查相應(yīng)的內(nèi)存區(qū)域的地址值是否是有效地址值。當相應(yīng)內(nèi)存區(qū)域的地址值是有效地址值時,主動防御例程可被配置為執(zhí)行針對包括信息標簽的內(nèi)存區(qū)域的釋放事件,并且通過將相應(yīng)變量初始化成空值來減少對釋放的內(nèi)存區(qū)域的地址值的錯誤訪問。
[0051]同時,當相應(yīng)內(nèi)存區(qū)域的地址值不是有效地址值時,例如,在其是已經(jīng)釋放的地址值的情況下,主動防御例程可忽略該釋放事件,從而系統(tǒng)不會由于重復(fù)釋放而崩潰。
[0052]圖7A至圖7D是示出了應(yīng)用于本發(fā)明的示例性實施方式的代碼的示例性示意圖。
[0053]首先,圖7A示出了當指針變量初始為空值以確定尚未對內(nèi)存分配指針時的示例性實施方式。圖7B示出了由于指針變量未被初始化而具有垃圾值的情形。
[0054]此外,圖7C示出了具有檢查輸入值的代碼的內(nèi)存釋放代碼以防止發(fā)生內(nèi)存缺陷發(fā)生的示例性實施方式。當執(zhí)行圖7C的內(nèi)存釋放代碼時,圖7A所示的實施方式中的指針變量初始化為空值。因此,當輸入初始化的指針變量時,對應(yīng)指針的地址值可能會被錯誤地識別為有效地址從而由此產(chǎn)生缺陷。而且,在圖7B所示的實施方式中,當執(zhí)行圖7C的內(nèi)存釋放代碼時,由于難以確認分配有內(nèi)存的指針具有有效值,所以可能會產(chǎn)生內(nèi)存缺陷。
[0055]因此,圖7D所示的安全服務(wù)包括確定輸入指針變量是否為有效內(nèi)存地址的缺陷搜索例程。當輸入指針變量不是有效內(nèi)存地址時,由于主動防御例程將指針變量初始化為空值,然后繼續(xù)相應(yīng)功能,所以在執(zhí)行圖7C的內(nèi)存釋放代碼時可以防止發(fā)生缺陷。
[0056]圖8至圖9C是在描述根據(jù)本發(fā)明的示例性實施方式的用于檢查軟件的系統(tǒng)的主動防御操作時參照的示例性示意圖。
[0057]如圖8所示,根據(jù)由缺陷搜索例程搜索到的缺陷類型,主動防御例程可執(zhí)行五種防御類型的防御操作,諸如忽略類型、繼續(xù)類型、警告類型、重復(fù)類型、以及終止類型。當系統(tǒng)中產(chǎn)生缺陷時,系統(tǒng)可包括當系統(tǒng)狀態(tài)不穩(wěn)定時不是有效數(shù)據(jù)的輸入數(shù)據(jù)。因此,主動防御例程可根據(jù)輸入數(shù)據(jù)是否是有效數(shù)據(jù)并且執(zhí)行結(jié)果是成功還是失敗,執(zhí)行依照相應(yīng)防御類型的防御。
[0058]舉例說明,當輸入值在有效范圍內(nèi)并且執(zhí)行結(jié)果成功時,主動防御例程可確定沒有搜索到的缺陷,然后執(zhí)行下一功能。
[0059]此外,當輸入值在有效范圍內(nèi),而執(zhí)行結(jié)果失敗時,主動防御例程可被確認為檢查失敗的原因。當失敗的原因是由于暫時現(xiàn)象引起時,可執(zhí)行圖9A所示的對應(yīng)于重復(fù)的防御動作。
[0060]具體地,對應(yīng)于重復(fù)的防御動作可以是在程序的輸入值是在有效范圍內(nèi)但錯誤是根據(jù)系統(tǒng)的狀態(tài)臨時產(chǎn)生時所執(zhí)行的動作。重復(fù)動作可重復(fù)地執(zhí)行相同的或者大致相似的事件,直至系統(tǒng)的狀態(tài)返回至正常(例如,原始狀態(tài)),并且在連續(xù)失敗預(yù)定次數(shù)或者更多時,返回“失敗”至相應(yīng)的應(yīng)用程序。
[0061]具體地,圖9A示出了當內(nèi)存分配被配置為由于缺少系統(tǒng)的暫時內(nèi)存而失敗時的示例性情形。具體地,程序輸入作為“12345”是正常,但是當由于暫時系統(tǒng)狀態(tài)而產(chǎn)生問題時可能會不正常,并且相應(yīng)的功能通過重復(fù)動作重復(fù)地嘗試預(yù)定次數(shù)。即,當系統(tǒng)狀態(tài)為暫時現(xiàn)象時,系統(tǒng)可被配置為通過幾次重復(fù)執(zhí)行來維持穩(wěn)定操作,從而按原樣輸出“ 12345”。
[0062]另一方面,當失敗不是暫時現(xiàn)象時,則可執(zhí)行對應(yīng)于終止動作的防御動作。終止動作是在程序的輸入值在有效范圍內(nèi),但是根據(jù)系統(tǒng)的狀態(tài)可能產(chǎn)生錯誤并且繼續(xù)維持錯誤時執(zhí)行的動作,并且當事件的執(zhí)行結(jié)果對于系統(tǒng)的影響是致命時,則終止動作被配置為終止相應(yīng)處理。
[0063]此外,當輸入值不在有效范圍內(nèi)并且不能預(yù)測到失敗的原因時,主動防御例程可被配置為執(zhí)行對應(yīng)于警告動作的防御動作。警告動作是在程序的輸入值不是有效值以及失敗的原因不能被準確推斷時執(zhí)行的動作,并且在繼續(xù)執(zhí)行相應(yīng)事件的同時可傳遞警告消息從而向用戶報告相應(yīng)事件的執(zhí)行存在問題。
[0064]另一方面,當輸入值不在有效范圍內(nèi)并且失敗的原因可預(yù)測時,確定輸入值校正是否能夠確保安全執(zhí)行,并且當能夠確保安全執(zhí)行時,則執(zhí)行圖9B所示的繼續(xù)動作以由此連續(xù)地前進到下一功能。具體地,繼續(xù)動作是當在沒有執(zhí)行相應(yīng)事件的情況下僅由程序的輸入值確定失敗的原因時所執(zhí)行的動作,并且通過輸入數(shù)據(jù)值的適當校正可確保正常執(zhí)行。
[0065]具體地,圖9B示出了在復(fù)制字符串的功能中執(zhí)行超過有效分配范圍的復(fù)制的情況。具體地,因為通過信息標簽?zāi)軌颢@知數(shù)據(jù)的有效訪問范圍,所以可以將輸入值調(diào)整到要被復(fù)制的僅僅是有效分配范圍之多的安全范圍,并且繼續(xù)該執(zhí)行。
[0066]此外,在輸入值的修正值不能確保安全執(zhí)行時,在輸入值不是有效值以及失敗的原因可被預(yù)測時,則執(zhí)行對應(yīng)于忽略動作的防御動作,如圖9C所示。具體地,忽略動作是在能夠確認對應(yīng)事件的執(zhí)行可能會引起問題而且只使用程序的輸入值不會對下一執(zhí)行產(chǎn)生任何影響的情況下執(zhí)行的動作,并且可以忽略對應(yīng)的事件并且立即返回“失敗”給對應(yīng)的應(yīng)用程序。
[0067]具體地,圖9C示出了執(zhí)行兩次釋放操作的示例性分配的指針變量,以及通過采取針對第二次釋放操作的忽略動作確保的正常執(zhí)行。
[0068]根據(jù)本發(fā)明,通過利用以安全服務(wù)模塊取代處理器的特定內(nèi)存區(qū)域,利用鉤錨和信息標簽技術(shù)來執(zhí)行相應(yīng)的故障搜索動作和主動防御動作,從而使得在搜索故障的同時能夠減少系統(tǒng)的基本動作中斷。
[0069]此外,本發(fā)明即使在通過定義各種主動防御動作搜索到故障時,也能在維護系統(tǒng)的原始功能的同時防止缺陷。而且,本發(fā)明通過支持針對在管理系統(tǒng)的內(nèi)核級而非針對每個應(yīng)用程序的單獨等級上的運行時缺陷的主動防御動作來有效且防御性地設(shè)計性能,從而使得對于系統(tǒng)中的所有應(yīng)用程序支持相同水平的穩(wěn)定性成為可能。
[0070]盡管已參照附圖描述了根據(jù)本發(fā)明的示例性實施方式的用于檢查軟件的系統(tǒng)和方法,然而,本發(fā)明不局限于本說明書中公開的實施方式和附圖,而且在不偏離本發(fā)明的范圍和精神的情況下,可以做出改變。
[0071]附圖中各個元件的符號
[0072]I?10:應(yīng)用程序
[0073]20:處理控制塊(PCB )
[0074]100:代理
[0075]110:鉤錨模塊
[0076]120:安全服務(wù)模塊
【權(quán)利要求】
1.一種用于檢查軟件的方法,所述方法包括: 鉤錨對應(yīng)于內(nèi)核上的處理的處理控制塊(PCB); 從所述處理控制塊獲得針對所述處理的地址值的執(zhí)行信息; 將安全模塊注入具有有效地址值的內(nèi)存區(qū)域;以及 當在執(zhí)行所述處理期間調(diào)用插入有所述安全服務(wù)模塊的內(nèi)存區(qū)域時,由注入到對應(yīng)的所述內(nèi)存區(qū)域的所述安全服務(wù)模塊搜索所述處理的缺陷。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述處理控制塊實時管理針對所述處理的名稱、ID、優(yōu)先級、以及地址值中的至少一個的處理信息,以及針對所述內(nèi)核中的力處理器、共享對象、文件、以及互斥中至少一個的運行時資源信息。
3.根據(jù)權(quán)利要求1所述的方法,其中,注入所述安全服務(wù)模塊包括: 分配用于安全服 務(wù)數(shù)據(jù)和信息標簽的存儲空間;以及 在所述信息標簽的存儲空間中存儲所分配的所述存儲空間的大小信息。
4.根據(jù)權(quán)利要求3所述的方法,進一步包括:向執(zhí)行應(yīng)用程序提供分配有所述安全服務(wù)數(shù)據(jù)的所述存儲空間的地址信息。
5.根據(jù)權(quán)利要求3所述的方法,其中,搜索所述處理的所述缺陷包括: 在訪問事件在所分配的所述存儲空間中時,檢查所述信息標簽的所述存儲空間;以及 確認所述訪問事件的訪問范圍對于在所述信息標簽中存儲的所述存儲空間的所述大小信息是否為有效范圍。
6.根據(jù)權(quán)利要求5所述的方法,進一步包括:當確認所述訪問事件的訪問范圍是否為有效范圍的確認結(jié)果不是所述有效范圍時,忽略所述訪問事件的訪問。
7.根據(jù)權(quán)利要求5所述的方法,進一步包括:當確認所述訪問事件的訪問范圍是否為有效范圍的確認結(jié)果不是所述有效范圍時,將所述訪問事件的所述訪問范圍調(diào)整到所述有效范圍。
8.根據(jù)權(quán)利要求3所述的方法,其中,搜索所述處理的所述缺陷包括: 在所分配的所述存儲空間中發(fā)生釋放事件時,檢查所述信息標簽的所述存儲空間;以及 基于存儲在所述信息標簽中的所述信息,確認發(fā)生所述釋放事件的所述存儲空間是否是可釋放的有效地址空間。
9.根據(jù)權(quán)利要求8所述的方法,進一步包括:當確認所述內(nèi)存空間是否是可釋放的有效地址空間的確認結(jié)果是所述有效地址空間時,執(zhí)行針對相應(yīng)的所述存儲空間的釋放事件。
10.根據(jù)權(quán)利要求9所述的方法,進一步包括:在執(zhí)行所述釋放事件之后初始化分配給相應(yīng)的所述地址空間的變量。
11.根據(jù)權(quán)利要求1所述的方法,進一步包括:執(zhí)行對應(yīng)于在搜索所述處理的所述缺陷時搜索到的所述缺陷的防御動作。
12.根據(jù)權(quán)利要求11所述的方法,其中,執(zhí)行所述防御動作執(zhí)行對應(yīng)于忽略動作、繼續(xù)動作、警告動作、重復(fù)動作以及終止動作的搜索到的所述缺陷的類型的防御動作。
13.一種用于檢查軟件的系統(tǒng),所述系統(tǒng)包括: 鉤錨模塊,收集對應(yīng)于在啟動系統(tǒng)時在內(nèi)核上執(zhí)行的每個處理的處理控制塊(PCB)信息;以及 安全服務(wù)模塊,基于收集的所述處理控制塊信息通過將所述安全服務(wù)模塊注入到所述處理的內(nèi)存區(qū)域中來搜索和防御所述處理的缺陷。
14.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述處理控制塊實時管理針對所述處理的名稱、ID、優(yōu)先級、以及地址值中的至少一個的處理信息,以及針對內(nèi)核中的力處理器、共享對象、文件、以及互斥中至少一個的運行時資源信息。
15.根據(jù)權(quán)利要求13所述的系統(tǒng),其中,所述安全服務(wù)模塊包括缺陷搜索例程和主動防御例程。
16.根據(jù)權(quán)利要求15所述的系統(tǒng),其中,所述缺陷搜索例程使用分配給所述內(nèi)存區(qū)域的信息標簽確認有效范圍或者有效地址值,并且根據(jù)所述確認的結(jié)果針對輸入事件搜索所述處理的所述缺陷。
17.根據(jù)權(quán)利要求15所述的方法,其中,所述主動防御例程定義忽略動作、繼續(xù)動作、警告動作、重復(fù)動作、以及終止動作中至少一個的防御動作,并且執(zhí)行對應(yīng)于由定義的所述防御動作的所述缺陷搜索例程搜索到的缺陷類型的所述防御動作。
【文檔編號】G06F21/56GK103914653SQ201310349696
【公開日】2014年7月9日 申請日期:2013年8月12日 優(yōu)先權(quán)日:2012年12月31日
【發(fā)明者】張丞延, 吳定勛, 吳定錫, 盧石永, 梁承完, 徐珠瑛, 崔炳珠 申請人:現(xiàn)代自動車株式會社, 起亞自動車株式會社, 梨花女子大學(xué)校產(chǎn)學(xué)協(xié)力團