未經授權的數據訪問阻斷方法及具備該功能的計算裝置與流程
2023-05-01 10:08:17 2

本發明涉及一種未經授權的數據訪問阻斷方法及具備該功能的計算裝置。更詳細地,涉及一種在被判斷為不是伴隨有用戶操作的數據訪問的情況下,阻斷該數據訪問和關於該數據的網絡發送的方法及具有該功能的計算裝置。
背景技術:
間諜軟體等與計算裝置的用戶的意圖無關地收集存儲在所述計算裝置中的數據的惡性代碼被廣泛地傳開。為了阻斷這種惡性代碼的未經授權的數據收集,試圖多種方法。例如,在試圖數據輸入及輸出的進程和作為用戶輸入對象的進程彼此不同的情況下,與用戶的意圖無關地實現數據訪問來看,可以阻斷數據訪問和關於該數據的網絡發送。但是,上述方式具有如下的問題:在提供用於用戶輸入的圖形用戶界面(GUI:Graphic User Interface)的進程和執行內部邏輯的進程彼此不同的情況下,就連根據用戶輸入的正當的數據訪問也被阻斷。
用於準確判定是否為如上述舉例那樣伴隨有用戶操作的數據訪問的惡性代碼的數據訪問阻斷方法未被提供。要求提供如下技術:該技術允許伴隨有用戶操作的數據訪問,並且阻斷未伴隨有用戶操作的數據訪問,並以高準確度判斷是否為伴隨有用戶操作的訪問。
專利文獻:韓國註冊專利:第0676912號
技術實現要素:
本發明所要解決的技術問題是提供一種未經授權的數據訪問阻斷方法及具備該方法的計算裝置,其在利用由用戶可訪問性管理模塊提供的用戶操作事件來產生對某種客體的訪問的情況下,判定該訪問是否為通過用戶操作進行的訪問,由此阻斷並不是通過用戶操作進行的數據訪問和通過網絡的數據洩露。
本發明所要解決的另一技術問題是提供未經授權的數據訪問阻斷方法及具備該方法的計算裝置,其即使在提供用於用戶輸入的GUI的進程和執行內部邏輯的進程彼此不同的情況下,也不阻斷根據用戶輸入的正當的數據訪問。
本發明的技術問題並不限定於以上所提及的技術問題,本領域技術人員能夠從下面的記載中明確理解沒有提及的其它技術問題。
為了解決上述技術問題,根據本發明的一實施例的未經授權的數據訪問阻斷方法包括以下步驟:監控是否產生訪問實例中的對訪問對象客體的訪問;從所述用戶可訪問性管理模塊接收用戶操作事件,該用戶操作事件通過用戶可訪問性管理模塊而生成並包括關於用戶操作對象客體的信息;在所述訪問產生並所述訪問對象客體和所述用戶操作對象客體不相同,或所述訪問產生並且未提供關於所述訪問對象客體的用戶操作事件的情況下,阻斷對訪問對象客體的訪問和通過網絡進行的向外部裝置的發送中的至少一個。
在一實施例中,所述用戶操作事件進一步包括關於具有所述用戶操作對象客體的窗口的信息。此時,阻斷對所述訪問對象客體的訪問和通過網絡進行的向外部裝置的發送中的至少一個的步驟可包括以下步驟:獲取作為所述訪問實例的標識符的第一標識符;由關於所述窗口的信息中獲取作為用戶操作對象實例的標識符的第二標識符;限於所述第一標識符和所述第二標識符不相同的情況,在所述訪問對象客體和所述用戶操作對象客體不相同的情況下,阻斷對所述訪問對象客體的訪問和通過網絡進行的向外部裝置的發送中的至少一個;以及即使所述第一標識符和所述第二標識符不相同,在判斷為所述訪問對象客體和所述用戶操作對象客體相同的情況下,也判定為所述訪問實例和所述用戶操作對象實例彼此相關聯,從而允許對所述訪問對象客體的訪問或通過網絡進行的向外部裝置的發送。
阻斷對所述訪問對象客體的訪問和通過網絡進行的向外部裝置的發送中的至少一個的步驟可包括以下步驟:即使所述訪問產生並所述訪問對象客體和所述用戶操作對象客體相同,在所述訪問產生時刻和所述用戶操作事件提供時刻相差指定的臨界值以上的情況下,也阻斷對所述訪問對象客體的訪問和通過網絡進行的向外部裝置的發送中的至少一個。
在一實施例中,所述用戶可訪問性管理模塊可以是根據微軟主動可訪問性(MSAA:MicroSoft Active Accessibility)提供通過用戶操作產生而產生的事件的模塊。
為了解決上述技術問題,根據本發明的另一實施例,提供一種存儲在存儲介質中的電腦程式,所述電腦程式與計算裝置相結合執行以下步驟:監控是否產生訪問實例中的對訪問對象客體的訪問;從用戶可訪問性管理模塊接收用戶操作事件,該用戶操作事件通過用戶可訪問性管理模塊而生成並包括關於用戶操作對象客體的信息;以及在所述訪問產生並所述訪問對象客體和所述用戶操作對象客體不相同的情況下,阻斷對所述訪問客體的訪問和通過網絡進行的向外部裝置的發送中的至少一個。
為了解決上述技術問題,根據本發明的又一實施例,提供一種具備未經授權的數據訪問阻斷功能的計算裝置,包括:網絡接口;一個以上的處理器;存儲器,加載(load)通過所述處理器執行的電腦程式;以及貯存器,存儲關於一個以上的客體的數據。此時,所述電腦程式包括以下操作:監控是否產生訪問實例中的、對貯存器上的訪問對象客體的訪問;從所述用戶可訪問性管理模塊接收用戶操作事件,該用戶操作事件通過用戶可訪問性管理模塊而生成並包括關於所述用戶操作對象客體的信息;以及在所述訪問產生並所述訪問對象客體和所述用戶操作對象客體不相同的情況下,阻斷對所述訪問對象客體的訪問和通過所述網絡接口進行的數據發送中的至少一個。
附圖說明
圖1是根據本發明的一實施例的未經授權的數據訪問阻斷方法的順序圖。
圖2和圖3是用於說明從用戶可訪問性管理模塊收集包括關於用戶操作對象客體的信息的用戶操作事件的圖。
圖4是與圖1相比添加了一部分判斷操作的、根據本發明的另一實施例的未經授權的數據訪問阻斷方法的順序圖。
圖5是與圖4相比添加了一部分判斷操作的、根據本發明的又一實施例的未經授權的數據訪問阻斷方法的順序圖。
圖6是與圖5相比添加了一部分判斷操作的、根據本發明的又一實施例的未經授權的數據訪問阻斷方法的順序圖。
圖7是根據本發明的又一實施例的、具備未經授權的數據訪問阻斷功能的計算裝置的方框結構圖。
圖8是根據本發明的又一實施例的、具備未經授權的數據訪問阻斷功能的計算裝置的硬體結構圖。
具體實施方式
下面,參照附圖,對本發明的優選實施例進行詳細說明。參照附圖以及詳細地後述的實施例,本發明的優點及特性,以及實現這些的方法將會變得明確。但是,本發明並不限定於以下所公開的實施例,而是可以以彼此不同的多種方式實現,本實施例只是為了使本發明的公開變得完整,並且為了向本發明所屬技術領域的技術人員完整地告知本發明的範圍而提供的,本發明僅由權利要求的範圍定義。在說明書全文中相同的附圖標記指相同的結構要素。
如果沒有其他定義,則在本說明書中所使用的所有術語(包括技術術語及科技術語)能夠以本發明所屬技術領域的技術人員共同理解的含義使用。另外,在通用的詞典中定義的術語只要沒有被明確地特別定義,就不理想地或過度地解釋。本說明書中所使用的術語用於說明實施例,並不限制本發明。在本說明書中,只要在句子中未特別提及,則單數形式可以包括複數形式。
下面,參照圖1至圖6,對根據本發明的一實施例的未經授權的數據訪問阻斷方法進行說明。限於未經授權的數據訪問阻斷功能被激活的情況,能夠執行根據本實施例的未經授權的數據訪問阻斷方法。在應用了根據本實施例的未經授權的數據訪問阻斷方法的計算裝置接入到安全網絡的情況下,優選為在所述計算裝置中使所述未經授權的數據訪問阻斷功能的非激活成為不可能。可以理解為,根據本實施例的未經授權的數據訪問阻斷方法在應用了所述未經授權的數據訪問阻斷方法的計算裝置中執行。
首先,激活監控軟體的執行(S100),所述監控軟體監控是否實現對數據的貯存器訪問或通過網絡的訪問。所述貯存器訪問是指對存儲在貯存器中的所述數據的讀取、讀寫等,所述通過網絡的訪問是指通過網絡向外部裝置發送的試圖。所述監控軟體例如可以是在後臺執行的代理軟體。所述代理軟體優選為在啟動運營體制時自動執行(AUTO STARTUP),並且即使強制結束也能再次自動執行。以下,為了有助於方便理解,將作為訪問對象的數據作為特定客體的數據來進行說明。
所述客體例如可以是存儲在存儲裝置中的目錄(或文件夾)或文件、存儲在存儲器中的特定數據結構的數據或者特定內容的數據。所述客體是指數據單位,除上述舉例說明的之外,也可以將多種數據單位表示為客體。
所述監控軟體收集並分析與對客體的訪問的產生相關聯的數據和用於識別所述客體的數據。與對所述客體的訪問的產生相關聯的數據包括訪問產生時間信息和所訪問的實例的標識符等。所述實例例如可以是進程和線程中的任一種。因此,所述所訪問的實例的標識符可以是進程ID或線程ID。
所述監控軟體利用用戶級別API鉤子(hooking)、內核級別API鉤子、設備驅動鉤子等多種方法來監控是否訪問數據。例如,關於文件讀取(file read)、文件打開(file open)、網絡發送等多種API的鉤子、貯存器的設備驅動鉤子和網絡接口的設備驅動鉤子等技術可應用到所述監控中。以下,為了有助於方便理解,對通過用戶級別API鉤子進行的監控方法進行更詳細說明。
設置用於用戶級別API鉤子的回調(callback)函數。例如,當初始化所述監控軟體時,可執行所述回調函數的設置。
API鉤子對象例如為文件讀取函數和網絡發送函數。
當進行API鉤子時,可以設置為在執行鉤子對象API之前執行回調函數(先執行回調),或者可以設置為在執行鉤子對象API之後執行回調函數(後執行回調)。
根據安全政策確定是設置先執行回調還是設置後執行回調。例如,在想要阻斷讀取文件內容本身的情況下,需要設置對文件讀取API的先執行回調。此外,在想要阻斷網絡發送的情況下,需要設置對網絡發送API的先執行回調。
如果成功設置用於API鉤子的回調函數,則當試圖從用戶應用(user application)讀取文件來調用鉤子對象文件讀取API時,調用針對該文件讀取API設置的回調函數。此外,當試圖由用戶應用程式(user application)進行網絡發送來調用鉤子對象文件讀取API時,調用針對該網絡發送API設置的回調函數。
接下來,所述監控軟體激活從用戶可訪問性管理模塊接收所述用戶操作事件的方式的用戶操作事件監控(S200)。以下,對「用戶可訪問性管理模塊」進行說明。
「用戶可訪問性管理模塊」的「可訪問性(accessibility)」是指以不僅是障礙人而且所有人都能夠容易利用信息通信設備或服務的方式維持相同的可訪問性。例如,以下的功能等相當於上述可訪問性技術:為了視力弱的人而在畫面上提供放大鏡功能;為了聽不見的人而對再生的語音進行字幕處理;以及為了看不見的人而利用文本轉語音(TTS:Text To Speech)技術對聚焦到的客體的名稱進行語音再生。綜上,所述用戶可訪問性管理模塊可以是支持通過應用程式提供的用戶接口保障障礙人可訪問性的模塊。即,用戶可訪問性管理模塊可以修改所述用戶接口,使得所述用戶接口提供障礙人可訪問性。例如,所述用戶可訪問性管理模塊可以是MSAA(MicroSoft Active Accessibility)模塊。
所述用戶可訪問性管理模塊在產生用戶操作的情況下以一系列事件的形式提供關於所述用戶操作的多種信息,使得可通過應用程式來開發出用於保障障礙人可訪問性的多種功能。以下,將所述用戶可訪問性管理模塊所提供的所述事件稱作用戶操作事件。
所述監控軟體監控由所述用戶可訪問性管理模塊提供的所述用戶操作事件的理由為如下。
用戶可訪問性管理模塊僅將關於以下狀況的事件作為所述用戶操作事件來提供:用戶通過輸入裝置(例如,鍵盤、滑鼠、觸摸板)向計算裝置提供用戶輸入,由此在GUI中產生變動。即,所述用戶操作事件不包括系統定時器、中斷等與用戶操作無關的事件。因此,在想要了解伴隨有用戶操作的關於GUI變動事項的信息的情況下,對所述用戶操作事件整體進行分析即可而無需對所述用戶操作事件的另行的過濾操作。即,具有如下的效果:在收集由用戶可訪問性管理模塊提供的事件的情況下,無需從 收集到的事件過濾與用戶操作無關的系統事件等。
此外,所述用戶操作事件中包括與用戶操作相關聯的客體的名稱信息。因此,如果利用所述用戶可訪問性管理模塊,則能夠判斷是否訪問到與用戶操作相關聯的客體。參照圖2和圖3,進行說明。如圖2所示,假設聚焦到存儲在文件夾裡的文件中的「winhelp.exe」文件的情況。此時,如圖3所示,所述用戶可訪問性管理模塊將關於實現聚焦的客體(「winhelp.exe文件」)的名稱信息作為指示客體選擇已實現的事件(OBJ_SELECTION)的附屬信息(Name=「winhelp.exe」)來提供。
在所述用戶可訪問性管理模塊為MSAA的情況下,因用戶操作而提供可訪問的客體名稱(或客體路徑)的事件為EVENT_OBJECT_FOCUS、EVENT_OBJECT_SELECTION、EVENT_OBJECT_SELECTIONADD、EVENT_OBJECT_VALUECHANGE、EVENT_SYSTEM_DRAGDROPSTART、EVENT_SYSTEM_DRAGDROPEND。關於上述事件的具體說明詳細地記載於網頁https://msdn.microsoft.com/en-us/library/windows/desktop/dd318066(v=vs.85).aspx。
此外,所述用戶操作事件還可以提供關於成為用戶操作對象的實例的信息。關於所述實例的信息例如可以是提供成為用戶操作對象的GUI的進程的ID、線程的ID或所述GUI的窗口句柄(HWND)中的任一個。圖3中圖示了將用戶輸入被添加的窗口的窗口句柄作為OBJ_SELECTION事件的附屬信息來提供的點(HWND=000706A2)。如果可以了解關於成為用戶操作對象的實例的信息,則通過對客體進行關於實際訪問的實例的相同性比較,能夠進一步準確判斷數據訪問是否伴隨有用戶操作。
再次返回到圖1進行說明。如已說明那樣,如果激活對客體訪問的監控(S100),並以從用戶可訪問性管理模塊接收用戶操作事件的方式激活監控(S200),則每當產生對客體的訪問時,能夠感測該訪問(S300),並且每當用戶在GUI上添加用戶輸入時,由所述用戶可訪問性管理模塊提供用戶操作事件(S400)。
所述監控軟體判定所述訪問產生並判定所述訪問對象客體和所述用戶操作對象客體是否相同(S500)。
例如,在基於用戶操作的特定文件訪問的情況下,感測關於所述特定文件的訪問,並提供對所述特定文件的選擇等用戶操作事件。即,訪問對象客體的名稱和用戶操作對象客體的名稱相同。此時,所述監控軟體判定為正常的數據訪問,而不採取特定的阻斷措施。如圖2所示,在對存儲在文件夾裡的文件中的「winhelp.exe」文件根據用戶操作被聚焦的情況下,感測到在客體訪問監控過程中實現對「winhelp.exe」文件的訪問。此外,如圖3所示,所述用戶可訪問性管理模塊提供關於實現聚焦的客體(「winhelp.exe」)名稱的信息。因此,所述監控軟體判定兩個客體名稱相同,並允許 對「winhelp.exe」客體的訪問。
相反,在惡性代碼與用戶操作無關地未經授權而試圖進行特定文件的網絡洩露的情況下,雖然感測到對特定文件的訪問但不會由所述用戶可訪問性管理模塊提供關於所述訪問對象客體的所述用戶操作事件。此時,所述監控軟體被判定為非正常數據訪問,阻斷所述惡性代碼的客體訪問或關於客體的網絡發送(S600)。
為了阻斷客體訪問或關於客體的網絡發送,所述監控軟體利用鉤到鉤子對象API或設備驅動器函數的鉤子例程。在需要所述阻斷的情況下,所述鉤子例程採取措施以使鉤子對象例程不會正常執行,然後返回。所述措施例如可以是通過變更在調用回調例程時的參數值而使所述鉤子對象例程不會被正常操作的措施。
由於在想要阻斷讀取文件內容本身的情況下,在執行文件讀取API之前執行鉤子例程,因此需要設置關於所述文件讀取API的先執行回調,並且由於在阻斷網絡發送的情況下,在執行網絡發送API之前執行鉤子例程,因此需要設置關於所述網絡發送API的先執行回調。
雖然用戶選擇了第一客體,但所述惡性代碼執行對第二客體的訪問的情況下,訪問對象客體和所述用戶操作對象客體彼此不同。此時,所述監控軟體判定為非正常數據訪問,阻斷所述惡性代碼的客體訪問或關於客體的網絡發送(S600)。
本實施例具有如下的效果:通過判定用戶操作客體和訪問的客體是否相同,來判定與用戶操作無關的客體訪問,並能夠阻斷與用戶操作無關的客體訪問。
在本發明的幾種實施例中,進一步檢查作為用戶操作對象的應用程式的實例和訪問客體的實例之間的相同性,所述進一步檢查的相同性可用於判定與用戶操作無關的客體訪問。對此,參照圖4進行說明。
如圖4所示,當作為用戶操作對象的應用程式的實例和訪問客體的實例彼此相同時,無需考慮訪問的客體和與用戶操作相關聯的客體之間的相同性,判定為通過用戶操作進行的客體訪問,並允許客體訪問(S450)。這是因為具有用戶操作的實例直接訪問客體應視為通過用戶操作進行的客體訪問。
對用於判定實例的相同性的操作進行說明。首先,為了獲取訪問客體的實例的標識符,在所述鉤子例程內執行用於獲取當前實例標識符的函數。由於所述鉤子例程在訪問客體的實例內執行,因此能夠通過執行用於獲取當前進程ID的函數或執行用於獲取當前線程ID的函數等方法,來獲取訪問客體的實例的標識符。
接下來,獲取添加了用戶操作的實例的標識符。能夠由所述用戶操作事件提供關於添加了用戶操作的實例的標識符的信息。為了判斷相同性,需要獲取與訪問客體的實例的標識符相同的形式的標識符。例如,圖3中圖示了將添加了用戶輸入的窗口的 窗口句柄作為OBJ_SELECTION事件的附屬信息來提供的點(HWND=000706A2)。如果訪問客體的實例標識符為進程ID,則可通過利用從窗口句柄提取進程ID的函數(GetWindowsThreadProcessID)等,來從所述用戶操作事件求得添加了用戶操作的進程標識符。
在所述用戶可訪問性管理模塊為MSAA的情況下,提供添加了用戶操作的窗口的窗口句柄(HAND)的事件為EVENT_OBJECT_FOCUS、EVENT_OBJECT_SELECTION、EVENT_OBJECT_SELECTIONADD、EVENT_OBJECT_VALUECHANGE、EVENT_OBJECT_LOCATIONCHANGE、EVENT_SYSTEM_CHPTURESTART、EVENT_SYSTEM_CHPTUREEND、EVENT_SYSTEM_DRAGDROPSTART、EVENT_SYSTEM_DRAGDROPEND。
接下來,判斷訪問客體的實例的標識符和添加了用戶操作的實例的標識符是否相同。如已說明那樣,限於訪問客體的實例的標識符和添加了用戶操作的實例的標識符不同的情況(S450),將訪問的客體的名稱和實現了用戶操作的客體名稱進行比較(S500)。
當訪問客體的實例和添加了根據用戶操作事件的用戶操作的實例彼此相同時,圖4所示的本實施例對客體相同性與否不進行比較。因此,與圖1所示的實施例相比,操作負擔減輕。
此外,在圖4所示的本實施例中,即使訪問客體的實例和添加了根據用戶操作事件的用戶操作的實例彼此不同,如果訪問的客體的名稱和在GUI上添加了用戶操作的客體名稱彼此相同,則也允許對所述客體的訪問。本實施例具有如下的效果:即使是提供用於用戶輸入的GUI的進程和執行內部邏輯的進程彼此不同的情況,也不阻斷根據用戶輸入的正當的數據訪問。
在本發明的幾種實施例中,客體訪問時刻和用戶操作輸入時刻之間的時間差可用於判定與用戶操作無關的客體訪問。對此,參照圖5進行說明。
如圖5所示,在即使是訪問客體的實例和添加了用戶操作的實例不同(S450),並且訪問的客體和添加了用戶操作的客體也彼此不同的情況(S500),客體訪問時刻和添加了用戶操作的時刻也相差臨界值以上的情況下,判斷為彼此不關聯,從而允許對客體的訪問(S550)。即,根據本實施例,具有如下的效果:不考慮時間差,單純地比較客體訪問和對客體的用戶操作,由此能夠防止阻斷通過用戶操作進行的正當的客體訪問。
另外,在本發明的幾種實施例中,即使是提供用於用戶輸入的GUI的進程和執行內部邏輯的進程彼此不同的情況,也不阻斷根據用戶輸入的正當的數據訪問。在幾種 實施例中,為了加強安全性,即使用戶輸入對象實例和客體訪問實例彼此不同,也通過將可允許客體訪問的實例列表化而進行管理。對此,參照圖6進行說明。
如圖6所示,在即使是訪問客體的實例和添加了用戶操作的實例不同(S450),並且訪問的客體和添加了用戶操作的客體彼此不同的情況(S500),客體訪問時刻和添加了用戶操作的時刻也相差臨界值以上的情況下,判斷為彼此不關聯,從而能夠允許對客體的訪問(S550)。此時,不是立即允許客體的訪問,而是如果訪問客體的實例和添加了用戶操作的實例中的至少一個被包括在已存儲的實例列表中(S560),則能夠阻斷客體的訪問。所述實例列表可由執行文件的文件名、關於執行文件的特徵值、關於執行文件的哈希值等的能夠識別實例的多種信息構成。
即,所述實例列表包括如下的實例的信息:即使用戶操作實例和客體訪問實例彼此不同,也允許對客體的訪問,並且所述實例列表可以是用戶操作實例的列表、客體訪問實例的列表或所有用戶操作實例/客體訪問實例的列表。
圖6中圖示了檢查實例列表的步驟(S560)在確認訪問時刻和添加了用戶操作的時刻是否相差臨界值以上的步驟(S550)之後執行,但實例列表檢查也可以應用於圖4所示的實施例中。即,即使是訪問客體的實例和添加了用戶操作的實例不同(S450),並且訪問的客體和添加了用戶操作的客體彼此不同的情況(S500),如果用戶操作實例和客體訪問實例中的至少一個不被包括在已存儲的實例列表中,則能夠阻斷客體訪問(S600)。
目前為止,參照圖1至圖6來進行說明的根據本發明的實施例的方法可通過用計算機可讀代碼實現的電腦程式來執行。所述電腦程式可通過網際網路等網絡從第一計算裝置傳送到第二計算裝置並安裝在所述第二計算裝置中,由此能夠在所述第二計算裝置中使用。所述第一計算裝置和所述第二計算裝置均包括諸如伺服器裝置、膝上型個人計算機的固定式計算裝置及諸如筆記本電腦、智慧型電話和平板電腦的移動計算裝置。
所述電腦程式與計算裝置相結合來執行以下步驟中的至少一個:監控是否產生訪問實例中的對訪問對象客體的訪問;從所述用戶可訪問性管理模塊接收用戶操作事件,該用戶操作事件通過用戶可訪問性管理模塊而生成並包括關於用戶操作客體對象的信息;以及在所述訪問產生並且所述訪問對象客體和所述用戶操作對象客體不相同的情況下,阻斷對所述訪問對象客體的訪問和通過網絡進行的向外部裝置的發送。所述電腦程式可存儲在DVD-ROM、快閃記憶體裝置等的存儲介質中。
下面,參照圖7,對本發明的另一實施例的計算裝置的結構和動作進行說明。圖7是本發明的另一實施例的具備未經授權的數據訪問阻斷功能的計算裝置的方框結構 圖。
根據本實施例的計算裝置分別安裝有用戶應用程式10、監控軟體和作業系統40。所述監控軟體包括客體訪問信息提供部30和訪問及網絡發送阻斷部20。
客體訪問信息提供部30通過API鉤子而感測根據訪問實例的客體訪問。客體訪問信息提供部20可以是通過API鉤子等注入(injection)到所述訪問實例內的鉤子例程(回調函數)。如果所述訪問的客體和由用戶選擇的客體彼此不同,則阻斷所述訪問。
在將用戶輸入添加到使用GUI的用戶應用程式10的情況下,用戶可訪問性管理模塊將包括關於所述用戶輸入的信息的用戶操作事件提供給訪問及網絡發送阻斷部20。
訪問及網絡發送阻斷部20通過與客體訪問信息提供部30收發數據,來判定是否允許對客體的訪問。在另一實施例中,客體訪問信息提供部30也可以通過與訪問及網絡發送阻斷部20收發數據,來判定是否允許對客體的訪問。
如已說明那樣,如果是訪問客體的實例和添加了用戶操作的實例相同的情況,則允許對客體的訪問。
此外,即使訪問客體的實例和添加了用戶操作的實例不相同,如果訪問的客體名稱和通過用戶操作選擇的客體名稱相同,則允許對客體的訪問。此時,為了補充安全性,即使訪問客體的實例和添加了用戶操作的實例不相同,也能夠管理可允許對客體的訪問的實例的目錄。
此外,即使訪問客體的實例和添加了用戶操作的實例不相同,並且訪問的客體名稱和通過用戶操作選擇的客體名稱彼此不同,在訪問和用戶操作的時刻相差臨界值以上的情況下,也允許對客體的訪問。
阻斷除上述情況之外的對客體的訪問。在確定了訪問阻斷的情況下,客體訪問信息提供部30即鉤子例程(回調函數)採取消息丟棄(message discard)、回調函數參數修改等的措施,以不執行鉤子對象API。相反,在需要允許對客體的訪問的情況下,客體訪問信息提供部30即鉤子例程(回調函數)將控制轉交給鉤子對象API,以正常執行鉤子對象API。
圖8是根據本發明的又一實施例的具備未經授權的數據阻斷功能的計算裝置的硬體結構圖。
如圖8所示,根據本實施例的具備未經授權的數據阻斷功能的計算裝置50可包括一個以上的處理器503、網絡接口508、貯存器509、輸入輸出裝置507和存儲器(RAM)505。處理器503、網絡接口508、貯存器509、存儲器505和輸入輸出裝置507通過系統總線501收發數據。輸入輸出裝置507是指鍵盤、滑鼠、觸控螢幕等的輸入裝置和 顯示器等的輸出裝置。
貯存器509存儲文件等的客體的數據591。可根據所述訪問對象客體和所述用戶操作對象客體是否不相同或是否為所述訪問產生並且未提供關於所述訪問對象客體的用戶操作事件的情況,允許或阻斷對所述客體的貯存器509上的訪問。
在存儲器505中加載有執行對象應用程式。一個以上的用戶應用程式550、以安裝有存儲在存儲器505中的可疑訪問阻斷用電腦程式590的結果加載的回調函數552和可疑訪問阻斷例程554被加載到存儲器505中。不僅存在執行對象應用程式,而且也可以存在為了迅速的數據輸入及輸出而加載到存儲器505的客體。此時,客體的數據556存儲在存儲器505中。
處理器503安裝存儲在貯存器中的可疑訪問阻斷用電腦程式590。所述電腦程式包括以下操作:監控是否產生訪問實例中的、對所述貯存器上的訪問對象客體的訪問;從所述用戶可訪問性管理模塊接收用戶操作事件,該用戶操作事件通過用戶可訪問性管理模塊而生成並包括關於用戶操作對象客體的信息;以及在所述訪問產生並所述訪問對象客體和所述用戶操作對象客體不相同的情況下,阻斷對所述訪問對象客體的訪問和通過所述網絡接口進行的數據發送中的至少一個。
處理器執行安裝所述程序的結果被加載到存儲器505中的、客體訪問感測用回調函數552和可疑訪問阻斷例程554。
下面,對根據本發明的實施例的具備未經授權的數據訪問阻斷功能的計算裝置50的操作進行說明。
在對用戶應用程式550添加用戶操作的情況下,可疑訪問阻斷例程554從用戶可訪問性管理模塊接收包括關於用戶操作對象客體的信息的用戶操作事件。所述用戶可訪問性管理模塊可以是包括在用戶應用程式550內部的例程、或者包括在計算裝置50的作業系統(未圖示)內部的例程。
回調函數552為這樣的函數:將用於訪問關於存儲器505的數據的函數或用於通過網絡接口508進行的網絡發送的函數等作為對象設置API鉤子,其結果是,共同調用直至調用出所述鉤子對象API。回調函數552感測對客體的訪問,可疑訪問阻斷例程554判定所述訪問是否通過用戶操作進行的。
如已說明那樣,如果是訪問客體的實例和添加了用戶操作的實例相同的情況,則允許對客體的訪問。此外,即使訪問客體的實例和添加了用戶操作的實例不相同,如果訪問的客體名稱和通過用戶操作選擇的客體名稱相同,則允許對客體的訪問。此時,為了補充安全性,即使訪問客體的實例和添加了用戶操作的實例不相同,也可以管理能夠允許對客體的訪問的實例的目錄。此外,即使訪問客體的實例和添加了用戶操作 的實例不相同,並且訪問的客體名稱和通過用戶操作選擇的客體名稱彼此不同,在訪問和用戶操作的時刻相差臨界值以上的情況下,也允許對客體的訪問。
相反,能夠允許對存儲器內的客體的訪問54、對貯存器內的客體的訪問53和通過網絡進行的客體發送52。
除上述情況之外的客體的訪問被阻斷51。
以上參照附圖對本發明的實施例進行了說明,但本發明所屬技術領域的普通技術人員應能理解,本發明可不變更本發明的技術思想或必要特徵而以其他具體方式實施。因此,應理解為以上所述的實施例在所有方面為示例性的並非限定性的。