基于網(wǎng)絡(luò)回溯分析技術(shù)的SCADA系統(tǒng)故障診斷
案例場(chǎng)景
某排水集團(tuán)在線業(yè)務(wù)區(qū)的SCADA系統(tǒng)需要從DMZ區(qū)的I/O Server上采集數(shù)據(jù),SCADA系統(tǒng)使用某些IP能夠正常從I/O Server采集數(shù)據(jù),但是另一部分IP則不能正常的從I/O Server上采集數(shù)據(jù),提示異常并且斷開連接。
例如:10.2.103.8為SCADA系統(tǒng)的IP地址,能夠正常的從10.2.0.51和10.2.0.52的I/O Server上采集數(shù)據(jù),但是將SCADA系統(tǒng)的IP改為:10.2.103.10,則不能正常從10.2.0.51和10.2.0.52的I/O Server上采集數(shù)據(jù)。
案例分析
網(wǎng)絡(luò)拓?fù)鋱D(簡(jiǎn)化)
下圖為簡(jiǎn)化拓?fù)鋱D,我們展示SCADA系統(tǒng)和I/O Server之間的通訊鏈路,分別在靠近SCADA系統(tǒng)和I/O Server的接入交換機(jī)上采用端口鏡像的方式旁路部署科來(lái)網(wǎng)絡(luò)回溯分析系統(tǒng),采集SCADA系統(tǒng)和I/O Server之間的通訊數(shù)據(jù)包。
圖1網(wǎng)絡(luò)拓?fù)鋱D
故障排查
我們從DMZ區(qū)的交互機(jī)和在線業(yè)務(wù)區(qū)交互機(jī)上同時(shí)采集通訊數(shù)據(jù),進(jìn)行對(duì)比分析,來(lái)看看具體是什么原因造成了業(yè)務(wù)系統(tǒng)的故障。
DMZ區(qū)交換機(jī)數(shù)據(jù)
在DMZ區(qū)交換機(jī)數(shù)據(jù)中可以看到TCP會(huì)話中10.2.103.10向10.2.0.52發(fā)送了大量的RST(復(fù)位)數(shù)據(jù)包,如下圖2所示。這些連接被這些復(fù)位數(shù)據(jù)包釋放掉了,但是為什么會(huì)存在這么多的復(fù)位數(shù)據(jù)包?又是誰(shuí)發(fā)送了這些數(shù)據(jù)包?
圖2 DMZ區(qū)捕獲到的TCP會(huì)話
通過(guò)查看科來(lái)網(wǎng)絡(luò)回溯分析系統(tǒng)的交易時(shí)序圖,可以發(fā)現(xiàn)復(fù)位數(shù)據(jù)包的TTL(生存時(shí)間)值是127.而正常時(shí)傳輸?shù)臄?shù)據(jù),可以看到TTL(生存時(shí)間)值為61,和異常時(shí)明顯不同,說(shuō)明復(fù)位數(shù)據(jù)包并不是從10.2.103.10發(fā)出來(lái)的,而是有個(gè)中間設(shè)備發(fā)送了復(fù)位數(shù)據(jù)包中斷了正常的應(yīng)用會(huì)話。
正常會(huì)話的TTLTTL值為61,而異常復(fù)位數(shù)據(jù)包的TTLTTL值為127.結(jié)合該集團(tuán)的拓?fù)鋱D來(lái)看,正常會(huì)話發(fā)送初始TTLTTL值為64,經(jīng)過(guò)2臺(tái)防火墻和1臺(tái)核心交換機(jī)后抓取到的TTLTTL值為61,而異常復(fù)位數(shù)據(jù)包初始TTLTTL值為128,只經(jīng)過(guò)了DMZ區(qū)連接的防火墻,TTLTTL值減為127,說(shuō)明復(fù)位數(shù)據(jù)包極有可能是某上網(wǎng)行為管理設(shè)備發(fā)送的。
在線業(yè)務(wù)區(qū)交換機(jī)數(shù)據(jù)
我們?cè)谠诰€業(yè)務(wù)區(qū)交換機(jī)上抓取數(shù)據(jù),找到同一個(gè)TCP會(huì)話。如下圖3所示:
圖3在線業(yè)務(wù)區(qū)捕獲到的TCP會(huì)話
可以看到該會(huì)話中同樣存在了大量的復(fù)位數(shù)據(jù)包,但與DMZ區(qū)不同的是,復(fù)位數(shù)據(jù)包是由10.2.0.52發(fā)送的。
同樣查看科來(lái)網(wǎng)絡(luò)回溯分析系統(tǒng)的交易時(shí)序圖,可以看到復(fù)位數(shù)據(jù)包的TTL(生存時(shí)間)值是126.而正常時(shí)傳輸?shù)臄?shù)據(jù),可以看到TTL(生存時(shí)間)值為125,和異常時(shí)明顯不同,同樣說(shuō)明了復(fù)位數(shù)據(jù)包并不是從10.2.0.52發(fā)出來(lái)的,而是有個(gè)中間設(shè)備發(fā)送了復(fù)位數(shù)據(jù)包中斷了正常的應(yīng)用會(huì)話。
正常會(huì)話的TTL值為125,而異常復(fù)位數(shù)據(jù)包的TTL值為126.結(jié)合該集團(tuán)的拓?fù)鋱D來(lái)看,正常會(huì)話發(fā)送初始TTL值為128,經(jīng)過(guò)2臺(tái)防火墻和1臺(tái)核心交換機(jī)后抓取到的TTL值為125,而異常復(fù)位數(shù)據(jù)包初始TTL值為128,抓取到的TTL值卻為126,說(shuō)明數(shù)據(jù)包只經(jīng)過(guò)了核心交換機(jī)和在線業(yè)務(wù)區(qū)區(qū)連接的防火墻,說(shuō)明復(fù)位數(shù)據(jù)包極有可能是某上網(wǎng)行為管理設(shè)備發(fā)送的。
結(jié)論及處理結(jié)果
結(jié)合DMZ區(qū)與在線業(yè)務(wù)區(qū)捕獲的數(shù)據(jù)包分析來(lái)看,在正常的通訊過(guò)程中DMZ區(qū)與在線業(yè)務(wù)區(qū)之間的設(shè)備發(fā)送了RST(復(fù)位)數(shù)據(jù)包,釋放了正常的會(huì)話,造成了SCADA系統(tǒng)不能正常從DMZ區(qū)的I/O Server上提取數(shù)據(jù)。根據(jù)數(shù)據(jù)包的解碼分析,可以確定發(fā)送異常復(fù)位數(shù)據(jù)包的設(shè)備為某上網(wǎng)行為管理設(shè)備,通過(guò)對(duì)該設(shè)備策略的修改,10.2.103.10能夠正常的從I/O Server上提取數(shù)據(jù),未發(fā)生異常情況。
評(píng)論