網絡安全預示著智能電網的光明未來
網絡安全代表著一團烏云,遮蔽了現有電網系統的“智能電網”現代化,增強了客戶和公用事業部門監控、控制和預測能源使用的能力。在防范潛在的破壞性停電方面,安全的企業級體系結構的需求得到了廣泛的認可,但是安全編碼設備所扮演的角色更容易被忽略,而且非常重要。
長時間的停機可能是毀滅性的。2011年9月8日,一次持續15小時的大停電影響了500萬人,原因是一名技術人員錯誤地關閉了一條500千伏線路。從加利福尼亞州的圣地亞哥、北部到奧蘭治縣以及東部到亞利桑那州的地區都感受到了這種影響,經濟損失估計在9700萬美元到1.18億美元之間。
通過在流程和基礎設施改進中規劃和做出明智的決策,可以在一定程度上緩解此類自然和操作故障。但是,智能電網的連通性將焦點從防御世界轉移到防御電網的脆弱性,從防御世界的敵對狀態轉移到防御電網。這不太容易解決。
智能電網的晴天
我們都越來越熟悉智能設備——“物聯網”中的“東西”。越來越有可能通過互聯網遠程控制加熱系統、洗衣機甚至咖啡機。
長期以來,能源公司一直使用差別電價來鼓勵消費者在低能耗時期使用其電器。但是,一臺能夠監測智能電網的洗衣機可以“決定”啟動一個洗滌周期的最佳時間,而不是通過定時器粗略地控制。將這種“監測智能設備”的原理外推到工業裝置上,并增加操作和能源措施,如智能電表、可再生能源、電能表和電網傳感器,很容易直觀地看到消費者的潛在節約。
從能源供應商的角度來看,這種機制提供了一種方法,可以平滑能源消耗的高峰和低谷,根據實時信息響應需求,并快速響應變化。
最終的結果是一個智能、綠色、高效和低成本的能源網,所有人都受益。(見圖1)電力研究機構估計,智能電網每年可以平均節省消費者數百美元,為美國經濟創造1.8萬億美元的額外收入。

圖1:不斷發展的智能電網能源基礎設施
2015年12月23日,烏克蘭電網遭到攻擊,黑客成功破壞了三家配電公司的信息系統。攻擊者通過破壞公司網絡、搶占監控與數據采集系統的控制、遠程關閉變電站、破壞IT基礎設施組件和數據以及拒絕用戶有關停電的最新信息,暫時中斷了終端用戶的電力供應。
盡管智能電網的好處是多方面的,但它們比這個烏克蘭的例子暴露出更多的“攻擊向量”(接入點),以及相應的導致中斷的新方法。例如,對電力需求數據的誤導性操作可能導致電力公司不必要地調整生產。
縱深防御
在理解如何最好地解決智能電網中各種各樣的弱點時,借用一個類比是很有用的。在臨床實踐的世界中,James Reason教授觀察到有如此多的檢查級別,以至于對于災難的發生,需要一系列的故障。這種“瑞士奶酪”縱深防御方法(圖2)在網絡安全方面也有類似的意義,確保如果侵略者越過了防御線,其他人還在等待。

圖2:“瑞士奶酪”模型。一系列不完美的防御層只有在這些缺陷重合時才會失效。
有助于智能電網防御的方法和技術包括安全網絡體系結構、數據加密、安全中間件和域分離。監控智能設備值得特別注意,因為它們訪問對智能電網運行至關重要的數據。
物聯網和網絡安全
諸如NIST安全網絡、美國國家脆弱性數據庫和ICS-CERT(工業控制系統網絡響應團隊)等舉措反映了問題的嚴重性。但是,許多可用的建議都是高級別的,引用了現有的漏洞,或者引用了原則,而不是細節。那么,一個軟件工程師團隊如何開發一個安全的應用程序呢?
在傳統的以安全為中心的部門,安全軟件開發的方法往往是被動的——開發軟件,然后使用滲透、模糊和功能測試來暴露和修復任何弱點。
將網絡安全設計成監控智能設備的更好方法可能是反映功能安全標準(如IEC 61508“電氣/電子/可編程電子安全相關系統的功能安全”)所倡導的開發過程。開發軟件的通用框架,在軟件開發生命周期的各個方面解決質量、風險和軟件安全問題,應用最佳實踐,創建可追溯的人為行為集合,有助于在出現漏洞時提供快速響應。
安全代碼開發
通過應用自動化工具,可以最有效地證明符合IEC 61508的實踐。
在功能安全和網絡安全軟件開發方面的最佳實踐要求從一開始就定義適當的需求,并從它們的雙向可追溯性來確保它們完全實現。(圖3)

圖3:將LDRA工具套件的功能映射到IEC 61508的指南中
單元測試和動態分析同樣適用于功能安全和網絡安全。在后一種情況下,重要的是確保(例如)防御機制有效,并且在應用邊界值的情況下不存在攻擊的脆弱性。
IEC 61508還要求使用編碼標準,將指定編程語言的使用限制在安全的子集內。在實踐中,為了功能安全而編寫的代碼通常也是安全的,因為在編程語言應用程序中同樣的錯誤經常引起安全和安全問題。
結論
沒有一個智能電網是絕對無法穿透的。如果要根據所涉及的風險水平對其進行相應的保護,則需要多個安全級別,以便在一個級別出現故障時,其他級別的安全級別都處于警戒狀態。
監控智能設備值得特別注意,因為它們為對智能電網運行至關重要的數據提供接入點。功能安全標準(如IEC 61508)的結構化開發方法可以提供理想的框架,以便在安全應用程序的開發中應用主動方法。
令人高興的是,安全編碼的許多最合適的質量保證技術在功能安全領域得到了很好的證明。這些技術包括靜態分析以確保編碼標準的適當應用,動態代碼覆蓋率分析以檢查是否有多余的“流氓代碼”,以及在整個開發過程中跟蹤需求。
這種開發過程的遺留物包括一組結構化的人工行為,在現場發生安全漏洞時提供理想的參考。考慮到黑客和解決方案提供商之間無休止的爭斗動態性,優化泄露響應時間不僅僅是一個好主意,它是一個潛在的救星。