一種工業(yè)控制系統(tǒng)威脅檢測防御裝置、系統(tǒng)及方法
【專利摘要】本發(fā)明公開了一種工業(yè)控制系統(tǒng)威脅檢測防御裝置、系統(tǒng)及方法,用于工業(yè)控制系統(tǒng)中的安全防護(hù),該裝置包括:威脅檢測模塊用于截獲通信數(shù)據(jù)報(bào)文;識別其中的報(bào)文字段信息;根據(jù)報(bào)文字段信息判斷通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文;根據(jù)報(bào)文字段信息及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對本地上位機(jī)的惡意行為或由本地上位機(jī)發(fā)起的惡意行為;檢測是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作;異常處理模塊用于如果存在通信數(shù)據(jù)報(bào)文為惡意報(bào)文、針對本地上位機(jī)的惡意行為、由本地上位機(jī)發(fā)起的惡意行為、針對本地上位機(jī)內(nèi)部控制程序的惡意操作中的一種或多種,根據(jù)安全配置文件觸發(fā)進(jìn)行對應(yīng)的安全操作。
【專利說明】一種工業(yè)控制系統(tǒng)威脅檢測防御裝置、系統(tǒng)及方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及工業(yè)控制系統(tǒng)【技術(shù)領(lǐng)域】,具體涉及一種工業(yè)控制系統(tǒng)威脅檢測防御裝置、系統(tǒng)及方法。
【背景技術(shù)】
[0002]在工業(yè)化和信息化的背景之下,現(xiàn)代工業(yè)企業(yè)的用于生產(chǎn)的工業(yè)控制系統(tǒng)越來越多的被連入到互聯(lián)網(wǎng)之中,發(fā)揮信息系統(tǒng)的集成效益,但是隨之而來的網(wǎng)絡(luò)安全問題也日益明顯。
[0003]由于工業(yè)控制系統(tǒng)網(wǎng)絡(luò)在設(shè)計(jì)或者部署初期對于網(wǎng)絡(luò)安全的重視程度不夠,在現(xiàn)有技術(shù)中,針對不同類型的控制系統(tǒng)安全防護(hù)中,主要采用防火墻、網(wǎng)閘等設(shè)備進(jìn)行安全防護(hù),這些防護(hù)設(shè)備只能部署在工業(yè)控制系統(tǒng)與上層信息網(wǎng)絡(luò)之間,以防止惡意信息進(jìn)入工業(yè)控制網(wǎng)絡(luò)。但是,一旦惡意攻擊利用漏洞進(jìn)入工業(yè)控制網(wǎng)絡(luò),或者攻擊者直接在控制系統(tǒng)中以插入U(xiǎn)盤或者帶入惡意文件的方式進(jìn)行植入式攻擊,現(xiàn)有技術(shù)的安全防護(hù)手段無法對工業(yè)控制系統(tǒng)進(jìn)行有效防護(hù),一旦安全問題發(fā)生將出現(xiàn)較大的損失。
【發(fā)明內(nèi)容】
[0004]有鑒于此,本發(fā)明提供一種工業(yè)控制系統(tǒng)威脅檢測防御裝置、系統(tǒng)及方法,以解決現(xiàn)有技術(shù)中安全防護(hù)手段無法對工業(yè)控制系統(tǒng)進(jìn)行有效防護(hù)的技術(shù)問題。
[0005]為解決上述問題,本發(fā)明提供的技術(shù)方案如下:
[0006]一種工業(yè)控制系統(tǒng)威脅檢測防御裝置,所述裝置部署在工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)中,所述裝置包括:
[0007]威脅檢測模塊以及異常處理模塊;
[0008]所述威脅檢測模塊包括:
[0009]截獲單元,用于截獲本地上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文;
[0010]識別單元,用于識別所述通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息,所述報(bào)文字段信息包括源物理地址、源邏輯地址、目的物理地址、目的邏輯地址、協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容;
[0011]第一判斷單元,用于根據(jù)截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息判斷所述當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文;
[0012]第二判斷單元,用于根據(jù)所述當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息以及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對所述本地上位機(jī)的惡意行為或者由所述本地上位機(jī)發(fā)起的惡意行為;
[0013]第三判斷單元,用于檢測是否存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作;
[0014]所述異常處理模塊,用于如果存在安全威脅,根據(jù)安全配置文件觸發(fā)對所述安全威脅進(jìn)行對應(yīng)的安全操作,所述安全威脅包括所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文、存在針對所述本地上位機(jī)的惡意行為、存在由所述本地上位機(jī)發(fā)起的惡意行為、存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作中的一種或多種,所述安全操作包括攔截處理、報(bào)警處理、放行處理或者安全狀態(tài)啟動(dòng)處理。
[0015]相應(yīng)的,所述第一判斷單元包括:
[0016]第一判斷子單元,用于判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與本地通信協(xié)議棧數(shù)據(jù)庫中經(jīng)認(rèn)證報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果否,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文;
[0017]第二判斷子單元,用于判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與攻擊檢測規(guī)則庫中記錄的攻擊報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果是,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文;
[0018]第三判斷子單元,用于判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容是否與所述本地通信協(xié)議棧數(shù)據(jù)庫中記錄的各字段內(nèi)容的許可值相符合,如果否,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文。
[0019]相應(yīng)的,所述第二判斷單元包括:
[0020]第一查找子單元,用于當(dāng)截獲本地上位機(jī)接收的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址以及源邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將所述當(dāng)前通信數(shù)據(jù)報(bào)文以及所述歷史通信數(shù)據(jù)報(bào)文作為第一待查行為數(shù)據(jù)流;
[0021]第一識別子單元,用于根據(jù)所述第一待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別所述第一待查行為數(shù)據(jù)流代表的第一操作行為;
[0022]第四判斷子單元,用于判斷所述第一操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在針對所述本地上位機(jī)的惡意行為;
[0023]第二查找子單元,用于當(dāng)截獲本地上位機(jī)發(fā)送的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的目的物理地址以及目的邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將所述當(dāng)前通信數(shù)據(jù)報(bào)文以及所述歷史通信數(shù)據(jù)報(bào)文作為第二待查行為數(shù)據(jù)流;
[0024]第二識別子單元,用于根據(jù)所述第二待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別所述第二待查行為數(shù)據(jù)流代表的第二操作行為;
[0025]第五判斷子單元,用于判斷所述第二操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在由所述本地上位機(jī)發(fā)起的惡意行為。
[0026]相應(yīng)的,所述第三判斷單元具體用于:
[0027]采用在所述本地上位機(jī)的操作系統(tǒng)中植入劫持函數(shù)的方式來獲得針對所述本地上位機(jī)內(nèi)部控制程序的操作行為,判斷所述操作行為是否與程序惡意操作庫中所記錄的惡意操作相同,如果是,則確定存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作。
[0028]相應(yīng)的,所述裝置還包括:
[0029]日志生成模塊,用于生成所述安全威脅的日志信息;當(dāng)所述當(dāng)前通信數(shù)據(jù)報(bào)文不是惡意報(bào)文,記錄所述通信數(shù)據(jù)報(bào)文信息,建立本地通信日志數(shù)據(jù)庫。
[0030]相應(yīng)的,所述裝置還包括:
[0031]通信模塊,用于接收威脅監(jiān)控服務(wù)器下發(fā)的所述安全配置文件;向所述威脅監(jiān)控服務(wù)器發(fā)送心跳數(shù)據(jù)包,所述心跳數(shù)據(jù)包包括發(fā)送時(shí)間戳、發(fā)送序列號、所述本地上位機(jī)的基本信息、所述本地上位機(jī)的工作狀態(tài);將所述安全威脅的日志信息發(fā)送給所述威脅監(jiān)控服務(wù)器。
[0032]相應(yīng)的,所述攔截處理包括對所述惡意報(bào)文進(jìn)行丟棄,對所述針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作進(jìn)行強(qiáng)行中斷;
[0033]所述報(bào)警處理包括由所述本地上位機(jī)彈出異常發(fā)生消息進(jìn)行報(bào)警;將所述安全威脅的日志信息發(fā)送給所述威脅監(jiān)控服務(wù)器之后,由所述威脅監(jiān)控服務(wù)器進(jìn)行報(bào)警;
[0034]所述放行處理包括對所述通信數(shù)據(jù)報(bào)文不予干預(yù);
[0035]所述安全狀態(tài)啟動(dòng)處理包括工業(yè)控制系統(tǒng)的運(yùn)行狀態(tài)導(dǎo)向到安全運(yùn)行狀態(tài)運(yùn)行。
[0036]一種工業(yè)控制系統(tǒng)威脅檢測防御系統(tǒng),所述系統(tǒng)包括:
[0037]威脅檢測客戶端以及威脅監(jiān)控服務(wù)器;所述威脅檢測客戶端部署在工業(yè)控制系統(tǒng)監(jiān)控層的每臺上位機(jī)中,所述威脅監(jiān)控服務(wù)器部署在所述工業(yè)控制系統(tǒng)監(jiān)控層中;
[0038]所述威脅檢測客戶端是上述的一種工業(yè)控制系統(tǒng)威脅檢測防御裝置;
[0039]所述威脅監(jiān)控服務(wù)器包括:
[0040]通信模塊,用于接收所述威脅檢測客戶端發(fā)送的心跳數(shù)據(jù)包,所述心跳數(shù)據(jù)包包括發(fā)送時(shí)間戳、發(fā)送序列號、發(fā)送所述心跳數(shù)據(jù)包的上位機(jī)的基本信息、該上位機(jī)的工作狀態(tài);接收所述威脅檢測客戶端發(fā)送的安全威脅的日志信息;向所述威脅檢測客戶端發(fā)送安全配置文件;
[0041]數(shù)據(jù)庫模塊,根據(jù)所述心跳數(shù)據(jù)包以及所述安全威脅的日志信息,建立包括每臺上位機(jī)信息的數(shù)據(jù)庫,所述每臺上位機(jī)信息包括該上位機(jī)對應(yīng)的基本信息、工作狀態(tài)以及安全威脅的日志信息。
[0042]相應(yīng)的,所述威脅監(jiān)控服務(wù)器還包括:
[0043]顯示模塊,用于對每臺上位機(jī)信息通過瀏覽器/服務(wù)器B/S架構(gòu)進(jìn)行顯示;
[0044]報(bào)表生成模塊,用于根據(jù)每臺上位機(jī)信息按照用戶需求生成威脅檢測報(bào)表。
[0045]一種工業(yè)控制系統(tǒng)威脅檢測防御方法,應(yīng)用在工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)中,所述方法包括:
[0046]截獲本地上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文;
[0047]識別所述通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息,所述報(bào)文字段信息包括源物理地址、源邏輯地址、目的物理地址、目的邏輯地址、協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容;
[0048]根據(jù)截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息判斷所述當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文;[0049]根據(jù)所述當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息以及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對所述本地上位機(jī)的惡意行為或者由所述本地上位機(jī)發(fā)起的惡意行為;
[0050]檢測是否存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作;
[0051]如果存在安全威脅,根據(jù)安全配置文件對所述安全威脅進(jìn)行對應(yīng)的安全操作,所述安全威脅包括所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文、存在針對所述本地上位機(jī)的惡意行為、存在由所述本地上位機(jī)發(fā)起的惡意行為、存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作中的一種或多種,所述安全操作包括所述安全操作包括攔截處理、報(bào)警處理、放行處理或者安全狀態(tài)啟動(dòng)處理。
[0052]相應(yīng)的,所述根據(jù)截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息判斷所述當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文,包括:
[0053]判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與本地通信協(xié)議棧數(shù)據(jù)庫中經(jīng)認(rèn)證報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果否,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文;
[0054]判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與攻擊檢測規(guī)則庫中記錄的攻擊報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果是,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文;
[0055]判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容是否與所述本地通信協(xié)議棧數(shù)據(jù)庫中記錄的各字段內(nèi)容的許可值相符合,如果否,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文。
[0056]相應(yīng)的,所述根據(jù)所述當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息以及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對所述本地上位機(jī)的惡意行為或者由所述本地上位機(jī)發(fā)起的惡意行為,包括:
[0057]當(dāng)截獲本地上位機(jī)接收的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址以及源邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將所述當(dāng)前通信數(shù)據(jù)報(bào)文以及所述歷史通信數(shù)據(jù)報(bào)文作為第一待查行為數(shù)據(jù)流;
[0058]根據(jù)所述第一待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別所述第一待查行為數(shù)據(jù)流代表的第一操作行為;
[0059]判斷所述第一操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在針對所述本地上位機(jī)的惡意行為;
[0060]當(dāng)截獲本地上位機(jī)發(fā)送的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的目的物理地址以及目的邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將所述當(dāng)前通信數(shù)據(jù)報(bào)文以及所述歷史通信數(shù)據(jù)報(bào)文作為第二待查行為數(shù)據(jù)流;
[0061]根據(jù)所述第二待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別所述第二待查行為數(shù)據(jù)流代表的第二操作行為;
[0062]判斷所述第二操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在由所述本地上位機(jī)發(fā)起的惡意行為。[0063]相應(yīng)的,所述檢測是否存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作,包括:
[0064]采用在所述本地上位機(jī)的操作系統(tǒng)中植入劫持函數(shù)的方式來獲得針對所述本地上位機(jī)內(nèi)部控制程序的操作行為,判斷所述操作行為是否與程序惡意操作庫中所記錄的惡意操作相同,如果是,則確定存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作。
[0065]相應(yīng)的,所述方法還包括:
[0066]生成所述安全威脅的日志信息;當(dāng)所述當(dāng)前通信數(shù)據(jù)報(bào)文不是惡意報(bào)文,記錄所述通信數(shù)據(jù)報(bào)文信息,建立本地通信日志數(shù)據(jù)庫。
[0067]相應(yīng)的,所述方法還包括:
[0068]接收威脅監(jiān)控服務(wù)器下發(fā)的所述安全配置文件;向所述威脅監(jiān)控服務(wù)器發(fā)送心跳數(shù)據(jù)包,所述心跳數(shù)據(jù)包包括發(fā)送時(shí)間戳、發(fā)送序列號、所述本地上位機(jī)的基本信息、所述本地上位機(jī)的工作狀態(tài);將所述安全威脅的日志信息發(fā)送給所述威脅監(jiān)控服務(wù)器。
[0069]相應(yīng)的,所述攔截處理包括對所述惡意報(bào)文進(jìn)行丟棄,對所述針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作進(jìn)行強(qiáng)行中斷;
[0070]所述報(bào)警處理包括由所述本地上位機(jī)彈出異常發(fā)生消息進(jìn)行報(bào)警;將所述安全威脅的日志信息發(fā)送給所述威脅監(jiān)控服務(wù)器之后,由所述威脅監(jiān)控服務(wù)器進(jìn)行報(bào)警;
[0071 ] 所述放行處理包括對所述通信數(shù)據(jù)報(bào)文不予干預(yù);
[0072]所述安全狀態(tài)啟動(dòng)處理包括工業(yè)控制系統(tǒng)的運(yùn)行狀態(tài)導(dǎo)向到安全運(yùn)行狀態(tài)運(yùn)行。
[0073]由此可見,本發(fā)明實(shí)施例具有如下有益效果:
[0074]本發(fā)明實(shí)施例通過部署在工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)中的威脅檢測客戶端,判斷上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文、是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為、是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作,發(fā)現(xiàn)安全威脅及時(shí)處理,實(shí)現(xiàn)了對工業(yè)控制系統(tǒng)內(nèi)部進(jìn)行有效威脅檢測與防護(hù),提高了系統(tǒng)安全性。另外,本發(fā)明實(shí)施例在安裝和部署時(shí)不會(huì)影響控制工業(yè)控制系統(tǒng)正常工作,可以部署在運(yùn)行中的工業(yè)控制系統(tǒng)中,可以在不改變工業(yè)控制系統(tǒng)網(wǎng)絡(luò)的前提下進(jìn)行全方位的防護(hù)。
【專利附圖】
【附圖說明】
[0075]圖1為本發(fā)明實(shí)施例中工業(yè)控制系統(tǒng)威脅檢測防御裝置實(shí)施例一的示意圖;
[0076]圖2為本發(fā)明實(shí)施例中對上位機(jī)內(nèi)部控制程序進(jìn)行威脅檢測的示意圖;
[0077]圖3為本發(fā)明實(shí)施例中工業(yè)控制系統(tǒng)威脅檢測防御裝置實(shí)施例二的示意圖;
[0078]圖4為本發(fā)明實(shí)施例中工業(yè)控制系統(tǒng)威脅檢測防御系統(tǒng)實(shí)施例的示意圖;
[0079]圖5為本發(fā)明實(shí)施例中工業(yè)控制系統(tǒng)威脅檢測防御系統(tǒng)實(shí)施例的部署結(jié)構(gòu)示意圖;
[0080]圖6為本發(fā)明實(shí)施例中工業(yè)控制系統(tǒng)威脅檢測防御方法實(shí)施例的流程圖。
【具體實(shí)施方式】
[0081]為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和【具體實(shí)施方式】對本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)的說明。[0082]本發(fā)明工業(yè)控制系統(tǒng)威脅檢測防御裝置、系統(tǒng)及方法,是針對現(xiàn)有技術(shù)中安全防護(hù)手段無法對工業(yè)控制系統(tǒng)進(jìn)行有效防護(hù)的技術(shù)問題,提出由分布在工業(yè)控制網(wǎng)絡(luò)監(jiān)控層的各個(gè)上位機(jī)中的威脅檢測客戶端對上位機(jī)發(fā)送或接收的通信數(shù)據(jù)報(bào)文以及上位機(jī)中的控制程序進(jìn)行識別、監(jiān)控,進(jìn)行惡意報(bào)文例如泛洪攻擊、拒絕服務(wù)攻擊等通用網(wǎng)絡(luò)攻擊的檢測,并利用工業(yè)控制網(wǎng)絡(luò)協(xié)議進(jìn)行對工業(yè)控制系統(tǒng)控制方案與代碼讀取、本地惡意代碼注入/替換、對控制器進(jìn)行代碼注入、對控制器進(jìn)行關(guān)機(jī)、要求控制器上傳代碼、對控制器關(guān)鍵地址的參數(shù)及屬性竊取、控制代碼篡改、測量數(shù)據(jù)欺騙等惡意操作行為的檢測,同時(shí)還可以實(shí)現(xiàn)報(bào)警與攔截等保護(hù),生成的威脅檢測、處理數(shù)據(jù)可以由威脅監(jiān)控服務(wù)器集中存儲管理。
[0083]基于上述思想,本發(fā)明實(shí)施例提供一種工業(yè)控制系統(tǒng)威脅檢測防御裝置實(shí)施例,該裝置可以理解為威脅檢測客戶端,威脅檢測客戶端可以部署在工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)中,工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)包括工程師站、操作員服務(wù)器/客戶端站、OPC(Object Linking and Embedding for Process Control,用于過程控制的對象連接與嵌入OLE)服務(wù)器/客戶端站、MES (Manufacturing Execution System,制造執(zhí)行系統(tǒng))服務(wù)器/客戶端站、實(shí)時(shí)數(shù)據(jù)庫服務(wù)器/客戶端站等。
[0084]參見圖1所示,是本發(fā)明實(shí)施例提供的工業(yè)控制系統(tǒng)威脅檢測防御裝置實(shí)施例一,可以包括:
[0085]威脅檢測模塊101以及異常處理模塊102。
[0086]其中,威脅檢測模塊101可以包括:
[0087]截獲單元1011,可以用于截獲本地上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文。
[0088]威脅檢測模塊可以對工業(yè)控制系統(tǒng)中的通信數(shù)據(jù)報(bào)文進(jìn)行攔截,可以采用通過向上位機(jī)操作系統(tǒng)底層通用網(wǎng)絡(luò)(如通用以太網(wǎng))驅(qū)動(dòng)程序,或?qū)S芯W(wǎng)絡(luò)(如專用工業(yè)以太網(wǎng)協(xié)議,或其他串行或并行專有網(wǎng)絡(luò)通信協(xié)議)驅(qū)動(dòng)程序植入劫持函數(shù)的方式,來截獲工業(yè)控制系統(tǒng)的通信數(shù)據(jù)報(bào)文,以獲得本地上位機(jī)(如智能設(shè)備/工作站)與其他所有上位機(jī)或工業(yè)控制系統(tǒng)控制層的控制器之間的點(diǎn)對點(diǎn)、單播、多播、廣播通信數(shù)據(jù)報(bào)文。
[0089]識別單元1012,可以用于識別通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息,報(bào)文字段信息包括源物理地址、源邏輯地址、目的物理地址、目的邏輯地址、協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容。
[0090]威脅檢測模塊可以截獲的通信數(shù)據(jù)報(bào)文進(jìn)行分析,識別其中關(guān)鍵字段的內(nèi)容,例如源物理地址、源邏輯地址、目的物理地址、目的邏輯地址、協(xié)議類型字段內(nèi)容、優(yōu)先級字段、命令字段、測量數(shù)據(jù)字段以及控制數(shù)據(jù)等字段的內(nèi)容,以對通信數(shù)據(jù)報(bào)文以及通信數(shù)據(jù)報(bào)文構(gòu)成的通信行為進(jìn)行識別,判斷上位機(jī)是否遭遇安全威脅。
[0091]第一判斷單元1013,可以用于根據(jù)截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息判斷當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文。
[0092]第二判斷單元1014,可以用于根據(jù)當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息以及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為。
[0093]第三判斷單元1015,可以用于檢測是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作。[0094]也即威脅檢測模塊可以具有至少三方面的安全威脅檢測:第一,判斷通信數(shù)據(jù)報(bào)文本身是否為惡意報(bào)文,例如判斷是否受到泛洪攻擊、拒絕服務(wù)攻擊;第二,判斷是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為,例如是否存在對工控系統(tǒng)控制方案與代碼讀取、惡意代碼注入/替換、對控制器進(jìn)行代碼注入、對控制器進(jìn)行關(guān)機(jī)、要求控制器上傳代碼、對控制器關(guān)鍵地址的參數(shù)及屬性竊取、控制代碼篡改、測量數(shù)據(jù)欺騙等測量控制攻擊操作行為;第三,判斷是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作,例如是否存在控制程序被惡意破壞/替換/更新/打補(bǔ)丁 /終止,進(jìn)程是否被惡意終止。
[0095]異常處理模塊102,可以用于如果存在安全威脅,根據(jù)安全配置文件觸發(fā)對安全威脅進(jìn)行對應(yīng)的安全操作,安全威脅包括當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文、存在針對本地上位機(jī)的惡意行為、存在由本地上位機(jī)發(fā)起的惡意行為、存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作中的一種或多種,安全操作包括攔截處理、報(bào)警處理、放行處理或者安全狀態(tài)啟動(dòng)處理。
[0096]對于威脅檢測模塊識別出的安全威脅交由異常處理模塊進(jìn)行處理,異常處理模塊可以根據(jù)安全配置文件的配置,對不同類型的安全威脅觸發(fā)對應(yīng)的安全操作,如進(jìn)行攔截、報(bào)警、放行或者安全狀態(tài)啟動(dòng)等安全操作。
[0097]在本發(fā)明的一些實(shí)施例中,第一判斷單元1013可以包括:
[0098]第一判斷子單元,用于判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與本地通信協(xié)議棧數(shù)據(jù)庫中經(jīng)認(rèn)證報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果否,則確定當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文。
[0099]第二判斷子單元,用于判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與攻擊檢測規(guī)則庫中記錄的攻擊報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果是,則確定當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文。
[0100]第三判斷子單元,用于判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容是否與本地通信協(xié)議棧數(shù)據(jù)庫中記錄的各字段內(nèi)容的許可值相符合,如果否,則確定當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文。
[0101]在判斷當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文的過程中,又可以具體分為以下幾方面的識別:
[0102]第一,白名單識別:將截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源/目的物理地址、邏輯地址與本地通信協(xié)議棧數(shù)據(jù)庫中經(jīng)授權(quán)、認(rèn)證的源/目的物理地址、邏輯地址白名單進(jìn)行比對,如果兩者一致,則可以將本次通信數(shù)據(jù)報(bào)文的源/目的物理地址、邏輯地址、端口號、通信序列號、接收報(bào)文時(shí)間戳、發(fā)送報(bào)文時(shí)間戳等報(bào)文信息,建立本地通信日志數(shù)據(jù)庫,并可以繼續(xù)進(jìn)行下一步通用網(wǎng)絡(luò)攻擊識別;如不符合,則認(rèn)為該報(bào)文為疑似攻擊報(bào)文,并交由異常處理模塊處理。
[0103]第二,通用網(wǎng)絡(luò)攻擊識別:將截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源/目的物理地址、邏輯地址與攻擊檢測規(guī)則庫中的信息進(jìn)行比對,判斷本地上位機(jī)是否受到泛洪攻擊、拒絕服務(wù)攻擊等,如果是則交由異常處理模塊處理,否則可以繼續(xù)進(jìn)行下一步工控協(xié)議語法與關(guān)鍵字段識別。
[0104]第三,工控協(xié)議語法與關(guān)鍵字段識別:將截獲的當(dāng)前通信數(shù)據(jù)報(bào)文,按本地通信協(xié)議棧數(shù)據(jù)庫中定義的協(xié)議字段位置、字段長度進(jìn)行分割,并對其中的關(guān)鍵字段如協(xié)議類型字段、優(yōu)先級字段、命令字段、測量數(shù)據(jù)字段、控制數(shù)據(jù)字段等,進(jìn)行許可取值識別,以判斷各關(guān)鍵字段的內(nèi)容和取值是否符合本地通信協(xié)議棧數(shù)據(jù)庫中記錄的協(xié)議規(guī)定,如果符合,則可以繼續(xù)進(jìn)行之后的判斷過程;如不符合,則認(rèn)為該報(bào)文為疑似攻擊報(bào)文,并交由異常處理模塊處理。
[0105]在本發(fā)明的一些實(shí)施例中,第二判斷單元1014可以包括:
[0106]第一查找子單元,用于當(dāng)截獲本地上位機(jī)接收的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址以及源邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將當(dāng)前通信數(shù)據(jù)報(bào)文以及歷史通信數(shù)據(jù)報(bào)文作為第一待查行為數(shù)據(jù)流。
[0107]第一識別子單元,用于根據(jù)第一待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別第一待查行為數(shù)據(jù)流代表的第一操作行為。
[0108]第四判斷子單元,用于判斷第一操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在針對本地上位機(jī)的惡意行為。
[0109]第二查找子單元,用于當(dāng)截獲本地上位機(jī)發(fā)送的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的目的物理地址以及目的邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將當(dāng)前通信數(shù)據(jù)報(bào)文以及歷史通信數(shù)據(jù)報(bào)文作為第二待查行為數(shù)據(jù)流。
[0110]第二識別子單元,用于根據(jù)第二待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別第二待查行為數(shù)據(jù)流代表的第二操作行為。
[0111]第五判斷子單元,用于判斷第二操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在由本地上位機(jī)發(fā)起的惡意行為。
[0112]在判斷是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為的過程中,則可以分別對針對本地上位機(jī)的惡意行為和由本地上位機(jī)發(fā)起的惡意行為分別進(jìn)行識別:
[0113]第一,針對本地上位機(jī)(智能設(shè)備/工作站)的測量控制惡意行為識別:在本地通信日志數(shù)據(jù)庫中,提取與本次截獲的網(wǎng)絡(luò)通信接收報(bào)文中源物理地址/邏輯地址相同的若干個(gè)連續(xù)歷史網(wǎng)絡(luò)通信報(bào)文,根據(jù)其中的關(guān)鍵字段(如協(xié)議號、控制代碼、數(shù)據(jù)內(nèi)容、操作權(quán)限控制、指令標(biāo)識等)與本地通信協(xié)議棧數(shù)據(jù)庫中的定義進(jìn)行匹配,識別針對本地上位機(jī)的操作行為,再與攻擊檢測規(guī)則庫進(jìn)行比對,識別有無針對本地上位機(jī)(智能設(shè)備/工作站)的惡意行為(包括對工控系統(tǒng)控制方案與代碼讀取、惡意代碼注入/替換、對控制器進(jìn)行代碼注入、對控制器進(jìn)行關(guān)機(jī)、要求控制器上傳代碼、對控制器關(guān)鍵地址的參數(shù)及屬性竊取、控制代碼篡改、測量數(shù)據(jù)欺騙等測量控制攻擊操作行為),識別出這些安全威脅后,交由異常處理模塊進(jìn)行處理。
[0114]第二,類似的,由本地上位機(jī)(智能設(shè)備/工作站)發(fā)起的測量控制惡意行為識別:在本地通信日志數(shù)據(jù)庫中,提取與本次截獲的網(wǎng)絡(luò)通信發(fā)送報(bào)文中目的物理地址/邏輯地址相同的若干個(gè)連續(xù)歷史網(wǎng)絡(luò)通信報(bào)文,根據(jù)其中的關(guān)鍵字段(如協(xié)議號、控制代碼、數(shù)據(jù)內(nèi)容、操作權(quán)限控制、指令標(biāo)識等)與本地通信協(xié)議棧數(shù)據(jù)庫中的定義進(jìn)行匹配,識別針對本地上位機(jī)的操作行為,再與攻擊檢測規(guī)則庫進(jìn)行比對,識別有無針對本地上位機(jī)(智能設(shè)備/工作站)的惡意行為(包括對工控系統(tǒng)控制方案與代碼讀取、惡意代碼注入/替換、對控制器進(jìn)行代碼注入、對控制器進(jìn)行關(guān)機(jī)、要求控制器上傳代碼、對控制器關(guān)鍵地址的參數(shù)及屬性竊取、控制代碼篡改、測量數(shù)據(jù)欺騙等測量控制攻擊操作行為),識別出這些安全威脅后,交由異常處理模塊進(jìn)行處理。
[0115]在本發(fā)明的一些實(shí)施例中,第三判斷單元1015可以具體用于:
[0116]采用在本地上位機(jī)的操作系統(tǒng)中植入劫持函數(shù)的方式來獲得針對本地上位機(jī)內(nèi)部控制程序的操作行為,判斷操作行為是否與程序惡意操作庫中所記錄的惡意操作相同,如果是,則確定存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作。
[0117]針對是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作的識別可以采用在本地上位機(jī)的操作系統(tǒng)底層文件系統(tǒng)和任務(wù)調(diào)度系統(tǒng)的驅(qū)動(dòng)程序植入劫持函數(shù)的方式來獲得針對上位機(jī)(如智能設(shè)備/工作站)內(nèi)部的控制程序各類惡意行為,包括文件是否被破壞/替換/更新,進(jìn)程和任務(wù)是否被惡意的遠(yuǎn)程注入/惡意終止等的惡意動(dòng)作。
[0118]參見圖2所示,是本發(fā)明實(shí)施例中對上位機(jī)內(nèi)部控制程序進(jìn)行威脅檢測的示意圖,在本發(fā)明實(shí)施例中,可以采取劫持操作系統(tǒng)底層操作函數(shù)的方式作為威脅檢測和防御的基礎(chǔ)。其中,劫持文件操作的底層函數(shù),可以檢測針對控制程序相關(guān)文件操作,當(dāng)存在針對控制程序關(guān)鍵文件的修改,刪除操作,進(jìn)行威脅報(bào)警和防御;劫持進(jìn)程操作的底層函數(shù),可以檢測針對控制程序相關(guān)進(jìn)程和服務(wù)的操作。當(dāng)存在針對控制程序進(jìn)程和服務(wù)的惡意操作,如結(jié)束其進(jìn)程,遠(yuǎn)程注入其進(jìn)程,遠(yuǎn)程讀取相關(guān)進(jìn)程數(shù)據(jù),遠(yuǎn)程操作相關(guān)進(jìn)程的數(shù)據(jù)等操作,進(jìn)行威脅報(bào)警和威脅處理;劫持驅(qū)動(dòng)操作函數(shù),防止操作系統(tǒng)被擅自加載驅(qū)動(dòng),破壞或者劫持控制程序的通信驅(qū)動(dòng),對該類操作進(jìn)行威脅報(bào)警和威脅處理。
[0119]參見圖3所示,是本發(fā)明實(shí)施例提供的工業(yè)控制系統(tǒng)威脅檢測防御裝置實(shí)施例二,在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例提供的工業(yè)控制系統(tǒng)威脅檢測防御裝置實(shí)施例還可以包括:
[0120]日志生成模塊301,用于生成安全威脅的日志信息;當(dāng)當(dāng)前通信數(shù)據(jù)報(bào)文不是惡意報(bào)文,記錄通信數(shù)據(jù)報(bào)文信息,建立本地通信日志數(shù)據(jù)庫。
[0121]日志生成模塊可以生成安全威脅的日志信息以及通信數(shù)據(jù)日志:第一,日志生成模塊可以將威脅檢測模塊檢測到的安全威脅以及對應(yīng)所采取的安全操作形成日志記錄文件,具體的,可以由異常信息與行為類型、異常關(guān)聯(lián)節(jié)點(diǎn)物理地址/邏輯地址、異常發(fā)生上位機(jī)、異常發(fā)生進(jìn)程、異常發(fā)生函數(shù)、異常發(fā)生時(shí)間、處理依據(jù)、處理結(jié)果等內(nèi)容生成安全威脅的日志信息;第二,日志生成模塊可以由正常通信數(shù)據(jù)報(bào)文的源/目的物理地址、邏輯地址、端口號、通信序列號、接收報(bào)文時(shí)間戳、發(fā)送報(bào)文時(shí)間戳等報(bào)文信息生成通信數(shù)據(jù)日志,建立本地通信日志數(shù)據(jù)庫。
[0122]在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例提供的工業(yè)控制系統(tǒng)威脅檢測防御裝置實(shí)施例還可以包括:
[0123]通信模塊302,用于接收威脅監(jiān)控服務(wù)器下發(fā)的安全配置文件;向威脅監(jiān)控服務(wù)器發(fā)送心跳數(shù)據(jù)包,心跳數(shù)據(jù)包包括發(fā)送時(shí)間戳、發(fā)送序列號、本地上位機(jī)的基本信息、本地上位機(jī)的工作狀態(tài);將安全威脅的日志信息發(fā)送給威脅監(jiān)控服務(wù)器。
[0124]通信模塊主要負(fù)責(zé)與威脅監(jiān)控服務(wù)器的數(shù)據(jù)交互,可以采用TCP/IP通信方式與威脅監(jiān)控服務(wù)器通信。接收威脅監(jiān)控服務(wù)器下發(fā)的配置信息作為安全配置文件,下發(fā)給異常處理模塊;定時(shí)發(fā)送心跳數(shù)據(jù)包給威脅監(jiān)控服務(wù)端,以向威脅監(jiān)控服務(wù)端報(bào)告本地上位機(jī)中運(yùn)行的威脅檢測客戶端的運(yùn)行與健康狀態(tài),該心跳數(shù)據(jù)包可以包括本地客戶端的物理地址、邏輯地址、發(fā)送時(shí)間戳、發(fā)送序列號、本地客戶端工作狀態(tài)、健康狀態(tài)等信息;當(dāng)威脅日志產(chǎn)生時(shí),通信模塊可以發(fā)送日志生成模塊生成的安全威脅的日志信息給威脅監(jiān)控服務(wù)器。
[0125]在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例提供的工業(yè)控制系統(tǒng)威脅檢測防御裝置實(shí)施例還可以包括:
[0126]自我防護(hù)模塊303,用于通過隱藏自身進(jìn)程的方式防止被劫持者發(fā)現(xiàn)和攔截。
[0127]自我防護(hù)模塊可以保護(hù)威脅檢測客戶端本身不被惡意的結(jié)束,通過隱藏自身的運(yùn)行信息,包括進(jìn)程名、進(jìn)程ID,并且通過底層函數(shù)劫持過濾的方式,監(jiān)控過濾對威脅檢測客戶端進(jìn)程的非法操作,包括遠(yuǎn)程進(jìn)程注入,遠(yuǎn)程進(jìn)行關(guān)閉等的動(dòng)作來實(shí)現(xiàn)自我防護(hù)模塊的功能。
[0128]在本發(fā)明的一些實(shí)施例中,異常處理模塊中的安全操作具體可以為:
[0129]攔截處理包括對惡意報(bào)文進(jìn)行丟棄,對針對本地上位機(jī)內(nèi)部控制程序的惡意操作進(jìn)行強(qiáng)行中斷。對于惡意網(wǎng)絡(luò)通信報(bào)文進(jìn)行丟棄相關(guān)數(shù)據(jù)包方式的攔截,而對上位機(jī)內(nèi)部的控制程序的異常行為的可以采用底層函數(shù)過濾的方式,強(qiáng)行中斷來數(shù)據(jù)讀取、文件替換、代碼寫入、進(jìn)程插入、數(shù)據(jù)篡改等惡意操作,并使之不向操作命令發(fā)起程序反饋消息,或向操作命令發(fā)起程序反饋空消息。
[0130]報(bào)警處理包括由本地上位機(jī)彈出異常發(fā)生消息進(jìn)行報(bào)警;將安全威脅的日志信息發(fā)送給威脅監(jiān)控服務(wù)器之后,由威脅監(jiān)控服務(wù)器進(jìn)行報(bào)警。威脅檢測客戶端一方面以本地消息彈出的方式向用戶或操作人員報(bào)告異常發(fā)生消息,另一方面將本地上位機(jī)主機(jī)地址、異常發(fā)生主機(jī)名稱、異常信息與行為類型、異常關(guān)聯(lián)節(jié)點(diǎn)物理地址/邏輯地址、異常發(fā)生進(jìn)程、異常發(fā)生函數(shù)、異常發(fā)生時(shí)間、報(bào)警處理依據(jù)、處理結(jié)果發(fā)送給威脅監(jiān)控服務(wù)器,由威脅監(jiān)控服務(wù)器以消息、聲、光報(bào)警驅(qū)動(dòng)的形式予以報(bào)警。
[0131 ] 放行處理包括對通信數(shù)據(jù)報(bào)文不予干預(yù)。放行處理可以對威脅檢測客戶端威脅檢測模塊所檢測的網(wǎng)絡(luò)通信報(bào)文、控制程序操作,不予干預(yù)。
[0132]安全狀態(tài)啟動(dòng)處理包括工業(yè)控制系統(tǒng)的運(yùn)行狀態(tài)導(dǎo)向到安全運(yùn)行狀態(tài)運(yùn)行。依據(jù)威脅檢測客戶端建立的安全狀態(tài)啟用規(guī)則庫,啟動(dòng)關(guān)聯(lián)的聯(lián)動(dòng)安全操作控制程序,將工業(yè)控制系統(tǒng)的運(yùn)行狀態(tài)導(dǎo)向到安全狀態(tài),以避免災(zāi)難事故的發(fā)生。
[0133]這樣,本發(fā)明實(shí)施例通過部署在工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)中的威脅檢測客戶端,判斷上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文、是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為、是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作,發(fā)現(xiàn)安全威脅及時(shí)處理,實(shí)現(xiàn)了對工業(yè)控制系統(tǒng)內(nèi)部進(jìn)行有效威脅檢測與防護(hù),提高了系統(tǒng)安全性。另外,本發(fā)明實(shí)施例在安裝和部署時(shí)不會(huì)影響控制工業(yè)控制系統(tǒng)正常工作,可以部署在運(yùn)行中的工業(yè)控制系統(tǒng)中,可以在不改變工業(yè)控制系統(tǒng)網(wǎng)絡(luò)的前提下進(jìn)行全方位的防護(hù)。
[0134]相應(yīng)的,參見圖4所示,本發(fā)明實(shí)施例還提供一種工業(yè)控制系統(tǒng)威脅檢測防御系統(tǒng)實(shí)施例,該系統(tǒng)包括:
[0135]威脅檢測客戶端401以及威脅監(jiān)控服務(wù)器402。威脅檢測客戶端以及威脅監(jiān)控服務(wù)器部署在同一個(gè)網(wǎng)絡(luò)環(huán)境中,威脅檢測客戶端可以部署在工業(yè)控制系統(tǒng)監(jiān)控層的每臺上位機(jī)中,則威脅監(jiān)控服務(wù)器也可以部署在工業(yè)控制系統(tǒng)監(jiān)控層中威脅監(jiān)控服務(wù)器可以部署在獨(dú)立上位機(jī)(智能設(shè)備/工作站)中,也可以部署在與某一威脅檢測客戶端部署在同一上位機(jī)(智能設(shè)備/工作站)中。參見圖5所示,示出了工業(yè)控制系統(tǒng)威脅檢測防御系統(tǒng)部署結(jié)構(gòu)示意圖。
[0136]上位機(jī)可以包括工程師站、操作員服務(wù)器/客戶端站、OPC服務(wù)器/客戶端站、MES服務(wù)器/客戶端站、實(shí)時(shí)數(shù)據(jù)庫服務(wù)器/客戶端站等。
[0137]并且威脅檢測客戶端部署在不同角色的上位機(jī)之中都不會(huì)影響其正常使用,也不需要這些設(shè)備重啟或者停機(jī),也不影響控制器的正常使用,不需要控制系統(tǒng)控制器停止工作或者重啟。威脅監(jiān)控服務(wù)器作為一臺獨(dú)立的服務(wù)器加入到工業(yè)控制系統(tǒng)網(wǎng)絡(luò),不影響工業(yè)控制系統(tǒng)網(wǎng)絡(luò)的架構(gòu),不影響工業(yè)控制系統(tǒng)正常運(yùn)行。
[0138]其中,威脅檢測客戶端401可以是上述任一工業(yè)控制系統(tǒng)威脅檢測防御裝置實(shí)施例:例如威脅檢測客戶端可以包括威脅檢測模塊101、異常處理模塊102、日志生成模塊301、通信模塊302、自我防護(hù)模塊303,各模式功能可以參見上述說明中的內(nèi)容,此處不再贅述。
[0139]威脅監(jiān)控服務(wù)器402則可以包括:
[0140]通信模塊403,可以用于接收威脅檢測客戶端發(fā)送的心跳數(shù)據(jù)包,心跳數(shù)據(jù)包包括發(fā)送時(shí)間戳、發(fā)送序列號、發(fā)送心跳數(shù)據(jù)包的上位機(jī)的基本信息、該上位機(jī)的工作狀態(tài);接收威脅檢測客戶端發(fā)送的安全威脅的日志信息;向威脅檢測客戶端發(fā)送安全配置文件。
[0141]與威脅檢測客戶端中的通信模塊對應(yīng),威脅監(jiān)控服務(wù)器中的通信模塊主要負(fù)責(zé)與威脅檢測客戶端的數(shù)據(jù)交互,可以通過開放80端口接收網(wǎng)絡(luò)內(nèi)威脅檢測客戶端發(fā)送的數(shù)據(jù)。具體的,可以實(shí)時(shí)接收各威脅檢測客戶端發(fā)送的心跳數(shù)據(jù)包以及安全威脅的日志信息,當(dāng)收到數(shù)據(jù)后交由數(shù)據(jù)庫模塊進(jìn)行處理。也可以發(fā)送由配置信息組成的安全配置文件給網(wǎng)絡(luò)內(nèi)的各威脅檢測客戶端。
[0142]數(shù)據(jù)庫模塊404,根據(jù)心跳數(shù)據(jù)包以及安全威脅的日志信息,建立包括每臺上位機(jī)信息的數(shù)據(jù)庫,每臺上位機(jī)信息包括該上位機(jī)對應(yīng)的基本信息、工作狀態(tài)以及安全威脅的日志信息。
[0143]數(shù)據(jù)庫模塊負(fù)責(zé)存儲管轄內(nèi)各個(gè)威脅檢測客戶端上報(bào)的數(shù)據(jù),數(shù)據(jù)庫模塊通過通信模塊中獲得的數(shù)據(jù),把數(shù)據(jù)存入對應(yīng)的數(shù)據(jù)庫之中,數(shù)據(jù)庫模塊為每個(gè)上位機(jī)建立一個(gè)唯一的ID、用這個(gè)ID來關(guān)聯(lián)各個(gè)主機(jī)的信息,包括上位機(jī)的安全威脅的日志信息、上位機(jī)的運(yùn)行狀態(tài),上位機(jī)的基本信息,其中安全威脅的日志信息可以包括異常信息與行為類型、異常關(guān)聯(lián)節(jié)點(diǎn)物理地址/邏輯地址、異常發(fā)生上位機(jī)、異常發(fā)生進(jìn)程、異常發(fā)生函數(shù)、異常發(fā)生時(shí)間、處理依據(jù)、處理結(jié)果等。[0144]在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例中威脅監(jiān)控服務(wù)器還可以包括:
[0145]顯示模塊405,用于對每臺上位機(jī)信息通過瀏覽器/服務(wù)器B/S架構(gòu)進(jìn)行顯示。
[0146]顯示模塊可以顯示網(wǎng)絡(luò)內(nèi)各個(gè)部署威脅檢測客戶端的上位機(jī)的正常/異常運(yùn)行情況、安全威脅上報(bào)情況以及安全威脅行為阻斷情況等。當(dāng)收到心跳數(shù)據(jù)包之后,通信模塊會(huì)根據(jù)數(shù)據(jù)庫模塊中的上位機(jī)信息進(jìn)行比對,如果上位機(jī)狀態(tài)發(fā)生了改變,通信模塊會(huì)驅(qū)動(dòng)顯示模塊實(shí)時(shí)顯示上位機(jī)新的狀態(tài)。顯示模塊可以通過一種B/S的架構(gòu)進(jìn)行顯示,可以在同一網(wǎng)絡(luò)內(nèi)的任意地方訪問服務(wù)器進(jìn)行顯示,這樣有利于訪問的高效性和快捷性。
[0147]報(bào)表生成模塊406,用于根據(jù)每臺上位機(jī)信息按照用戶需求生成威脅檢測報(bào)表。
[0148]報(bào)表生成模塊可以按用戶所需要生成各種威脅檢測報(bào)表,從數(shù)據(jù)庫模塊中獲得相關(guān)的日志信息,并且把這些信息進(jìn)行轉(zhuǎn)換,生成一個(gè)文檔,讓用戶保存在本地,供日常安全檢測使用。
[0149]這樣,本發(fā)明實(shí)施例通過部署在工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)中的威脅檢測客戶端,判斷上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文、是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為、是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作,發(fā)現(xiàn)安全威脅及時(shí)處理,實(shí)現(xiàn)了對工業(yè)控制系統(tǒng)內(nèi)部進(jìn)行有效威脅檢測與防護(hù),提高了系統(tǒng)安全性。另外,本發(fā)明實(shí)施例在安裝和部署時(shí)不會(huì)影響控制工業(yè)控制系統(tǒng)正常工作,可以部署在運(yùn)行中的工業(yè)控制系統(tǒng)中,可以在不改變工業(yè)控制系統(tǒng)網(wǎng)絡(luò)的前提下進(jìn)行全方位的防護(hù)。
[0150]相應(yīng)的,參見圖6所示,本發(fā)明實(shí)施例還提供一種工業(yè)控制系統(tǒng)威脅檢測防御方法實(shí)施例,可以應(yīng)用在工業(yè)控制系統(tǒng)監(jiān)控層上位機(jī)中,該方法包括:
[0151]步驟601:截獲本地上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文。
[0152]步驟602:識別通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息,報(bào)文字段信息包括源物理地址、源邏輯地址、目的物理地址、目的邏輯地址、協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容。
[0153]步驟603:根據(jù)截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息判斷當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文。
[0154]步驟604:根據(jù)當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息以及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為。
[0155]步驟605:檢測是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作。
[0156]步驟606:如果存在安全威脅,根據(jù)安全配置文件對安全威脅進(jìn)行對應(yīng)的安全操作,安全威脅包括當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文、存在針對本地上位機(jī)的惡意行為、存在由本地上位機(jī)發(fā)起的惡意行為、存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作中的一種或多種,安全操作包括安全操作包括攔截處理、報(bào)警處理、放行處理或者安全狀態(tài)啟動(dòng)處理。
[0157]在本發(fā)明實(shí)施例中,對判斷當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文、判斷是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為、檢測是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作的步驟之間的順序并不進(jìn)行限定。
[0158]在本發(fā)明的一些實(shí)施例中,根據(jù)截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息判斷當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文的具體實(shí)現(xiàn)可以包括:[0159]判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與本地通信協(xié)議棧數(shù)據(jù)庫中經(jīng)認(rèn)證報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果否,則確定當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文;
[0160]判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與攻擊檢測規(guī)則庫中記錄的攻擊報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果是,則確定當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文;
[0161]判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容是否與本地通信協(xié)議棧數(shù)據(jù)庫中記錄的各字段內(nèi)容的許可值相符合,如果否,則確定當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文。
[0162]在本發(fā)明的一些實(shí)施例中,根據(jù)當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息以及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為的具體實(shí)現(xiàn)可以包括:
[0163]當(dāng)截獲本地上位機(jī)接收的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址以及源邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將當(dāng)前通信數(shù)據(jù)報(bào)文以及歷史通信數(shù)據(jù)報(bào)文作為第一待查行為數(shù)據(jù)流;
[0164]根據(jù)第一待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別第一待查行為數(shù)據(jù)流代表的第一操作行為;
[0165]判斷第一操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在針對本地上位機(jī)的惡意行為;
[0166]當(dāng)截獲本地上位機(jī)發(fā)送的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的目的物理地址以及目的邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將當(dāng)前通信數(shù)據(jù)報(bào)文以及歷史通信數(shù)據(jù)報(bào)文作為第二待查行為數(shù)據(jù)流;
[0167]根據(jù)第二待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別第二待查行為數(shù)據(jù)流代表的第二操作行為;
[0168]判斷第二操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在由本地上位機(jī)發(fā)起的惡意行為。
[0169]在本發(fā)明的一些實(shí)施例中,檢測是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作,包括:
[0170]采用在本地上位機(jī)的操作系統(tǒng)中植入劫持函數(shù)的方式來獲得針對本地上位機(jī)內(nèi)部控制程序的操作行為,判斷操作行為是否與程序惡意操作庫中所記錄的惡意操作相同,如果是,則確定存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作。
[0171 ] 在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例提供的工業(yè)控制系統(tǒng)威脅檢測防御方法實(shí)施例還可以包括:生成安全威脅的日志信息;當(dāng)當(dāng)前通信數(shù)據(jù)報(bào)文不是惡意報(bào)文,記錄通信數(shù)據(jù)報(bào)文信息,建立本地通信日志數(shù)據(jù)庫。
[0172]可以將檢測到的安全威脅以及對應(yīng)所采取的安全操作形成安全威脅的日志信息,可以包括異常信息與行為類型、異常關(guān)聯(lián)節(jié)點(diǎn)物理地址/邏輯地址、異常發(fā)生上位機(jī)、異常發(fā)生進(jìn)程、異常發(fā)生函數(shù)、異常發(fā)生時(shí)間、處理依據(jù)、處理結(jié)果等內(nèi)容;當(dāng)判斷當(dāng)前通信數(shù)據(jù)報(bào)文不是惡意報(bào)文,正常通信數(shù)據(jù)報(bào)文的源/目的物理地址、邏輯地址、端口號、通信序列號、接收報(bào)文時(shí)間戳、發(fā)送報(bào)文時(shí)間戳等報(bào)文信息生成通信數(shù)據(jù)日志,建立本地通信日志數(shù)據(jù)庫。
[0173]在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例提供的工業(yè)控制系統(tǒng)威脅檢測防御方法實(shí)施例還可以包括:
[0174]接收威脅監(jiān)控服務(wù)器下發(fā)的安全配置文件;向威脅監(jiān)控服務(wù)器發(fā)送心跳數(shù)據(jù)包,心跳數(shù)據(jù)包包括發(fā)送時(shí)間戳、發(fā)送序列號、本地上位機(jī)的基本信息、本地上位機(jī)的工作狀態(tài);將安全威脅的日志信息發(fā)送給威脅監(jiān)控服務(wù)器。
[0175]在本發(fā)明的一些實(shí)施例中,攔截處理可以包括對惡意報(bào)文進(jìn)行丟棄,對針對本地上位機(jī)內(nèi)部控制程序的惡意操作進(jìn)行強(qiáng)行中斷;報(bào)警處理可以包括由本地上位機(jī)彈出異常發(fā)生消息進(jìn)行報(bào)警;將安全威脅的日志信息發(fā)送給威脅監(jiān)控服務(wù)器之后,由威脅監(jiān)控服務(wù)器進(jìn)行報(bào)警;放行處理可以包括對通信數(shù)據(jù)報(bào)文不予干預(yù);安全狀態(tài)啟動(dòng)處理可以包括工業(yè)控制系統(tǒng)的運(yùn)行狀態(tài)導(dǎo)向到安全運(yùn)行狀態(tài)運(yùn)行。
[0176]這樣,本發(fā)明實(shí)施例通過部署在工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)中的威脅檢測客戶端,判斷上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文、是否存在針對本地上位機(jī)的惡意行為或者由本地上位機(jī)發(fā)起的惡意行為、是否存在針對本地上位機(jī)內(nèi)部控制程序的惡意操作,發(fā)現(xiàn)安全威脅及時(shí)處理,實(shí)現(xiàn)了對工業(yè)控制系統(tǒng)內(nèi)部進(jìn)行有效威脅檢測與防護(hù),提高了系統(tǒng)安全性。另外,本發(fā)明實(shí)施例在安裝和部署時(shí)不會(huì)影響控制工業(yè)控制系統(tǒng)正常工作,可以部署在運(yùn)行中的工業(yè)控制系統(tǒng)中,可以在不改變工業(yè)控制系統(tǒng)網(wǎng)絡(luò)的前提下進(jìn)行全方位的防護(hù)。 [0177]需要說明的是,本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對于實(shí)施例公開的系統(tǒng)或裝置而言,由于其與實(shí)施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
[0178]還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
[0179]結(jié)合本文中所公開的實(shí)施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實(shí)施。軟件模塊可以置于隨機(jī)存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動(dòng)磁盤、CD-ROM、或【技術(shù)領(lǐng)域】內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
[0180]對所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對這些實(shí)施例的多種修改對本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。
【權(quán)利要求】
1.一種工業(yè)控制系統(tǒng)威脅檢測防御裝置,其特征在于,所述裝置部署在工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)中,所述裝置包括: 威脅檢測模塊以及異常處理模塊; 所述威脅檢測模塊包括: 截獲單元,用于截獲本地上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文; 識別單元,用于識別所述通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息,所述報(bào)文字段信息包括源物理地址、源邏輯地址、目的物理地址、目的邏輯地址、協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容; 第一判斷單元,用于根據(jù)截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息判斷所述當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文; 第二判斷單元,用于根據(jù)所述當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息以及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對所述本地上位機(jī)的惡意行為或者由所述本地上位機(jī)發(fā)起的惡意行為; 第三判斷單元,用于檢測是否存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作; 所述異常處理模塊,用 于如果存在安全威脅,根據(jù)安全配置文件觸發(fā)對所述安全威脅進(jìn)行對應(yīng)的安全操作,所述安全威脅包括所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文、存在針對所述本地上位機(jī)的惡意行為、存在由所述本地上位機(jī)發(fā)起的惡意行為、存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作中的一種或多種,所述安全操作包括攔截處理、報(bào)警處理、放行處理或者安全狀態(tài)啟動(dòng)處理。
2.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述第一判斷單元包括: 第一判斷子單元,用于判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與本地通信協(xié)議棧數(shù)據(jù)庫中經(jīng)認(rèn)證報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果否,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文; 第二判斷子單元,用于判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與攻擊檢測規(guī)則庫中記錄的攻擊報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果是,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文; 第三判斷子單元,用于判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容是否與所述本地通信協(xié)議棧數(shù)據(jù)庫中記錄的各字段內(nèi)容的許可值相符合,如果否,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文。
3.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述第二判斷單元包括: 第一查找子單元,用于當(dāng)截獲本地上位機(jī)接收的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址以及源邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將所述當(dāng)前通信數(shù)據(jù)報(bào)文以及所述歷史通信數(shù)據(jù)報(bào)文作為第一待查行為數(shù)據(jù)流; 第一識別子單元,用于根據(jù)所述第一待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別所述第一待查行為數(shù)據(jù)流代表的第一操作行為; 第四判斷子單元,用于判斷所述第一操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在針對所述本地上位機(jī)的惡意行為; 第二查找子單元,用于當(dāng)截獲本地上位機(jī)發(fā)送的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的目的物理地址以及目的邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將所述當(dāng)前通信數(shù)據(jù)報(bào)文以及所述歷史通信數(shù)據(jù)報(bào)文作為第二待查行為數(shù)據(jù)流; 第二識別子單元,用于根據(jù)所述第二待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別所述第二待查行為數(shù)據(jù)流代表的第二操作行為; 第五判斷子單元,用于判斷所述第二操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在由所述本地上位機(jī)發(fā)起的惡意行為。
4.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述第三判斷單元具體用于: 采用在所述本地上位機(jī)的操作系統(tǒng)中植入劫持函數(shù)的方式來獲得針對所述本地上位機(jī)內(nèi)部控制程序的操作行為,判斷所述操作行為是否與程序惡意操作庫中所記錄的惡意操作相同,如果是,則確定存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作。
5.根據(jù)權(quán)利要求1所述的裝置,其特征在于,所述裝置還包括: 日志生成模塊,用于生成所述安全威脅的日志信息;當(dāng)所述當(dāng)前通信數(shù)據(jù)報(bào)文不是惡意報(bào)文,記錄所述通信數(shù)據(jù)報(bào)文信息,建立本地通信日志數(shù)據(jù)庫。
6.根據(jù)權(quán)利要求5所述的裝置,其特征在于,所述裝置還包括: 通信模塊,用于接收威脅監(jiān)控服務(wù)器下發(fā)的所述安全配置文件;向所述威脅監(jiān)控服務(wù)器發(fā)送心跳數(shù)據(jù)包,所述心跳數(shù)據(jù)包包括發(fā)送時(shí)間戳、發(fā)送序列號、所述本地上位機(jī)的基本信息、所述本地上位機(jī)的工作狀態(tài);將所述安全威脅的日志信息發(fā)送給所述威脅監(jiān)控服務(wù)器。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于, 所述攔截處理包括對所述惡意報(bào)文進(jìn)行丟棄,對所述針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作進(jìn)行強(qiáng)行中斷; 所述報(bào)警處理包括由所述本地上位機(jī)彈出異常發(fā)生消息進(jìn)行報(bào)警;將所述安全威脅的日志信息發(fā)送給所述威脅監(jiān)控服務(wù)器之后,由所述威脅監(jiān)控服務(wù)器進(jìn)行報(bào)警; 所述放行處理包括對所述通信數(shù)據(jù)報(bào)文不予干預(yù); 所述安全狀態(tài)啟動(dòng)處理包括工業(yè)控制系統(tǒng)的運(yùn)行狀態(tài)導(dǎo)向到安全運(yùn)行狀態(tài)運(yùn)行。
8.一種工業(yè)控制系統(tǒng)威脅檢測防御系統(tǒng),其特征在于,所述系統(tǒng)包括: 威脅檢測客戶端以及威脅監(jiān)控服務(wù)器;所述威脅檢測客戶端部署在工業(yè)控制系統(tǒng)監(jiān)控層的每臺上位機(jī)中,所述 威脅監(jiān)控服務(wù)器部署在所述工業(yè)控制系統(tǒng)監(jiān)控層中; 所述威脅檢測客戶端是權(quán)利要求1-7任一項(xiàng)所述的一種工業(yè)控制系統(tǒng)威脅檢測防御裝置; 所述威脅監(jiān)控服務(wù)器包括:通信模塊,用于接收所述威脅檢測客戶端發(fā)送的心跳數(shù)據(jù)包,所述心跳數(shù)據(jù)包包括發(fā)送時(shí)間戳、發(fā)送序列號、發(fā)送所述心跳數(shù)據(jù)包的上位機(jī)的基本信息、該上位機(jī)的工作狀態(tài);接收所述威脅檢測客戶端發(fā)送的安全威脅的日志信息;向所述威脅檢測客戶端發(fā)送安全配直文件; 數(shù)據(jù)庫模塊,根據(jù)所述心跳數(shù)據(jù)包以及所述安全威脅的日志信息,建立包括每臺上位機(jī)信息的數(shù)據(jù)庫,所述每臺上位機(jī)信息包括該上位機(jī)對應(yīng)的基本信息、工作狀態(tài)以及安全威脅的日志信息。
9.根據(jù)權(quán)利要求8所述的系統(tǒng),其特征在于,所述威脅監(jiān)控服務(wù)器還包括: 顯示模塊,用于對每臺上位機(jī)信息通過瀏覽器/服務(wù)器B/S架構(gòu)進(jìn)行顯示; 報(bào)表生成模塊,用于根據(jù)每臺上位機(jī)信息按照用戶需求生成威脅檢測報(bào)表。
10.一種工業(yè)控制系統(tǒng)威脅檢測防御方法,其特征在于,應(yīng)用在工業(yè)控制系統(tǒng)監(jiān)控層的上位機(jī)中,所述方法包括: 截獲本地上位機(jī)接收或發(fā)送的通信數(shù)據(jù)報(bào)文; 識別所述通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息,所述報(bào)文字段信息包括源物理地址、源邏輯地址、目的物理地址、目的邏輯地址、協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容; 根據(jù)截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息判斷所述當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文; 根據(jù)所述當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息以及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對所述本地上位機(jī)的惡意行為或者由所述本地上位機(jī)發(fā)起的惡意行為; 檢測是否存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作; 如果存在安全威脅,根據(jù)安全配置文件對所述安全威脅進(jìn)行對應(yīng)的安全操作,所述安全威脅包括所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文、存在針對所述本地上位機(jī)的惡意行為、存在由所述本地上位機(jī)發(fā)起的惡意行為、存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作中的一種或多種,所述安全操作包括所述安全操作包括攔截處理、報(bào)警處理、放行處理或者安全狀態(tài)啟動(dòng)處理。
11.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述根據(jù)截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息判斷所述當(dāng)前通信數(shù)據(jù)報(bào)文是否為惡意報(bào)文,包括: 判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與本地通信協(xié)議棧數(shù)據(jù)庫中經(jīng)認(rèn)證報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果否,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文; 判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址與攻擊檢測規(guī)則庫中記錄的攻擊報(bào)文的源物理地址、源邏輯地址、目的物理地址以及目的邏輯地址是否一致,如果是,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文; 判斷截獲的當(dāng)前通信數(shù)據(jù)報(bào)文中的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容是否與所述本地通信協(xié)議棧數(shù)據(jù)庫中記錄的各字段內(nèi)容的許可值相符合,如果否,則確定所述當(dāng)前通信數(shù)據(jù)報(bào)文為惡意報(bào)文。
12.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述根據(jù)所述當(dāng)前通信數(shù)據(jù)報(bào)文中的報(bào)文字段信息以及本地通信日志數(shù)據(jù)庫中記錄的通信報(bào)文中的報(bào)文字段信息判斷是否存在針對所述本地上位機(jī)的惡意行為或者由所述本地上位機(jī)發(fā)起的惡意行為,包括: 當(dāng)截獲本地上位機(jī)接收的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的源物理地址以及源邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將所述當(dāng)前通信數(shù)據(jù)報(bào)文以及所述歷史通信數(shù)據(jù)報(bào)文作為第一待查行為數(shù)據(jù)流; 根據(jù)所述第一待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別所述第一待查行為數(shù)據(jù)流代表的第一操作行為; 判斷所述第一操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在針對所述本地上位機(jī)的惡意行為; 當(dāng)截獲本地上位機(jī)發(fā)送的當(dāng)前通信數(shù)據(jù)報(bào)文時(shí),在本地通信日志數(shù)據(jù)庫中查找獲得與當(dāng)前通信數(shù)據(jù)報(bào)文中的目的物理地址以及目的邏輯地址相同的連續(xù)多個(gè)歷史通信數(shù)據(jù)報(bào)文,將所述當(dāng)前通信數(shù)據(jù)報(bào)文以及所述歷史通信數(shù)據(jù)報(bào)文作為第二待查行為數(shù)據(jù)流; 根據(jù)所述第二待查行為數(shù)據(jù)流中各個(gè)通信數(shù)據(jù)報(bào)文的協(xié)議類型字段內(nèi)容、優(yōu)先級字段內(nèi)容、命令字段內(nèi)容、測量數(shù)據(jù)字段內(nèi)容以及控制數(shù)據(jù)字段內(nèi)容與本地通信協(xié)議棧數(shù)據(jù)庫中定義的字段含義進(jìn)行匹配,識別所述第二待查行為數(shù)據(jù)流代表的第二操作行為; 判斷所述第二操作行為是否與攻擊檢測規(guī)則庫中記錄的惡意行為相同,如果是,則確定存在由所述本地上位機(jī)發(fā)起的惡意行為。
13.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述檢測是否存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作,包括: 采用在所述本地上位機(jī)的操作系統(tǒng)中植入劫持函數(shù)的方式來獲得針對所述本地上位機(jī)內(nèi)部控制程序的操作行為,判斷所述操作行為是否與程序惡意操作庫中所記錄的惡意操作相同,如果是,則確定存在針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作。
14.根據(jù)權(quán)利要求10所述的方法,其特征在于,所述方法還包括: 生成所述安全威脅的日志信息;當(dāng)所述當(dāng)前通信數(shù)據(jù)報(bào)文不是惡意報(bào)文,記錄所述通信數(shù)據(jù)報(bào)文信息,建立本地通信日志數(shù)據(jù)庫。
15.根據(jù)權(quán)利要求14所述的方法,其特征在于,所述方法還包括: 接收威脅監(jiān)控服務(wù)器下發(fā)的所述安全配置文件;向所述威脅監(jiān)控服務(wù)器發(fā)送心跳數(shù)據(jù)包,所述心跳數(shù)據(jù)包包括發(fā)送時(shí)間戳、發(fā)送序列號、所述本地上位機(jī)的基本信息、所述本地上位機(jī)的工作狀態(tài);將所述安全威脅的日志信息發(fā)送給所述威脅監(jiān)控服務(wù)器。
16.根據(jù)權(quán)利要求15所述的方法,其特征在于, 所述攔截處理包括對所述惡意報(bào)文進(jìn)行丟棄,對所述針對所述本地上位機(jī)內(nèi)部控制程序的惡意操作進(jìn)行強(qiáng)行中斷; 所述報(bào)警處理包括由所述本地上位機(jī)彈出異常發(fā)生消息進(jìn)行報(bào)警;將所述安全威脅的日志信息發(fā)送給所述威脅監(jiān)控服務(wù)器之后,由所述威脅監(jiān)控服務(wù)器進(jìn)行報(bào)警; 所述放行處理包括對所述通信數(shù)據(jù)報(bào)文不予干預(yù); 所述安全狀態(tài)啟動(dòng)處理包括工業(yè)控制系統(tǒng)的運(yùn)行狀態(tài)導(dǎo)向到安全運(yùn)行狀態(tài)運(yùn)行。
【文檔編號】H04L29/06GK103944915SQ201410179214
【公開日】2014年7月23日 申請日期:2014年4月29日 優(yōu)先權(quán)日:2014年4月29日
【發(fā)明者】馮冬芹, 薛金良, 施一明 申請人:浙江大學(xué)