本發明涉及計算機技術領域,特別涉及一種可執行文件的控制方法和裝置。
背景技術:
隨著科學技術的發展,計算機越來越普及,應用程序的種類越來越多,并且越來越復雜。但是,應用程序的質量良莠不齊,某些惡意的應用程序嵌入非法代碼、執行文件被篡改等,對系統服務器進行惡意攻擊。
目前,為了防止惡意程序的攻擊,通常需要對待執行的應用程序(即,可執行文件)進行控制,以禁止執行惡意應用程序。具體地,可通過防火墻、殺毒軟件等來實現對待執行的應用程序進行控制。
但是,隨著惡意應用程序的復雜性越來越高,且攻擊方式不斷變化,防火墻、殺毒軟件等也就很難實現對惡意應用程序進行控制無法有效防止惡意可執行文件的攻擊。
技術實現要素:
本發明實施例提供了一種可執行文件的控制方法和裝置,能更為有效地防止惡意可執行文件的攻擊。
第一方面,本發明實施例提供了一種可執行文件的控制方法,該控制方法包括:確定至少一個可執行文件,并計算每一個所述可執行文件對應的標準摘要值;
在接收到待執行文件的執行請求時,判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同;
當存在一個目標可執行文件與所述待執行文件相同時,計算所述待執行文件的訪問摘要值;
根據所述目標可執行文件的標準摘要值,以及所述訪問摘要值,確定是否允許執行所述待執行文件。
優選地,所述根據所述目標可執行文件的標準摘要值,以及所述訪問摘要值,確定是否執行所述待執行文件,包括:
判斷所述目標可執行文件的標準摘要值和所述訪問摘要值是否相同,若是,則允許執行所述待執行文件;否則,禁止執行所述待執行文件。
優選地,在所述確定至少一個可執行文件,并計算每一個所述可執行文件對應的標準摘要值之后,進一步包括:
確定每一個所述可執行文件對應的文件名;
將每一個所述可執行文件對應的文件名,以及每一個所述可執行文件對應的標準摘要值進行存儲;
所述判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同,包括:
解析接收的所述執行請求,以獲取所述待執行文件對應的文件名;
判斷確定的所述至少一個可執行文件對應的每一個文件名中是否存在一個目標文件名與所述待執行文件對應的文件名相同。
優選地,預先設置緩存模塊;
在所述待執行文件被允許執行時,利用所述緩存模塊記錄所述待執行文件被連續禁止執行的次數為0;
在所述待執行文件被禁止執行時,利用所述緩存模塊記錄所述待執行文件被連續禁止執行的次數加1。
優選地,在所述判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同之前,還包括:
確定所述待執行文件被連續禁止執行的次數;
當所述待執行文件被連續禁止執行的次數小于預設閾值時,執行所述判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同。
優選地,禁止修改確定的所述至少一個可執行文件、以及禁止重命名確定的所述至少一個可執行文件對應的文件名。
第二方面,本發明實施例提供了一種可執行文件的控制裝置,該控制裝置包括:確定單元、判斷單元、計算單元和處理單元,其中,
所述確定單元,用于確定至少一個可執行文件,并計算每一個所述可執行文件對應的標準摘要值;
所述判斷單元,用于在接收到待執行文件的執行請求時,判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同;
所述計算單元,用于當存在一個目標可執行文件與所述待執行文件相同時,計算所述待執行文件的訪問摘要值;
所述處理單元,用于根據所述目標可執行文件的標準摘要值,以及所述訪問摘要值,確定是否允許執行所述待執行文件。
優選地,所述處理單元,用于判斷所述目標可執行文件的標準摘要值和所述訪問摘要值是否相同,若是,則允許執行所述待執行文件;否則,禁止執行所述待執行文件。
優選地,該可執行文件的控制裝置進一步包括:命名單元和存儲單元,其中,
所述命名單元,用于確定每一個所述可執行文件對應的文件名;
所述存儲單元,用于將每一個所述可執行文件對應的文件名,以及每一個所述可執行文件對應的標準摘要值進行存儲;
所述判斷單元,用于解析接收的所述執行請求,以獲取所述待執行文件對應的文件名;判斷確定的所述至少一個可執行文件對應的每一個文件名中是否存在一個目標文件名與所述待執行文件對應的文件名相同。
優選地,該可執行文件的控制裝置進一步包括:緩存單元,用于在所述待執行文件被允許執行時,利用所述緩存模塊記錄所述待執行文件被連續禁止執行的次數為0;在所述待執行文件被禁止執行時,利用所述緩存模塊記錄所述待執行文件被連續禁止執行的次數加1。
優選地,該可執行文件的控制裝置進一步包括:篩選單元,用于確定所述待執行文件被連續禁止執行的次數;當所述待執行文件被連續禁止執行的次數小于預設閾值時,執行所述判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同。
優選地,該可執行文件的控制裝置進一步包括:禁止單元,用于禁止修改確定的所述至少一個可執行文件、以及禁止重命名確定的所述至少一個可執行文件對應的文件名。
本發明實施例提供了一種可執行文件的控制方法和裝置,通過確定至少一個可執行文件,并計算每一個可執行文件對應的標準摘要值,在接收到待執行文件的執行請求時,判斷確定的至少一個可執行文件中是否存在一個目標可執行文件與待執行文件相同,當存在一個目標可執行文件與待執行文件相同時,計算待執行文件的訪問摘要值,根據目標可執行文件的標準摘要值,以及訪問摘要值,確定是否允許執行待執行文件。由于不采用傳統的防火墻、殺毒軟件等對待執行文件進行控制,而是直接與可執行文件,以及可執行文件對應的摘要值進行對比,從而能夠準確的判斷待執行文件是可執行文件,還是惡意程序文件。因此,能更為有效地防止惡意可執行文件的攻擊。
附圖說明
為了更清楚地說明本發明實施例或現有技術中的技術方案,下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖是本發明的一些實施例,對于本領域普通技術人員來講,在不付出創造性勞動的前提下,還可以根據這些附圖獲得其他的附圖。
圖1是本發明一個實施例提供的一種可執行文件的控制方法;
圖2是本發明一個實施例提供的另一種可執行文件的控制方法;
圖3是本發明一個實施例提供的一種可執行文件的控制裝置;
圖4是本發明一個實施例提供的另一種可執行文件的控制裝置;
圖5是本發明一個實施例提供的又一種可執行文件的控制裝置;
圖6是本發明一個實施例提供的再一種可執行文件的控制裝置。
具體實施方式
為使本發明實施例的目的、技術方案和優點更加清楚,下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例是本發明一部分實施例,而不是全部的實施例,基于本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動的前提下所獲得的所有其他實施例,都屬于本發明保護的范圍。
如圖1所示,本發明實施例提供了一種可執行文件的控制方法,該方法可以包括以下步驟:
步驟101:確定至少一個可執行文件,并計算每一個所述可執行文件對應的標準摘要值。
步驟102:在接收到待執行文件的執行請求時,判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同。
步驟103:當存在一個目標可執行文件與所述待執行文件相同時,計算所述待執行文件的訪問摘要值。
步驟104:根據所述目標可執行文件的標準摘要值,以及所述訪問摘要值,確定是否允許執行所述待執行文件。
在上述實施例中,通過確定至少一個可執行文件,并計算每一個可執行文件對應的標準摘要值,在接收到待執行文件的執行請求時,判斷確定的至少一個可執行文件中是否存在一個目標可執行文件與待執行文件相同,當存在一個目標可執行文件與待執行文件相同時,計算待執行文件的訪問摘要值,根據目標可執行文件的標準摘要值,以及訪問摘要值,確定是否允許執行待執行文件。由于不采用傳統的防火墻、殺毒軟件等對待執行文件進行控制,而是直接與可執行文件,以及可執行文件對應的摘要值進行對比,從而能夠準確的判斷待執行文件是可執行文件,還是惡意程序文件。因此,能更為有效地防止惡意可執行文件的攻擊。
值得說明的是,可執行文件和待執行文件可以代表同一個應用程序也可以代表不同的應用程序。標準摘要值和訪問摘要值可以是MD(Message-Digest Algorithm,消息摘要算法)值,也可以是RIPEMD(RACE Integrity Primitives Evaluation Message Digest,RACE原始完整性校驗消息摘要)值和SHA(Secure Hash Algorithm,安全散列算法)值等等。在確定是否允許執行待執行文件后,可以發送相應的指令給服務器,使服務器完成相應的處理。
在本發明一個實施例中,為了實現防止惡意待執行文件的攻擊,所述根據所述目標可執行文件的標準摘要值,以及所述訪問摘要值,確定是否執行所述待執行文件,包括:
判斷所述目標可執行文件的標準摘要值和所述訪問摘要值是否相同,若是,則允許執行所述待執行文件;否則,禁止執行所述待執行文件。
在該實施例中,對于MD5算法具有以下優點,任意長度的原數據,算出的MD5值長度都是固定的、從原數據計算出MD5值很容易、對原數據進行任何改動,小到對1個字節的改動,所得到的MD5值都有很大區別、已知原數據和其MD5值,想找到一個具有相同MD5值的數據(即偽造數據)是非常困難的。因此,標準摘要值和訪問摘要值使用MD5值。由于對原數據進行任何改動,小到對1個字節的改動,所得到的MD5值都有很大區別,所以通過判斷目標可執行文件的標準摘要值和訪問摘要值是否相同就可以知道待執行文件是否被改動,換句話說,判斷文件包含的內容是否相同。
在本發明一個實施例中,在所述確定至少一個可執行文件,并計算每一個所述可執行文件對應的標準摘要值之后,進一步包括:
確定每一個所述可執行文件對應的文件名;
將每一個所述可執行文件對應的文件名,以及每一個所述可執行文件對應的標準摘要值進行存儲;
所述判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同,包括:
解析接收的所述執行請求,以獲取所述待執行文件對應的文件名;
判斷確定的所述至少一個可執行文件對應的每一個文件名中是否存在一個目標文件名與所述待執行文件對應的文件名相同。
在該實施例中,將可執行文件的文件名、以及可執行文件對應的MD5值組成策略下發到內核中,內核接收到策略以后做Hash存儲,形成策略庫。當要執行待執行文件時,計算其MD5值,并與下發的策略進行匹配,如果發現待執行文件的MD5值發生改變或策略庫里查詢不到該待執行文件的文件名,則禁止程序運行。例如,待執行文件的文件名為A,在可執行文件中有文件名為A的可執行文件,則計算待執行文件的MD5值,若待執行文件的MD5值與文件名為A的可執行文件的MD5值相同,則允許執行該待執行文件,否則禁止執行該待執行文件。
值得說明的是,待執行文件的MD5值也可以與可執行文件對應的所有MD5值進行一一對比。
在本發明一個實施例中,為了加快系統運行速度,可以預先設置緩存模塊;
在所述待執行文件被允許執行時,利用所述緩存模塊記錄所述待執行文件被連續禁止執行的次數為0;
在所述待執行文件被禁止執行時,利用所述緩存模塊記錄所述待執行文件被連續禁止執行的次數加1。
在該實施例中,通過設置緩存模塊可以對待執行文件的執行請求進行記錄,能夠通過緩存中記錄加快判斷速度。并且可以將緩存中的記錄生成日志,用戶可以通過查看日志判斷被禁止執行的待執行文件是否合法,從而決定是否將該待執行文件視為可執行文件。例如,待執行文件C被禁止執行,此時記錄待執行文件C為1次被禁止執行,當待執行文件C再次進行執行請求,若此次待執行文件C再次被禁止執行,則此時記錄待執行文件C為2次被禁止執行,若此次待執行文件C被允許執行,則此時記錄待執行文件C為0次被禁止執行。再如,待執行文件D已經連續被禁止執行4次,當待執行文件D再次進行執行請求,若此次待執行文件D再次被禁止執行,則記錄待執行文件D為5次被禁止執行;若此次待執行文件D被允許執行,則此時記錄待執行文件D為0次被禁止執行。
在本發明一個實施例中,在所述判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同之前,還包括:
確定所述待執行文件被連續禁止執行的次數;
當所述待執行文件被連續禁止執行的次數小于預設閾值時,執行所述判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同。
在該實施例中,通過緩存模塊中的記錄,可以確定待執行文件被連續禁止執行的次數,并且述待執行文件被連續禁止執行的次數大于預設閾值,則可能是惡意待執行文件進行攻擊,就直接禁止該待執行文件執行。預設閾值可以根據用戶需求自行設定。例如,預設閾值為10,在緩存中記錄待執行文件B被連續禁止執行的次數為15,則認為待執行文件B為惡意攻擊,直接禁止待執行文件B執行。
在本發明一個實施例中,為了保證可執行文件的安全性,該可執行文件的控制方法還可以進一步包括:
禁止修改確定的所述至少一個可執行文件、以及禁止重命名確定的所述至少一個可執行文件對應的文件名。
在該實施例中,通過禁止修改可執行文件可以有效的避免可執行文件本惡意篡改,而禁止重命名則可以有效避免判斷文件名是否相同時出現誤差。
如圖2所示,本發明一個實施例提供了一種可執行文件的控制方法,該方法可以包括以下步驟:
步驟201:確定至少一個可執行文件,并計算每一個可執行文件對應的標準摘要值。
在該步驟中,通過掃描系統上所有執行文件,確定可執行文件,并計算每一個確定的可執行文件的MD5值。
步驟202:確定每一個可執行文件對應的文件名。
步驟203:將每一個可執行文件對應的文件名,以及每一個可執行文件對應的標準摘要值進行存儲。
在該步驟中,將可執行文件的文件名、以及可執行文件對應的MD5值組成策略下發到內核中,內核接收到策略以后做Hash存儲,形成策略庫。
步驟204:在接收到待執行文件的執行請求時,解析接收的執行請求,以獲取待執行文件對應的文件名。
步驟205:確定待執行文件被連續禁止執行的次數是否小于預設閾值,若是,則執行步驟206;否則,執行步驟210。
在該步驟中,通過緩存模塊中的記錄,確定待執行文件被連續禁止執行的次數,并且與預設閾值進行比較。預設閾值可以自行設定。
步驟206:判斷確定的至少一個可執行文件對應的每一個文件名中是否存在一個目標文件名與待執行文件對應的文件名相同,若是,則執行步驟207,否則,執行步驟210
在該步驟中,在策略庫中進行查詢,是否與待執行文件對應的文件名相同的文件名,則該文件名對應的就是目標文件名。
步驟207:計算待執行文件的訪問摘要值。
在該步驟中,策略庫中具有與待執行文件對應的文件名相同的文件名,則需要計算待執行文件的訪問摘要值進行進一步判斷。
步驟208:判斷目標可執行文件的標準摘要值和訪問摘要值是否相同,若是,則執行步驟209;否則,執行步驟210。
在該步驟中,將計算得到的訪問摘要值與策略庫中和目標文件名對應的標準摘要值進行比較。
步驟209:允許執行待執行文件,并結束當前流程。
步驟210:禁止執行待執行文件。
如圖3所示,本發明實施例提供了一種可執行文件的控制裝置,該控制裝置可以包括:確定單元301、判斷單元302、計算單元303和處理單元304,其中,
所述確定單元301,用于確定至少一個可執行文件,并計算每一個所述可執行文件對應的標準摘要值;
所述判斷單元302,用于在接收到待執行文件的執行請求時,判斷所述確定單元301確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同;
所述計算單元303,用于當存在一個目標可執行文件與所述待執行文件相同時,計算所述待執行文件的訪問摘要值;
所述處理單元304,用于根據所述目標可執行文件的標準摘要值,以及所述訪問摘要值,確定是否允許執行所述待執行文件。
在本發明一個實施例中,為了實現防止惡意待執行文件的攻擊,所述處理單元,用于判斷所述目標可執行文件的標準摘要值和所述訪問摘要值是否相同,若是,則允許執行所述待執行文件;否則,禁止執行所述待執行文件。
如圖4所示,在本發明一個實施例中,該可執行文件的控制裝置可以進一步包括:命名單元401和存儲單元402,其中,
所述命名單元401,用于確定每一個所述可執行文件對應的文件名;
所述存儲單元402,用于將每一個所述可執行文件對應的文件名,以及每一個所述可執行文件對應的標準摘要值進行存儲;
所述判斷單元302,用于解析接收的所述執行請求,以獲取所述待執行文件對應的文件名;判斷確定的所述至少一個可執行文件對應的每一個文件名中是否存在一個目標文件名與所述待執行文件對應的文件名相同。
如圖5所示,在本發明一個實施例中,該可執行文件的控制裝置可以進一步包括:緩存單元501,用于在所述待執行文件被允許執行時,利用所述緩存模塊記錄所述待執行文件被連續禁止執行的次數為0;在所述待執行文件被禁止執行時,利用所述緩存模塊記錄所述待執行文件被連續禁止執行的次數加1。
如圖6所示,在本發明一個實施例中,該可執行文件的控制裝置可以進一步包括:篩選單元601,用于確定所述待執行文件被連續禁止執行的次數;當所述待執行文件被連續禁止執行的次數小于預設閾值時,執行所述判斷確定的所述至少一個可執行文件中是否存在一個目標可執行文件與所述待執行文件相同。
在本發明一個實施例中,該可執行文件的控制裝置可以進一步包括:禁止單元(圖中未示出),用于禁止修改確定的所述至少一個可執行文件、以及禁止重命名確定的所述至少一個可執行文件對應的文件名。
上述裝置內的各單元之間的信息交互、執行過程等內容,由于與本發明方法實施例基于同一構思,具體內容可參見本發明方法實施例中的敘述,此處不再贅述。
綜上,本發明的各實施例,至少具有如下有益效果:
1、在本發明的實施例中,通過確定至少一個可執行文件,并計算每一個可執行文件對應的標準摘要值,在接收到待執行文件的執行請求時,判斷確定的至少一個可執行文件中是否存在一個目標可執行文件與待執行文件相同,當存在一個目標可執行文件與待執行文件相同時,計算待執行文件的訪問摘要值,根據目標可執行文件的標準摘要值,以及訪問摘要值,確定是否允許執行待執行文件。由于不采用傳統的防火墻、殺毒軟件等對待執行文件進行控制,而是直接與可執行文件,以及可執行文件對應的摘要值進行對比,從而能夠準確的判斷待執行文件是可執行文件,還是惡意程序文件。因此,能更為有效地防止惡意待執行文件的攻擊。
2、在本發明的實施例中,由于使用MD5算法或其他算法,對可執行文件進行標準摘要值的計算,對可執行文件進行任何改動,小到對1個字節的改動,所得到的摘要值都有很大區別,從而能夠有效避免經過篡改的可執行文件的執行。
3、在本發明的實施例中,通過設置緩存模塊,記錄所述待執行文件被連續禁止執行的次數,當待執行文件被連續禁止執行的次數小于預設閾值時,才繼續執行后續流程;而當待執行文件被連續禁止執行的次數大于預設閾值時,直接禁止該待執行文件執行,不必進行后續計算判斷等流程,從而有效的加快了運行速度。
4、在本發明的實施例中,通過禁止修改可執行文件可以有效的避免可執行文件本惡意篡改,而禁止重命名則可以有效避免判斷文件名是否相同時出現誤差。
需要說明的是,在本文中,諸如第一和第二之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同因素。
本領域普通技術人員可以理解:實現上述方法實施例的全部或部分步驟可以通過程序指令相關的硬件來完成,前述的程序可以存儲在計算機可讀取的存儲介質中,該程序在執行時,執行包括上述方法實施例的步驟;而前述的存儲介質包括:ROM、RAM、磁碟或者光盤等各種可以存儲程序代碼的介質中。
最后需要說明的是:以上所述僅為本發明的較佳實施例,僅用于說明本發明的技術方案,并非用于限定本發明的保護范圍。凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等,均包含在本發明的保護范圍內。