專(zhuān)利名稱(chēng):安全漏洞診斷系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及診斷計(jì)算機(jī)有無(wú)安全漏洞的系統(tǒng)。
背景技術(shù):
圖9是表示以特開(kāi)2002-337919(第4-8頁(yè),圖3、圖4、圖14)為代表的現(xiàn)有安全漏洞診斷系統(tǒng)的構(gòu)成的圖。現(xiàn)有系統(tǒng)由操作裝置900和檢查執(zhí)行裝置907構(gòu)成,操作裝置900由顯示器902、畫(huà)面生成單元903、操作控制單元905、顯示名定義文件904以及順序定義文件906構(gòu)成。
另外,檢查執(zhí)行裝置907由執(zhí)行控制單元908、對(duì)象主信息存儲(chǔ)單元909、多個(gè)檢查執(zhí)行單元911,以及檢查執(zhí)行裝置存儲(chǔ)單元910構(gòu)成。
圖10是表示在同一系統(tǒng)中的順序定義文件906的例子的圖。在順序定義文件906中,記載有檢查執(zhí)行裝置911的分類(lèi)鑰名、在作為分類(lèi)鑰被指定的檢查執(zhí)行裝置911的每個(gè)特性值中記載顯示名、執(zhí)行類(lèi)型、說(shuō)明文。
圖11是表示在同一系統(tǒng)中的檢查執(zhí)行裝置911的信息(檢查執(zhí)行信息)的圖。在檢查執(zhí)行信息中,把對(duì)各檢查執(zhí)行裝置911賦予特征的值(特征)與鑰名(特征名)相關(guān)聯(lián)地存儲(chǔ)。即,檢查執(zhí)行信息(檢查執(zhí)行裝置的信息),在檢查執(zhí)行裝置中各包含一個(gè),是賦予該檢查執(zhí)行裝置特征的信息(=概要)。在檢查執(zhí)行信息中,可以記述多個(gè)項(xiàng)目(特征)。各項(xiàng)目用特征名劃分。
下面說(shuō)明現(xiàn)有系統(tǒng)動(dòng)作。如果把操作裝置900與檢查執(zhí)行裝置907連接,則操作裝置900輸入顯示名定義文件904以及順序定義文件906。
下面,從被存儲(chǔ)在檢查執(zhí)行裝置907中的檢查執(zhí)行裝置存儲(chǔ)單元910中的檢查執(zhí)行裝置911的逐個(gè)中取出檢查執(zhí)行信息,以與被順序定義文件906指定的鑰名對(duì)應(yīng)的特征為基礎(chǔ),把各檢查執(zhí)行裝置911分類(lèi)為順序定義文件906記載的分類(lèi)。最后被分類(lèi)的檢查執(zhí)行裝置911的一覽被對(duì)每個(gè)分類(lèi)顯示在顯示器902上。
使用者101選擇被顯示在顯示器902上的分類(lèi),輸入執(zhí)行需要的參數(shù),要求檢查執(zhí)行。參數(shù)的說(shuō)明可以利用被記載在顯示名定義文件904中的信息。請(qǐng)求檢查執(zhí)行的操作裝置900,如執(zhí)行被分類(lèi)為該分類(lèi)的檢查執(zhí)行裝置911那樣,通過(guò)操作控制單元905向檢查執(zhí)行裝置907發(fā)出請(qǐng)求。
檢查執(zhí)行裝置907調(diào)用被指定的檢查執(zhí)行裝置911,其結(jié)果,用于檢查的分組被發(fā)送到檢查對(duì)象主計(jì)算機(jī)107。
進(jìn)而,各檢查執(zhí)行裝置911,可以在對(duì)象主信息存儲(chǔ)單元909中存儲(chǔ)信息,被存儲(chǔ)的信息,可以由其他的檢查執(zhí)行裝置911參照。另外,還可以是使用者101通過(guò)操作裝置900直接把信息存儲(chǔ)在對(duì)象主信息存儲(chǔ)單元909中。
以上是在現(xiàn)有系統(tǒng)中的檢查流程。在此,分類(lèi)的顯示順序,是被記載在順序定義文件906中的順序,通過(guò)使它沿著一般的攻擊順序,使用者101按照被顯示在顯示器902上的順序進(jìn)行檢查,可以進(jìn)行模擬攻擊者的檢查。
如上所述,現(xiàn)有安全漏洞診斷系統(tǒng),具有多個(gè)檢查執(zhí)行裝置,在以順序定義文件給予它們的方法中分類(lèi)顯示,使用者通過(guò)對(duì)每個(gè)分類(lèi)選擇,執(zhí)行屬于該分類(lèi)的檢查執(zhí)行裝置,另外檢查執(zhí)行裝置直接對(duì)檢查對(duì)象主計(jì)算機(jī)執(zhí)行檢查。因此,存在以下問(wèn)題。
必須輸入到每個(gè)分類(lèi)中的執(zhí)行參數(shù),使用者必須從前面的檢查結(jié)果中輸入,需要使用者理解某個(gè)檢查結(jié)果和對(duì)下一分類(lèi)的輸入的關(guān)系。因此,需要使用者有安全方向的知識(shí)。
定義文件只能按照順序執(zhí)行的方案表現(xiàn),但實(shí)際的攻擊者多數(shù)情況下是根據(jù)前面進(jìn)行的攻擊的結(jié)果改變下次要實(shí)施的攻擊的種類(lèi)。在現(xiàn)有系統(tǒng)中,使用者必須進(jìn)行下次執(zhí)行哪個(gè)分類(lèi)的檢查的判斷,即使在此使用者也需要有安全方面的知識(shí)。
攻擊者以某種目的進(jìn)行以復(fù)雜的步驟構(gòu)成的攻擊。該一連串的攻擊,可以假設(shè)不過(guò)是為了實(shí)現(xiàn)進(jìn)一步大的目的的攻擊方案的一步。在現(xiàn)有系統(tǒng)中,不能表現(xiàn)這樣被階層化的攻擊方案。
沒(méi)有為了從被存儲(chǔ)在對(duì)象主信息存儲(chǔ)單元中的信息中,推論另一信息的推論裝置。這種裝置,是用于從例如對(duì)象主OS是UNIX(注冊(cè)商標(biāo))中導(dǎo)出管理者的帳戶(hù)名是root這一知識(shí)的裝置。因而,在各檢查執(zhí)行裝置中,必須把需要的信息,埋入用于從被存儲(chǔ)著的信息中推論的邏輯。
如果攻擊者成功地侵入某一主計(jì)算機(jī),則大多是把它作為踏板進(jìn)一步試著侵入內(nèi)部。但是在現(xiàn)有檢查系統(tǒng)中因?yàn)閺臋z查執(zhí)行裝置中直接進(jìn)行檢查,所以不能實(shí)施使用踏板的檢查方案。
發(fā)明內(nèi)容
本發(fā)明就是為了解決上述問(wèn)題而提出的,其目的在于把檢查方案作為用編程語(yǔ)言記述的命令過(guò)程來(lái)進(jìn)行表現(xiàn),通過(guò)從命令過(guò)程中自動(dòng)地調(diào)用插入程序(相當(dāng)于檢查執(zhí)行裝置),可以實(shí)施復(fù)雜的試驗(yàn)。
各檢查執(zhí)行裝置之間的參數(shù)交換通過(guò)由命令過(guò)程作為中介,使用者不需要知道檢查執(zhí)行裝置之間的輸入輸出的關(guān)系。
在進(jìn)行安全漏洞診斷時(shí),可以實(shí)施基于更接近現(xiàn)實(shí)的高度攻擊方案的檢查,可以減輕使用者所需要的安全知識(shí)的程度,減輕檢查邏輯制作者的負(fù)擔(dān)。
為了實(shí)現(xiàn)上述目的,本發(fā)明的安全漏洞診斷系統(tǒng)包括存儲(chǔ)有多個(gè)用編程語(yǔ)言記述了通常攻擊者為了進(jìn)行不正當(dāng)訪問(wèn)而進(jìn)行的順序(程序)的命令過(guò)程的命令過(guò)程存儲(chǔ)單元;通過(guò)使用者的輸入請(qǐng)求上述命令過(guò)程一覽的操作單元;根據(jù)上述操作單元的請(qǐng)求,從上述命令過(guò)程存儲(chǔ)單元中取出各命令過(guò)程,制作表示輸入輸出參數(shù)記述、命令過(guò)程執(zhí)行必要條件、檢查順序的目錄提示利用者,執(zhí)行利用者選擇的命令過(guò)程的命令過(guò)程控制單元;存儲(chǔ)有安裝了用于攻擊各個(gè)安全漏洞的邏輯的插入程序的插入程序存儲(chǔ)單元;通過(guò)由命令過(guò)程控制單元執(zhí)行命令過(guò)程而被調(diào)用,從上述插入程序存儲(chǔ)單元取出與上述執(zhí)行命令過(guò)程對(duì)應(yīng)的插入程序,把該插入程序?qū)z查對(duì)象計(jì)算機(jī)執(zhí)行的插入程序控制單元。
圖1是實(shí)施方式1的安全漏洞診斷系統(tǒng)的概略構(gòu)成圖。
圖2是圖1所示的脆弱性檢查裝置的內(nèi)部構(gòu)成圖。
圖3是圖1所述的踏板模擬程序的內(nèi)部構(gòu)成圖。
圖4是命令過(guò)程的構(gòu)成說(shuō)明圖。
圖5是命令過(guò)程控制單元的動(dòng)作流程圖。
圖6是指定等級(jí)名執(zhí)行檢查時(shí)的動(dòng)作流程圖。
圖7是表示知識(shí)文件例子的說(shuō)明圖。
圖8是命令過(guò)程的記述例子的說(shuō)明圖。
圖9是表示現(xiàn)有安全漏洞診斷系統(tǒng)的構(gòu)成圖。
圖10是在現(xiàn)有系統(tǒng)中的順序定義文件的說(shuō)明圖。
圖11是在現(xiàn)有系統(tǒng)中的檢查執(zhí)行單元的信息(檢查執(zhí)行信息)的說(shuō)明圖。
具體實(shí)施例方式
實(shí)施方式1首先參照?qǐng)D1,敘述本系統(tǒng)的概要。本系統(tǒng)由在本地機(jī)只運(yùn)行的脆弱性檢查裝置100和遠(yuǎn)程機(jī)或者作為本地機(jī)的主計(jì)算機(jī)的一個(gè)以上的踏板模擬裝置構(gòu)成。在本實(shí)施方式中配置有1050、1060二個(gè)踏板模擬裝置,脆弱性檢測(cè)裝置100和踏板模擬裝置1050、1060經(jīng)由網(wǎng)絡(luò)連接。另外,踏板模擬裝置1050、1060,分別執(zhí)行踏板模擬程序105、106。
脆弱性檢查裝置100,是根據(jù)來(lái)自使用者101的請(qǐng)求,檢查成為對(duì)象的主計(jì)算機(jī),或者對(duì)網(wǎng)絡(luò)是否有安全上的脆弱性的計(jì)算機(jī)。檢查通過(guò)脆弱性檢查裝置100操作踏板模擬裝置1050的踏板模擬程序105實(shí)施。
踏板模擬裝置1050執(zhí)行的踏板模擬程序105是通過(guò)網(wǎng)絡(luò)從脆弱性檢查裝置100接收命令,進(jìn)行分組發(fā)送接收、步驟的起動(dòng)·結(jié)束、文件轉(zhuǎn)送、信息中繼的程序。
踏板模擬程序105還具有向其他的踏板模擬裝置1060的踏板模擬程序106轉(zhuǎn)送命令的功能,通過(guò)適宜地配置踏板模擬裝置1050、1060,還可以對(duì)位于內(nèi)部網(wǎng)絡(luò)的檢查對(duì)象主計(jì)算機(jī)107進(jìn)行檢查。
踏板模擬程序105、106,可以在檢查前在檢查對(duì)象的網(wǎng)絡(luò)上的主計(jì)算機(jī)內(nèi)運(yùn)行,另外,也可以作為脆弱性檢查的一環(huán),利用安全漏洞埋入。
踏板模擬程序105的操作,實(shí)際上在脆弱性檢查裝置100內(nèi)由插入程序104控制。所謂插入程序104,是為了攻擊各個(gè)安全漏洞的可以動(dòng)態(tài)輸入的共享插入程序。插入程序104通過(guò)操作踏板模擬程序105對(duì)存在于檢查對(duì)象上的安全漏洞進(jìn)行攻擊。
通過(guò)準(zhǔn)備各種插入程序104,可以進(jìn)行針對(duì)多樣的安全漏洞的脆弱性檢查。
插入程序104可以由命令過(guò)程102控制。所謂命令過(guò)程102,是用解釋程序語(yǔ)言來(lái)進(jìn)行記述為了進(jìn)行不正當(dāng)訪問(wèn)通常攻擊者進(jìn)行的順序的文本書(shū)記。通過(guò)根據(jù)命令過(guò)程102調(diào)用各種插入程序104,脆弱性檢查裝置100,可以進(jìn)行模擬攻擊者的復(fù)雜的脆弱性檢查。
命令過(guò)程102也和插入程序104一樣,可以根據(jù)其目的準(zhǔn)備多個(gè)。另外,還可以從命令過(guò)程102中調(diào)用其他的命令過(guò)程102,由此可以記述把其他的命令過(guò)程102作為攻擊的一步驟那樣更高度的命令過(guò)程102。
在本實(shí)施方式中,作為命令過(guò)程102的記述語(yǔ)言使用Perl。
命令過(guò)程102,可以把執(zhí)行檢查的結(jié)果得到的與檢查對(duì)象有關(guān)的知識(shí),例如用戶(hù)帳戶(hù)的一覽和運(yùn)行的服務(wù)器一覽等的信息,存儲(chǔ)在知識(shí)共享單元103中。被存儲(chǔ)在知識(shí)共享單元103中的知識(shí),可以從其他的命令過(guò)程102中參照。
另外,通過(guò)在知識(shí)共享單元103中準(zhǔn)備根據(jù)推論規(guī)則鑒定知識(shí)的推論單元108,還可以從由命令過(guò)程102得到的知識(shí)(事實(shí)信息)中導(dǎo)出新的知識(shí)(推論)。例如如果用某個(gè)命令過(guò)程102判斷檢查對(duì)象主計(jì)算機(jī)107的OS是UNIX(注冊(cè)商標(biāo))系列,則可以根據(jù)推論規(guī)則導(dǎo)出該主計(jì)算機(jī)的管理者帳戶(hù)名是root這一知識(shí)。
依據(jù)以上概要,下面參照?qǐng)D2說(shuō)明脆弱性檢查裝置100的內(nèi)部構(gòu)成。脆弱性檢查裝置100,由操作單元201、檢查執(zhí)行單元202構(gòu)成,檢查執(zhí)行單元202由命令過(guò)程控制單元203、插入程序控制單元204、知識(shí)共享單元103,以及踏板模擬程序控制單元205構(gòu)成。
命令過(guò)程控制單元203提供用于存儲(chǔ)、閱覽、執(zhí)行命令過(guò)程102的裝置。一個(gè)以上的命令過(guò)程102被存儲(chǔ)在位于命令過(guò)程控制單元203內(nèi)的命令過(guò)程存儲(chǔ)單元206中。在命令過(guò)程存儲(chǔ)單元206內(nèi)命令過(guò)程102,由文件名賦予唯一名字并管理。另外,命令過(guò)程存儲(chǔ)單元206,例如是磁盤(pán)。
如圖4所示,命令過(guò)程102由等級(jí)名記述單元401、執(zhí)行條件記述單元402、輸入輸出參數(shù)記述單元403、說(shuō)明記述單元404,以及檢查順序記述單元405構(gòu)成。在等級(jí)名記述單元401中,記述表示該命令過(guò)程102屬于哪個(gè)分類(lèi)的檢查的數(shù)據(jù)。在執(zhí)行條件記述單元402中,記述在分類(lèi)執(zhí)行時(shí)必須滿(mǎn)足的條件。條件使用術(shù)語(yǔ)邏輯記述。在輸入輸出參數(shù)記述單元403中,記述命令過(guò)程102受理哪種輸入進(jìn)行哪種輸出。在說(shuō)明記述單元404中,記述命令過(guò)程102的說(shuō)明文。在檢查順序記述單元405中記述檢查順序。
圖8表示命令過(guò)程102的記述例子。圖中,“Class”表示等級(jí)名記述單元401,“Precondition”表示執(zhí)行條件記述單元402,“Input”以及“Output”表示輸入輸出參數(shù)記述單元403。“Description”是說(shuō)明記述單元404,從“#-----END SCRIPT PROPERTY-----”下面的部分記載成為檢查順序記述單元405的Perl代碼。
在插入程序控制單元204內(nèi)有插入程序存儲(chǔ)單元207,存儲(chǔ)1個(gè)以上的插入程序104。插入程序存儲(chǔ)單元207例如是磁盤(pán)。插入程序104,在插入程序存儲(chǔ)單元207內(nèi)被賦予唯一名稱(chēng)管理。
知識(shí)共享單元103,是可以把命令過(guò)程102在脆弱性檢查構(gòu)成中收集的知識(shí)和其他的命令過(guò)程102共享的裝置。
在知識(shí)共享單元103內(nèi)有知識(shí)存儲(chǔ)單元208,存儲(chǔ)在脆弱性檢查過(guò)程中被收集的知識(shí),知識(shí)存儲(chǔ)單元208例如是磁盤(pán)。另外在知識(shí)共享單元103內(nèi)有推論單元108,可以以知識(shí)存儲(chǔ)單元103內(nèi)的知識(shí)為依據(jù)進(jìn)行推論處理。作為推論處理的一環(huán)可以通過(guò)命令過(guò)程控制單元203執(zhí)行命令過(guò)程102。
踏板模擬程序控制單元205在對(duì)插入程序104提供用于控制踏板模擬程序105的接口的同時(shí),還進(jìn)行運(yùn)行中的踏板模擬程序105的狀態(tài)管理。
進(jìn)而,脆弱性檢查裝置100例如可以通過(guò)具有微處理器等的CPU、半導(dǎo)體存儲(chǔ)等的磁盤(pán)等的記錄裝置,以及通信裝置的計(jì)算機(jī)實(shí)現(xiàn)。也可以把圖2所示的知識(shí)共享單元103、命令過(guò)程控制單元203、插入程序控制單元204以及踏板模擬程序控制單元205作為程序(脆弱性檢查程序),在存儲(chǔ)裝置中存儲(chǔ)脆弱性檢查程序,CPU通過(guò)讀入脆弱性檢查程序控制脆弱性檢查裝置100的動(dòng)作,執(zhí)行以下所示的處理。
下面,參照?qǐng)D3說(shuō)明圖1中的踏板模擬裝置1050執(zhí)行的踏板模擬程序105的內(nèi)部構(gòu)成。踏板模擬程序105,由全部控制單元301、通信中繼單元302、檢查分組發(fā)送接收單元303、步驟執(zhí)行單元304以及文件轉(zhuǎn)送單元305構(gòu)成。通信中繼單元302,通過(guò)網(wǎng)絡(luò),和其他的踏板模擬裝置1060的踏板模擬程序106和圖2所示的踏板模擬程序控制單元205進(jìn)行通信。
全部控制單元301受理通過(guò)通信中繼單元302發(fā)送來(lái)的控制信息,根據(jù)其指示操作檢查分組發(fā)送接收單元303、步驟執(zhí)行單元304、文件轉(zhuǎn)送單元305。另外,當(dāng)控制信息沒(méi)有給自己的情況下利用通信中繼單元302,把控制信息轉(zhuǎn)送到原本目標(biāo)。
通信中繼單元302轉(zhuǎn)送控制信息。通信中繼單元302,可以和1個(gè)主機(jī)和多個(gè)子機(jī)連接。因此,踏板模擬裝置1050,被相互連接成把脆弱性檢查裝置100作為頂點(diǎn)的樹(shù)狀。
連接,通過(guò)TCP進(jìn)行,TCP連接請(qǐng)求從子機(jī)向主機(jī)、從主機(jī)向子機(jī)都可以。
下面使用圖2說(shuō)明本系統(tǒng)的動(dòng)作。
首先使用者101通過(guò)操作單元201,對(duì)檢查執(zhí)行單元202,請(qǐng)求可以執(zhí)行的命令過(guò)程102的一覽。檢查執(zhí)行單元202調(diào)用作為其內(nèi)部裝置的命令過(guò)程控制單元203。
命令過(guò)程控制單元203從命令過(guò)程存儲(chǔ)單元206中各取出1個(gè)命令過(guò)程102,把其文件名、輸入輸出參數(shù)單元403、說(shuō)明記述單元404,以及等級(jí)名記述單元401的內(nèi)容存儲(chǔ)在目錄中。如果對(duì)于全部的命令過(guò)程102重復(fù)該處理,則通過(guò)操作單元201把目錄返回給使用者。
下面,使用者101選擇從檢查一覽(目錄)中自己想進(jìn)行的命令過(guò)程102,通過(guò)操作單元201對(duì)檢查執(zhí)行單元202,請(qǐng)求檢查的執(zhí)行。在請(qǐng)求中包含(1)命令過(guò)程名或者等級(jí)名,(2)檢查參數(shù)的信息,(3)檢查結(jié)束條件(但是只是(1)是等級(jí)名的情況)。檢查執(zhí)行單元202,對(duì)命令過(guò)程控制單元203,請(qǐng)求檢查的執(zhí)行。執(zhí)行結(jié)果被返回操作單元201。
下面,參照?qǐng)D2、圖4、圖5說(shuō)明命令過(guò)程控制單元203的動(dòng)作。首先說(shuō)明指定檢查名執(zhí)行檢查的情況。
接收到檢查執(zhí)行請(qǐng)求的命令過(guò)程控制單元203,在步驟501中取出由在命令過(guò)程存儲(chǔ)單元206內(nèi)被指定的文件名管理的命令過(guò)程102。
下面,在步驟502中,命令過(guò)程控制單元203取出被記載在命令過(guò)程102中的執(zhí)行條件記述單元402的內(nèi)容。在命令過(guò)程102的執(zhí)行條件記述單元402中,以術(shù)語(yǔ)邏輯記述了用于執(zhí)行該命令過(guò)程102所需要的條件,例如檢查對(duì)象主計(jì)算機(jī)107的OS是Windows(注冊(cè)商標(biāo))等。命令過(guò)程控制單元203,把該條件送到指示共享單元103,確認(rèn)是否滿(mǎn)足執(zhí)行條件。
下面以來(lái)自知識(shí)共享單元103的應(yīng)答為基礎(chǔ),在步驟503中進(jìn)行是否滿(mǎn)足執(zhí)行條件的判斷,如果不滿(mǎn)足執(zhí)行條件則命令過(guò)程控制單元203,進(jìn)入步驟508作為命令過(guò)程102的執(zhí)行失敗結(jié)束處理。
如果執(zhí)行條件被滿(mǎn)足,則處理進(jìn)入步驟504。在此命令過(guò)程控制單元203,根據(jù)命令過(guò)程102的檢查順序記述單元405的內(nèi)容,和包含在檢查執(zhí)行請(qǐng)求中的檢查參數(shù),執(zhí)行檢查。
在步驟505中判斷命令過(guò)程的執(zhí)行結(jié)果,當(dāng)執(zhí)行失敗的情況下,進(jìn)入步驟508,結(jié)束處理。
當(dāng)執(zhí)行成功的情況下,有時(shí)獲得新的知識(shí)。例如,是被發(fā)現(xiàn)的安全漏洞的一覽等。這樣的知識(shí)在進(jìn)行其他的檢查時(shí)可以再利用的步驟506中,存儲(chǔ)在知識(shí)共享單元103中的共享知識(shí)存儲(chǔ)單元208中。
最后,把執(zhí)行結(jié)果返回調(diào)用源結(jié)束處理(步驟S507)。
下面,參照?qǐng)D6說(shuō)明指定等級(jí)名執(zhí)行檢查的情況。
接收到檢查執(zhí)行請(qǐng)求的命令過(guò)程控制單元203,通過(guò)執(zhí)行由步驟S601~S607構(gòu)成的循環(huán),順序取出被存儲(chǔ)在命令過(guò)程存儲(chǔ)單元206中的命令過(guò)程102,進(jìn)行以下的動(dòng)作。
首先在步驟604中參照作為當(dāng)前對(duì)象的命令過(guò)程102的等級(jí)名記述單元401,檢查該命令過(guò)程102是否屬于用檢查執(zhí)行請(qǐng)求指定的等級(jí)。
如果命令過(guò)程102不屬于在檢查執(zhí)行請(qǐng)求中指定的等級(jí)102,則進(jìn)入步驟609,對(duì)以下的命令過(guò)程102進(jìn)行處理。
如果命令過(guò)程102屬于在檢查執(zhí)行請(qǐng)求中指定的等級(jí),則在步驟605中,試著執(zhí)行命令過(guò)程102。具體地說(shuō),進(jìn)行從圖5的步驟502開(kāi)始的處理。
在步驟606中判斷執(zhí)行成功、失敗,如果失敗,則進(jìn)入步驟609,試行其他的命令過(guò)程102。
如果執(zhí)行成功,則在步驟607中判斷是否進(jìn)一步執(zhí)行其他的同一等級(jí)的命令過(guò)程102。判斷以包含在作為檢查執(zhí)行請(qǐng)求送出的信息中的,檢查結(jié)束條件為基礎(chǔ)進(jìn)行。
如果檢查結(jié)束條件是“執(zhí)行等級(jí)一致的全部的命令過(guò)程”,則進(jìn)入步驟609,對(duì)其他的命令過(guò)程102也試著執(zhí)行。如果不是則進(jìn)入步驟608,把執(zhí)行結(jié)果返回調(diào)用源結(jié)束處理。
在步驟602中,判斷是否對(duì)全部的命令過(guò)程102試著執(zhí)行,如果判斷為對(duì)全部的命令過(guò)程102試著執(zhí)行的情況下,處理進(jìn)入步驟610。
在達(dá)到步驟610前,當(dāng)1個(gè)命令過(guò)程102執(zhí)行成功的情況下,進(jìn)入步驟608,把執(zhí)行結(jié)果返回調(diào)用源結(jié)束處理。如果一個(gè)也沒(méi)有成功的情況下,進(jìn)入步驟611,作為檢查執(zhí)行處理失敗結(jié)束處理。
以上,敘述了由使用者101請(qǐng)求命令過(guò)程執(zhí)行時(shí)的處理,但如上所述,也可以從命令過(guò)程102調(diào)用其他的命令過(guò)程102。這種情況下,只是調(diào)用源不同,送到命令過(guò)程控制單元203的數(shù)據(jù)及以后的處理相同。
下面,參照?qǐng)D2說(shuō)明插入程序控制單元204的動(dòng)作。插入程序控制單元204,在命令過(guò)程控制單元203執(zhí)行被記述在命令過(guò)程102的檢查順序記述單元405中的插入程序執(zhí)行命令時(shí)由命令過(guò)程控制單元203調(diào)用。在調(diào)用時(shí)被送出的數(shù)據(jù)是執(zhí)行的插入程序104的名稱(chēng)及其插入程序104所需要的執(zhí)行參數(shù)。
插入程序控制單元204從插入程序存儲(chǔ)單元207中取出與作為參數(shù)送出的插入程序名對(duì)應(yīng)的插入程序104執(zhí)行。執(zhí)行結(jié)果被返回作為調(diào)用源的命令過(guò)程控制單元203,最終作為對(duì)命令過(guò)程執(zhí)行命令的結(jié)果返回命令過(guò)程102。
插入程序104在其執(zhí)行中,通過(guò)踏板模擬程序控制單元205,操作踏板模擬程序105。被操作的踏板模擬程序105,用程序運(yùn)行的主計(jì)算機(jī)的地址、在主計(jì)算機(jī)內(nèi)部唯一的踏板模擬程序識(shí)別符指定。在踏板模擬程序105中可以要求的命令如下。
TCP/UDP/RAW套接字生成、廢棄對(duì)套接字(TCP/UDP)的本地口的Bind對(duì)套接字(TCP/UDP)的遠(yuǎn)程口的Connect通過(guò)被Connect的套接字的Send、Recv通過(guò)未被Connect的套接字的Send To、Recv FromProcess的起動(dòng)·結(jié)束通過(guò)起動(dòng)后的Process的標(biāo)準(zhǔn)輸入輸出的數(shù)據(jù)交換從脆弱性檢查裝置主機(jī)到踏板模擬程序運(yùn)行主機(jī)的文件轉(zhuǎn)送及其反踏板模擬程序狀態(tài)取得踏板模擬程序停止下面,參照?qǐng)D2說(shuō)明知識(shí)共享單元103的動(dòng)作。知識(shí)共享單元103的使用是為了在知識(shí)存儲(chǔ)單元208中存儲(chǔ)通過(guò)檢查得到的知識(shí),可以在其他的檢查中再利用。
推論單元108,根據(jù)知識(shí)存儲(chǔ)單元208中的知識(shí)推論滿(mǎn)足被給予的目標(biāo)的解是否存在。本裝置,為了識(shí)別命令過(guò)程102的執(zhí)行條件由命令過(guò)程控制單元203調(diào)用。另外,通過(guò)在命令過(guò)程102中記述共享知識(shí)獲得命令,還可以在命令過(guò)程執(zhí)行中被調(diào)用。
知識(shí)以術(shù)語(yǔ)邏輯來(lái)表現(xiàn),推論通過(guò)基于Prolog等的,術(shù)語(yǔ)邏輯的推論系統(tǒng)而進(jìn)行。在知識(shí)存儲(chǔ)單元208中,不僅是與在檢查中得到的事實(shí)有關(guān)的知識(shí),還可以存儲(chǔ)利用了變量的推論規(guī)則。
另外,通過(guò)定義具有執(zhí)行命令過(guò)程102的作用的特別的術(shù)語(yǔ),記述利用了該術(shù)語(yǔ)的推論規(guī)則,當(dāng)共享知識(shí)不足的情況下為了獲得知識(shí)可以執(zhí)行命令過(guò)程102。由此,為了滿(mǎn)足某個(gè)命令過(guò)程102的執(zhí)行條件,可以自動(dòng)地調(diào)用其他的命令過(guò)程102。
推論規(guī)則通常在系統(tǒng)初始化時(shí)從初始設(shè)定文件(知識(shí)文件)中讀取,被設(shè)定在共享知識(shí)存儲(chǔ)單元208,也可以在檢查過(guò)程中追加。另外,還可以把被存儲(chǔ)的知識(shí)保存的初始設(shè)定文件(知識(shí)文件)中。
圖7表示知識(shí)文件的例子。在本實(shí)施方式中,記法利用Prolog的語(yǔ)法。
通過(guò)在本實(shí)施方式所示的系統(tǒng),可以實(shí)現(xiàn)具有以下那樣的特征的安全漏洞診斷系統(tǒng)。
第一,把檢查方案作為用編程語(yǔ)言記述的命令過(guò)程102表現(xiàn),從命令過(guò)程102中自動(dòng)地調(diào)用到插入程序(相當(dāng)于檢查執(zhí)行單元)104,可以進(jìn)行復(fù)雜試驗(yàn)的實(shí)施。
進(jìn)而,各檢查執(zhí)行單元間的參數(shù)交換(授受)由于命令過(guò)程102中介,因而使用者不需要知道檢查執(zhí)行單元間的輸入輸出的關(guān)系。
進(jìn)而,通過(guò)命令過(guò)程102調(diào)用其他的命令過(guò)程102,可以實(shí)現(xiàn)被階層化的方案的實(shí)施。
進(jìn)而,由于根據(jù)推論規(guī)則可以從共享的知識(shí)中導(dǎo)出新的知識(shí),因而不需要為每個(gè)命令過(guò)程·插入程序104制作推論邏輯。
進(jìn)而,插入程序104通過(guò)經(jīng)由踏板模擬程序105執(zhí)行檢查,可以實(shí)現(xiàn)和經(jīng)由和現(xiàn)實(shí)的攻擊者同樣的踏板的檢查方案。
進(jìn)而,通過(guò)在命令過(guò)程中采用等級(jí)的概念,可以形成采用各等級(jí)的分類(lèi),在從命令過(guò)程中調(diào)用其他的命令過(guò)程時(shí),不只是命令過(guò)程的文件名,還可以從等級(jí)名中調(diào)用。
實(shí)施方式2在實(shí)施方式1中,操作單元201和檢查執(zhí)行單元202是在同一裝置內(nèi),但也可以把他們分散配置在網(wǎng)絡(luò)上。
可以用在本實(shí)施方式中表示的系統(tǒng),實(shí)現(xiàn)具有以下特征的安全漏洞診斷系統(tǒng)。
加上實(shí)施方式1的特征,可以把檢查執(zhí)行單元配置在防火墻的外側(cè),把操作單元配置在防火墻的內(nèi)側(cè),由此,可以降低把本系統(tǒng)配置在網(wǎng)絡(luò)上的安全上的等級(jí)。
實(shí)施方式3在實(shí)施方式1中,雖然可以使用動(dòng)態(tài)輸入的共享程序庫(kù)作為插入程序104,但也可以通過(guò)能提供與踏板模擬程序控制單元205的接口的解釋程序語(yǔ)言來(lái)實(shí)現(xiàn)。
通過(guò)使用在本實(shí)施方式中所示的系統(tǒng),可以實(shí)現(xiàn)具有以下那樣特征的安全漏洞診斷系統(tǒng)。
加上實(shí)施方式1的特征,更容易安裝插入程序104,即使在系統(tǒng)運(yùn)轉(zhuǎn)中也可以簡(jiǎn)單地編輯插入程序104。
實(shí)施方式4在本實(shí)施方式中踏板模擬程序105、106之間,以及踏板模擬程序105和脆弱性檢查裝置100之間的通信使用TCP/IP上獨(dú)立協(xié)議,但考慮防火墻,還可以把它構(gòu)筑在HTTP、SMTP等的可以通過(guò)防火墻的一般的通信協(xié)議上。
通過(guò)在本實(shí)施方式中所示的系統(tǒng),就可以實(shí)現(xiàn)具有以下那樣的特征的安全漏洞診斷系統(tǒng)。
加上實(shí)施方式1的特征,可以防止通過(guò)防火墻切斷和踏板模擬程序的通信,能夠以與實(shí)際的攻擊者同樣的攻擊方案來(lái)進(jìn)行檢查。
綜上所述,如果采用本發(fā)明,就可以把檢查方案作為用編程語(yǔ)言記述的命令過(guò)程來(lái)進(jìn)行表現(xiàn),通過(guò)從命令過(guò)程中自動(dòng)地調(diào)用插入程序(相當(dāng)于檢查執(zhí)行單元),可以實(shí)現(xiàn)復(fù)雜的試驗(yàn)。
而且,各檢查執(zhí)行單元間的參數(shù)交換通過(guò)由命令過(guò)程來(lái)作為中介,使用者就可以不需要知道檢查執(zhí)行單元間的輸入輸出關(guān)系。
權(quán)利要求
1.一種安全漏洞診斷系統(tǒng),其特征在于包括存儲(chǔ)有多個(gè)用編程語(yǔ)言記述了通常攻擊者為了進(jìn)行不正當(dāng)訪問(wèn)而進(jìn)行的順序的命令過(guò)程的命令過(guò)程存儲(chǔ)單元;通過(guò)來(lái)自使用者的輸入請(qǐng)求上述命令過(guò)程的一覽的操作單元;根據(jù)上述操作單元的請(qǐng)求,從上述命令過(guò)程存儲(chǔ)單元中取出各命令過(guò)程,制作表示輸入輸出參數(shù)記述、命令過(guò)程執(zhí)行必要條件和檢查順序的目錄來(lái)提示使用者,并執(zhí)行由使用者選擇的命令過(guò)程的命令過(guò)程控制單元;存儲(chǔ)了安裝有用于攻擊各個(gè)安全漏洞的邏輯的插入程序的插入程序存儲(chǔ)單元;和通過(guò)由命令過(guò)程控制單元執(zhí)行命令過(guò)程而被調(diào)用,從上述命令過(guò)程存儲(chǔ)單元取出由執(zhí)行命令過(guò)程指定的插入程序,對(duì)檢查對(duì)象計(jì)算機(jī)執(zhí)行該插入程序的插入程序控制單元。
2.根據(jù)權(quán)利要求1所述的安全漏洞診斷系統(tǒng),其特征在于包括具有分組發(fā)送接收、過(guò)程起動(dòng)、結(jié)束和過(guò)程的數(shù)據(jù)輸入輸出、以及文件轉(zhuǎn)送功能的踏板模擬程序;經(jīng)由上述踏板模擬程序來(lái)實(shí)施上述插入程序的踏板模擬程序控制單元,其中上述插入程序通過(guò)來(lái)自上述插入程序的指令對(duì)檢查對(duì)象計(jì)算機(jī)執(zhí)行。
3.根據(jù)權(quán)利要求1所述的安全漏洞診斷系統(tǒng),其特征在于上述命令過(guò)程的構(gòu)成要使其具有能調(diào)用其他的命令過(guò)程的功能。
4.根據(jù)權(quán)利要求1所述的安全漏洞診斷系統(tǒng),其特征在于向上述命令過(guò)程中導(dǎo)入等級(jí)的概念,上述命令過(guò)程的構(gòu)成要使其具有在調(diào)用其他的命令過(guò)程時(shí),能通過(guò)指定等級(jí)名來(lái)調(diào)用其他的命令過(guò)程的功能。
5.根據(jù)權(quán)利要求1所述的安全漏洞診斷系統(tǒng),其特征在于包含確認(rèn)是否滿(mǎn)足了上述命令過(guò)程執(zhí)行必要條件的知識(shí)共享單元,知識(shí)共享單元具有根據(jù)推論規(guī)則把在執(zhí)行上述命令過(guò)程的過(guò)程中收集到的信息導(dǎo)出為新知識(shí)的推論單元。
6.根據(jù)權(quán)利要求5所述的安全漏洞診斷系統(tǒng),其特征在于知識(shí)共享單元的構(gòu)成要使其具有在共享知識(shí)不足的情況下,執(zhí)行用于根據(jù)推論規(guī)則獲得知識(shí)的命令過(guò)程的功能。
7.根據(jù)權(quán)利要求2所述的安全漏洞診斷系統(tǒng),其特征在于,用上述命令過(guò)程控制單元、上述插入程序存儲(chǔ)單元、上述插入程序控制單元、上述命令過(guò)程存儲(chǔ)單元和上述踏板模擬程序控制單元形成檢查執(zhí)行單元,使檢查執(zhí)行單元和上述操作單元成為分散在網(wǎng)絡(luò)上的結(jié)構(gòu)。
8.根據(jù)權(quán)利要求1所述的安全漏洞診斷系統(tǒng),其特征在于上述插入程序用解釋程序語(yǔ)言來(lái)進(jìn)行記述。
9.根據(jù)權(quán)利要求2所述的安全漏洞診斷系統(tǒng),其特征在于踏板模擬程序控制單元是在防火墻可以通過(guò)的協(xié)議上構(gòu)筑的。
全文摘要
本發(fā)明公開(kāi)了一種安全漏洞診斷系統(tǒng),預(yù)先存儲(chǔ)用編程語(yǔ)言記述了通常攻擊者進(jìn)行的順序的命令過(guò)程,通過(guò)執(zhí)行從該被存儲(chǔ)著的命令過(guò)程中使用者選擇出的命令過(guò)程,調(diào)用安裝有用于各個(gè)安全漏洞的攻擊的邏輯的插入程序,通過(guò)對(duì)檢查對(duì)象計(jì)算機(jī)執(zhí)行該插入程序,使用者不需要知道檢查執(zhí)行單元之間的輸入輸出關(guān)系等安全方面的知識(shí)。
文檔編號(hào)G06F11/22GK1571961SQ0380133
公開(kāi)日2005年1月26日 申請(qǐng)日期2003年10月8日 優(yōu)先權(quán)日2002年10月22日
發(fā)明者河內(nèi)清人 申請(qǐng)人:三菱電機(jī)株式會(huì)社