两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

訪問控制裝置以及訪問控制方法

文檔序號(hào):6556750閱讀:141來源:國(guó)知局
專利名稱:訪問控制裝置以及訪問控制方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種控制通過程序向控制對(duì)象資源的訪問的訪問控制裝置以及訪問控制方法。
背景技術(shù)
經(jīng)由網(wǎng)絡(luò)等得到程序,并在個(gè)人計(jì)算機(jī)或PDA、移動(dòng)電話中進(jìn)行執(zhí)行的使用方式正在普及。這樣的使用方式由于可以迅速地得到所需要的應(yīng)用程序,所以具有可以提高用戶的便利性的效果。另一方面,在通過網(wǎng)絡(luò)流通的程序代碼中存在以破壞系統(tǒng)或非法操作為目的的具有惡意的代碼、引起系統(tǒng)資源的亂用或動(dòng)作故障等的具有缺陷的代碼。隨著下載應(yīng)用程序的使用擴(kuò)大,確保用戶的便利行并確保程序執(zhí)行的安全性成為緊要的課題,防止由于具有惡意或缺陷的代碼(非法代碼)導(dǎo)致的傷害的機(jī)構(gòu)的重要性正在提高。
作為防止非法代碼傷害的機(jī)構(gòu),具有被稱為沙箱(sandbox)的、限制了向資源的訪問的程序代碼的執(zhí)行環(huán)境。沙箱具有訪問控制功能,該功能按照被稱為安全策略的訪問控制規(guī)則,控制對(duì)來自在沙箱上執(zhí)行的程序代碼(被沙箱化的代碼)的文件或網(wǎng)絡(luò)等進(jìn)行的訪問。這里,為了確保沙箱的安全性,需要防止被沙箱化的代碼旁路(bypath)訪問控制處理來對(duì)資源進(jìn)行直接訪問。
作為防止旁路訪問控制的有力方法,具有使用了系統(tǒng)調(diào)用鉤子(hook)的沙箱。系統(tǒng)調(diào)用是在程序代碼對(duì)文件或網(wǎng)絡(luò)等資源進(jìn)行訪問時(shí)對(duì)操作系統(tǒng)(OS)進(jìn)行發(fā)行的請(qǐng)求。因?yàn)椴唤?jīng)由系統(tǒng)調(diào)用操作計(jì)算機(jī)的資源是困難的,所以通過以系統(tǒng)調(diào)用為中介(以下稱為「鉤子」。)附加訪問控制處理,由此,旁路變得困難。(例如參照Using Kernel Hypervisors to Secure Applications,inProceedings of the Annual Computer Security Application Conference,1997。)。
但是,系統(tǒng)調(diào)用是OS的低等級(jí)接口,OS難以由已掛鉤的系統(tǒng)調(diào)用的信息來取得程序的意思信息。因此,存在以下的課題在通過系統(tǒng)調(diào)用鉤子的訪問控制中,對(duì)程序的意思信息進(jìn)行了考慮的控制/處理是困難的。在無法得到程序的意思信息的情況下,有如下問題需要對(duì)低等級(jí)的接口設(shè)定訪問控制規(guī)則,需要與系統(tǒng)有關(guān)的較深知識(shí)和較費(fèi)功夫。此外,還存在以下的問題通過系統(tǒng)調(diào)用等級(jí)來描述被稱為「允許備份程序安裝或取得履歷為條件」的允許附加條件等基于程序意思信息的柔性訪問規(guī)則是困難的。
因無法取得意思信息而引起的課題可以通過使用了庫(kù)(library)函數(shù)調(diào)用的鉤子的沙箱來解決。具有以下的實(shí)現(xiàn)方法把包含控制對(duì)象的函數(shù)的庫(kù)置換為包含向沙箱的鉤子處理的庫(kù)(例如參照DIToolsApplication Level Supportfor Dynamic Extension and Flexible Composition,in Proceedings of 2000USENIX Annual Technical Conference,2000)。由此,可以對(duì)具有高抽象度的接口追加訪問控制處理,可以高效率地設(shè)定基于意思信息的多樣的訪問規(guī)則。
但是,在僅依存于庫(kù)函數(shù)調(diào)用鉤子的沙箱中,無法防止稱為直接發(fā)行系統(tǒng)調(diào)用的旁路攻擊,存在安全性方面的重大問題。

發(fā)明內(nèi)容
因此,本發(fā)明是鑒于上述課題而發(fā)明的,其目的在于提供一種實(shí)現(xiàn)基于程序意思信息的高度的資源訪問控制、和防止旁路的強(qiáng)安全性兩者的訪問控制裝置以及訪問控制方法。
一種訪問控制裝置,其控制通過程序向控制對(duì)象資源的訪問,具有函數(shù)訪問檢測(cè)部,其檢測(cè)來自程序的對(duì)控制對(duì)象函數(shù)的調(diào)用,并生成識(shí)別信息,該識(shí)別信息確定從該檢測(cè)到的控制對(duì)象函數(shù)所發(fā)行的訪問請(qǐng)求;資源訪問控制部,其從所述程序取得對(duì)所述控制對(duì)象資源的訪問請(qǐng)求,并根據(jù)所述識(shí)別信息判定可否進(jìn)行所述訪問請(qǐng)求。
一種訪問控制方法,其控制通過程序向控制對(duì)象資源的訪問,具有如下步驟檢測(cè)來自程序的對(duì)控制對(duì)象函數(shù)的調(diào)用,并生成識(shí)別信息,該識(shí)別信息確定來自該檢測(cè)出的控制對(duì)象函數(shù)的訪問請(qǐng)求;以及從所述程序取得對(duì)所述控制對(duì)象資源的訪問請(qǐng)求,根據(jù)所述識(shí)別信息判定可否進(jìn)行所述訪問的請(qǐng)求。


圖1是使用了本實(shí)施方式的訪問控制裝置的系統(tǒng)的說明圖。
圖2是本實(shí)施方式的訪問控制裝置的結(jié)構(gòu)方框圖。
圖3是本實(shí)施方式的資源訪問控制規(guī)則的一個(gè)例子。
圖4是表示本實(shí)施方式的訪問控制方法的流程圖。
圖5是安裝了本實(shí)施方式的程序之后的狀態(tài)的說明圖。
圖6是用于說明對(duì)函數(shù)調(diào)用通知用系統(tǒng)調(diào)用的發(fā)行源進(jìn)行驗(yàn)證的說明圖。
圖7是用于對(duì)本實(shí)施方式的訪問控制裝置的堆棧(stack)進(jìn)行說明的圖。
具體實(shí)施例方式
附圖描述了本發(fā)明的各種實(shí)施方式。在附圖中對(duì)相同或相近的部分及要素賦予相同或相近的數(shù)字,并且對(duì)于說明書中相同或相近的部分及要素予以省略或者進(jìn)行簡(jiǎn)單說明。
(訪問控制裝置)圖1表示對(duì)本發(fā)明實(shí)施方式的應(yīng)用程序進(jìn)行發(fā)布以及執(zhí)行的系統(tǒng)形態(tài)。在本系統(tǒng)中,個(gè)人計(jì)算機(jī)或PDA、移動(dòng)電話等計(jì)算機(jī)100執(zhí)行Web瀏覽器或郵件客戶端、游戲等各種各樣的程序。這里,在計(jì)算機(jī)100執(zhí)行的程序中包含在計(jì)算機(jī)100售出時(shí)已經(jīng)安裝的程序、從CD-ROM、DVD-ROM等記錄媒體400復(fù)制的程序、通過網(wǎng)絡(luò)200或基站500從應(yīng)用程序下載服務(wù)器300下載的程序等,可靠度和品質(zhì)不同。
如圖2所示,本實(shí)施方式的計(jì)算機(jī)100通過具備訪問控制裝置10,保護(hù)用戶數(shù)據(jù)、系統(tǒng)文件、網(wǎng)絡(luò)等控制對(duì)象資源30遠(yuǎn)離非法的程序。具體地說,訪問控制裝置10控制通過各個(gè)系統(tǒng)調(diào)用(例如open()、write())向控制對(duì)象資源30的訪問。
訪問控制裝置10具備鉤子部11,其取得程序70對(duì)內(nèi)核(kernel)20發(fā)行的系統(tǒng)調(diào)用,并傳送給預(yù)先設(shè)定的函數(shù)訪問檢測(cè)部12以及資源訪問控制部14;函數(shù)訪問檢測(cè)部12,其檢測(cè)來自程序70的對(duì)控制對(duì)象函數(shù)的調(diào)用,并生成識(shí)別信息,該識(shí)別信息確定是從所檢測(cè)到的控制對(duì)象函數(shù)發(fā)行的訪問請(qǐng)求;函數(shù)訪問控制部15,取得控制對(duì)象函數(shù)的調(diào)用源進(jìn)程的信息,根據(jù)函數(shù)許可用訪問控制規(guī)則判定可否調(diào)用控制對(duì)象函數(shù);資源訪問控制部14,從程序70取得對(duì)控制對(duì)象資源30的訪問請(qǐng)求,根據(jù)識(shí)別信息判斷可否請(qǐng)求訪問;追加處理部13,在函數(shù)訪問檢測(cè)部12允許控制對(duì)象函數(shù)的調(diào)用的情況下,執(zhí)行預(yù)先規(guī)定的處理。
在圖2中,在程序執(zhí)行代碼40中包含多個(gè)函數(shù)調(diào)用,將func_1()、func_2()作為控制對(duì)象函數(shù)。此外,在func_1()執(zhí)行代碼50、func_2()執(zhí)行代碼60的開始,存在作為用于對(duì)訪問控制裝置10(內(nèi)核20)通知函數(shù)調(diào)用的通知命令(稱為「函數(shù)調(diào)用通知用系統(tǒng)調(diào)用」)的notify(),當(dāng)處理移動(dòng)到控制對(duì)象函數(shù)(func_1()、func_2())時(shí),發(fā)行notify()。
對(duì)系統(tǒng)調(diào)用notify()的自變量設(shè)定控制對(duì)象函數(shù)名等、在內(nèi)核20確定從控制對(duì)象函數(shù)發(fā)行的系統(tǒng)調(diào)用時(shí)所需要的識(shí)別信息或用于生成識(shí)別信息的關(guān)聯(lián)信息。例如,可以將函數(shù)執(zhí)行代碼在存儲(chǔ)器上的存儲(chǔ)地址或用于計(jì)算存儲(chǔ)地址的虛擬地址、在堆棧堆積的信息等作為識(shí)別信息來使用。對(duì)于識(shí)別信息在后面進(jìn)行詳細(xì)的敘述。
然后,對(duì)訪問控制裝置10的各個(gè)處理部進(jìn)行詳細(xì)的說明。
鉤子部11取得函數(shù)調(diào)用通知用系統(tǒng)調(diào)用notify(),并傳送給函數(shù)訪問檢測(cè)部12。此外,鉤子部11把請(qǐng)求向控制對(duì)應(yīng)資源30進(jìn)行訪問的系統(tǒng)調(diào)用傳送給資源訪問控制部14。
函數(shù)訪問檢測(cè)部12檢測(cè)對(duì)來自程序70的控制對(duì)象函數(shù)的調(diào)用,生成確定是從該檢測(cè)到的控制對(duì)象函數(shù)發(fā)行的系統(tǒng)調(diào)用的識(shí)別信息。
例如,函數(shù)訪問檢測(cè)部12由系統(tǒng)調(diào)用notify()的自變量取得控制對(duì)象函數(shù)名和控制對(duì)象函數(shù)調(diào)用源進(jìn)程(例如程序執(zhí)行代碼40)的信息,根據(jù)函數(shù)許可用訪問控制規(guī)則判斷可否調(diào)用控制對(duì)象函數(shù)。這里,在「函數(shù)許可用訪問控制規(guī)則」中記述了是否為允許調(diào)用的控制對(duì)象函數(shù)。
此外,函數(shù)訪問檢測(cè)部12在判斷可否調(diào)用之前驗(yàn)證函數(shù)調(diào)用通知用系統(tǒng)調(diào)用notify()是否沒有被非法調(diào)用,僅在確認(rèn)了從該控制對(duì)象函數(shù)發(fā)行系統(tǒng)調(diào)用notify()的情況下可以繼續(xù)進(jìn)行處理。關(guān)于具體的確認(rèn)方法將在后面進(jìn)行詳細(xì)的敘述。
函數(shù)訪問控制部15取得控制對(duì)象函數(shù)的函數(shù)名和控制對(duì)象函數(shù)的調(diào)用源進(jìn)程的信息,根據(jù)函數(shù)許可用訪問控制規(guī)則判定可否調(diào)用控制對(duì)象函數(shù)。然后,函數(shù)訪問檢測(cè)部12在允許調(diào)用的情況下生成識(shí)別信息。
追加處理部13在函數(shù)訪問控制部15允許控制對(duì)象函數(shù)的調(diào)用的情況下,執(zhí)行預(yù)先規(guī)定的處理。這里,在上述的「函數(shù)許可用訪問控制規(guī)則」中也可以記述以特定處理為條件地允許函數(shù)調(diào)用的條件附加許可規(guī)則。在允許附加條件情況下,函數(shù)訪問檢測(cè)部12將處理移動(dòng)至追加處理部13,執(zhí)行作為條件記述的處理。
作為在條件中設(shè)定的處理,例如具有伴隨函數(shù)調(diào)用的向資源訪問履歷的記錄(log)、取得控制對(duì)象資源30的備份等。
此外,追加處理部13執(zhí)行預(yù)先已規(guī)定的處理,函數(shù)訪問控制部15在所述追加處理部執(zhí)行了預(yù)先已規(guī)定的處理的情況下,可以允許調(diào)用控制對(duì)象函數(shù)。
此外,在允許函數(shù)調(diào)用的情況下,函數(shù)訪問檢測(cè)部12使用函數(shù)調(diào)用通知用系統(tǒng)調(diào)用自變量的信息和可以從內(nèi)核20取得的信息的一方或雙方,生成對(duì)來自該函數(shù)的系統(tǒng)調(diào)用發(fā)行進(jìn)行檢測(cè)時(shí)所必需的識(shí)別信息。
資源訪問控制部14從程序70取得對(duì)控制對(duì)象資源30的訪問請(qǐng)求,根據(jù)函數(shù)訪問檢測(cè)部12所生成的識(shí)別信息以及資源許可用訪問控制規(guī)則,判定系統(tǒng)調(diào)用的訪問可否進(jìn)行。這里,如圖3所示,在「資源訪問控制規(guī)則」中記述了控制對(duì)象資源30的信息、訪問請(qǐng)求源的程序70的信息、函數(shù)訪問檢測(cè)部12生成的識(shí)別信息、通過許可動(dòng)作組記述的規(guī)則。作為進(jìn)行控制的規(guī)則,可以列舉出僅規(guī)定的控制對(duì)象函數(shù)可以訪問規(guī)定的控制對(duì)象資源30、僅規(guī)定的控制對(duì)象函數(shù)拒絕規(guī)定的控制對(duì)象資源30。例如,在資源訪問控制規(guī)則中記述了以下的規(guī)則無條件地允許來自計(jì)算機(jī)100售出時(shí)所安裝的程序的系統(tǒng)調(diào)用,但對(duì)于下載的程序僅允許由識(shí)別信息確定的系統(tǒng)調(diào)用。此時(shí),資源訪問控制部14對(duì)于下載的程序,僅通過函數(shù)中被允許調(diào)用的函數(shù),允許對(duì)控制對(duì)象資源30進(jìn)行訪問。
(訪問控制方法)然后,使用圖4對(duì)本實(shí)施方式的訪問控制方法進(jìn)行說明。
首先,作為前提如圖5所示,設(shè)為通過編譯程序源(programme source)來生成程序目標(biāo)文件(programme object file),在程序執(zhí)行文件上配置應(yīng)用程序執(zhí)行代碼。此外,通過與靜態(tài)鏈接庫(kù)(static link library)進(jìn)行鏈接,作為本實(shí)施方式控制對(duì)象函數(shù)的func_1()、func_2()的執(zhí)行代碼被配置在程序執(zhí)行文件上。此外,在程序執(zhí)行文件上配置表示了各個(gè)執(zhí)行代碼的配置信息的再配置信息、作為用于動(dòng)態(tài)地鏈接公共庫(kù)的信息的動(dòng)態(tài)(dynamic)信息等。通過安裝這些程序,在實(shí)際存儲(chǔ)器地址上配置應(yīng)用程序執(zhí)行代碼、func_1()執(zhí)行代碼、func_2()執(zhí)行代碼。此外,通過與公共庫(kù)進(jìn)行鏈接,也可以配置作為庫(kù)目標(biāo)的func_3()執(zhí)行代碼。
在圖4的步驟S101中,鉤子部11取得為了通知控制對(duì)象函數(shù)的調(diào)用而設(shè)置的通知命令(例如函數(shù)調(diào)用通知用系統(tǒng)調(diào)用notify())。然后,鉤子部11將通知命令傳送給函數(shù)訪問檢測(cè)部12。
然后,在步驟S102,函數(shù)訪問檢測(cè)部12從程序檢測(cè)對(duì)于控制對(duì)象函數(shù)的調(diào)用。
然后,在步驟S103,函數(shù)訪問檢測(cè)部12驗(yàn)證函數(shù)調(diào)用通知用系統(tǒng)調(diào)用notify()是否沒有被非法調(diào)用。例如,通過參照程序計(jì)數(shù)器等方法取得系統(tǒng)調(diào)用notify()發(fā)行源的存儲(chǔ)器地址,通過驗(yàn)證是否與由系統(tǒng)調(diào)用自變量確定的控制對(duì)象函數(shù)的存儲(chǔ)地址范圍一致,可以進(jìn)行確認(rèn)。如圖5所示,控制對(duì)象函數(shù)的存儲(chǔ)地址例如在程序執(zhí)行代碼的頭(head)區(qū)域記述向函數(shù)目標(biāo)的偏移(offset),通過將偏移與程序的偏移目的地地址相加,可以計(jì)算func_1()偏移地址、func_2()偏移地址。
此外,在控制對(duì)象函數(shù)(func_3())包含在公共庫(kù)中的情況下,按照?qǐng)D6所示的順序,可以驗(yàn)證notify系統(tǒng)調(diào)用的發(fā)行源。設(shè)在庫(kù)中包含notify系統(tǒng)調(diào)用的發(fā)行函數(shù),從控制對(duì)象函數(shù)調(diào)用庫(kù)內(nèi)的notify系統(tǒng)調(diào)用發(fā)行函數(shù)。通過函數(shù)訪問檢測(cè)部12可以對(duì)表示配置了公共庫(kù)的地址范圍的地址解決表進(jìn)行管理,判定notify系統(tǒng)調(diào)用的發(fā)行源地址是否位于上述地址范圍內(nèi)。
在函數(shù)調(diào)用通知用系統(tǒng)調(diào)用notify()是恰當(dāng)?shù)那闆r下,進(jìn)入到步驟S104,在不恰當(dāng)?shù)那闆r下進(jìn)入到步驟S111,進(jìn)行顯示函數(shù)調(diào)用通知用系統(tǒng)調(diào)用notify()不恰當(dāng)?shù)腻e(cuò)誤處理,并結(jié)束處理。
然后,在步驟S104,函數(shù)訪問檢測(cè)部12從系統(tǒng)調(diào)用notify()的自變量取得控制對(duì)象函數(shù)名和控制對(duì)象函數(shù)調(diào)用源進(jìn)程(例如程序執(zhí)行代碼40)的信息,根據(jù)函數(shù)許可用訪問控制規(guī)則判斷可否進(jìn)行控制對(duì)象函數(shù)的調(diào)用。在允許調(diào)用的情況下,進(jìn)入步驟S105,在不允許的情況下進(jìn)行步驟S11,進(jìn)行顯示沒有控制對(duì)象函數(shù)調(diào)用權(quán)限等消息的錯(cuò)誤處理,并結(jié)束處理。
然后,在步驟S105,函數(shù)訪問檢測(cè)部12判斷在函數(shù)許可用訪問控制規(guī)則中是否記述了以特定處理為條件允許函數(shù)調(diào)用的條件附加許可規(guī)則。在允許附加條件的情況下,進(jìn)入步驟S106;在不允許附加條件的情況下進(jìn)入步驟S107。
然后,在步驟S106,追加處理部13執(zhí)行作為條件所記述的處理。
然后,在步驟S107,函數(shù)訪問檢測(cè)部12生成確定是從該檢測(cè)到的控制對(duì)象函數(shù)所發(fā)行的系統(tǒng)調(diào)用的識(shí)別信息。
例如,函數(shù)訪問檢測(cè)部12在調(diào)用了控制對(duì)象函數(shù)的情況下,將控制對(duì)象函數(shù)的函數(shù)名堆積在堆棧;在處理返回控制對(duì)象函數(shù)的調(diào)用源進(jìn)程的情況下,從堆棧除去控制對(duì)象函數(shù)的函數(shù)名,并作為識(shí)別信息生成在堆棧所存儲(chǔ)的信息。具體地說,如圖7所示,在對(duì)在自變量中包含了控制對(duì)象函數(shù)的函數(shù)名的、函數(shù)調(diào)用通知用系統(tǒng)調(diào)用(notify1())進(jìn)行接收時(shí),將函數(shù)名(func_1()、func_2())堆積在堆棧信息,在接收函數(shù)返回通知用系統(tǒng)調(diào)用(notify2())時(shí),從堆棧信息去除函數(shù)名(func_1()、func_2()),通過以上順序可以生成識(shí)別信息。
而且,函數(shù)訪問檢測(cè)部12僅在取得通知命令時(shí)的程序正在執(zhí)行時(shí)、代碼的存儲(chǔ)器地址包含在函數(shù)目標(biāo)文件的存儲(chǔ)范圍內(nèi)的情況下,可以把從通知命令所取得的控制對(duì)象函數(shù)名堆積在堆棧。
除此之外,函數(shù)訪問檢測(cè)部12計(jì)算控制對(duì)象函數(shù)的執(zhí)行代碼的實(shí)際存儲(chǔ)器上的存儲(chǔ)地址的范圍,可以作為識(shí)別信息生成存儲(chǔ)地址范圍。具體地說,如圖4所示,當(dāng)在函數(shù)調(diào)用通知用系統(tǒng)調(diào)用的自變量中設(shè)定了函數(shù)執(zhí)行代碼的地址偏移和大小的情況下,取得已安裝了程序執(zhí)行代碼的實(shí)際存儲(chǔ)器地址,通過將偏移與大小進(jìn)行相加來計(jì)算函數(shù)執(zhí)行代碼的實(shí)際存儲(chǔ)器上的存儲(chǔ)地址范圍。然后,作為識(shí)別信息生成計(jì)算出的存儲(chǔ)地址范圍。此外,在函數(shù)調(diào)用通知用系統(tǒng)調(diào)用的自變量中也可以直接包含存儲(chǔ)器地址范圍。
而且,在函數(shù)調(diào)用通知用系統(tǒng)調(diào)用的自變量中也可以包含控制對(duì)象函數(shù)的執(zhí)行代碼的虛擬存儲(chǔ)器地址范圍。此時(shí),函數(shù)訪問檢測(cè)部12根據(jù)虛擬存儲(chǔ)器地址范圍求出配置了執(zhí)行代碼的實(shí)際存儲(chǔ)器地址范圍,作為識(shí)別信息生成實(shí)際存儲(chǔ)器地址范圍。作為求出實(shí)際存儲(chǔ)器地址范圍的方法,例如虛擬存儲(chǔ)器地址范圍,根據(jù)函數(shù)調(diào)用通知用系統(tǒng)調(diào)用的執(zhí)行代碼設(shè)為是控制對(duì)象函數(shù)的最后的執(zhí)行代碼的地址偏移,函數(shù)訪問檢測(cè)部12通過將上述地址偏移與接收函數(shù)調(diào)用通知用系統(tǒng)調(diào)用時(shí)的正在執(zhí)行的代碼的存儲(chǔ)器地址相加,由此可以求出實(shí)際存儲(chǔ)器地址范圍。
此外,也可以將上述堆棧信息和地址范圍進(jìn)行組合來作為識(shí)別信息。例如,可以使在堆棧堆積的函數(shù)信息和函數(shù)執(zhí)行代碼的地址范圍相互對(duì)應(yīng)來生成識(shí)別信息。
然后,在步驟S108,鉤子部11取得系統(tǒng)調(diào)用(例如open()、write()),并參照系統(tǒng)調(diào)用自變量檢測(cè)對(duì)控制對(duì)象資源30的訪問請(qǐng)求。然后,鉤子部11把向控制對(duì)象資源30的訪問請(qǐng)求傳送給資源訪問控制部14。
然后,在步驟S109,資源訪問控制部14根據(jù)函數(shù)訪問檢測(cè)部12所生成的識(shí)別信息,判定可否進(jìn)行系統(tǒng)調(diào)用的訪問。在允許的情況下,進(jìn)入步驟S110,允許向控制對(duì)象資源30的訪問。另一方面,在不允許的情況下,進(jìn)入步驟S112,進(jìn)行顯示沒有資源訪問權(quán)限的錯(cuò)誤處理,拒絕向控制對(duì)象資源30的訪問。在圖2中,在func_1()執(zhí)行代碼50、func_2()執(zhí)行代碼60中包含的系統(tǒng)調(diào)用open()、write()由資源訪問控制部14許可了向控制對(duì)象資源30的訪問,但在程序執(zhí)行代碼40中包含的系統(tǒng)調(diào)用open()由資源訪問控制部14拒絕了訪問。
此外,作為可否訪問的判定方法,例如在作為識(shí)別信息使用在堆棧中存儲(chǔ)的信息的情況下,資源訪問控制部14根據(jù)在堆棧中是否堆積了控制對(duì)象函數(shù)的函數(shù)名,判定可否進(jìn)行系統(tǒng)調(diào)用的訪問(在已堆積時(shí)允許系統(tǒng)調(diào)用)。
此外,在作為識(shí)別信息正在使用存儲(chǔ)地址范圍的情況下,資源訪問控制部14參照進(jìn)程的程序計(jì)數(shù)器,根據(jù)發(fā)行了系統(tǒng)調(diào)用的命令代碼的存儲(chǔ)地址是否在存儲(chǔ)地址的范圍內(nèi),判定可否進(jìn)行系統(tǒng)調(diào)用的訪問。
此外,在作為識(shí)別信息正在使用把上述堆棧信息和地址范圍組合起來的信息的情況下,資源訪問控制部14驗(yàn)證控制對(duì)象函數(shù)正堆積在堆棧和發(fā)行了系統(tǒng)調(diào)用的命令代碼的存儲(chǔ)地址正收容在函數(shù)執(zhí)行代碼的存儲(chǔ)地址范圍內(nèi),在滿足兩個(gè)條件的情況下,進(jìn)行允許系統(tǒng)調(diào)用的判定處理。
此外,在上述的說明中,使用單一的流程圖對(duì)鉤子部11、函數(shù)訪問檢測(cè)部12以及資源訪問控制部14的動(dòng)作進(jìn)行了說明,但函數(shù)訪問檢測(cè)部12和資源訪問控制部14可以作為單獨(dú)的模塊進(jìn)行動(dòng)作。(作用以及效果)當(dāng)使用本實(shí)施方式的訪問控制裝置10以及訪問控制方法時(shí),生成確定是從檢測(cè)到的控制對(duì)象函數(shù)發(fā)行的系統(tǒng)調(diào)用的識(shí)別信息,通過根據(jù)該識(shí)別信息判定可否進(jìn)行向資源的訪問,可以根據(jù)識(shí)別信息將控制對(duì)象函數(shù)調(diào)用信息反映在對(duì)低等級(jí)的資源訪問請(qǐng)求的訪問控制中,可以同時(shí)確保函數(shù)調(diào)用單位的訪問控制的高抽象度和低等級(jí)資源訪問請(qǐng)求單位的訪問控制的強(qiáng)安全性兩者。由此,可以高效率地記述基于程序的意思信息的多樣的訪問規(guī)則,可以安全地執(zhí)行多功能的程序。
此外,函數(shù)訪問控制部15取得控制對(duì)象函數(shù)的函數(shù)名和控制對(duì)象函數(shù)的調(diào)用源進(jìn)程的信息,根據(jù)函數(shù)許可用訪問控制規(guī)則判定可否進(jìn)行控制對(duì)象函數(shù)的調(diào)用。然后,函數(shù)訪問控制部12在允許了調(diào)用的情況下,可以生成識(shí)別信息。因此,可以拒絕非法的控制對(duì)象函數(shù)的調(diào)用。
此外,當(dāng)使用本實(shí)施方式的訪問控制裝置10以及訪問控制方法時(shí),在允許了控制對(duì)象函數(shù)的調(diào)用的情況下,可以執(zhí)行預(yù)先規(guī)定的處理?;蛘?,在執(zhí)行了預(yù)先規(guī)定的處理的情況下,可以允許進(jìn)行控制對(duì)象函數(shù)的調(diào)用。因此,可以對(duì)控制對(duì)象函數(shù)調(diào)用進(jìn)行掛鉤,插入預(yù)先所規(guī)定的處理。由此,例如可安裝以備份的取得或履歷的取得等處理的執(zhí)行為條件的高度的訪問控制規(guī)則,可以應(yīng)對(duì)應(yīng)用程序或系統(tǒng)的多樣的必要條件。
此外,資源訪問控制部14除了識(shí)別信息之外,可以根據(jù)資源許可用訪問控制規(guī)則判定可否進(jìn)行系統(tǒng)調(diào)用的訪問。因此,關(guān)于向特定資源的訪問,可以附加使用特定函數(shù)的義務(wù)。由此,可以僅通過信賴的函數(shù)允許向特性資源的訪問,可以提高程序執(zhí)行的安全性。
此外,函數(shù)訪問檢測(cè)部12通過取得為了通知控制對(duì)象函數(shù)的調(diào)用而設(shè)置的通知命令(例如notify()),可以檢測(cè)對(duì)控制對(duì)象函數(shù)的調(diào)用。因此,可以通過對(duì)該通知命令進(jìn)行掛鉤檢測(cè)控制對(duì)象函數(shù)的調(diào)用,來取得通知命令的自變量中包含的識(shí)別信息或用于生成識(shí)別信息的關(guān)聯(lián)信息,可以通過簡(jiǎn)易的處理實(shí)現(xiàn)函數(shù)調(diào)用檢測(cè)。由此,可以削減本訪問控制裝置以及方法的處理成本和安裝成本。
此外,函數(shù)訪問檢測(cè)部12在確認(rèn)了上述通知命令是從控制對(duì)象函數(shù)發(fā)行的情況下,可以生成識(shí)別信息。因此,例如在程序?yàn)榱朔欠ㄔL問資源而假冒發(fā)行通知控制對(duì)象函數(shù)調(diào)用的命令時(shí),可以將其檢測(cè)到。由此可以進(jìn)一步提高程序執(zhí)行的安全性。
此外,函數(shù)訪問檢測(cè)部12生成已在堆棧存儲(chǔ)的信息來作為識(shí)別信息,資源訪問控制部14可以根據(jù)是否在堆棧堆積了控制對(duì)象函數(shù)的函數(shù)名來判定可否進(jìn)行通過系統(tǒng)調(diào)用的資源訪問。因此,即使在控制對(duì)象函數(shù)進(jìn)一步調(diào)用了函數(shù)的情況下,因?yàn)楹瘮?shù)的調(diào)用履歷包含在堆棧信息中,所以可以識(shí)別通過控制對(duì)象函數(shù)以及其下級(jí)函數(shù)的資源訪問。
此外,上述通知命令包含控制對(duì)象函數(shù)名,函數(shù)訪問檢測(cè)部12可以把根據(jù)通知命令得到的控制對(duì)象函數(shù)名堆積在堆棧。這樣,通過對(duì)該通知命令進(jìn)行掛鉤可以檢測(cè)控制對(duì)象函數(shù)調(diào)用并取得函數(shù)名,可以通過簡(jiǎn)單的處理實(shí)現(xiàn)函數(shù)調(diào)用檢測(cè)。由此,可以削減本訪問控制裝置以及方法的處理成本和安裝成本。
此外,函數(shù)訪問檢測(cè)部12僅在函數(shù)目標(biāo)文件的存儲(chǔ)范圍中包含了取得通知命令時(shí)的程序的執(zhí)行中代碼的存儲(chǔ)器地址時(shí),可以把從通知命名取得的控制對(duì)象函數(shù)名堆積在堆棧。由此,通知命令可以驗(yàn)證是否正在從在程序頭中記述的目標(biāo)存儲(chǔ)范圍進(jìn)行發(fā)行。例如,在程序?yàn)榱朔欠ㄔL問資源而假冒發(fā)行通知控制對(duì)象函數(shù)調(diào)用的命令時(shí),可以將其檢測(cè)到。由此,可以進(jìn)一步提高程序執(zhí)行的安全性。
此外,函數(shù)檢測(cè)部12對(duì)控制對(duì)象函數(shù)的執(zhí)行代碼在實(shí)際存儲(chǔ)器上的存儲(chǔ)地址范圍進(jìn)行計(jì)算,作為識(shí)別信息生成存儲(chǔ)地址范圍,資源訪問檢測(cè)部14參照進(jìn)程的程序計(jì)數(shù)器,可以根據(jù)發(fā)行了系統(tǒng)調(diào)用的命令代碼的存儲(chǔ)地址是否在存儲(chǔ)地址范圍內(nèi)來判定可否進(jìn)行系統(tǒng)調(diào)用的訪問。因此,根據(jù)配置了函數(shù)的執(zhí)行代碼的存儲(chǔ)器地址范圍,可以驗(yàn)證向控制對(duì)象資源的訪問請(qǐng)求是否是從控制對(duì)象函數(shù)發(fā)行的。
此外,上述通知命令包含控制對(duì)象函數(shù)的執(zhí)行代碼的存儲(chǔ)器地址,函數(shù)訪問檢測(cè)部12可以生成根據(jù)通知命令得到的存儲(chǔ)器地址范圍來作為識(shí)別信息。如此,通過對(duì)該通知命令進(jìn)行掛鉤可以檢測(cè)控制對(duì)象函數(shù)調(diào)用并取得存儲(chǔ)器地址范圍,可以通過簡(jiǎn)易的處理實(shí)現(xiàn)控制對(duì)象函數(shù)調(diào)用的檢測(cè)。由此,可以削減本訪問控制裝置以及方法的處理成本和安裝成本。
此外,上述通知命令包含控制對(duì)象函數(shù)的執(zhí)行代碼的虛擬存儲(chǔ)器地址范圍,函數(shù)訪問檢測(cè)部12從虛擬的存儲(chǔ)器地址范圍求出配置了執(zhí)行代碼的實(shí)際存儲(chǔ)器地址范圍,并可以作為識(shí)別信息生成實(shí)際存儲(chǔ)器地址范圍。這樣,可以從包含在通知命令中的虛擬存儲(chǔ)器地址范圍求出存儲(chǔ)函數(shù)的執(zhí)行代碼的實(shí)際存儲(chǔ)器地址范圍。由此,即使在生成程序執(zhí)行代碼時(shí)無法導(dǎo)出實(shí)際存儲(chǔ)器地址范圍的情況下,也可以使用本訪問控制裝置以及方法。
此外,將虛擬存儲(chǔ)器地址范圍,根據(jù)函數(shù)調(diào)用通知用系統(tǒng)調(diào)用的執(zhí)行代碼設(shè)為是控制對(duì)象函數(shù)的最后的執(zhí)行代碼的地址偏移,函數(shù)訪問檢測(cè)部12通過將上述地址偏移與接收函數(shù)調(diào)用通知用系統(tǒng)調(diào)用時(shí)的正在執(zhí)行的代碼的存儲(chǔ)器地址相加,由此可以求出實(shí)際存儲(chǔ)器地址范圍。如此,可以從包含在通知命令中的虛擬存儲(chǔ)器地址范圍求出存儲(chǔ)函數(shù)的執(zhí)行代碼的實(shí)際存儲(chǔ)器地址范圍。由此,即使在生成程序執(zhí)行代碼時(shí)無法導(dǎo)出實(shí)際存儲(chǔ)器地址范圍的情況下,也可以使用本訪問控制裝置以及方法。
(其他實(shí)施方式)通過第一以及第二實(shí)施方式對(duì)本發(fā)明進(jìn)行了記述。但應(yīng)該理解為部分構(gòu)成本發(fā)明的實(shí)施方式以及附圖并沒有限定本發(fā)明。通過本發(fā)明的公開,本領(lǐng)域的技術(shù)人員可以清楚本發(fā)明不同其他的實(shí)施例以及操作技術(shù)。
例如,在圖2中采用了將訪問控制裝置10安裝在操作系統(tǒng)的內(nèi)核20的內(nèi)部的結(jié)構(gòu),但也可以將訪問控制裝置10安裝在其他的位置。
此外,在上述的實(shí)施方式中,對(duì)判定可否進(jìn)行來自系統(tǒng)調(diào)用的訪問請(qǐng)求進(jìn)行了說明,但本發(fā)明并不限于系統(tǒng)調(diào)用,即使是來自其他程序的訪問請(qǐng)求也可以適用。
在領(lǐng)會(huì)了本發(fā)明的內(nèi)容并且不偏離本發(fā)明范圍的情況下,技術(shù)人員可能提出不同的修改。
權(quán)利要求
1.一種訪問控制裝置,其控制通過程序向控制對(duì)象資源的訪問,其特征在于,具有函數(shù)訪問檢測(cè)部,其檢測(cè)來自程序的對(duì)控制對(duì)象函數(shù)的調(diào)用,并生成識(shí)別信息,該識(shí)別信息確定從該檢測(cè)到的控制對(duì)象函數(shù)所發(fā)行的訪問請(qǐng)求;資源訪問控制部,其從所述程序取得對(duì)所述控制對(duì)象資源的訪問請(qǐng)求,并根據(jù)所述識(shí)別信息判定可否進(jìn)行所述訪問請(qǐng)求。
2.根據(jù)權(quán)利要求1所述的訪問控制裝置,其特征在于,還具有函數(shù)訪問控制部,其取得所述控制對(duì)象函數(shù)的調(diào)用源進(jìn)程的信息,并根據(jù)函數(shù)許可用訪問控制規(guī)則判定可否進(jìn)行所述控制對(duì)象函數(shù)的調(diào)用,所述函數(shù)訪問檢測(cè)部在允許了調(diào)用的情況下,生成所述識(shí)別信息。
3.根據(jù)權(quán)利要求1所述的訪問控制裝置,其特征在于,還具有在檢測(cè)到所述控制對(duì)象函數(shù)的調(diào)用時(shí),執(zhí)行預(yù)先規(guī)定的處理的追加處理部。
4.根據(jù)權(quán)利要求1所述的訪問控制裝置,其特征在于,還具有執(zhí)行預(yù)先規(guī)定的處理的追加處理部,所述函數(shù)訪問控制部在所述追加處理部執(zhí)行了預(yù)先規(guī)定的處理的情況下,允許所述控制對(duì)象函數(shù)的調(diào)用。
5.根據(jù)權(quán)利要求1所述的訪問控制裝置,其特征在于,所述資源訪問控制部除了所述識(shí)別信息之外,可以根據(jù)資源許可用訪問控制規(guī)則判定可否進(jìn)行所述系統(tǒng)調(diào)用的訪問,在所述資源許可用訪問控制規(guī)則中記述了控制通過規(guī)定的所述控制對(duì)象函數(shù)的向所述控制對(duì)象資源的訪問的規(guī)則。
6.根據(jù)權(quán)利要求1所述的訪問控制裝置,其特征在于,所述函數(shù)訪問檢測(cè)部通過取得為了通知所述控制對(duì)象函數(shù)的調(diào)用而設(shè)置的通知命令,來檢測(cè)對(duì)所述控制對(duì)象函數(shù)的調(diào)用,在所述通知命令中包含所述識(shí)別信息或生成所述識(shí)別信息所必需的信息。
7.根據(jù)權(quán)利要求1所述的訪問控制裝置,其特征在于,所述函數(shù)訪問檢測(cè)部在確認(rèn)了正在從所述控制對(duì)象函數(shù)發(fā)行所述通知命令的情況下,生成所述識(shí)別信息。
8.根據(jù)權(quán)利要求1所述的訪問控制裝置,其特征在于,所述函數(shù)訪問檢測(cè)部在調(diào)用了所述控制對(duì)象函數(shù)的情況下,將所述控制對(duì)象函數(shù)的函數(shù)名堆積在堆棧;在處理返回所述控制對(duì)象函數(shù)的調(diào)用源進(jìn)程的情況下,從堆棧除去所述控制對(duì)象函數(shù)的函數(shù)名,并作為所述識(shí)別信息生成在所述堆棧中所存儲(chǔ)的信息,所述資源訪問控制部根據(jù)所述控制對(duì)象函數(shù)的函數(shù)名是否正堆積在所述堆棧中來判定可否進(jìn)行所述資源訪問請(qǐng)求。
9.根據(jù)權(quán)利要求1所述的訪問控制裝置,其特征在于,所述函數(shù)訪問檢測(cè)部對(duì)所述控制對(duì)象函數(shù)的執(zhí)行代碼在實(shí)際存儲(chǔ)器上的存儲(chǔ)地址范圍進(jìn)行計(jì)算,作為所述識(shí)別信息生成所述存儲(chǔ)地址范圍,所述資源訪問控制部參照進(jìn)程的程序計(jì)數(shù)器,根據(jù)發(fā)行了所述資源訪問請(qǐng)求的命令代碼的存儲(chǔ)地址是否在所述存儲(chǔ)地址范圍內(nèi),來判定可否進(jìn)行所述資源訪問請(qǐng)求。
10.一種訪問控制方法,其控制通過程序向控制對(duì)象資源的訪問,其特征在于,具有如下步驟檢測(cè)來自程序的對(duì)控制對(duì)象函數(shù)的調(diào)用,并生成識(shí)別信息,該識(shí)別信息確定來自該檢測(cè)出的控制對(duì)象函數(shù)的訪問請(qǐng)求;從所述程序取得對(duì)所述控制對(duì)象資源的訪問請(qǐng)求,根據(jù)所述識(shí)別信息判定可否進(jìn)行所述訪問的請(qǐng)求的步驟。
全文摘要
一種訪問控制裝置,其控制通過程序向控制對(duì)象資源的訪問,具有函數(shù)訪問檢測(cè)部,其檢測(cè)來自程序的對(duì)控制對(duì)象函數(shù)的調(diào)用,并生成確定從該檢測(cè)到的控制對(duì)象函數(shù)所發(fā)行的訪問請(qǐng)求的識(shí)別信息;資源訪問控制部,其從所述程序取得對(duì)所述控制對(duì)象資源的訪問請(qǐng)求,并根據(jù)所述識(shí)別信息判定可否進(jìn)行所述訪問請(qǐng)求。
文檔編號(hào)G06F21/22GK1834978SQ200610057400
公開日2006年9月20日 申請(qǐng)日期2006年3月14日 優(yōu)先權(quán)日2005年3月14日
發(fā)明者鈴木敬, 金野晃, 藤本拓, 中山雄大 申請(qǐng)人:株式會(huì)社Ntt都科摩
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
古丈县| 余江县| 临沧市| 郸城县| 固安县| 开原市| 惠水县| 乐业县| 高淳县| 信宜市| 汶川县| 尚志市| 无极县| 黄浦区| 平陆县| 容城县| 台州市| 巩留县| 河曲县| 涟水县| 新沂市| 长乐市| 澎湖县| 潼关县| 武宣县| 阿勒泰市| 太保市| 察雅县| 门头沟区| 新蔡县| 石景山区| 吉林市| 涟源市| 泌阳县| 项城市| 永丰县| 黑水县| 松阳县| 永州市| 海阳市| 东莞市|