6.4 脆弱性評估
6.4.1 脆弱性評估概述
脆弱性是資產自身存在的,威脅總是要利用資產的脆弱性才可能造成危害。評估方應考慮工業控制
系統脆弱性具有難以修復、原則上需要保密的特點,從物理環境、網絡、平臺和安全管理四個方面對工
業控制系統脆弱性進行評估。
脆弱性評估分為脆弱性識別與脆弱性分析賦值兩個環節。脆弱性識別的依據可以是國際或國家安全
標準,也可以是行業規范、應用流程的安全要求。對應用在不同環境中相同的脆弱點,其脆弱性嚴重程
度是不同的,評估者應從組織安全策略的角度考慮、判斷資產的脆弱性及其嚴重程度。
實施指南如下:
a) 評估方通過現場訪談和現場核查的方式對物理環境脆弱性進行識別,具體識別過程見6.4.2;
b) 評估方通過現場訪談、現場核查、等方式對網絡脆弱性進行識別,具體識別過程見6.4.3;
c) 評估方通過現場訪談、現場核查、模擬仿真環境測試的方式對平臺脆弱性進行識別,具體識別過程見6.4.4;
d) 評估方通過文檔查閱、現場訪談和現場核查的方式對安全管理脆弱性進行識別,具體識別過程見6.4.5。
6.4.2 物理環境脆弱性識別
物理環境脆弱性識別主要識別工業控制系統物理環境的安全風險,包括場所環境、電磁環境、設備實體、線路等方面。評估方核查已采取物理環境的安全措施及驗證其已采取的安全措施有效性,同時查看基于該安全控制級別缺少哪些安全措施。
實施指南如下:
a) 評估方文檔查閱及訪談組織相關人員確定工業控制系統所處的安全控制基線級別,參考系統所處級別應采取的安全措施,查看系統是否存在明顯不符的脆弱性;
b) 評估方現場核查所在的場所建筑物是否堅固,是否存在易于闖入的任何缺口,所有外部門是否使用控制機制來保護,防制未授權進入,采用哪些安全措施,驗證核實已采用措施的有效性;
c) 工業控制系統所在場所、辦公室、公共訪問接待區是否交叉,有無安全保衛人員,有無監控裝置等;
d) 評估方現場核查工業控制系統所在場所與辦公室和公共訪問接待區有交叉的建筑物是采用何種方式的物理訪問控制,并核實其采取的安全措施的有效性。例如門禁、身份標識、訪客人員登記、專人陪同、不準攜帶移動介質、相機等管理措施;
e) 評估方查看工業控制系統所在場所是否安裝避雷針、安裝通風裝置、配備滅火器、配備應急電源、遠離易燃易爆物品、建筑物漏水滲水等;
f) 評估方查看工業控制系統場地是否遠離復雜電磁的環境,內部電磁信息是否泄漏;
g) 網絡節點中心、網絡設備、安全防護設備、辦公設備、工作站、服務器和現場設備等設備安放位置是否合適、是否將需要專門保護的組件隔離放置等;
h) 光纜、電纜、網絡線纜等線路是否布纜在地下,是否將電源電纜與通信電纜分開,電纜設備標識是否清晰。
表6列出了工業控制系統通常可能存在的物理環境脆弱性。
6.4.3 網絡脆弱性識別
6.4.3.1 網絡結構及網絡邊界脆弱性識別
網絡結構及網絡邊界脆弱性是指工業控制系統網絡結構及網絡邊界存在的脆弱性。表7列出了通常工業控制系統可能存在的網絡結構和網絡邊界脆弱性。
實施指南如下:
a) 查看網絡拓撲圖及現場核查工業控制系統網絡結構是否分層,各層之間是否部署訪問控制設備、入侵檢測設備、安全隔離設備、安全審計設備和防護設備等,未部署上述設備的網絡是否有其他措施替代;
b) 現場核查企業資源層網絡與工控網絡中是否部署邏輯隔離設備,如防火墻等;
c) 現場核查工業控制系統部署訪問控制設備、入侵檢測設備、安全隔離設備、安全審計設備和防護設備等的配置,并驗證其配置有效性,分析這些設備的日志。評估方可參見GB/T 32919-2016中附錄B中B16、B17節進行評估;
d) 現場核查工業控制系統是否使用遠程通信,是否使用訪問控制措施;
e) 現場核查邊界防護設備的訪問控制措施配置是否合適;
f) 在模擬仿真環境中對是否存在通過侵入遠程設備進而控制部分或整個工業控制系統的風險進行測試分析;
g) 查看工業控制系統網絡運維記錄或日志,記錄網絡中曾出現過的故障及原因;
h) 工業控制系統網絡與辦公網之間的接入點數量是否嚴格控制,接入口是否進行安全管理和安全防護;
i) 查看網絡中是否存在雙宿主機使用情況;
j) 查看設備MAC地址是否綁定;
k) 評估方查看工業控制系統網絡是否部署組織企業管理級應用,是否在控制網絡中傳輸非控制數據;
l) 評估方在模擬環境測試中抓取網絡數據,并分析控制數據、口令等是否加密。并在模擬仿真環境進行DOS攻擊,驗證是否存在非控制流量大量損耗控制流量傳輸所需要資源、導致工業控制系統的系統功能中斷的脆弱性;
m) 評估方現場核查工業控制系統網絡中是否有冗余鏈路和設備;
n) 評估方查看控制網絡中是否應用IT網絡服務,例如DNS、DHCP、FTP、Telnet、SMTP、SNMP等;
o) 評估方根據工業控制系統使用的服務應用,在模擬仿真環境中進行DNS劫持,ARP欺騙,獲取遠程登錄密碼,發送惡意軟件等測試,驗證在控制網絡中使用IT網絡服務應用存在脆弱性;
p) 評估方查看網絡拓撲圖及現場核查其網絡,并在實驗室中進行跨VLAN攻擊,驗證組織劃分VLAN合理性及安全性;
q) 評估方現場對系統網絡的邊界完整性進行核查。
6.4.3.2 網絡設備脆弱性識別
網絡設備脆弱性是指工業控制系統網絡設備存在的脆弱性,表8列出了工業控制系統的網絡設備通常可能存在的脆弱性。
a) 查看重要網絡設備放置場所,場所有無物理訪問控制、有無禁止無關人員進入的措施,是否安裝監視系統、是否安裝空調等支持設備。針對組織采取的措施,驗證其有效性;
b) 查看是否留有不安全的物理端口,是否將無用的USB 、PS/2、網絡接口封堵,是否采用技術手段對這些端口進行監控;
c) 查看設備的訪問日志、安全配置及網絡權限,在模擬環境中對設備進行測試,通過嘗試使用口令繞過,提取權限,修改ACL,發現設備的脆弱性,并驗證其安全措施的有效性;
d) 在模擬測試環境中查看設備是否開啟不必要的端口并對其進行測試;
e) 在模擬仿真測試環境中查找設備存在的系統漏洞;
f) 查看網絡設備口令更新周期及字符長度等配置;
g) 現場訪談組織是否為網絡硬件配備專門運維人員;
h) 現場訪談及核查組織是否對替換下的網絡硬件進行登記、保存或按照要求進行銷毀。
6.4.3.3 通信和無線連接脆弱性識別
通信和無線連接脆弱性是指工業控制系統網絡通信和無線連接存在的脆弱性。表9列出了工業控制系統的通信和無線連接通常可能存在的脆弱性。
a) 現場對工業控制系統控制柜及機房環境中的無線網絡進行搜索,確認企業的無線組網是否采取身份認證措施、是否需要標識和密碼驗證、有無采取安全監測措施,檢查組織有無為防止經無線網絡進行惡意入侵所采取的其他措施,并分析其有效性;
b) 在模擬仿真環境中對使用的通信協議進行協議分析,分析是否是明文傳輸;
c) 在模擬仿真環境中使用重放攻擊驗證是否有數據校驗,防篡改的措施;
d) 評估方現場核查無線連接客戶端與接入點間的認證方式。評估方在模擬仿真環境中采用相應的測試方法驗證其有效性;
a) 評估方現場核查是否有未授權接入無線網絡的設備;
b) 在模擬仿真環境中使用相應的工具分析該無線協議是否明文傳輸。
6.4.4 平臺脆弱性識別
6.4.4.1 平臺脆弱性識別概述
工業控制系統平臺是由工業控制系統硬件、操作系統及其應用軟件組成。平臺脆弱性是由工業控制系統中軟硬件本身存在的缺陷、配置不當和缺少必要的維護等問題造成。平臺脆弱性包括平臺硬件、平臺軟件和平臺配置三個方面的脆弱性。
6.4.4.2 平臺硬件脆弱性識別
平臺硬件脆弱性是指工業控制系統平臺硬件設備存在的脆弱性。表10列出了工業控制系統的平臺硬件通常可能存在的脆弱性
a) 查看組織是否為平臺硬件,尤其開啟遠程服務的設備配備運維人員;
b) 查看是否留有不安全的物理端口,是否將無用的USB 、PS/2、遠程接口、網絡接口進行封堵,或采取其他技術措施進行監控;
c) 查看是否有對變更設備時的測試記錄或者其他證明變更時進行過測試的證據;
d) 現場核查工業控制系統中是否存在調制解調器或專業遠程連接設備,是否針對這些設備部署安全措施,并驗證安全措施的有效性;
e) 現場核查是否僅必要人員可以物理訪問工業控制系統設備;
f) 現場核查組織的資產清單中是否包括工業控制系統所有設備;
g) 現場查看組織是否對重要設備進行冗余設計,并按設計部署;
h) 現場查看硬件設備中是否存在使用雙網卡;
i) 檢測關鍵設備是否存在后門。
6.4.4.3 平臺軟件脆弱性識別
平臺軟件脆弱性是指工業控制系統平臺軟件存在的脆弱性。平臺軟件包括工業控制系統使用的操作系統、應用軟件、防病毒軟件等。在工業控制系統中,SCADA主機、操作站、工程師站、HMI、歷史數據庫、實時數據庫等通常使用與IT行業相同的計算機、服務器以及操作系統(主要是WINDOWS和UNIX)。PLC、RTU、DCS控制器以及其他數據采集設備一般使用專用的實時或嵌入式操作系統,這些實時或嵌入式操作系統內部安全功能有限。表11列出了工業控制系統平臺軟件通常可能存在的脆弱性。
a) 評估方查看平臺中安裝的操作系統版本及應用軟件類型,例如:windows操作系統、嵌入式系統、Linux系統、程序下載軟件、數據庫軟件、遠程控制軟件等;
b) 必要時在模擬仿真環境中對有重要組件進行組件測試,識別其脆弱性;
c) 在模擬仿真環境中查看設備開啟的端口,是否開啟了不必要的端口服務;
d) 在模擬仿真環境中查找設備存在的系統漏洞;
e) 評估方查看平臺是否安裝病毒防護軟件,病毒防護軟件是否經過測試安裝,病毒庫是否定期更新,查看測試記錄及病毒庫更新記錄;
f) 現場核查系統使用DCOM設備是否進行端口限定,是否對OPC及時修補升級;
g) 在模擬仿真環境中可以使用惡意代碼針對OPC進行測試,識別其脆弱性;
h) 查看關鍵應用軟件源代碼,若關鍵應用軟件為第三方供應商提供,則需與其聯系,取得軟件源代碼,對其進行分析研判,識別其脆弱性;
i) 現場核查在遠程訪問控制設備時使用的專用設備及軟件,在模擬仿真環境中對其進行技術檢測,識別其脆弱性;
j) 現場核查并分析系統運行產生的歷史數據,驗證系統數據是否曾出現異常及出現異常的時間及原因;
k) 評估方查看程序下載軟件固件的使用權限,下載程序是否加密認證,并驗證其認證的有效性;
m) 在模擬仿真環境中對使用的工業控制系統協議進行分析,是否是明文傳輸;
n) 在模擬仿真環境中進行重放攻擊,驗證是否有數據校驗,防篡改;
o) 在模擬仿真環境中進行模糊測試,驗證平臺是否存在拒絕服務等安全漏洞;
p) 評估方現場查看工業控制系統中重要數據存儲是否進行加密或采取其他安全措施。
實施指南如下:
a) 查看重要網絡設備放置場所,場所有無物理訪問控制、有無禁止無關人員進入的措施,是否安裝監視系統、是否安裝空調等支持設備。針對組織采取的措施,驗證其有效性;
b) 查看是否留有不安全的物理端口,是否將無用的USB 、PS/2、網絡接口封堵,是否采用技術手段對這些端口進行監控;
c) 查看設備的訪問日志、安全配置及網絡權限,在模擬環境中對設備進行測試,通過嘗試使用口令繞過,提取權限,修改ACL,發現設備的脆弱性,并驗證其安全措施的有效性;
d) 在模擬測試環境中查看設備是否開啟不必要的端口并對其進行測試;
e) 在模擬仿真測試環境中查找設備存在的系統漏洞;
f) 查看網絡設備口令更新周期及字符長度等配置;
g) 現場訪談組織是否為網絡硬件配備專門運維人員;
h) 現場訪談及核查組織是否對替換下的網絡硬件進行登記、保存或按照要求進行銷毀。
6.4.4.4 平臺配置脆弱性識別
平臺配置脆弱性是指工業控制系統平臺軟硬件的配置存在的脆弱性。表12列出了工業控制系統的平臺配置通常可能存在的脆弱性
a) 評估方現場核查重要配置是否備份,是否將敏感數據存儲在便攜設備中;
b) 評估方現場核查口令是否以明文的方式存儲在本地系統或便攜設備中,過去是否存在泄漏口令的事件,在模擬仿真環境中使用暴力破解等方法驗證口令的可靠性;
c) 查看平臺硬件設備口令更新周期及字符長度等配置;
d) 現場核查遠程訪問控制設備接入控制網絡時是否需要用戶驗證;
e) 現場核查是否對遠程訪問進行審計,是否生成審計記錄,或者使用其他替代安全措施;
f) 現場核實是否有遠程訪問記錄,遠程訪問是否經過組織批準或認證,遠程訪問數據是否加密,或者采用其他防篡改,防泄密的措施;
g) 現場核查是否使用平臺軟硬件安裝時的預設口令、空口令是否無法登錄系統,賬戶口令是否屬于弱口令;
h) 評估方查看工業控制的權限分配,是否職責分離,是否是所需的最小權限,管理員權限是否組織指定管理,是否使用缺省訪問控制。驗證配置訪問控制的有效性;
i) 現場核查平臺軟硬件是否具有限制無效訪問次數的能力,對任何用戶(人、軟件進程和設備)在可配置的時間周期內連續無效訪問嘗試的次數是否限制為一個可配置的數目,在可配置時間周期內未成功嘗試次數超過上限時,在指定時間內是否拒絕其訪問直到由最高權限者解鎖;
j) 檢查控制系統是否提供會話鎖能力,在會話不活躍狀態超過可配置的時間周期之后,檢查會話鎖是否啟用,防止其進一步的訪問,會話鎖是否保持有效直到最高權限者使用適當的標識和認證規程重新建立訪問;
k) 現場核查是否安裝入侵檢測和防御軟件,或是否采用其他替代措施;
l) 現場核查可開啟審計功能的軟硬件是否開啟相關功能,或是否采取替代措施。
6.4.5 脆弱性分析
根據脆弱性識別結果,可以根據脆弱性對資產的影響程度、利用脆弱性的難易程度、脆弱點的流行程度等對已識別的脆弱性的嚴重程度進行賦值。
脆弱性是客觀存在的,脆弱性賦值是由主觀評判的,因此評估方應結合實際情況選取合適的脆弱性賦值方法,例如CVSS。由于很多脆弱點反映的是同一方面的問題,或可能造成相似的后果,賦值時應綜合考慮這些脆弱點,以確定這一方面脆弱性的嚴重程度。脆弱性嚴重程度可以進行等級化處理,不同的等級分別代表資產脆弱性嚴重程度的高低。等級數值越大,脆弱性嚴重程度越高。表13提供了脆弱性嚴重程度的一種賦值方法。