1.本技術(shù)涉及軟件檢測領(lǐng)域,特別是涉及惡意軟件識別方法、裝置、系統(tǒng)、電子裝置和存儲介質(zhì)。
背景技術(shù):2.隨著現(xiàn)代社會對數(shù)據(jù)的高度依賴,數(shù)據(jù)平臺遭受惡意軟件攻擊的事件頻頻出現(xiàn)。惡意軟件可通過對入侵的用戶文件進(jìn)行加密,使用戶無法正常使用文件,并以此為條件向用戶索取錢財。
3.相關(guān)技術(shù)中,針對惡意軟件的識別,通常采用已知的計算機(jī)病毒特征值比對或虛擬機(jī)沙箱模擬執(zhí)行的方法來檢測惡意軟件的入侵。然而,針對已知病毒特征值比對的技術(shù),是基于對已出現(xiàn)過的病毒樣本特征與入侵的惡意軟件的病毒特征進(jìn)行比對,無法有效識別未知新型惡意軟件和經(jīng)過偽裝的惡意軟件;針對虛擬機(jī)沙箱模擬執(zhí)行方法所需的資源及時間成本較大,在資源較少、實時性要求較高的環(huán)境下難以執(zhí)行。
4.針對相關(guān)技術(shù)中存在對新型惡意軟件的識別占用資源量大、耗時長、效率低的問題,目前還沒有提出有效的解決方案。
技術(shù)實現(xiàn)要素:5.在本實施例中提供了一種惡意軟件識別方法、裝置、系統(tǒng)、電子裝置和存儲介質(zhì),以解決相關(guān)技術(shù)中對新型惡意軟件的識別占用資源量大、耗時長、效率低的問題。
6.第一個方面,在本實施例中提供了一種惡意軟件識別方法,所述方法包括:
7.獲取第一進(jìn)程的第一進(jìn)程信息,并獲取針對所述第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果;
8.從歷史進(jìn)程數(shù)據(jù)庫中獲取第二進(jìn)程的第二進(jìn)程信息,根據(jù)所述第二進(jìn)程信息對所述第一進(jìn)程信息進(jìn)行比對,得到比對結(jié)果;根據(jù)所述比對結(jié)果,對所述第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,并根據(jù)所述惡意指數(shù)結(jié)果生成針對所述第一進(jìn)程的惡意軟件告警信息。
9.在其中的一些實施例中,所述獲取針對所述第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果,包括:
10.運行所述第一進(jìn)程,獲取硬件性能監(jiān)控單元對所述第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的所述第一進(jìn)程事件計數(shù)結(jié)果;
11.獲取對所述第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程時鐘計數(shù)結(jié)果;
12.根據(jù)所述第一進(jìn)程事件計數(shù)結(jié)果和所述第一進(jìn)程時鐘計數(shù)結(jié)果生成所述第一進(jìn)程性能計數(shù)結(jié)果。
13.在其中的一些實施例中,所述獲取針對所述第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果,還包括:
14.獲取所述硬件性能監(jiān)控單元對所述第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的上一次
事件計數(shù)結(jié)果和上一次時鐘計數(shù)結(jié)果;
15.獲取預(yù)設(shè)的第一進(jìn)程時間間隔和當(dāng)前時鐘計數(shù)結(jié)果;
16.在所述當(dāng)前時鐘計數(shù)結(jié)果與上一次時鐘計數(shù)結(jié)果的差值大于所述第一進(jìn)程時間間隔的情況下,獲取當(dāng)前事件計數(shù)結(jié)果;
17.根據(jù)所述當(dāng)前事件計數(shù)結(jié)果和所述當(dāng)前時鐘計數(shù)結(jié)果生成所述第一進(jìn)程的當(dāng)前性能計數(shù)結(jié)果。
18.在其中的一些實施例中,所述對所述第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,包括:
19.獲取預(yù)設(shè)的進(jìn)程權(quán)重值;
20.獲取所述第一進(jìn)程的當(dāng)前事件計數(shù)結(jié)果與上一次事件計數(shù)結(jié)果的事件差值結(jié)果;
21.獲取所述第一進(jìn)程的當(dāng)前時鐘計數(shù)結(jié)果與上一次時鐘計數(shù)結(jié)果的時鐘差值結(jié)果;
22.根據(jù)所述進(jìn)程權(quán)重值、所述事件差值結(jié)果和所述時鐘差值結(jié)果得到所述惡意指數(shù)結(jié)果。
23.在其中的一些實施例中,所述根據(jù)所述惡意指數(shù)結(jié)果生成針對所述第一進(jìn)程的惡意軟件告警信息,還包括:
24.獲取惡意指數(shù)閾值;
25.在所述惡意指數(shù)結(jié)果在所述惡意指數(shù)閾值內(nèi)的情況下,將所述第一進(jìn)程的進(jìn)程信息寫入所述歷史進(jìn)程數(shù)據(jù)庫;
26.在所述惡意指數(shù)結(jié)果超過所述惡意指數(shù)閾值的情況下,掛起所述第一進(jìn)程,并生成所述惡意軟件告警信息。
27.在其中的一些實施例中,在所述根據(jù)所述惡意指數(shù)結(jié)果生成針對所述第一進(jìn)程的惡意軟件告警信息之后,包括:
28.發(fā)送所述惡意軟件告警信息至終端設(shè)備;
29.獲取所述終端設(shè)備發(fā)送的針對所述惡意軟件告警信息的決策信息;
30.在所述決策信息指示放過所述第一進(jìn)程的情況下,恢復(fù)掛起的第一進(jìn)程,并繼續(xù)執(zhí)行所述第一進(jìn)程;
31.在所述決策信息指示禁止所述第一進(jìn)程的情況下,終止所述第一進(jìn)程。
32.第二個方面,在本實施例中提供了一種惡意軟件識別裝置,所述裝置包括:性能計數(shù)器監(jiān)控模塊和惡意軟件評估模塊;
33.所述性能計數(shù)器監(jiān)控模塊,用于獲取第一進(jìn)程的第一進(jìn)程信息,并獲取針對所述第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果;
34.所述惡意軟件評估模塊,用于從歷史進(jìn)程數(shù)據(jù)庫中獲取第二進(jìn)程的第二進(jìn)程信息,根據(jù)所述第二進(jìn)程信息對所述第一進(jìn)程信息進(jìn)行比對,得到比對結(jié)果;根據(jù)所述比對結(jié)果,對所述第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,并根據(jù)所述惡意指數(shù)結(jié)果生成針對所述第一進(jìn)程的惡意軟件告警信息。
35.第三個方面,在本實施例中提供了一種惡意軟件識別系統(tǒng),所述系統(tǒng)包括:終端設(shè)備、傳輸設(shè)備以及服務(wù)器設(shè)備;其中,所述終端設(shè)備通過傳輸設(shè)備連接服務(wù)器設(shè)備;
36.所述服務(wù)器設(shè)備用于執(zhí)行上述第一個方面任一項所述的惡意軟件識別方法;
37.所述傳輸設(shè)備用于發(fā)送針對所述第一進(jìn)程的惡意軟件告警信息至終端設(shè)備;
38.所述終端設(shè)備用于顯示所述惡意軟件告警信息,并接收針對所述惡意軟件告警信息的決策信息。
39.第四個方面,在本實施例中提供了一種電子裝置,包括存儲器、處理器以及存儲在所述存儲器上并可在所述處理器上運行的計算機(jī)程序,所述處理器執(zhí)行所述計算機(jī)程序時實現(xiàn)上述第一個方面所述的惡意軟件識別方法。
40.第五個方面,在本實施例中提供了一種存儲介質(zhì),其上存儲有計算機(jī)程序,該程序被處理器執(zhí)行時實現(xiàn)上述第一個方面所述的惡意軟件識別方法。
41.與相關(guān)技術(shù)相比,在本實施例中提供的惡意軟件識別方法、裝置、系統(tǒng)、電子裝置和存儲介質(zhì),通過獲取第一進(jìn)程的第一進(jìn)程信息,并獲取針對所述第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果;從歷史進(jìn)程數(shù)據(jù)庫中獲取第二進(jìn)程的第二進(jìn)程信息,根據(jù)所述第二進(jìn)程信息對所述第一進(jìn)程信息進(jìn)行比對,得到比對結(jié)果;根據(jù)所述比對結(jié)果,對所述第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,并根據(jù)所述惡意指數(shù)結(jié)果生成針對所述第一進(jìn)程的惡意軟件告警信息,解決了對新型惡意軟件的識別占用資源量大、耗時長、效率低的問題,實現(xiàn)了新型惡意軟件識別中降低占用、減短耗時和提高效率的目的。
42.本技術(shù)的一個或多個實施例的細(xì)節(jié)在以下附圖和描述中提出,以使本技術(shù)的其他特征、目的和優(yōu)點更加簡明易懂。
附圖說明
43.此處所說明的附圖用來提供對本技術(shù)的進(jìn)一步理解,構(gòu)成本技術(shù)的一部分,本技術(shù)的示意性實施例及其說明用于解釋本技術(shù),并不構(gòu)成對本技術(shù)的不當(dāng)限定。在附圖中:
44.圖1為一個實施例中惡意軟件識別方法的應(yīng)用場景圖;
45.圖2為一個實施例中惡意軟件識別方法的流程示意圖;
46.圖3為另一個實施例中惡意軟件識別方法的流程示意圖;
47.圖4為又一個實施例中惡意軟件識別方法的流程示意圖;
48.圖5為一個實施例中惡意軟件識別裝置的結(jié)構(gòu)框圖;
49.圖6為另一個實施例中惡意軟件識別裝置的結(jié)構(gòu)框圖;
50.圖7為一個實施例中計算機(jī)設(shè)備的內(nèi)部結(jié)構(gòu)圖。
具體實施方式
51.為更清楚地理解本技術(shù)的目的、技術(shù)方案和優(yōu)點,下面結(jié)合附圖和實施例,對本技術(shù)進(jìn)行了描述和說明。
52.除另作定義外,本技術(shù)所涉及的技術(shù)術(shù)語或者科學(xué)術(shù)語應(yīng)具有本技術(shù)所屬技術(shù)領(lǐng)域具備一般技能的人所理解的一般含義。在本技術(shù)中的“一”、“一個”、“一種”、“該”、“這些”等類似的詞并不表示數(shù)量上的限制,它們可以是單數(shù)或者復(fù)數(shù)。在本技術(shù)中所涉及的術(shù)語“包括”、“包含”、“具有”及其任何變體,其目的是涵蓋不排他的包含;例如,包含一系列步驟或模塊(單元)的過程、方法和系統(tǒng)、產(chǎn)品或設(shè)備并未限定于列出的步驟或模塊(單元),而可包括未列出的步驟或模塊(單元),或者可包括這些過程、方法、產(chǎn)品或設(shè)備固有的其他步驟或模塊(單元)。在本技術(shù)中所涉及的“連接”、“相連”、“耦接”等類似的詞語并不限定于物理
的或機(jī)械連接,而可以包括電氣連接,無論是直接連接還是間接連接。在本技術(shù)中所涉及的“多個”是指兩個或兩個以上。“和/或”描述關(guān)聯(lián)對象的關(guān)聯(lián)關(guān)系,表示可以存在三種關(guān)系,例如,“a和/或b”可以表示:單獨存在a,同時存在a和b,單獨存在b這三種情況。通常情況下,字符“/”表示前后關(guān)聯(lián)的對象是一種“或”的關(guān)系。在本技術(shù)中所涉及的術(shù)語“第一”、“第二”、“第三”等,只是對相似對象進(jìn)行區(qū)分,并不代表針對對象的特定排序。
53.本技術(shù)提供的惡意軟件識別方法,可以應(yīng)用于如圖1所示的應(yīng)用環(huán)境中。其中,終端設(shè)備102通過網(wǎng)絡(luò)與服務(wù)器設(shè)備104進(jìn)行通信。服務(wù)器設(shè)備104獲取第一進(jìn)程的第一進(jìn)程信息,并獲取針對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果;服務(wù)器設(shè)備104從歷史進(jìn)程數(shù)據(jù)庫中獲取第二進(jìn)程的第二進(jìn)程信息,根據(jù)該第二進(jìn)程信息對該第一進(jìn)程信息進(jìn)行比對,得到比對結(jié)果;服務(wù)器設(shè)備104根據(jù)該比對結(jié)果,對該第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,并根據(jù)該惡意指數(shù)結(jié)果生成針對該第一進(jìn)程的惡意軟件告警信息;該終端設(shè)備102用于接收并顯示該惡意軟件告警信息。其中,終端設(shè)備102可以但不限于是各種個人計算機(jī)、筆記本電腦、智能手機(jī)、平板電腦和便攜式可穿戴設(shè)備,服務(wù)器設(shè)備104可以用獨立的服務(wù)器或者是多個服務(wù)器組成的服務(wù)器集群來實現(xiàn)。
54.在本實施例中提供了一種惡意軟件識別方法,圖2是本實施例的一種惡意軟件識別方法的流程示意圖,如圖2所示,該流程包括如下步驟:
55.步驟s202,獲取第一進(jìn)程的第一進(jìn)程信息,并獲取針對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果。
56.其中,上述第一進(jìn)程是指待進(jìn)行惡意軟件識別的未知進(jìn)程;該第一進(jìn)程可以在服務(wù)器104的硬件上運行,例如在服務(wù)器104的cpu或者gpu上運行,進(jìn)一步地,該第一進(jìn)程可以在cpu的微指令流水線上運行。該第一進(jìn)程信息可以包括該第一進(jìn)程的類型、地址、掩碼和過濾器。該第一進(jìn)程性能計數(shù)結(jié)果是由該硬件本身的監(jiān)控單元進(jìn)行監(jiān)控生成的,該監(jiān)控單元可以為硬件性能監(jiān)控單元。
57.步驟s204,從歷史進(jìn)程數(shù)據(jù)庫中獲取第二進(jìn)程的第二進(jìn)程信息,根據(jù)該第二進(jìn)程信息對該第一進(jìn)程信息進(jìn)行比對,得到比對結(jié)果;根據(jù)該比對結(jié)果,對該第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,并根據(jù)該惡意指數(shù)結(jié)果生成針對該第一進(jìn)程的惡意軟件告警信息。
58.其中,該歷史進(jìn)程數(shù)據(jù)庫用于存儲可信賴進(jìn)程和可信賴進(jìn)程信息;該第二進(jìn)程是指用于與該第一進(jìn)程進(jìn)行匹配的可信賴進(jìn)程;該惡意指數(shù)結(jié)果由第一進(jìn)程性能計數(shù)結(jié)果,并結(jié)合該第一進(jìn)程的第一進(jìn)程權(quán)重計算得到的。
59.具體地,歷史進(jìn)程數(shù)據(jù)庫中存儲有與上述第二進(jìn)程相對應(yīng)的可信賴的進(jìn)程信息,從歷史進(jìn)程數(shù)據(jù)庫中獲取第二進(jìn)程的第二進(jìn)程信息,根據(jù)該第二進(jìn)程信息對該第一進(jìn)程信息進(jìn)行比對,得到比對結(jié)果;如果該比對結(jié)果指示該第一進(jìn)程信息與該第二進(jìn)程信息相匹配,則該第一進(jìn)程是可信賴的進(jìn)程,服務(wù)器設(shè)備104繼續(xù)執(zhí)行該第一進(jìn)程;如果該比對結(jié)果指示該第一進(jìn)程信息與該第二進(jìn)程信息匹配失敗,該第一進(jìn)程疑似為新的惡意軟件,則進(jìn)一步根據(jù)該比對結(jié)果,對該第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,并根據(jù)該惡意指數(shù)結(jié)果生成針對該第一進(jìn)程的惡意軟件告警信息。
60.通過上述步驟,獲取針對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果,并將該第一進(jìn)程信息與第二進(jìn)程信息進(jìn)行比對生成比對結(jié)果;根據(jù)該比對結(jié)果對
該第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,并根據(jù)該惡意指數(shù)結(jié)果生成針對該第一進(jìn)程的惡意軟件告警信息,可以對疑似為新的惡意軟件進(jìn)行識別;該第一進(jìn)程性能計數(shù)結(jié)果是由該硬件本身的監(jiān)控單元進(jìn)行監(jiān)控生成的、是第一進(jìn)程在硬件的運行中自動生成的,其監(jiān)控功能不占用第一進(jìn)程運行所需之外的容量,因此對該第一進(jìn)程性能計數(shù)結(jié)果和該惡意指數(shù)結(jié)果的計算不需要占用額外資源,耗時短、效率高,提高惡意軟件識別的實時性。
61.在其中的一些實施例中,該獲取針對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果,包括:
62.運行該第一進(jìn)程,獲取硬件性能監(jiān)控單元對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的該第一進(jìn)程事件計數(shù)結(jié)果;
63.獲取對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程時鐘計數(shù)結(jié)果;
64.根據(jù)該第一進(jìn)程事件計數(shù)結(jié)果和該第一進(jìn)程時鐘計數(shù)結(jié)果生成該第一進(jìn)程性能計數(shù)結(jié)果。
65.其中,在該獲取第一進(jìn)程的第一進(jìn)程信息、該運行第一進(jìn)程、獲取下一個進(jìn)程的進(jìn)程信息之前和/或該硬件性能監(jiān)控單元溢出之后,可以進(jìn)行該硬件性能監(jiān)控單元的初始化;該硬件性能監(jiān)控單元可以是cpu上的pmu(performance monitoring unit,性能監(jiān)控單元),或者是gpu上的性能監(jiān)控單元;該硬件性能監(jiān)控單元可以包含一個或多個pmc(performance monitor counter,性能計數(shù)器),該一個或者多個pmc可以同時對一個或者多個進(jìn)程執(zhí)行時的操作事件進(jìn)行監(jiān)控,分別產(chǎn)生一個或者多個事件計數(shù)結(jié)果;該操作事件包括加密操作、寫存儲操作和/或其他對服務(wù)器設(shè)備104上的文件數(shù)據(jù)進(jìn)行修改的操作;該第一進(jìn)程事件計數(shù)結(jié)果是指第一進(jìn)程運行時對服務(wù)器設(shè)備104上的文件數(shù)據(jù)進(jìn)行加密操作、寫存儲操作和/或其他修改的操作進(jìn)行計數(shù)的結(jié)果;該第一進(jìn)程時鐘計數(shù)結(jié)果由服務(wù)器設(shè)備104上硬件本身的時鐘計數(shù)器生成。
66.通過上述步驟,獲取獲取針對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果,該第一進(jìn)程性能計數(shù)結(jié)果包括該第一進(jìn)程事件計數(shù)結(jié)果和該第一進(jìn)程時鐘計數(shù)結(jié)果;該第一進(jìn)程性能計數(shù)結(jié)果由該硬件性能監(jiān)控單元生成,該第一進(jìn)程時鐘計數(shù)結(jié)果由該時鐘計數(shù)器生成;該硬件性能監(jiān)控單元和該時鐘計數(shù)器是該服務(wù)器104上的硬件本身的監(jiān)控單元,該硬件性能監(jiān)控單元和該時鐘計數(shù)器的監(jiān)控功能是不占用第一進(jìn)程運行所需之外的容量,因此對該第一進(jìn)程性能計數(shù)結(jié)果的計算不需要占用額外資源,耗時短、效率高。
67.在其中的一些實施例中,該獲取針對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果,還包括:
68.獲取該硬件性能監(jiān)控單元對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的上一次事件計數(shù)結(jié)果和上一次時鐘計數(shù)結(jié)果;
69.獲取預(yù)設(shè)的第一進(jìn)程時間間隔和當(dāng)前時鐘計數(shù)結(jié)果;
70.在該當(dāng)前時鐘計數(shù)結(jié)果與上一次時鐘計數(shù)結(jié)果的差值大于該第一進(jìn)程時間間隔的情況下,獲取當(dāng)前事件計數(shù)結(jié)果;
71.根據(jù)該當(dāng)前事件計數(shù)結(jié)果和該當(dāng)前時鐘計數(shù)結(jié)果生成該第一進(jìn)程的當(dāng)前性能計數(shù)結(jié)果。
72.其中,該第一進(jìn)程時間間隔是以硬件上該時鐘計數(shù)器的周期為計量單位預(yù)設(shè)的。
73.具體地,在獲取第一進(jìn)程的第一進(jìn)程信息之前,服務(wù)器設(shè)備104啟動對該惡意軟件識別方法步驟的執(zhí)行,并對該硬件性能監(jiān)控單元進(jìn)行初始化,同時啟動該服務(wù)器設(shè)備104的時鐘計數(shù)器;此時該第一進(jìn)程進(jìn)入硬件上的微指令流水線上運行,該硬件上的該硬件性能監(jiān)控單元和該時鐘計數(shù)器對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控,分別生成上一次事件計數(shù)結(jié)果和上一次時鐘計數(shù)結(jié)果,并根據(jù)該上一次事件計數(shù)結(jié)果和該上一次時鐘計數(shù)結(jié)果生成該第一進(jìn)程的上一次性能計數(shù)結(jié)果;在第一進(jìn)程時間間隔之后,服務(wù)器設(shè)備104獲取第一進(jìn)程的第一進(jìn)程信息,并獲取上一次性能計數(shù)結(jié)果;服務(wù)器設(shè)備104在獲取上一次性能計數(shù)結(jié)果之后,到對該硬件性能監(jiān)控單元進(jìn)行初始化、同時重新觸發(fā)該時鐘計數(shù)器,從而獲取當(dāng)前事件計數(shù)結(jié)果和當(dāng)前時鐘計數(shù)結(jié)果,并根據(jù)該當(dāng)前事件計數(shù)結(jié)果和該當(dāng)前時鐘計數(shù)結(jié)果得到當(dāng)前性能計數(shù)結(jié)果。
74.通過上述步驟,在獲取上一次事件計數(shù)結(jié)果之后可以對該硬件性能監(jiān)控單元進(jìn)行初始化,因此在第一進(jìn)程時間間隔之后,可以獲取到在該當(dāng)前時鐘計數(shù)結(jié)果與上一次時鐘計數(shù)結(jié)果的差值時間內(nèi)的當(dāng)前事件計數(shù)結(jié)果,從而根據(jù)該當(dāng)前事件計數(shù)結(jié)果和該當(dāng)前時鐘計數(shù)結(jié)果生成該第一進(jìn)程的當(dāng)前性能計數(shù)結(jié)果;該第一進(jìn)程時間間隔以時鐘計數(shù)器的周期為計量單位預(yù)設(shè),相較于一般采用現(xiàn)實時間秒為單位的計數(shù)耗時更短,可以達(dá)到實時的效果;該當(dāng)前事件計數(shù)結(jié)果和該當(dāng)前時鐘計數(shù)結(jié)果是該服務(wù)器104上的硬件本身的監(jiān)控單元,不占用第一進(jìn)程運行所需之外的容量,因此對該第一進(jìn)程性能計數(shù)結(jié)果的計算不需要占用額外資源,耗時短、效率高。
75.圖3是本實施例的另一種惡意軟件識別方法的流程示意圖,如圖3所示,當(dāng)服務(wù)器設(shè)備104接收到開始監(jiān)控指令后,進(jìn)行進(jìn)程調(diào)度以調(diào)度需要監(jiān)控的進(jìn)程,同時啟動該服務(wù)器設(shè)備104中處理器上的時鐘計數(shù)器,并對該處理器上的性能監(jiān)控單元(pmu)進(jìn)行初始化;進(jìn)程調(diào)度完備后,執(zhí)行該進(jìn)程以進(jìn)行程序指令執(zhí)行,從而使得該進(jìn)程進(jìn)入處理器上的微指令流水線上執(zhí)行,該處理器硬件上的性能監(jiān)控單元和該時鐘計數(shù)器對該進(jìn)程的運行過程進(jìn)行監(jiān)控;該性能監(jiān)控單元上有多個事件計數(shù)單元(pmc),分別對進(jìn)程執(zhí)行的多個操作事件進(jìn)行計數(shù);pmc在對進(jìn)程中所有操作事件進(jìn)行計數(shù)后生成事件計數(shù)結(jié)果,時鐘計數(shù)器對進(jìn)程執(zhí)行過程進(jìn)行計時生成進(jìn)程的時鐘計數(shù)結(jié)果;根據(jù)事件計數(shù)結(jié)果和時鐘計數(shù)結(jié)果生成性能計數(shù)結(jié)果;服務(wù)器設(shè)備104在生成性能計數(shù)結(jié)果之后,對該處理器硬件上性能監(jiān)控單元的pmc進(jìn)行初始化重設(shè),以便pmc再次執(zhí)行pmc計數(shù)步驟。
76.在其中的一些實施例中,該對該第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,包括:
77.獲取預(yù)設(shè)的進(jìn)程權(quán)重值;
78.獲取該第一進(jìn)程的當(dāng)前事件計數(shù)結(jié)果與上一次事件計數(shù)結(jié)果的事件差值結(jié)果;
79.獲取該第一進(jìn)程的當(dāng)前時鐘計數(shù)結(jié)果與上一次時鐘計數(shù)結(jié)果的時鐘差值結(jié)果;
80.根據(jù)該進(jìn)程權(quán)重值、該事件差值結(jié)果和該時鐘差值結(jié)果得到該惡意指數(shù)結(jié)果。
81.其中,該預(yù)設(shè)的進(jìn)程權(quán)重值是指,由用戶根據(jù)歷史已知病毒庫中各類惡意軟件在各個進(jìn)程中運行時執(zhí)行的操作事件進(jìn)行數(shù)據(jù)模型統(tǒng)計分析計算得到的。
82.優(yōu)選地,該惡意指數(shù)結(jié)果計算公式為:
[0083][0084]
在上述公式中,i為操作事件的編號,在第一進(jìn)程運行時,可能涉及到的操作事件有n個;p為進(jìn)程權(quán)重值,針對進(jìn)程運行時執(zhí)行的不同操作事件i,分別有不同的操作事件權(quán)重值pi;為pmc監(jiān)控到的針對操作事件i的計數(shù)結(jié)果,為操作事件i的當(dāng)前計數(shù)結(jié)果與上一次計數(shù)結(jié)果的操作事件差值結(jié)果;即為該第一進(jìn)程的當(dāng)前事件計數(shù)結(jié)果與上一次事件計數(shù)結(jié)果的事件差值結(jié)果,該事件差值結(jié)果是第一進(jìn)程中的所有操作事件差值結(jié)果經(jīng)過操作事件權(quán)重值pi加權(quán)求和后的結(jié)果;δcpu_cycle為cpu時鐘計數(shù)器的周期,δcpu_cycle*n
cpu
為該第一進(jìn)程的當(dāng)前時鐘計數(shù)結(jié)果與上一次時鐘計數(shù)結(jié)果的時鐘差值結(jié)果。
[0085]
通過上述步驟,對獲取到的該第一進(jìn)程性能計數(shù)結(jié)果,根據(jù)歷史中分類好的惡意軟件進(jìn)程的統(tǒng)計結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,可以對目前不在可信賴的歷史進(jìn)程數(shù)據(jù)庫中的第一進(jìn)程對應(yīng)的軟件判斷為新的疑似惡意軟件,并對該第一進(jìn)程進(jìn)行惡意指數(shù)計算,以便根據(jù)該惡意指數(shù)結(jié)果對該疑似惡意軟件的第一進(jìn)程進(jìn)行下一步操作。
[0086]
在其中的一些實施例中,該根據(jù)該惡意指數(shù)結(jié)果生成針對該第一進(jìn)程的惡意軟件告警信息,還包括:
[0087]
獲取惡意指數(shù)閾值;
[0088]
在該惡意指數(shù)結(jié)果在該惡意指數(shù)閾值內(nèi)的情況下,將該第一進(jìn)程的進(jìn)程信息寫入該歷史進(jìn)程數(shù)據(jù)庫;
[0089]
在該惡意指數(shù)結(jié)果超過該惡意指數(shù)閾值的情況下,掛起該第一進(jìn)程,并生成該惡意軟件告警信息。
[0090]
其中,該惡意指數(shù)閾值是指,由用戶根據(jù)歷史已知病毒庫中各類惡意軟件在各個進(jìn)程中運行時執(zhí)行的操作事件產(chǎn)生的惡意指數(shù)結(jié)果進(jìn)行數(shù)據(jù)模型統(tǒng)計分析計算得到的。
[0091]
具體地,根據(jù)惡意指數(shù)結(jié)果與該惡意指數(shù)閾值的比較,篩選出不在該惡意指數(shù)閾值內(nèi)的惡意指數(shù)結(jié)果,對與該惡意指數(shù)結(jié)果對應(yīng)的第一進(jìn)程采取措施;對于惡意指數(shù)結(jié)果在惡意指數(shù)閾值內(nèi)的情況,該第一進(jìn)程為可信賴的進(jìn)程,將該第一進(jìn)程的第一進(jìn)程信息存入該歷史進(jìn)程數(shù)據(jù)庫中,以便在下一次與該第二進(jìn)程信息比對時能夠匹配到相應(yīng)的進(jìn)程信息,并直接放過該第一進(jìn)程;對于惡意指數(shù)結(jié)果超出惡意指數(shù)閾值的情況,需要先將該第一進(jìn)程暫時掛起,并生成針對該第一進(jìn)程的惡意軟件告警信息,以便進(jìn)行下一步處理。
[0092]
優(yōu)選地,以使用對稱加密算法對服務(wù)器設(shè)備104中用戶數(shù)據(jù)進(jìn)行惡意加密的惡意軟件在inte1至強(qiáng)處理器上執(zhí)行為例,該惡意軟件在對數(shù)據(jù)進(jìn)行加密階段會有大量的加密運算和io指令,通過pmc事件計數(shù)可獲取到該惡意軟件某一執(zhí)行時間(約1.5毫秒)內(nèi)的總cpu_cycle數(shù)為3640000;在該惡意軟件運行期間,產(chǎn)生的操作事件的計數(shù)結(jié)果包括:
[0093]
uops_retired.retire_slots(微指令正常執(zhí)行結(jié)束事件):5647934;
[0094]
idq.dsb_uops(微指令解碼解析流緩存路徑事件):4518347;
[0095]
l1d_pend_miss.pending(l1數(shù)據(jù)緩存卡頓事件):5525520;
[0096]
mem_inst_retired.all_stores_ps(內(nèi)存數(shù)據(jù)存儲指令事件):161369;
[0097]
unc_iio_data_req_of_cpu.mem_read(cpu請求內(nèi)存讀事件):16831;
[0098]
unc_iio_data_req_of_cpu.mem_read(cpu請求內(nèi)存寫事件):357194。
[0099]
經(jīng)過上述惡意指數(shù)計算公式可以得到該惡意軟件的惡意指數(shù)結(jié)果超出預(yù)設(shè)的惡意指數(shù)閾值,因此指示掛起該惡意軟件對應(yīng)的進(jìn)程,生成惡意軟件告警信息,并發(fā)送至客戶端,等待用戶進(jìn)行決策。
[0100]
通過上述步驟,根據(jù)惡意指數(shù)結(jié)果與該惡意指數(shù)閾值的比較,篩選出不在該惡意指數(shù)閾值內(nèi)的惡意指數(shù)結(jié)果,根據(jù)與該惡意指數(shù)結(jié)果對應(yīng)的第一進(jìn)程生成惡意軟件告警信息,能夠提高惡意軟件的識別效率、提高服務(wù)器的安全性。
[0101]
在其中的一些實施例中,在該根據(jù)該惡意指數(shù)結(jié)果生成針對該第一進(jìn)程的惡意軟件告警信息之后,包括:
[0102]
發(fā)送該惡意軟件告警信息至終端設(shè)備;
[0103]
獲取該終端設(shè)備發(fā)送的針對該告警信息的決策信息;
[0104]
在該決策信息指示放過該第一進(jìn)程的情況下,恢復(fù)掛起的第一進(jìn)程,并繼續(xù)執(zhí)行該第一進(jìn)程;
[0105]
在該決策信息指示禁止該第一進(jìn)程的情況下,終止該第一進(jìn)程。
[0106]
其中,在該決策信息指示放過該第一進(jìn)程的情況下,還包括將該第一進(jìn)程的第一進(jìn)程信息存入該歷史進(jìn)程數(shù)據(jù)庫中,以便在下一次與該第二進(jìn)程信息比對時能夠匹配到相應(yīng)的進(jìn)程信息,并直接放過該第一進(jìn)程,從而減少惡意軟件識別的耗時。
[0107]
通過上述步驟,針對惡意指數(shù)結(jié)果超過該惡意指數(shù)閾值的第一進(jìn)程,將針對該第一進(jìn)程的惡意軟件告警信息發(fā)送至終端設(shè)備102進(jìn)行顯示,以便獲取用戶針對該告警信息的決策信息,并根據(jù)該決策信息指示恢復(fù)掛起的第一進(jìn)程并繼續(xù)執(zhí)行該第一進(jìn)程,或者終止該第一進(jìn)程,對新型疑似惡意軟件進(jìn)行二次確認(rèn),能夠提高惡意軟件的識別效率、提高服務(wù)器的安全性。
[0108]
圖4是本實施例的又一種惡意軟件識別方法的流程示意圖,如圖4所示,將獲取到的第一進(jìn)程信息與第二進(jìn)程信息進(jìn)行匹配后,如果匹配成功,則該第一進(jìn)程為可信任進(jìn)程,對該第一進(jìn)程予以放行;如果匹配失敗,則需要計算該第一進(jìn)程的惡意指數(shù)進(jìn)一步對該第一進(jìn)程進(jìn)行是否為惡意軟件執(zhí)行進(jìn)程的判斷;根據(jù)該第一進(jìn)程執(zhí)行的操作事件計算該第一進(jìn)程所有操作事件的惡意指數(shù)結(jié)果,并將該惡意指數(shù)結(jié)果與預(yù)設(shè)規(guī)定的惡意指數(shù)閾值進(jìn)行比較,如果該惡意指數(shù)結(jié)果沒有超過該惡意指數(shù)閾值,則對該第一進(jìn)程予以放行;如果該惡意指數(shù)結(jié)果超過該惡意指數(shù)閾值,則掛起該第一進(jìn)程并發(fā)送惡意軟件告警信息至終端設(shè)備102,從而向用戶進(jìn)行惡意軟件告警;獲得用戶決策指示的決策信息,如果該決策信息指示該第一進(jìn)程是可信任的,則對該第一進(jìn)程予以放行;如果該決策信息指示該第一進(jìn)程是不可信任的,則終止該第一進(jìn)程的運行;上述在對第一進(jìn)程的放行或者終止操作后,需要將該第一進(jìn)程對應(yīng)的可信任信息或者不可信任信息寫入歷史進(jìn)程數(shù)據(jù)庫中,以便下一次監(jiān)控的進(jìn)程進(jìn)行直接比對,提高惡意軟件識別的效率。
[0109]
應(yīng)該理解的是,雖然圖2-4的流程圖中的各個步驟按照箭頭的指示依次顯示,但是這些步驟并不是必然按照箭頭指示的順序依次執(zhí)行。除非本文中有明確的說明,這些步驟的執(zhí)行并沒有嚴(yán)格的順序限制,這些步驟可以以其它的順序執(zhí)行。而且,圖2-4中的至少一部分步驟可以包括多個子步驟或者多個階段,這些子步驟或者階段并不必然是在同一時刻
執(zhí)行完成,而是可以在不同的時刻執(zhí)行,這些子步驟或者階段的執(zhí)行順序也不必然是依次進(jìn)行,而是可以與其它步驟或者其它步驟的子步驟或者階段的至少一部分輪流或者交替地執(zhí)行。
[0110]
在本實施例中還提供了一種惡意軟件識別裝置,該裝置用于實現(xiàn)上述實施例及優(yōu)選實施方式,已經(jīng)進(jìn)行過說明的不再贅述。以下所使用的術(shù)語“模塊”、“單元”、“子單元”等可以實現(xiàn)預(yù)定功能的軟件和/或硬件的組合。盡管在以下實施例中所描述的裝置較佳地以軟件來實現(xiàn),但是硬件,或者軟件和硬件的組合的實現(xiàn)也是可能并被構(gòu)想的。
[0111]
圖5是本實施例的惡意軟件識別裝置的結(jié)構(gòu)框圖,如圖5所示,該裝置包括:性能計數(shù)器監(jiān)控模塊20和惡意軟件評估模塊30;
[0112]
該性能計數(shù)器監(jiān)控模塊20,用于獲取第一進(jìn)程的第一進(jìn)程信息,并獲取針對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果。
[0113]
該惡意軟件評估模塊30,用于從歷史進(jìn)程數(shù)據(jù)庫中獲取第二進(jìn)程的第二進(jìn)程信息,根據(jù)該第二進(jìn)程信息對該第一進(jìn)程信息進(jìn)行比對,得到比對結(jié)果;根據(jù)該比對結(jié)果,對該第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,并根據(jù)該惡意指數(shù)結(jié)果生成針對該第一進(jìn)程的惡意軟件告警信息。
[0114]
圖6是本實施例的另一種惡意軟件識別裝置的結(jié)構(gòu)框圖,如圖6所示,該裝置包括圖5所示的所有模塊,此外還包括:進(jìn)程告警模塊40;
[0115]
該進(jìn)程告警模塊40,用于發(fā)送該惡意軟件告警信息至終端設(shè)備;獲取該終端設(shè)備發(fā)送的針對該惡意軟件告警信息的決策信息;根據(jù)該決策信息終止該第一進(jìn)程。
[0116]
在本實施例中還提供了一種惡意軟件識別系統(tǒng),該系統(tǒng)包括:終端設(shè)備102、傳輸設(shè)備103以及服務(wù)器設(shè)備104;其中,該終端設(shè)備102通過傳輸設(shè)備103連接服務(wù)器設(shè)備104;
[0117]
該服務(wù)器設(shè)備104用于執(zhí)行上述任一項惡意軟件識別方法;
[0118]
該傳輸設(shè)備103用于發(fā)送針對該第一進(jìn)程的惡意軟件告警信息至終端設(shè)備102;
[0119]
該終端設(shè)備102用于顯示該惡意軟件告警信息,并接收針對該惡意軟件告警信息的決策信息。
[0120]
在本實施例中還提供了一種電子裝置,包括存儲器和處理器,該存儲器中存儲有計算機(jī)程序,該處理器被設(shè)置為運行計算機(jī)程序以執(zhí)行上述任一項方法實施例中的步驟。
[0121]
可選地,上述電子裝置還可以包括傳輸設(shè)備以及輸入輸出設(shè)備,其中,該傳輸設(shè)備和上述處理器連接,該輸入輸出設(shè)備和上述處理器連接。
[0122]
可選地,在本實施例中,上述處理器可以被設(shè)置為通過計算機(jī)程序執(zhí)行以下步驟:
[0123]
s1,獲取第一進(jìn)程的第一進(jìn)程信息,并獲取針對該第一進(jìn)程的運行過程進(jìn)行監(jiān)控生成的第一進(jìn)程性能計數(shù)結(jié)果。
[0124]
s2,從歷史進(jìn)程數(shù)據(jù)庫中獲取第二進(jìn)程的第二進(jìn)程信息,根據(jù)該第二進(jìn)程信息對該第一進(jìn)程信息進(jìn)行比對,得到比對結(jié)果;根據(jù)該比對結(jié)果,對該第一進(jìn)程性能計數(shù)結(jié)果進(jìn)行惡意指數(shù)計算生成惡意指數(shù)結(jié)果,并根據(jù)該惡意指數(shù)結(jié)果生成針對該第一進(jìn)程的惡意軟件告警信息。
[0125]
需要說明的是,在本實施例中的具體示例可以參考上述實施例及可選實施方式中所描述的示例,在本實施例中不再贅述。
[0126]
此外,結(jié)合上述實施例中提供的惡意軟件識別方法,在本實施例中還可以提供一
種存儲介質(zhì)來實現(xiàn)。該存儲介質(zhì)上存儲有計算機(jī)程序;該計算機(jī)程序被處理器執(zhí)行時實現(xiàn)上述實施例中的任意一種惡意軟件識別方法。
[0127]
在一個實施例中,提供了一種計算機(jī)設(shè)備,該計算機(jī)設(shè)備可以是服務(wù)器,其內(nèi)部結(jié)構(gòu)圖可以如圖7所示。該計算機(jī)設(shè)備包括通過系統(tǒng)總線連接的處理器、存儲器、網(wǎng)絡(luò)接口和數(shù)據(jù)庫。其中,該計算機(jī)設(shè)備的處理器用于提供計算和控制能力。該計算機(jī)設(shè)備的存儲器包括非易失性存儲介質(zhì)、內(nèi)存儲器。該非易失性存儲介質(zhì)存儲有操作系統(tǒng)、計算機(jī)程序和數(shù)據(jù)庫。該內(nèi)存儲器為非易失性存儲介質(zhì)中的操作系統(tǒng)和計算機(jī)程序的運行提供環(huán)境。該計算機(jī)設(shè)備的數(shù)據(jù)庫用于存儲歷史進(jìn)程數(shù)據(jù)。該計算機(jī)設(shè)備的網(wǎng)絡(luò)接口用于與外部的終端通過網(wǎng)絡(luò)連接通信。該計算機(jī)程序被處理器執(zhí)行時以實現(xiàn)一種惡意軟件識別方法。
[0128]
本領(lǐng)域技術(shù)人員可以理解,圖7中示出的結(jié)構(gòu),僅僅是與本技術(shù)方案相關(guān)的部分結(jié)構(gòu)的框圖,并不構(gòu)成對本技術(shù)方案所應(yīng)用于其上的計算機(jī)設(shè)備的限定,具體的計算機(jī)設(shè)備可以包括比圖中所示更多或更少的部件,或者組合某些部件,或者具有不同的部件布置。
[0129]
本領(lǐng)域普通技術(shù)人員可以理解實現(xiàn)上述實施例方法中的全部或部分流程,是可以通過計算機(jī)程序來指令相關(guān)的硬件來完成,所述的計算機(jī)程序可存儲于一非易失性計算機(jī)可讀取存儲介質(zhì)中,該計算機(jī)程序在執(zhí)行時,可包括如上述各方法的實施例的流程。其中,本技術(shù)所提供的各實施例中所使用的對存儲器、存儲、數(shù)據(jù)庫或其它介質(zhì)的任何引用,均可包括非易失性和/或易失性存儲器。非易失性存儲器可包括只讀存儲器(rom)、可編程rom(prom)、電可編程rom(eprom)、電可擦除可編程rom(eeprom)或閃存。易失性存儲器可包括隨機(jī)存取存儲器(ram)或者外部高速緩沖存儲器。作為說明而非局限,ram以多種形式可得,諸如靜態(tài)ram(sram)、動態(tài)ram(dram)、同步dram(sdram)、雙數(shù)據(jù)率sdram(ddrsdram)、增強(qiáng)型sdram(esdram)、同步鏈路(synchlink)dram(sldram)、存儲器總線(rambus)直接ram(rdram)、直接存儲器總線動態(tài)ram(drdram)、以及存儲器總線動態(tài)ram(rdram)等。
[0130]
應(yīng)該明白的是,這里描述的具體實施例只是用來解釋這個應(yīng)用,而不是用來對它進(jìn)行限定。根據(jù)本技術(shù)提供的實施例,本領(lǐng)域普通技術(shù)人員在不進(jìn)行創(chuàng)造性勞動的情況下得到的所有其它實施例,均屬本技術(shù)保護(hù)范圍。
[0131]
顯然,附圖只是本技術(shù)的一些例子或?qū)嵤├?,對本領(lǐng)域的普通技術(shù)人員來說,也可以根據(jù)這些附圖將本技術(shù)適用于其他類似情況,但無需付出創(chuàng)造性勞動。另外,可以理解的是,盡管在此開發(fā)過程中所做的工作可能是復(fù)雜和漫長的,但是,對于本領(lǐng)域的普通技術(shù)人員來說,根據(jù)本技術(shù)披露的技術(shù)內(nèi)容進(jìn)行的某些設(shè)計、制造或生產(chǎn)等更改僅是常規(guī)的技術(shù)手段,不應(yīng)被視為本技術(shù)公開的內(nèi)容不足。
[0132]“實施例”一詞在本技術(shù)中指的是結(jié)合實施例描述的具體特征、結(jié)構(gòu)或特性可以包括在本技術(shù)的至少一個實施例中。該短語出現(xiàn)在說明書中的各個位置并不一定意味著相同的實施例,也不意味著與其它實施例相互排斥而具有獨立性或可供選擇。本領(lǐng)域的普通技術(shù)人員能夠清楚或隱含地理解的是,本技術(shù)中描述的實施例在沒有沖突的情況下,可以與其它實施例結(jié)合。
[0133]
以上所述實施例僅表達(dá)了本技術(shù)的幾種實施方式,其描述較為具體和詳細(xì),但并不能因此而理解為對專利保護(hù)范圍的限制。應(yīng)當(dāng)指出的是,對于本領(lǐng)域的普通技術(shù)人員來說,在不脫離本技術(shù)構(gòu)思的前提下,還可以做出若干變形和改進(jìn),這些都屬于本技術(shù)的保護(hù)范圍。因此,本技術(shù)的保護(hù)范圍應(yīng)以所附權(quán)利要求為準(zhǔn)。