用于分析在各主機上執(zhí)行的命令的分析設(shè)備、系統(tǒng)和方法
【專利摘要】本發(fā)明公開了用于分析在各主機上執(zhí)行的命令的分析設(shè)備、系統(tǒng)以及方法,其中,用于分析在各主機上執(zhí)行的命令的分析設(shè)備包括:集中數(shù)據(jù)回收器,被配置為至少收集各主機終端通過網(wǎng)絡(luò)傳輸?shù)漠?dāng)前命令及所屬主機標(biāo)識;命令分析器,被配置為對所述集中數(shù)據(jù)回收器收集到的當(dāng)前命令進行識別,至少識別出異常命令和正常命令;以及告警器,被配置為根據(jù)所述命令分析器的識別結(jié)果判斷是否滿足告警條件,如果滿足,則發(fā)出相應(yīng)主機存在異常的告警信息。通過本發(fā)明能夠及時對網(wǎng)絡(luò)系統(tǒng)中各主機上輸入的,具有一定危險性的異常命令進行告警,提高了系統(tǒng)的安全性。
【專利說明】用于分析在各主機上執(zhí)行的命令的分析設(shè)備、系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機【技術(shù)領(lǐng)域】,特別是涉及一種用于分析在各主機上執(zhí)行的命令的分析設(shè)備、系統(tǒng)和方法。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)的快速發(fā)展,出現(xiàn)了需要為大量用戶服務(wù)的網(wǎng)絡(luò)系統(tǒng)。這些網(wǎng)絡(luò)系統(tǒng)通常分布于大量的服務(wù)器之上,比如Linux、Unix等,然后系統(tǒng)管理者可以通過輸入命令對這些服務(wù)器進行操作,但是這些管理員可能不十分了解這些服務(wù)器上提供的服務(wù),所以這些操作命令可能會導(dǎo)致服務(wù)器不能正常工作、甚至造成嚴重后果。另外,隨著服務(wù)器的增多,有些服務(wù)器可能會被黑客所侵入,這些黑客就可能執(zhí)行一些惡意操作來破壞服務(wù)器的正常運行。
[0003]當(dāng)然上述情況不僅僅存在于服務(wù)器,還可能存在于其他類似的主機設(shè)備上。因此,如何對服務(wù)器等主機設(shè)備上執(zhí)行的命令進行監(jiān)控,當(dāng)出現(xiàn)異常時能夠及時告警是目前急需解決的問題。
【發(fā)明內(nèi)容】
[0004]鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的用于分析在各主機上執(zhí)行的命令的分析設(shè)備、系統(tǒng)和相應(yīng)的用于分析在各主機上執(zhí)行的命令的分析方法。
[0005]本發(fā)明實施例公開了一種用于分析在各主機上執(zhí)行的命令的分析設(shè)備,包括:集中數(shù)據(jù)回收器,被配置為至少收集各主機終端通過網(wǎng)絡(luò)傳輸?shù)漠?dāng)前命令及所屬主機標(biāo)識;命令分析器,被配置為對所述集中數(shù)據(jù)回收器收集到的當(dāng)前命令進行識別,至少識別出異常命令和正常命令;告警器,被配置為根據(jù)所述命令分析器的識別結(jié)果判斷是否滿足告警條件,如果滿足,則發(fā)出相應(yīng)主機存在異常的告警信息。
[0006]可選的,所述命令分析器包括過濾模塊,被配置為對所述集中數(shù)據(jù)回收器收集到的當(dāng)前命令采用預(yù)置的可疑規(guī)則進行過濾,將被所述可疑規(guī)則命中的當(dāng)前命令識別為異常命令,并輸出被所述可疑規(guī)則命中的異常命令的告警權(quán)值,所述告警權(quán)值基于該條可疑規(guī)則對命令的總體命中率獲得;所述告警器具體被配置為根據(jù)所述異常命令的告警權(quán)值判斷是否滿足告警條件。
[0007]可選的,所述過濾模塊輸出的異常命令的告警權(quán)值通過下述方式獲得:通過以該條可疑規(guī)則對已有命令的總體命中率作為自變量的單調(diào)遞減函數(shù),獲得被該條可疑規(guī)則命中的異常命令的告警權(quán)值。
[0008]可選的,所述告警器具體被配置為統(tǒng)計一個告警周期內(nèi)、所述命令分析器識別出的某一主機上的所有異常命令,將這些異常命令各自對應(yīng)的告警權(quán)值進行綜合化處理,根據(jù)綜合化處理后的值判斷是否滿足預(yù)置的告警條件。
[0009]可選的,所述命令分析器包括:分類模塊,被配置為根據(jù)已有分類模型的訓(xùn)練樣本集,對所述集中數(shù)據(jù)回收器接收到的當(dāng)前命令進行分類,獲得當(dāng)前命令分別是正常命令的概率和異常命令的概率,進而識別出該當(dāng)前命令是否屬于異常命令。
[0010]可選的,所述告警器具體被配置為統(tǒng)計一個告警周期內(nèi)、所述命令分析器識別出的某一主機上的所有異常命令,將這些異常命令各自對應(yīng)的異常命令概率進行綜合化處理,根據(jù)綜合化處理后的值判斷是否滿足預(yù)置的告警條件。
[0011]可選的,所述命令分析器包括:過濾模塊,被配置為對所述集中數(shù)據(jù)回收器接收到的當(dāng)前命令采用預(yù)置的可疑規(guī)則進行過濾,將被所述可疑規(guī)則命中的當(dāng)前命令輸出至分類模塊,并輸出被所述可疑規(guī)則命中的當(dāng)前命令的告警權(quán)值,所述告警權(quán)值基于該條可疑規(guī)則對命令的總體命中率獲得;分類模塊,被配置為根據(jù)已有分類模型的訓(xùn)練樣本集,對從所述過濾模塊輸入的當(dāng)前命令進一步分類,獲得當(dāng)前命令分別是正常命令的概率和異常命令的概率,進而識別出該當(dāng)前命令是否為異常命令。
[0012]可選的,所述命令分析器還包括:學(xué)習(xí)模塊,被配置為將新增的當(dāng)前命令與已有訓(xùn)練樣本集合并后進行機器學(xué)習(xí),更新所述分類模塊使用的已有訓(xùn)練樣本集。
[0013]可選的,所述告警器具體被配置為統(tǒng)計一個告警周期內(nèi)、所述命令分析器識別出的某一主機上的所有異常命令,將每一異常命令對應(yīng)的異常命令概率和告警權(quán)值相乘獲得對應(yīng)的告警指數(shù),將這些異常命令的告警指數(shù)進行綜合化處理,根據(jù)綜合化處理后的值判斷是否滿足預(yù)置的告警條件。
[0014]本發(fā)明實施例還公開了一種用于分析在各主機上執(zhí)行的命令的系統(tǒng),包括如前文所述的分析設(shè)備和若干主機終端;所述若干主機終端,被配置為至少將各主機上的當(dāng)前命令及所屬主機標(biāo)識通過網(wǎng)絡(luò)傳輸至集中數(shù)據(jù)回收器。
[0015]可選的,所述主機終端包括:命令發(fā)送模塊,被配置為對各主機的命令解析器shell進行改造,增加將所述shell接收到的主機當(dāng)前命令和主機IP傳輸至所述集中數(shù)據(jù)回收器的函數(shù)。
[0016]可選的,還包括:監(jiān)控器,被配置為對各主機中所述命令發(fā)送模塊的部署情況進行監(jiān)控,當(dāng)發(fā)現(xiàn)有新增主機未部署所述命令發(fā)送模塊或發(fā)現(xiàn)有主機上的所述命令發(fā)送模塊失效時,通過該未部署命令發(fā)送模塊或命令發(fā)送模塊失效的主機IP自動登錄至該主機上,為其部署所述命令發(fā)送模塊。
[0017]本發(fā)明實施例還公開了一種用于分析在各主機上執(zhí)行的命令的方法,包括:收集所述各主機通過網(wǎng)絡(luò)傳輸?shù)漠?dāng)前命令及所屬主機標(biāo)識;對所述收集到的當(dāng)前命令進行識另IJ,至少識別出異常命令和正常命令;根據(jù)上述識別結(jié)果判斷是否滿足告警條件,如果滿足,則發(fā)出相應(yīng)主機存在異常的告警信息。
[0018]可選的,所述對收集到的當(dāng)前命令進行識別的步驟包括:對收集到的當(dāng)前命令采用預(yù)置的可疑規(guī)則進行過濾,將被所述可疑規(guī)則命中的當(dāng)前命令識別為異常命令,并獲得被所述可疑規(guī)則命中的異常命令的告警權(quán)值,所述告警權(quán)值基于該條可疑規(guī)則對命令的總體命中率獲得;所述根據(jù)上述識別結(jié)果判斷是否滿足告警條件的步驟包括:根據(jù)所述異常命令的告警權(quán)值判斷是否滿足告警條件。
[0019]可選的,所述異常命令的告警權(quán)值通過下述方式獲得:通過以該條可疑規(guī)則對已有命令的總體命中率作為自變量的單調(diào)遞減函數(shù),獲得被該條可疑規(guī)則命中的異常命令的
告警權(quán)值。[0020]可選的,統(tǒng)計一個告警周期內(nèi)、識別出的某一主機上的所有異常命令,將這些異常命令各自對應(yīng)的告警權(quán)值進行綜合化處理,根據(jù)綜合化處理后的值判斷是否滿足預(yù)置的告警條件。
[0021]可選的,所述對收集到的當(dāng)前命令進行識別包括:根據(jù)已有分類模型的訓(xùn)練樣本集,對接收到的當(dāng)前命令進行分類,獲得當(dāng)前命令是正常命令的概率和是異常命令的概率,進而識別出該當(dāng)前命令是否屬于異常命令。
[0022]可選的,所述根據(jù)識別結(jié)果判斷是否滿足告警條件的步驟包括:統(tǒng)計一個告警周期內(nèi)、識別出的某一主機上的所有異常命令,將這些異常命令各自對應(yīng)的異常命令概率進行綜合化處理,根據(jù)綜合化處理后的值判斷是否滿足預(yù)置的告警條件。
[0023]可選的,所述對收集到的當(dāng)前命令進行識別包括:對接收到的當(dāng)前命令采用預(yù)置的可疑規(guī)則進行過濾,篩選出被所述可疑規(guī)則命中的當(dāng)前命令,并輸出被所述可疑規(guī)則命中的當(dāng)前命令的告警權(quán)值,所述告警權(quán)值基于該條可疑規(guī)則對命令的總體命中率獲得;根據(jù)已有分類模型的訓(xùn)練樣本集,對篩選出的上述當(dāng)前命令進一步分類,獲得當(dāng)前命令是正常命令的概率和是異常命令的概率,進而識別出該當(dāng)前命令是否為異常命令。
[0024]可選的,還包括:將新增的當(dāng)前命令與已有訓(xùn)練樣本集合并后進行機器學(xué)習(xí),更新進行分類時使用的已有訓(xùn)練樣本集。
[0025]可選的,所述根據(jù)識別結(jié)果判斷是否滿足告警條件的步驟包括:統(tǒng)計一個告警周期內(nèi)、識別出的某一主機上的所有異常命令,將每一異常命令對應(yīng)的異常命令概率和告警權(quán)值相乘獲得對應(yīng)的告警指數(shù),將這些異常命令的告警指數(shù)進行綜合化處理,根據(jù)綜合化處理后的值判斷是否滿足預(yù)置的告警條件。
[0026]可選的,所述收集所述各主機通過網(wǎng)絡(luò)傳輸?shù)漠?dāng)前命令及所屬主機標(biāo)識的步驟包括:對各主機的命令解析器shell進行改造,增加將所述shell接收到的主機當(dāng)前命令和主機IP通過網(wǎng)絡(luò)傳輸至指定設(shè)備的函數(shù),利用所述函數(shù)收集所述各主機的當(dāng)前命令及所屬主機標(biāo)識。
[0027]可選的,還包括:對各主機傳輸當(dāng)前命令及所屬主機標(biāo)識的事件進行監(jiān)控,當(dāng)發(fā)現(xiàn)有新增主機未進行上述shell改造或者改造失效時,通過該主機IP自動登錄至該主機上為其部署上述shell的改造。
[0028]根據(jù)本發(fā)明的用于分析在各主機上執(zhí)行的命令的分析設(shè)備,可以在包括若干主機的網(wǎng)絡(luò)系統(tǒng)中,收集各主機通過網(wǎng)絡(luò)傳輸?shù)漠?dāng)前命令及當(dāng)前命令所屬主機的標(biāo)識,對收集到的當(dāng)前命令中具有一定的操作危險的命令進行有效識別,判斷出在主機上輸入的命令是異常命令還是正常命令,并在主機有異常命令輸入且滿足告警條件時,及時地發(fā)出相應(yīng)主機存在異常的告警信息,由此解決了因管理員誤操作、黑客攻擊等原因造成而在系統(tǒng)中的主機上輸入危險性命令時,對主機乃至整個系統(tǒng)的穩(wěn)定運行造成不良影響,及時對網(wǎng)絡(luò)系統(tǒng)中各主機上輸入的危險命令進行告警,提高了系統(tǒng)的安全性。
[0029]上述說明僅是本發(fā)明技術(shù)方案的概述,為了能夠更清楚了解本發(fā)明的技術(shù)手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的【具體實施方式】。
【專利附圖】
【附圖說明】[0030]通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領(lǐng)域普通技術(shù)人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中:
[0031]圖1示出了根據(jù)本發(fā)明一個實施例的用于分析在各主機上執(zhí)行的命令的分析系統(tǒng)示意圖;
[0032]圖2示出了根據(jù)本發(fā)明一個實施例的用于分析在各主機上執(zhí)行的命令的分析方法流程圖;以及,
[0033]圖3示出了根據(jù)本發(fā)明一個實施例的具體應(yīng)用示意圖。
【具體實施方式】
[0034]下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
[0035]請參見圖1,圖1示出了根據(jù)本發(fā)明一個實施例的用于分析在各主機上執(zhí)行的命令的系統(tǒng),該系統(tǒng)包括若干主機終端210和用于分析在各主機上執(zhí)行的命令的分析設(shè)備100。其中,分析設(shè)備100具體包括集中數(shù)據(jù)回收器110、命令分析器120以及告警器130,每個主機終端210包括命令發(fā)送模塊2102,各主機終端210耦接于集中數(shù)據(jù)回收器110。下面對該用于分析在各主機上執(zhí)行的命令的分析設(shè)備,以及各組成部分進行的具體實現(xiàn)方式進行具體的介紹。
[0036]一個網(wǎng)絡(luò)系統(tǒng)通常由多個主機終端210組成,主機終端210可以是計算機實體,也可以是運行于計算機設(shè)備上的虛擬機。多個主機終端可以完成不同的分工,在各個終端上可以運行多種命令,來進行對系統(tǒng)的諸如開關(guān)機,文件操作,系統(tǒng)配置,安裝/卸載軟件等等操作,所輸入的命令中有可能存在對系統(tǒng)運行造成潛在危害的命令,因此需要通過分析設(shè)備100識別這些命令可能造成潛在危害的命令,首選就需要將各主機上執(zhí)行的當(dāng)前命令及所屬主機標(biāo)識通過網(wǎng)絡(luò)傳輸?shù)椒治鲈O(shè)備100,其中,主機標(biāo)識可以是網(wǎng)絡(luò)系統(tǒng)中各主機的主機名和/或IP地址等,分析設(shè)備100獲取主機標(biāo)識的目的,主要是為了判斷當(dāng)前輸入的命令是哪部主機發(fā)出的,以便于一旦該命令存在風(fēng)險,可以在一定條件下發(fā)出告警信息。為了實現(xiàn)將各主機上執(zhí)行的命令準確、全面的傳輸給分析設(shè)備110,需要在各主機終端210中設(shè)置命令發(fā)送模塊2102。
[0037]首先,命令發(fā)送模塊2102將各主機上的當(dāng)前命令及所屬主機標(biāo)識通過網(wǎng)絡(luò)傳輸至集中數(shù)據(jù)回收器110。例如,命令發(fā)送模塊2102對各主機的命令解析器shell進行改造,增加將命令解析器shell接收到的主機當(dāng)前命令和主機IP傳輸至指定設(shè)備(如集中數(shù)據(jù)回收器110)的函數(shù)。如在類UNIX操作系統(tǒng)中,常見的shell有bash, csh, tcsh等等,以bash為例,可以對其中的add_history函數(shù)進行改造,具體可以在其中增加對talker (char*host, char*message)函數(shù)的調(diào)用,由talker函數(shù)實現(xiàn)將在當(dāng)前主機host輸入的當(dāng)前命令message傳輸給集中數(shù)據(jù)回收器110。這種對輸入的當(dāng)前命令的傳輸可以是實時的,即當(dāng)受監(jiān)控的主機終端210上一旦發(fā)生命令輸入,就將輸入的命令傳輸給集中數(shù)據(jù)回收器110,另外還可以將受監(jiān)控主機終端210上輸入的命令存儲為日志shell_l0g的形式,在達到一定條件下將Shelllog日志傳輸給集中數(shù)據(jù)回收器110,例如在達到了一定的時間周期,或者在shell_log文件達到了一定的大小時將shell_log文件傳輸給集中數(shù)據(jù)回收器110。
[0038]當(dāng)各主機終端210通過命令發(fā)送模塊2102將各主機上執(zhí)行的命令及所屬主機標(biāo)識,通過網(wǎng)絡(luò)傳輸給幾種數(shù)據(jù)回收器110之后,集中數(shù)據(jù)回收器110就可以收集到當(dāng)前各主機終端210上所輸入的命令,以及是在哪部主機上輸入的命令,可選的,可以將所有接收到的命令保存至一數(shù)據(jù)庫,進而為對當(dāng)前命令進行分析做好數(shù)據(jù)準備,命令分析器120耦接于集中數(shù)據(jù)回收器110,后續(xù)具體分析的工作主要由命令分析器120完成。
[0039]命令分析器120對集中數(shù)據(jù)回收器110收集到的當(dāng)前命令進行識別,至少識別出異常命令和正常命令。其中,異常命令是可能對系統(tǒng)正常運行具有潛在威脅的命令,正常命令是對系統(tǒng)運行沒有威脅的命令。具體在實現(xiàn)命令分析器120對命令進行識別時,可以有多種實現(xiàn)方式,下面分別對命令分析器120的幾種實現(xiàn)方式進行詳細的介紹。
[0040]實現(xiàn)方式一:
[0041]命令分析器120可以包括過濾模塊1202,通過過濾模塊1202對集中數(shù)據(jù)回收器110接收到的當(dāng)前命令采用預(yù)置的可疑規(guī)則進行過濾,將被可疑規(guī)則命中的當(dāng)前命令識別為異常命令,并輸出被可疑規(guī)則命中的異常命令的告警權(quán)值,這里,告警權(quán)值基于該條可疑規(guī)則對命令的總體命中率獲得。預(yù)置的可疑規(guī)則,可以是預(yù)先根據(jù)常見危險操作的特征生成的,每條可疑規(guī)則包括至少一個危險操作的特征標(biāo)識,危險操作的特征標(biāo)識根據(jù)實際情況有很多種,比如下述情況的一種或多種:添加賬戶;打開、修改或刪除敏感文件的關(guān)鍵屬性;查看或修改敏感文件的密碼;更改網(wǎng)絡(luò)設(shè)置;提升用戶權(quán)限;更改防火墻設(shè)置;查看系統(tǒng)日志;編譯代碼;有敏感詞;更改文件權(quán)限和屬性;關(guān)機/重啟;顯示特定文件內(nèi)容;建立網(wǎng)絡(luò)鏈接并下載指定地址的文件等等??梢梢?guī)則在具體實現(xiàn)時可以采用正則表達式的方式,即在正則表達式中體現(xiàn)危險操作的特征標(biāo)識信息,從而通過預(yù)置的正則表達式規(guī)則過濾出具有這些危險操作特征標(biāo)識的命令,即將正則表達式規(guī)則與收集到的當(dāng)前命令進行匹配,將其中命中可疑規(guī)則的異常命令過濾出來,而未被可疑規(guī)則命中的命令可以視為正常命令。此外,每一條正則表達式,可能只能針對特定格式或特定內(nèi)容的命令進行過濾,因此在實際應(yīng)用時,更多的情況可以是使用多條正則表達式進行多輪過濾,將命中了可疑規(guī)則組中任意一條的可疑規(guī)則的命令確定為可疑命令并加以過濾,將未命中所有規(guī)則的命令確定為正常命令。
[0042]在過濾的過程中,還可以對每條可疑規(guī)則的總體命中率進行統(tǒng)計,所謂可疑規(guī)則的總體命中率,是指每條可疑規(guī)則在所有命令中命中異常命令的條數(shù)或次數(shù),占所有命令的比例。如通常對查看密碼的行為可以理解為可能是一種視圖非法獲取密碼的越權(quán)行為,而對密碼的獲取,可以通過一些命令打開密碼文件來實現(xiàn),如在Linux操作系統(tǒng)中,密碼文件一般會存儲在特定的路徑下,并以特定的文件名來命名,而Linux操作系統(tǒng)中又提供了對特定文件的內(nèi)容進行查看的命令,這就給非法獲取密碼的提供了可能的途徑。例如當(dāng)有足夠的權(quán)限時,執(zhí)行命令:cat/etc/passwd就可以實現(xiàn)對密碼文件passwd內(nèi)保存的密碼內(nèi)容進行查看。為了對這種命令進行過濾,可以采用正則表達式:
[0043].*[\s\ff] +passwd.*| 'passwd.* 以及,
[0044].*passwd.*[0045]通過這兩個正則表達式形式的可疑規(guī)則,可以過濾出所有包含敏感內(nèi)容關(guān)鍵字“passwd”的命令。
[0046]假設(shè)其中一條可疑規(guī)則總共過濾了 4651629條命令,并命中了其中的7915條命令,則被命中的這7915條命令就可以作為可疑命令,而這條可疑規(guī)則對應(yīng)的總體命中率可以通過:該可疑規(guī)則命中的可疑命令/其檢測的所有命令獲得,如在本示例中,該條可疑規(guī)則的總體命中率則為:
[0047]7915/4651629 ^ 0.001702
[0048]總體命中率統(tǒng)計出來后,過濾模塊1202輸出被可疑規(guī)則命中的異常命令的告警權(quán)值,告警權(quán)值可以基于該條可疑規(guī)則對命令的總體命中率獲得。具體基于可疑規(guī)則對命令的總體命中率獲得告警權(quán)值時,可以通過以該條可疑規(guī)則對已有命令的總體命中率作為自變量的單調(diào)遞減函數(shù),獲得被該條可疑規(guī)則命中的異常命令的告警權(quán)值。例如,將總體命中率記做Pa,可以通過總體命中率作為自變量的單調(diào)遞減函數(shù)(1-Pa) *D,來獲取被該條可疑規(guī)則命中的異常命令的告警權(quán)值,其中D為一常數(shù)。例如在上述示例中某條可以規(guī)則的命中率Pa為0.001702,可以根據(jù)
[0049](1-Pa)*D=(1-0.001702)*100 ^ 99.8
[0050]其中D取100,那么被該條可疑規(guī)則命中的異常命令的告警權(quán)值約為99.8。
[0051]之所以使用總體命中率作為自變量的單調(diào)遞減函數(shù),是因為在實際應(yīng)用中,一條可疑規(guī)則命中的異常命令實際為具有可疑危險性的命令,如果一條可疑規(guī)則命中命令的次數(shù)比較多或者頻率比較高,說明 該可疑規(guī)則命中的命令可能是比較常見的命令,而基于實際情況中畢竟真正的異常命令是少數(shù),所以從邏輯上講,如果某條可疑規(guī)則命中命令的次數(shù)較多或頻率較高,那么被這條可疑規(guī)則命中的命令是真正異常命令的可能性相對較低,之所以被可疑規(guī)則命中,那么很可能是由于該條可疑規(guī)則是比較“嚴厲”的規(guī)則,進而可以認為該規(guī)則命中的命令危險性較小,因而,被其命中的異常命令可以取一較小的告警權(quán)值。
[0052]過濾模塊1202輸出的告警權(quán)值可以作為告警器130獲取告警權(quán)值的依據(jù),關(guān)于這部分內(nèi)容會在后續(xù)告警器130的內(nèi)容中進行詳細介紹。
[0053]實現(xiàn)方式二:
[0054]命令分析器120可以包括學(xué)習(xí)模塊1206和分類模塊1204。
[0055]學(xué)習(xí)模塊1206主要對訓(xùn)練樣本集進行機器學(xué)習(xí),然后為分類模塊1204提供所需的各種先驗參數(shù)。由于分類模塊1204可以基于貝葉斯、邏輯回歸、偏最小二乘法或決策樹等多種分類原理來實現(xiàn),因此相應(yīng)的,學(xué)習(xí)模塊也需要根據(jù)分類模塊1204的不同而提供不同的先驗參數(shù)。下面以分類模塊1204基于貝葉斯原理實現(xiàn),學(xué)習(xí)模塊1206為分類模塊1204提供所需的各種先驗概率為例,對這兩個模塊進行詳細說明。
[0056]學(xué)習(xí)模塊1206對已知的訓(xùn)練樣本集進行機器學(xué)習(xí)。訓(xùn)練樣本集包括一定數(shù)量的已知命令,并且已知這些命令是否為異常命令。對訓(xùn)練樣本集中的已知命令進行分詞得到的字段可以看作是與命令有關(guān)的特征詞,這些特征詞可以是命令字符串本身,如cat,wget等,也可以包括從命令的參數(shù)提取出的內(nèi)容。如將命令:
[0057]wget-o http: //www.sina.com/dasd/hahah/tad.tgz/usr/loca/das d/etc/passwd進行分詞,可以得到如下特征詞集合:
[0058]{,wget,,,-O,,,http,,,www.sina.com,,,dasd,,,hahah,,,tad.tgz,,,usr,,,1ca,,,dasd,,,etc,,,passwd,,,www,,,sina,,,com,}
[0059]具體在對命令進行分詞得到特征詞時,可以使用正則表達式工具,例如可以使用
[0060][_\$]*[a-zA-Z\d\._\_] + [~\w\(/; =\_\) \[\]\{\}:>&\?\.\\\s, \d’ 〃\%〈]*
[0061 ] 對命令進行切分,還可以使用正則表達式
[0062]((\w+\.){I, 6}(?:net|cn|com|gov|edu|asia|me|co))
[0063]識別命令中的網(wǎng)址,從而可以對諸如上述命令示例進行切分,得到基于該命令的特征詞集合。
[0064]由于在訓(xùn)練樣本集中,命令是否異常是已知的,異常命令出現(xiàn)的概率可以通過(異常命令數(shù)量/訓(xùn)練樣本集中命令總量)獲得,正常命令出現(xiàn)的概率可以通過(正常命令數(shù)量/訓(xùn)練樣本集中命令總量)獲得。另外,通過對訓(xùn)練樣本集中的命令進行分詞,各個特征詞出現(xiàn)的在異常命令中的概率和出現(xiàn)在正常命令中的概率也是可以統(tǒng)計得到的,因此學(xué)習(xí)模塊1206可以獲得以上這些先驗概率。然后,將這些先驗概率數(shù)據(jù)提供給分類模塊1204使用,以便分類模塊1204對當(dāng)前待分析的命令進行分類。
[0065]可見,分類模塊1204根據(jù)已有分類模型的訓(xùn)練樣本集(具體是學(xué)習(xí)模塊1206對已有分類模型的訓(xùn)練樣本集進行機器學(xué)習(xí)后提供給分類模塊1204 —些先驗概率),對集中數(shù)據(jù)回收器110接收到的當(dāng)前命令進行分類,獲得當(dāng)前命令分別是正常命令的概率和異常命令的概率,進而識別出該當(dāng)前命令是否屬于異常命令。
[0066]下面以貝葉斯分類方法為例,對分類模塊1204進行具體的介紹。
[0067]貝葉斯分類方法是一種 統(tǒng)計分類方法,它是一類利用概率統(tǒng)計進行分類的算法。在許多應(yīng)用中,樸素貝葉斯分類法都可以獲取非常準確的分類結(jié)果,且貝葉斯分類方法本身還具有易于實現(xiàn)、分類準確率高、速度快的特點,貝葉斯分類方法的原理是通過對象的先驗概率,利用貝葉斯公式計算出其后驗概率,即該對象屬于某一類的概率,選擇具有最大后驗概率的類作為該對象所屬的類。本發(fā)明實施例中,分類模塊1204可以利用貝葉斯分類方法來實現(xiàn)對當(dāng)前命令是否異常命令進行識別,下面對該其實現(xiàn)的過程進行詳細的介紹。
[0068]利用貝葉斯分類方法實現(xiàn)分類模塊1204,其實質(zhì)是要實現(xiàn)利用訓(xùn)練樣本集中已知是否異常的命令、異常命令和正常命令分別出現(xiàn)的概率、以及根據(jù)已知命令進行分詞得到的各字段在異常命令和正常命令出現(xiàn)的概率,來獲取當(dāng)給定一個命令時,給定命令出現(xiàn)的特定某個/某些字段時,該命令是正常命令的概率以及該命令是異常命令的概率,進而確定該命令的所屬分類。這個過程是根據(jù)訓(xùn)練樣本集來訓(xùn)練分類模塊1204,通過訓(xùn)練使分類模塊1204獲取先驗概率,進而可以根據(jù)貝葉斯分類方法識別當(dāng)前命令屬于哪個分類,即屬于異常命令還是屬于正常命令的能力。
[0069]在給定一個未知分類的當(dāng)前命令時,判斷它是屬于異常命令或正常命令,要應(yīng)用貝葉斯分類方法對其進行分類,首先需要對當(dāng)前命令進行分詞,在對當(dāng)前命令進行分詞時,同樣可以使用正則表達式實現(xiàn)。設(shè)
[0070]X= (W1, W2, W3,…,wn}為該未知分類的當(dāng)前命令經(jīng)過分詞得到的特征詞集合;
[0071]Y=Iy1=Eood, y2=bad}為類別集合,其中yfgood代表正常命令的分類,y2=bad代表異常命令的分類;接下來需要獲得P(Y1Ix)、P (y2 |χ),其中P(Y1Ix)表示在當(dāng)前命令含有集合X中的各個特征詞時,其屬于正常命令的概率,P(y2|x)表示在當(dāng)前命令含有集合X中的各個特征詞時,其屬于異常命令的概率。比較P(Y1Ix)與P(y2|x)的值,根據(jù)比較的結(jié)果確定當(dāng)前命令的分類。例如取兩者之中數(shù)值較大者作為當(dāng)前命令的分類,或者在兩者的差值達到一定的閾值時,將其中的較大者作為當(dāng)前命令的分類。下面來介紹如何獲取PG1 |χ)與P (y21X)。
[0072]根據(jù)貝葉斯分類方法,有如下獲取方法:
[0073]P (Yl I X) =P (X I Y1) *P (Yl) /P (x)
[0074]P (y21 x) =P (x | y2) *P (y2) /P (x)
[0075]其中P(x)對于ypgood和y2=bad兩個分類來說是相等的常數(shù),因此,只需求出P (XIY1) *p (Y1),以及 P (X112) *p (y2)即可。
[0076]而其中正常命令出現(xiàn)的概率p(yi),以及異常命令出現(xiàn)的概率P(y2),可以根據(jù)訓(xùn)練樣本集中正常命令以及異常命令出現(xiàn)的頻率來確定。例如在訓(xùn)練樣本集中一共采集了4651629條命令,而其中出現(xiàn)的異常命令有68440條,則異常命令出現(xiàn)的概率P (y2)為:[0077]68440/4651629 ^ 0.014713
[0078]而相應(yīng)的正常命令出現(xiàn)的概率則為P (yi) ^(1-P (y2) ) =0.985287。
[0079]由于P (Xly1) =P ([W1, w2, w3,…,wn] Iy1),且 W1, w2, W3,...,Wn 可以認為是條件獨立的,可以將 Pdw1, w2,W3,..., wn] Iy1)分解為:
[0080]P (W11 Y1) *P (W21 Y1) *P (w31 Y1) *...*P (wn | Y1)
[0081]而其中Pb1 Iy1) ,P(W2Iy1) ,P(W3Iy1),…,P(W1Jy1)各項,表示在集合x中各特征詞在正常命令里出現(xiàn)的概率,這些項所代表的概率數(shù)值,可以通過訓(xùn)練樣本集中正常命令中出現(xiàn)目標(biāo)特征詞的概率統(tǒng)計出來。P(x|y2)的獲取原理與PUIy1)的獲取方法類似,在此不再贅述。需要說明的是在獲取P(W1 Iy1) ,P(W2Iy1) ,P(W3Iy1),…,P(W1Jy1)各項的乘積時,由于其中各項的數(shù)值都屬于(0,I)區(qū)間,導(dǎo)致各項連乘后得到的結(jié)果經(jīng)常趨近于0,甚至由于超出了計算機能夠表達的浮點數(shù)范圍精度,導(dǎo)致可能計算結(jié)果等于0,此時可選的,還可以將:
[0082]P (W11 Y1) *P (w21 Y1) *P (w31 Y1) *…*P (wn | Y1)轉(zhuǎn)化為對數(shù)和的形式,例如轉(zhuǎn)化為:
【權(quán)利要求】
1.一種用于分析在各主機上執(zhí)行的命令的分析設(shè)備,包括: 集中數(shù)據(jù)回收器,被配置為至少收集各主機終端通過網(wǎng)絡(luò)傳輸?shù)漠?dāng)前命令及所屬主機標(biāo)識; 命令分析器,被配置為對所述集中數(shù)據(jù)回收器收集到的當(dāng)前命令進行識別,至少識別出異常命令和正常命令; 告警器,被配置為根據(jù)所述命令分析器的識別結(jié)果判斷是否滿足告警條件,如果滿足,則發(fā)出相應(yīng)主機存在異常的告警信息。
2.如權(quán)利要求1所述的分析設(shè)備,所述命令分析器包括過濾模塊,被配置為對所述集中數(shù)據(jù)回收器收集到的當(dāng)前命令采用預(yù)置的可疑規(guī)則進行過濾,將被所述可疑規(guī)則命中的當(dāng)前命令識別為異常命令,并輸出被所述可疑規(guī)則命中的異常命令的告警權(quán)值,所述告警權(quán)值基于該條可疑規(guī)則對命令的總體命中率獲得; 所述告警器具體被配置為根據(jù)所述異常命令的告警權(quán)值判斷是否滿足告警條件。
3.如權(quán)利要求2所述的分析設(shè)備,所述過濾模塊輸出的異常命令的告警權(quán)值通過下述方式獲得:通過以該條可疑規(guī)則對已有命令的總體命中率作為自變量的單調(diào)遞減函數(shù),獲得被該條可疑規(guī)則命中的異常命令的告警權(quán)值。
4.如權(quán)利要求2或3所述的分析設(shè)備,所述告警器具體被配置為統(tǒng)計一個告警周期內(nèi)、所述命令分析器識別出的某一主機上的所有異常命令,將這些異常命令各自對應(yīng)的告警權(quán)值進行綜合化處理,根據(jù)綜合化處理后的值判斷是否滿足預(yù)置的告警條件。
5.如權(quán)利要求1所述的分析設(shè)備,所述命令分析器包括: 分類模塊,被配置為根據(jù)已 有分類模型的訓(xùn)練樣本集,對所述集中數(shù)據(jù)回收器接收到的當(dāng)前命令進行分類,獲得當(dāng)前命令分別是正常命令的概率和異常命令的概率,進而識別出該當(dāng)前命令是否屬于異常命令。
6.一種用于分析在各主機上執(zhí)行的命令的系統(tǒng),包括如權(quán)利要求1至5中任一項所述的分析設(shè)備和若干主機終端; 所述若干主機終端,被配置為至少將各主機上的當(dāng)前命令及所屬主機標(biāo)識通過網(wǎng)絡(luò)傳輸至集中數(shù)據(jù)回收器。
7.如權(quán)利要求6所述的系統(tǒng),所述主機終端包括: 命令發(fā)送模塊,被配置為對各主機的命令解析器shell進行改造,增加將所述shell接收到的主機當(dāng)前命令和主機IP傳輸至所述集中數(shù)據(jù)回收器的函數(shù)。
8.如權(quán)利要求6所述的系統(tǒng),還包括: 監(jiān)控器,被配置為對各主機中所述命令發(fā)送模塊的部署情況進行監(jiān)控,當(dāng)發(fā)現(xiàn)有新增主機未部署所述命令發(fā)送模塊或發(fā)現(xiàn)有主機上的所述命令發(fā)送模塊失效時,通過該未部署命令發(fā)送模塊或命令發(fā)送模塊失效的主機IP自動登錄至該主機上,為其部署所述命令發(fā)送模塊。
9.一種用于分析在各主機上執(zhí)行的命令的方法,包括: 收集所述各主機通過網(wǎng)絡(luò)傳輸?shù)漠?dāng)前命令及所屬主機標(biāo)識; 對所述收集到的當(dāng)前命令進行識別,至少識別出異常命令和正常命令; 根據(jù)上述識別結(jié)果判斷是否滿足告警條件,如果滿足,則發(fā)出相應(yīng)主機存在異常的告m樣自目 I R ο
10.如權(quán)利要求9所述的方法,所述對收集到的當(dāng)前命令進行識別的步驟包括: 對收集到的當(dāng)前命令采用預(yù)置的可疑規(guī)則進行過濾,將被所述可疑規(guī)則命中的當(dāng)前命令識別為異常命令,并獲得被所述可疑規(guī)則命中的異常命令的告警權(quán)值,所述告警權(quán)值基于該條可疑規(guī)則對命令的總體命中率獲得; 所述根據(jù)上述識別結(jié)果判斷是否滿足告警條件的步驟包括:根據(jù)所述異常命令的告警權(quán)值判斷是否滿足告警條件。
【文檔編號】H04L12/24GK103532760SQ201310492700
【公開日】2014年1月22日 申請日期:2013年10月18日 優(yōu)先權(quán)日:2013年10月18日
【發(fā)明者】張卓, 楊卿, 劉小雄, 李洪亮 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司