核安全级数字化仪控系统软件安全性分析研究
2019-05-29谷鹏飞刘子寅黄伟军
谷鹏飞,刘子寅,席 望,黄伟军
(1.中广核工程有限公司设计院,广东 深圳 518124;2.哈尔滨工程大学,哈尔滨 150000)
0 引言
控制系统是整个核电厂的“中枢神经”系统,它对确保核电厂的安全、经济运行起着至关重要的作用,是核电站的关键技术和设备。信息系统作为核电站的重要组成部分,是支持核电厂生产、运营管理、专家诊断、事故下应急决策的关键系统,对核电厂运行安全和业绩的提升起到重要作用。
20世纪六七十年代,世界各国核电厂的控制系统主要采用的是模拟技术仪控系统,它主要基于模拟技术,通过分立元件或者模拟集成电路以硬接线的方式实现控制显示功能。模拟技术仪控系统经过长时间的应用与研究,在设计和应用方面已经积累了丰富的经验,此外其具有响应速度快,设备的检验和分析鉴定相对简单,设计制造成本较低等优点,而且系统的可靠性和安全性也能满足要求,所以世界各国大多数在运行的核电站直至本世纪初仍然使用模拟技术仪控系统。
随着近20年来控制和信息技术的日益成熟,加之用户对控制功能和管理需求的提升,以及核电二代加、三代甚至四代堆型的推出,数字化仪控系统开始全面进入核电应用,在各新建、预建和改造的核电项目中都采用数字化仪控平台,在绝大多数项目中安全系统也采用数字化技术,从而实现全数字化仪控系统。
数字化仪控系统(DCS)与传统的模拟式控制系统相比,系统运行更加安全、可靠,系统的适应性、灵活性和可扩充性强,可以实现信息的在线性与实时性。同时,还减少控制室面积,减少运行、检修人员工作量,结合更多的智能型终端设备,可以节约控制电缆。
1 数字化仪控系统的软件安全性
数字化仪控系统的采用在具有极大优越性的同时,也带来了一些新的问题,尤其是如何确保软件能完整地、正确地满足预期的安全功能和性能要求,即确保软件不出现失效的情况。软件的失效容易产生共因故障,从而导致核电站整个保护系统的失效,使得仪控系统的停堆功能和专设功能不能有效地被执行,进而危及核电站的安全。
由于软件的可靠性数据难以采集,失效模式无法像硬件失效那样分门别类,这些都给软件失效分析与评价工作带来了巨大的挑战。因此,软件失效分析与评价工作还处于研究之中。
相比而言,对于软件功能可以通过软件验证和确认(V&V)[1,2]进行保障,但是在核电领域,针对软件安全性[3]分析的工作还处于起步阶段,正在逐渐引起高度重视。
2010年10月,伊朗遭受Stuxnet病毒的攻击,导致布什尔核电站推迟发电。Stuxnet蠕虫病毒是世界上首个专门针对工业控制系统编写的破坏性病毒,能够利用对Windows系统和西门子SIMATIC WinCC系统的7个漏洞进行攻击。由于该系统在国内的多个重要行业应用广泛,被用来进行钢铁、电力、能源、化工等重要行业的人机交互与监控。据研究,通过U盘传播,该病毒可以改变离心机的转速从而破坏离心机,并向控制台仍发出离心机工作正常的信号。
由于许多隐蔽性强的或非多发性的错误很难被设计人员察觉,仅仅依靠设计技术的改进仍然不足以解决安全性问题,这就需要一套严格的安全性分析程序和安全性分析方法,如结合软件V&V的工作,以预防安全事故发生或在发生事故时减少危害程度,软件安全性分析的意义和价值正在于此。
2 软件安全性分析与软件V&V的关系
随着数字化技术逐渐在核电站的应用,核电领域安全级软件的V&V工作受到广泛的关注,尤其是针对安全级数字化仪控系统的软件V&V。核电站安全级数字化仪控系统的软件V&V是保证安全级数字化仪控系统安全性和可靠性的必要环节,通过V&V全流程验证的软件才能确保其安全级数字化仪控系统的安全性和可靠性,安全级数字化仪控系统才能被允许应用到核电站工程,如图1所示。
图1 核电站安全级数字化仪控系统的软件V&V流程Fig.1 V&V of safety class digital I&C system in NPP
核电站安全级数字化仪控系统软件的V&V活动为保证其有效性,必须遵循国内HAF 102-2004[3]、HAD 102/16-2004[4]等核安全法规和导则的要求,同时满足IEC 60880-2006[5]、IEEE 7-4.3.2-2010[6]等核安全标准的要求。在V&V执行过程和V&V方法上,选择IEEE 1012-2012[7]作为主要指导标准。
从实际执行来看,IEEE 1012规定了V&V每个阶段所要验证和确认的内容,也涉及到软件的危害性、风险性分析,但并没有把软件安全性分析纳入各阶段的工作内容,如图2所示。
根据软件开发的生命周期模型,后续核电站关键软件的V&V工作应逐步考虑开展软件安全性分析工作,具体可以按照下列步骤进行。
在概念V&V阶段,应该确认软件安全性等级,并制定相关的工作计划(可以纳入V&V工作大纲)。软件安全性等级的不同,对于软件的要求也不同,对于核电站安全级数字化仪控系统,应该按照高等级的要求来执行。
在需求V&V阶段,应该获取软件安全性的相关需求,并验证软件安全性需求的正确性、一致性等内容。软件安全性需求也应该纳入软件V&V的需求矩阵一并进行跟踪确认。
在软件设计阶段,应该进行软件安全性分析,并对安全性进行验证。这里的安全性验证主要是针对设计方案的安全性进行验证。
在软件实现阶段,应根据软件安全性需求验证代码是否达到了预期的安全性要求。对于代码的安全性验证,需要在设计代码测试用例时考虑安全性的需求。
在软件集成测试阶段,应通过仿真的方式对软件的安全性进行功能测试。功能测试是黑盒测试,需要借助于一定的工具来执行。
3 结论
随着信息化技术的日益发展,软件安全性分析工作必将越来越重要。本文所阐述的方法不仅适用于核电站安全级数字化仪控系统软件,也适用于核电站其他关键设备软件的安全分析工作,对于非核项目也具有很好的通用性。
图2 核电站安全级数字化仪控系统的软件安全性分析流程Fig.2 Software safety analysis of safety class digital I&C system in NPP