本發(fā)明涉及通信安全技術(shù)領(lǐng)域,特別是涉及一種數(shù)控NC代碼安全過濾系統(tǒng)。
背景技術(shù):
數(shù)控機(jī)床是一種裝有程序控制系統(tǒng)的自動(dòng)化機(jī)床。目前,在制造領(lǐng)域,特別是航空航天領(lǐng)域,數(shù)控機(jī)床已經(jīng)成為不可替代的設(shè)備。NC代碼是數(shù)控系統(tǒng)用來控制機(jī)床運(yùn)動(dòng)的程序,由各種功能字按照規(guī)定的格式組成。在一般的數(shù)控生產(chǎn)過程中,首先工藝部門制定加工方案,生成NC代碼,然后通過DNC系統(tǒng)發(fā)送到車間的操作人員,操作人員將接收到的NC代碼加載到數(shù)控設(shè)備開始加工零件。
傳統(tǒng)的數(shù)控設(shè)備都是通過DNC系統(tǒng)進(jìn)行數(shù)控代碼的傳輸,在代碼傳輸過程中,不可避免地會(huì)出現(xiàn)很多意外情況,比如:代碼傳輸錯(cuò)誤,代碼被惡意修改,附帶敏感信息,感染病毒等。對于這些情況,目前的制造企業(yè),尤其是軍工制造業(yè)并未充分考慮相應(yīng)的安全防護(hù)措施,如果病毒和這些錯(cuò)誤的代碼被直接加載到數(shù)控機(jī)床上開始運(yùn)行,將帶來巨大的安全隱患,輕則造成零件報(bào)廢、機(jī)床損壞,重則造成人員傷亡。
另一方面,由于軍工行業(yè)的涉密性質(zhì),其存在大量影響機(jī)床運(yùn)行的關(guān)鍵參數(shù),數(shù)控加工所需的產(chǎn)品設(shè)計(jì)文件、工藝設(shè)計(jì)文件、程序文件、關(guān)鍵數(shù)據(jù)等屬于高度敏感的信息,通過對這些數(shù)據(jù)和信息的收集、整理、分析,可以得到更有價(jià)值的情報(bào)資料,這些數(shù)據(jù)可能分布于設(shè)計(jì)系統(tǒng)、產(chǎn)品設(shè)計(jì)終端、工藝設(shè)計(jì)終端、編程設(shè)計(jì)終端、數(shù)控系統(tǒng)、DNC服務(wù)器等多個(gè)區(qū)域和載體上,系統(tǒng)中可能存在各種漏洞,植入惡意邏輯和后門,而且在生產(chǎn)過程中不易發(fā)現(xiàn),從而造成敏感數(shù)據(jù)信息泄露。如果系統(tǒng)存在漏洞且管理不善,很容易被惡意竊取。軍工數(shù)控機(jī)床所對應(yīng)的往往是一些重要的生產(chǎn)設(shè)施,這些生產(chǎn)設(shè)施的布局、產(chǎn)量、工作狀況往往與國家的重大戰(zhàn)略布局有關(guān)。如果NC代碼中附帶了敏感信息,將帶來嚴(yán)重的泄密風(fēng)險(xiǎn)。
因此,有必要建立一種數(shù)控機(jī)床的安全系統(tǒng)。
技術(shù)實(shí)現(xiàn)要素:
為解決上述問題,本發(fā)明提供了一種數(shù)控NC代碼安全過濾系統(tǒng),包括數(shù)控?cái)?shù)據(jù)過濾規(guī)則庫、下行數(shù)據(jù)安全防護(hù)模塊。
所述數(shù)控?cái)?shù)據(jù)過濾規(guī)則庫用于存儲(chǔ)下行數(shù)據(jù)安全防護(hù)模塊中所需的基礎(chǔ)數(shù)據(jù)、規(guī)則定義數(shù)據(jù)、檢測數(shù)據(jù),以及相關(guān)規(guī)則的關(guān)聯(lián)分析數(shù)據(jù),以供下行數(shù)據(jù)安全防護(hù)模塊調(diào)用其內(nèi)的數(shù)據(jù),依據(jù)一定的安全檢測規(guī)則對輸入的數(shù)據(jù)進(jìn)行檢測過濾。
所述下行數(shù)據(jù)安全防護(hù)模塊包括文件格式檢測組件,用于通過對傳輸?shù)腘C代碼的編碼方式和文件擴(kuò)展名進(jìn)行檢查,將不符合規(guī)定編碼方式的文件丟棄,將不符合規(guī)定的文件格式的文件的數(shù)據(jù)通信截?cái)唷?/p>
進(jìn)一步的,所述下行數(shù)據(jù)安全防護(hù)模塊還包括預(yù)編譯組件,用于對傳輸?shù)臄?shù)控NC代碼首先進(jìn)行預(yù)編譯處理,去除代碼注釋行和去除多余空格、換行符,以防止通過NC代碼文件進(jìn)行涉密數(shù)據(jù)的傳遞,以及為下一步的詞法和/或語法檢測做準(zhǔn)備。
進(jìn)一步的,述下行數(shù)據(jù)安全防護(hù)模塊還包括所述詞法檢測組件,用于讀入數(shù)控加工程序,對構(gòu)成數(shù)控加工程序的字符流進(jìn)行掃描和分解,從而識(shí)別一個(gè)個(gè)單詞,并和數(shù)控?cái)?shù)據(jù)過濾規(guī)則庫中的關(guān)鍵詞進(jìn)行比對,看是否存在非法單詞。
進(jìn)一步的,詞法檢測組件對詞法規(guī)則和詞匯類型進(jìn)行檢測。
進(jìn)一步的,所述下行數(shù)據(jù)安全防護(hù)模塊還包括工藝文件審查組件,用于對下行的工藝文件通過文件格式、數(shù)據(jù)內(nèi)容的過濾檢查判斷工藝文件是否被非法篡改、是否為非法數(shù)據(jù)。
進(jìn)一步的,述下行數(shù)據(jù)安全防護(hù)模塊還包括語法檢查組件,用于在詞法分析組件基礎(chǔ)上,將數(shù)控加工程序中功能關(guān)鍵字分解成各類語法短語,并通過正則表達(dá)式匹配字符,判斷程序段是否符合數(shù)控加工程序的編程格式,并在發(fā)現(xiàn)不符合語法規(guī)則的地方顯示錯(cuò)誤信息,丟棄該程序。
進(jìn)一步的,所述系統(tǒng)還包括上行數(shù)據(jù)安全防護(hù)模塊,所述上行數(shù)據(jù)安全防護(hù)模塊包括惡意代碼檢測組件,惡意代碼檢測組件設(shè)置有有防病毒、木馬、惡意代碼查殺引擎。
所述數(shù)控?cái)?shù)據(jù)過濾規(guī)則庫存儲(chǔ)有上行數(shù)據(jù)安全防護(hù)模塊中所需的基礎(chǔ)數(shù)據(jù)、規(guī)則定義數(shù)據(jù)、檢測數(shù)據(jù),以及相關(guān)規(guī)則的關(guān)聯(lián)分析數(shù)據(jù),以供上行數(shù)據(jù)安全防護(hù)模塊調(diào)用其內(nèi)的數(shù)據(jù),依據(jù)一定的安全檢測規(guī)則對輸入的數(shù)據(jù)進(jìn)行檢測過濾。
進(jìn)一步的,上行數(shù)據(jù)安全防護(hù)模塊還包括白名單過濾組件,其內(nèi)存儲(chǔ)有生產(chǎn)過程中向上傳輸?shù)臄?shù)據(jù)的協(xié)議、格式、名稱的白名單,用于對上傳數(shù)據(jù)進(jìn)行白名單過濾,對不符合白名單要求的進(jìn)行阻斷報(bào)警。
進(jìn)一步的,上行數(shù)據(jù)安全防護(hù)模塊還保羅完整性校驗(yàn)組件,用于對上傳的NC代碼文件進(jìn)行完整性檢測。
進(jìn)一步的,上行數(shù)據(jù)安全防護(hù)模塊存儲(chǔ)有數(shù)據(jù)閥值檢測組件,用于檢測得到的運(yùn)行中機(jī)床的實(shí)時(shí)狀態(tài)數(shù)據(jù)是否在預(yù)定范圍內(nèi)進(jìn)行核實(shí)。
本發(fā)明的有益效果為:
本發(fā)明用于對通過隔離網(wǎng)關(guān)的加工生產(chǎn)相關(guān)數(shù)據(jù)進(jìn)行檢測防護(hù),深度剖析上行和下行的生產(chǎn)加工數(shù)控?cái)?shù)據(jù),過濾有風(fēng)險(xiǎn)數(shù)據(jù),增強(qiáng)隔離網(wǎng)關(guān)的安全防護(hù)功能。在工廠的DNC系統(tǒng)中,通過數(shù)據(jù)通信安全系統(tǒng)進(jìn)行通信可控性認(rèn)證、異常事件報(bào)警以及通信單向性認(rèn)證,再通過系統(tǒng)安全防護(hù)系統(tǒng)進(jìn)行通信可控性認(rèn)證、異常事件報(bào)警以及安全審計(jì)。通過安全審核系統(tǒng),在DNC網(wǎng)絡(luò)中建立一條安全的單項(xiàng)數(shù)據(jù)通信通道,實(shí)現(xiàn)數(shù)據(jù)源認(rèn)證、數(shù)據(jù)完整性和通信單向性等信息安全機(jī)制。在審核系統(tǒng)內(nèi)部,增加了通信可控性、異常事件報(bào)警、安全審計(jì)和安全管理等系統(tǒng)安全機(jī)制。這些安全機(jī)制結(jié)合起來,將數(shù)控機(jī)床NC代碼的安全風(fēng)險(xiǎn)予以降低,解決代碼被篡改、敏感信息泄露等技術(shù)問題。
附圖說明
圖1為本發(fā)明系統(tǒng)原理圖。
具體實(shí)施方式
本發(fā)明所述系統(tǒng)可運(yùn)行于配置管理網(wǎng)與數(shù)控加工網(wǎng)之間的工業(yè)防火墻內(nèi),設(shè)計(jì)構(gòu)思為:配置管理網(wǎng)中的工藝終端與DNC數(shù)控系統(tǒng)之間傳輸數(shù)控程序NC代碼是FTP通信模式,因此過濾數(shù)據(jù)以FTP應(yīng)用代理模塊為基礎(chǔ)模塊,F(xiàn)TP應(yīng)用代理模塊將數(shù)控程序NC代碼接收到工業(yè)防火墻,再對數(shù)據(jù)做分析、過濾,控制,符合規(guī)則的才讓其通過,不符合規(guī)則的做阻止并記錄日志。
下面對本系統(tǒng)進(jìn)行詳細(xì)說明。
如圖1所示,本系統(tǒng)應(yīng)該至少包括數(shù)控?cái)?shù)據(jù)過濾規(guī)則庫、下行數(shù)據(jù)安全防護(hù)模塊,優(yōu)選還包括上行數(shù)據(jù)安全防護(hù)模塊。下面分別予以介紹。
一:數(shù)控?cái)?shù)據(jù)過濾規(guī)則庫
所述數(shù)控?cái)?shù)據(jù)過濾規(guī)則庫用于存儲(chǔ)下行數(shù)據(jù)安全防護(hù)模塊、上行數(shù)據(jù)安全防護(hù)模塊中所需的基礎(chǔ)數(shù)據(jù)、規(guī)則定義數(shù)據(jù)、檢測數(shù)據(jù),以及相關(guān)規(guī)則的關(guān)聯(lián)分析數(shù)據(jù),以供下行數(shù)據(jù)安全防護(hù)模塊、上行數(shù)據(jù)安全防護(hù)模塊調(diào)用其內(nèi)的數(shù)據(jù),依據(jù)一定的安全檢測規(guī)則對輸入的數(shù)據(jù)進(jìn)行檢測過濾。更具體而言,其包括用于存儲(chǔ)下行系統(tǒng)和上行系統(tǒng)中用到格式數(shù)據(jù)、類型列表、關(guān)鍵詞列表、語法規(guī)則列表、白名單數(shù)據(jù)、閥值表等。本發(fā)明在對加工數(shù)據(jù)過濾檢查時(shí),實(shí)時(shí)調(diào)用過濾規(guī)則庫中相應(yīng)的規(guī)則進(jìn)行逐一匹配,只有符合匹配規(guī)則的數(shù)據(jù)才能進(jìn)行傳輸,丟棄不符合匹配規(guī)則的數(shù)據(jù)并進(jìn)行報(bào)錯(cuò)處理以及生成過濾日志,從而實(shí)現(xiàn)數(shù)據(jù)過濾檢查和數(shù)據(jù)日志審計(jì)功能。
二:下行數(shù)據(jù)安全防護(hù)模塊
下行數(shù)據(jù)安全防護(hù)模塊是本系統(tǒng)中最核心部分,主要解決來自涉密網(wǎng)絡(luò)的NC代碼和工藝文件傳輸?shù)綌?shù)控加工網(wǎng)絡(luò)的安全防護(hù)等問題。該模塊至少設(shè)計(jì)文件格式檢測組件,優(yōu)選還設(shè)置有預(yù)編譯組件和/或詞法檢查組件和/或語法檢查組件和/或工藝文件審查檢查組件。各個(gè)組件的主要功能如下:
1.文件格式檢測組件
文件格式檢測組件,通過對傳輸?shù)腘C代碼的編碼方式和文件擴(kuò)展名進(jìn)行深度檢查,將不符合規(guī)定編碼方式的文件丟棄,將不符合規(guī)定的文件格式的文件的數(shù)據(jù)通信截?cái)?。其主要進(jìn)行兩方面的工作:
(1)NC代碼編碼格式檢查:NC代碼編碼方式通常為ASCII編碼,對傳輸?shù)腘C代碼的編碼格式進(jìn)行審查,將不符合該編碼方式的文件視為非法文件并將該文件丟棄。
(2)數(shù)控NC代碼的擴(kuò)展名檢查:數(shù)控NC代碼的擴(kuò)展名均有其固定格式,例如西門子系統(tǒng)NC代碼擴(kuò)展名為.mpf格式,F(xiàn)anuc系統(tǒng)NC代碼擴(kuò)展名為.nc格式等。本組件會(huì)對傳輸?shù)臄?shù)據(jù)文件類型與數(shù)控系統(tǒng)里合法的數(shù)據(jù)類型進(jìn)行比較,通過文件的擴(kuò)展名對文件進(jìn)行深度,檢查傳輸文件是否符合傳輸要求,只有符合文件格式的文件才能進(jìn)行傳輸,對于不可識(shí)別的非法文件,進(jìn)行數(shù)據(jù)通信截?cái)啵浫肴罩静⒈4?。主流?shù)控系統(tǒng)的具體擴(kuò)展名清單如下表:
2.預(yù)編譯組件
預(yù)編譯組件支持Siemens、Fanuc、Haidehan、Haas等主流數(shù)控系統(tǒng)。對傳輸?shù)臄?shù)控NC代碼首先進(jìn)行預(yù)編譯處理,以防止通過NC代碼文件進(jìn)行涉密數(shù)據(jù)的傳遞,以及為下一步的詞法語法檢測做準(zhǔn)備。預(yù)編譯組件功能包括去除代碼注釋行和去除多余空格、換行符等功能。
(1)去除代碼注釋:NC代碼中除了包含表達(dá)加工信息的代碼,通常還包括部分代碼注釋內(nèi)容。在部分注釋內(nèi)容中不乏有敏感詞匯以及涉密信息等,因此通過預(yù)編譯功能,將NC代碼文件中注釋信息過濾后,然后再進(jìn)行傳輸。
(2)去除多余空格、換行符:在預(yù)編譯后,為了有效從數(shù)控加工程序中分離出“單詞”,需對加工程序文本輸入字符串進(jìn)行編輯,消除加工NC代碼中的多余空格、換行符以及其他一些對語法分析和數(shù)據(jù)處理無用的符號(hào)。
3.詞法檢查組件
詞法檢查組件的功能是從左向右逐個(gè)字符讀入數(shù)控加工程序,對構(gòu)成數(shù)控加工程序的字符流進(jìn)行掃描和分解,從而識(shí)別一個(gè)個(gè)單詞,并和規(guī)則庫中的關(guān)鍵詞進(jìn)行比對,看是否存在非法單詞。該組件包括詞法規(guī)則檢查和詞匯類型檢查兩部分。
詞法規(guī)則檢查:該模塊將NC代碼與詞法規(guī)則表進(jìn)行匹配,檢測到非法詞法進(jìn)行報(bào)錯(cuò)處理。例如常見的詞法錯(cuò)誤有,程序以數(shù)字或非法字符開頭、負(fù)號(hào)前面出現(xiàn)非坐標(biāo)功能字等。
詞匯類型檢查:在詞法分析中要識(shí)別的詞匯有:數(shù)字詞匯、位置詞匯、G代碼詞匯、M代碼詞匯、變量與函數(shù)詞匯等。詞法分析程序?qū)C程序看成輸入流,每次讀取一個(gè)字符進(jìn)行組詞并向正則規(guī)則集合尋求規(guī)則匹配。
4.語法檢查組件
語法檢查組件是在詞法檢查基礎(chǔ)上,將數(shù)控加工程序中功能關(guān)鍵字分解成各類語法短語,并通過正則表達(dá)式匹配字符,判斷一個(gè)程序段中“字”的組合是否符合數(shù)控加工程序的編程格式。例如常見的語法錯(cuò)誤:T代碼后無換刀M06指令;一些系統(tǒng)結(jié)束時(shí)應(yīng)有M30指令,缺少此指令,就會(huì)出錯(cuò);某些系統(tǒng)程序開始需要有無條件倒帶指令“%”,無此指令則出錯(cuò);某數(shù)控系統(tǒng)要求T指令范圍為1-99,超出該范圍,即出錯(cuò)。
通過語法檢查組件,可以確定整個(gè)程序語法是否完整、是否是正確的指令代碼。若發(fā)現(xiàn)不合語法規(guī)則的地方,將顯示錯(cuò)誤信息,并將該程序丟棄。
5.工藝文件審查組件
工藝文件通常包括工件三維模型、工件二維圖紙等內(nèi)容。為提高生產(chǎn)加工效率,通常工藝文件也通過網(wǎng)絡(luò)從信息管理網(wǎng)傳到數(shù)控網(wǎng)絡(luò)中。工藝文件都有其固定格式,通過文件格式,數(shù)據(jù)內(nèi)容的過濾檢查,可判斷工藝文件是否被非法篡改、是否為非法數(shù)據(jù)。
三:上行數(shù)據(jù)安全防護(hù)模塊
上行數(shù)據(jù)安全防護(hù)模塊處理從數(shù)控加工網(wǎng)絡(luò)向涉密網(wǎng)絡(luò)中傳輸狀態(tài)信息以及文件信息的安全性問題。該系統(tǒng)中至少設(shè)計(jì)有惡意代碼檢測組件,還優(yōu)選設(shè)置有完整性校驗(yàn)組件和/或白名單過濾組件和/或惡意代碼檢測組件和/或數(shù)據(jù)閥值檢測組件。各個(gè)組件的主要功能如下:
1.惡意代碼檢測組件
惡意代碼檢測組件設(shè)有防病毒、木馬、惡意代碼查殺引擎,防止來自外部對機(jī)床回傳數(shù)據(jù)進(jìn)行攻擊和破壞
2.完整性校驗(yàn)組件
用于對上傳的NC代碼文件進(jìn)行完整性檢測。
在加工生產(chǎn)過程中,機(jī)床操作人員會(huì)對下發(fā)的NC代碼文件進(jìn)行修正后進(jìn)行再上傳的過程,有助于NC代碼的歸檔維護(hù)。完整性校驗(yàn)就是對回傳的NC代碼文件進(jìn)行完整性檢測。
3.白名單過濾組件
其內(nèi)存儲(chǔ)有生產(chǎn)過程中向上傳輸?shù)臄?shù)據(jù)的協(xié)議、格式、名稱的白名單,用于對上傳數(shù)據(jù)進(jìn)行白名單過濾,對不符合白名單要求的進(jìn)行阻斷報(bào)警。
實(shí)際加工生產(chǎn)過程中向上傳輸?shù)臄?shù)據(jù)的協(xié)議、格式、名稱等都是有固定定義的,因此建立白名單機(jī)制,對上傳數(shù)據(jù)進(jìn)行白名單過濾,對不符合白名單要求的進(jìn)行阻斷報(bào)警。
4.數(shù)據(jù)閥值檢測組件
用于檢測得到的運(yùn)行中機(jī)床的實(shí)時(shí)狀態(tài)數(shù)據(jù)是否在預(yù)定范圍內(nèi)進(jìn)行核實(shí)。
機(jī)床狀態(tài)數(shù)據(jù)監(jiān)測負(fù)責(zé)對運(yùn)行中機(jī)床的實(shí)時(shí)狀態(tài)數(shù)據(jù)(主軸的轉(zhuǎn)速、電流、電壓,冷卻液的閉合等數(shù)據(jù))進(jìn)行監(jiān)測并上傳至MDC服務(wù)器,供監(jiān)控人員進(jìn)行審計(jì)操作。該類數(shù)據(jù)的值域是有一定范圍的,如果在傳輸過程中被篡改,不符合要求,應(yīng)進(jìn)行檢測報(bào)警。