電力監控系統安全防護是保障電網安全穩定運行的必要措施,為提高電力監控系統的安全防護能力,本文在分析電力監控系統安全防護現狀的基礎上,分析了應用系統層面的安全測評中存在缺乏安全性測評標準、測評手段有限和現有測試工具無法直接用于測評在線生產系統等問題。針對這些問題,本文提出將軟件測試方法應用于應用系統測試的技術方案,分別是通過搭建模擬環境進行自動化的動態測試,以及對應用系統源代碼進行靜態測試。通過二者的有機結合,可以有效的發現應用系統中的缺陷,及早采取有效措施避免電力生產中軟件缺陷導致的事故和不良后果,從而保障電網的安全穩定運行。
【關鍵詞】電力監控系統 安全防護 信息安全 等級保護測評 軟件測試
1 背景
隨著世界經濟形勢和能源格局的悄然變化以及通信與信息技術的飛速發展,電網這一現代人造網絡也發生著新的變化。由于能源需求節節攀升,新能源不斷接入,電網規模日益擴大,資源優化配置的能力得到了有效提升;利用現代化的通信與信息技術,電網的各個系統之間能夠有效互聯,大大提高了電網的智能程度。但在規模不斷擴大、智能化不斷提高的同時,電網的安全運行也面臨著新的挑戰。這是因為龐大的電網規模增加了電網運行與控制的復雜程度,而開放互聯的結構增加的電網各系統之間的耦合度,也增加了系統受到攻擊的風險,給監控系統的安全防護增加了難度。
電力監控系統,是指用于監視和控制電力生產及供應過程的、基于計算機及網絡技術的業務系統及智能設備,以及作為基礎支撐的通信及數據網絡等。為貫徹落實公安部、國家電力監管機構對電力監控系統的安全防護要求,遵照國家信息系統等級保護的相關要求,電力監控系統的安全性測評包括二次安防整體安全、網絡整體安全、交換/路由安全、防火墻安全、操作系統安全、數據庫安全、應用系統安全、物理安全和數據管理安全共9個類別的測評內容,從不同的維度規定了電網監控系統安全防護的標準。
在這些維度中,應用系統安全是一個值得關注的內容。電力監控系統的應用系統安全直接關系電力生產的安全,應用系統的缺陷完全可以導致大規模停電事故的發生。使用有效手段檢測電力監控系統中的軟件缺陷刻不容緩。如圖1所示。
2 問題分析
軟件缺陷是軟件制品的屬性,它通常是指程序中靜態存在的所有與預期需求不符的問題。軟件缺陷給系統運行帶來的影響包括:會導致系統意外宕機等不穩定現象的發生,為惡意攻擊者入侵及破壞系統提供通道。這些問題都可能成為電力安全生產的隱患。
目前的應用系統的安全測評主要存在以下幾方面的問題:
2.1 缺乏安全性測評標準
目前,對國家發布的信息系統等級保護相關標準,以及電力行業監管部門發布的電力監控系統安全防護的規定中,對應用安全的檢測內容尚不充分。應用安全的檢測項目如圖2所示,主要側重于對軟件身份鑒別、安全標記、訪問控制等方面的功能性測試,以及對軟件的配置(如:用戶口令的配置)等進行檢查,但是對軟件自身的缺陷、安全漏洞等未有明確的檢測標準。
2.2 測評手段有限
對于軟件功能的檢查,除部分測評項目能夠實地通過使用軟件檢查外,另一些測評項只能通過訪談系統管理員或查看系統設計文檔來了解。但由于系統管理員的知識水平不同、對系統的理解程度不同,以及文檔缺失、文檔未及時更新等原因,軟件真實的功能特性、安全特性通常難以獲知。
2.3 現有軟件測試工具無法直接應用于電力監控系統
在軟件測試領域,動態測試是工業界已采用的成熟的軟件測試手段。動態測試是指通過在抽樣測試數據上運行程序來檢驗程序的動態行為和運行結果,以期發現程序缺陷?;诤诤械臐B透測試,是目前廣泛采用的軟件安全性檢測方法,其實質就是動態測試。采用自動化工具對軟件進行滲透測試可能消耗大量的計算資源,使系統CPU及內存負載過高;同時,由于動態測試直接應用于正在運行中的被測系統,可能對系統的穩定性帶來一定的風險。對于電力監控系統這種對穩定性、可靠性要求極高的系統,動態的自動化的測試手段可能會影響系統的正常運行,尤其對于處于生產控制大區的應用系統,這會妨礙生產的安全性,因此動態測試方法并不適合于直接應用在電力監控系統中。
綜上所述,有必要對電力監控系統中的軟件安全性的檢測方法進行探討。
3 軟件測試技術在電力監控系統安全防護中的應用
軟件自動化測試,通常是指使用自動化測試工具對軟件進行測試的過程,這類測試一般不需要人干預。軟件測試是發現軟件缺陷的有效手段,按照是否需要執行程序,可以將軟件測試方法分為動態測試和靜態測試。動態測試需要運行程序,它的實施步驟通常包括:生成測試用例、運行程序和驗證程序運行結果三個核心內容。靜態測試是指不執行程序而尋找程序代碼中可能存在的缺陷或評估程序代碼的過程。靜態測試包括主要由人工進行的代碼審查、代碼走查、桌面檢查以及主要由軟件工具自動進行的靜態分析。
靜態測試與動態測試方法各有優缺點。靜態測試方法的分析對象通常是應用程序的源代碼,不需要運行程序,因此不會影響被測系統的正常運行,它能夠覆蓋所有的執行路徑,但是由于方法本身的近似性,分析過程中會包含一些不可達的路徑,而給測試帶來一些誤報。動態測試方法是通過向應用程序輸入數據、運行程序、觀察運行結果的方式來進行測試,因此測試的覆蓋率與輸入的測試集有關,通常無法覆蓋程序中的所有執行路徑,而使得程序中的一些漏洞無法被檢測出來,給測試結果帶來影響。
根據上述分析,在電力監控系統的安全防護中,我們可以在以下幾方面應用軟件測試技術,發現電力監控系統中的安全漏洞。
3.1 搭建模擬環境,進行自動化的動態測試
由于對在線系統進行測試可能破壞電力監控系統的正常運行,因此可以通過搭建模擬環境的方法,對電力監控系統的應用進行測試。在測試環境中,可以使用自動的測試工具對應用進行安全性測試。這種方法的優點是,自動化測試工具的測試過程高效,人工干預較少,可以檢測出應用軟件中的漏洞。endprint
滲透測試工具是目前應用最為廣泛的動態測試工具,其原理是對于B\S架構的應用系統利用網頁爬蟲算法遍歷網站的URL資源,識別每個URL的交互數據,對數據進行有針對性的變異并進行重放測試,根據返回結果判斷安全問題。許多軟件廠商都有針對各自技術研發出的滲透測試產品,如表1所示。
通過搭建模擬環境進行動態測試的方案,其缺點在于模擬環境可能與軟件應用的真實環境存在差異,給測試結果帶來影響,其差異包括以下幾個方面:
(1)數據不同: 測試環境中的數據通常與真實數據不同,例如測試環境中用戶口令、用戶權限分配等業務數據。
(2)軟件配置不同:如軟件運行的操作系統、中間件版本不同。
(3)硬件環境不同:由于成本等因素,在測試環境下,通常難以按照真實應用環境中的硬件設置進行部署,例如:數據的發送端通常用模擬軟件代替。
這些差異都可能導致模擬環境中測試結果與真實環境下的測試結果的不同。另外,隨著Web2.0的發展,AJAX、Webservice等技術的廣泛應用,如今的Web應用交互方式不再只通過URL進行交互,而是通過多種方式,所交互的數據格式也不盡相同,因此自動化工具可能無法適應這種交互方式,存在部分安全風險無法被自動工具檢測到的情況,而導致漏報。因此,在實際測試中,還可以通過手工測試的方法,彌補自動測試的遺漏。
3.2 使用靜態測試方法檢測應用的源代碼
通過靜態檢測應用的二進制代碼或源代碼,同樣可以在不影響程序運行的情況下發現程序中的漏洞。
靜態分析是在不運行軟件的前提下進行分析的過程,分析的對象可以是源代碼或目標代碼,甚至是程序文檔。靜態分析技術種類繁多,其中基本的分析方法包括詞法分析、語法分析、控制流分析、數據流分析等??刂屏骱蛿祿鞣治鐾ǔ1挥糜诔绦蛉毕輽z測、程序優化、程序安全性分析等各個方面。但是由于分析過程中對程序進行了一些抽象和近似,會導致分析結果不精確。例如路徑的可達性分析:給定一條路徑,判斷是否有變量的初始取值,使得程序沿該路徑執行。路徑可達性分析問題在理論上是一個不可判定的問題,各種精度的數據流分析方法計算出的都是近似結果。為了提高分析的準確度,研究人員采用了數學上比較成熟的形式化方法,單獨或與基本的程序分析技術相結合,對程序進行更有效的分析。其中具有代表性的技術包括模型檢測、約束求解等。源代碼分析工具如表2所示。
動態的程序分析技術通常從可執行程序開始,通過運行程序觸發程序失效,通過可觀察到的程序失效分析程序中的可疑代碼,從而發現程序中的缺陷。動態分析能夠利用程序的輸入執行程序,獲得更精確的結果。但它通常只分析對某一輸入下的程序路徑,而不能覆蓋程序所有可能的執行情況。而靜態程序分析,分析程序所有可能的執行路徑,分析范圍更加全面,更容易發現不易覆蓋的程序路徑中的缺陷。
4 結論
電力監控系統對應用軟件的穩定性和安全性都有著極高的要求,將軟件測試方法應用于這類系統,利用動態測試技術對模擬環境中的應用系統進行測試,利用靜態測試技術對軟件源代碼進行測試,將動態測試與靜態測試有機的結合起來,能夠準確的發現電力監控系統中的缺陷,及早采取有效措施避免電力生產中軟件缺陷導致的事故和不良后果,從而保障電網的安全穩定運行。
參考文獻
[1]鐘清.智能電網關鍵技術研究[M].北京:中國電力出版社,2011.
[2]李小平,鐘宏,丁儼.關于應用系統安全的研究[J].北京理工大學學報(英文版),2002,11(2):198-202.
[3]王青.WU Shu-jian,李明樹.軟件缺陷預測技術[J].軟件學報,2008,19(7):1565-1580.
[4]王升保.信息安全等級保護體系研究及應用[D].合肥:合肥工業大學,2009.
[5]范淵.應用層等級保護測評工具應用實例分析[J].信息網絡安全,2012(z1):127-131.
[6]張健,徐寶文.軟件測試(專輯前言)[J].計算機學報,2011,34(6):951-952.
[7]潘古兵.Web應用程序滲透測試方法研究[D].重慶:西南大學,2012.
[8]單錦輝,姜瑛,孫萍.軟件測試研究進展[J].北京大學學報(自然科學版),2005,41(1):134-145.
[9]孟云秀,趙正旭.基于源代碼分析的軟件靜態測試[J].河北省科學院學報,2013,30(2):16-21.
[10]張健.精確的程序靜態分析[J].計算機學報,2008,31(9):1549-1553.
[11]安金霞,王國慶,李樹芳.基于多維度覆蓋率的軟件測試動態評價方法[J].軟件學報,2010.
[12]蒲石.Web安全滲透測試研究[D].西安:西安電子科技大學,2010.
[13]楊宇,張健.程序靜態分析技術與工具[J].計算機科學,2004,31(2):171-174.
[14]林惠民,張文輝.模型檢測:理論、方法與應用[J].電子學報,2002, 30(z1):1907-1912.
[15]嚴俊.基于約束求解的自動化軟件測試研究[D].北京:中國科學院軟件研究所,2007.
作者簡介
伍曉泉(1984-),女,工學博士,計算機軟件與理論專業。主要研究方向為軟件工程、電力系統自動化、電力系統信息安全。
作者單位
廣東電網公司電力科學研究院 廣東省廣州市 510080endprint