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