机电之家行业门户网运行
文章 下载
最新公告:

  没有公告

设备维修与管理培训
您现在的位置: 设备维修与管理 >> 设备管理 >> 管理技术 >> 网络计划 >> 资讯正文
 
赞助商
 
 
最新文章
 
 设备管理中存在的问题及改进措施
 探索设备备件更换规律,实现设备
 创新设备管理 提升竞争优势
 设备管理关乎企业效益
 TPM自主保全实践的探索与思考
 驱动离心泵的电机电流高的原因及
 离心泵运行时不打量的原因
 离心泵一般容易发生的故障有哪些
 离心泵各零部件的检修标准
 计量泵的常见故障及处理方法
 
推荐技术
 
 
相关文章
 
发电集团信息化发展探讨
玉溪供电局完成信息安全
玉溪供电局配电地理信息
华北电网信息化建设取得
辽源供电公司信息化自主
襄城:加强电力信息建设
变电站继电保护系统中信
电力企业信息化建设:发
基建电厂信息化建设的模
火力发电企业燃料信息化
 
客户服务
 
如果您有设备方面好的文章或见解,您可以送到我们的投稿信箱
客服电话:0571-87774297
信   箱:88ctv@163.com
我们保证在48小时内回复


s

b

g

l

.

j

d

z

j

.

c

o

m

 

电力信息系统运行平台的安全设计           
电力信息系统运行平台的安全设计
作者:佚名 文章来源:不详 点击数: 更新时间:2008-9-24 17:38:01
摘要: 分析了电力系统信息安全背景和整体安全防护体系,指出了必须从开发和运行两个方面去考察应用系统的安全性问题,认为应用系统安全是整个安全防护体系中的核心,并介绍了一种安全的应用系统运行平台模型及软件开发安全模型,文中详细分析了软件开发过程中应注意的有关安全性事项。 关键词: 网络安全;软件开发;应用系统;风险      电力工业是我国国民经济的基础产业和公用事业,电力信息网络和应用系统的安全是电力系统安全运行、可靠供电的保证,直接关系到我国各行各业的发展、社会的安定和人民生活水平的提高。计算机在电力系统的应用已有近三十多年的历史,计算机应用不断普及到电力规划、设计、建设、生产、经营、管理和科研教育等领域的各项活动中。与此同时电力信息系统的安全问题也日益突出,一旦电力信息系统出现技术故障、遭受人为破坏等因素将使信息系统不能正常工作,将危及电网的安全运行,所造成的损失和影响将是无法估量的。这种由信息系统安全问题引起的风险,已成为影响国家电力基础设施安全的重要因素,重视和开展电力系统的信息安全研究已是摆在我们面前的一个重要课题。

1 电力系统的主要安全防护措施与体系结构


  根据原国家经贸委第30号令发布的《电网和电厂计算机监控系统及调度数据网络安全防护规定》的要求,针对电力调度系统电网二次系统的特点、目前状况和安全要求,电力调度部门提出了《全国电力二次系统安全防护总体方案》,国家电力监管委员会通过了《电力二次系统安全防护规定》(5号令),提出了电力二次系统的安全防护的总体策略为:安全分区、网络专用、横向隔离、纵向认证。同时,为了保障我国电力系统的安全、稳定、经济的运行,电力信息部门在国家信息安全防护框架下于2002年开始了电力系统信息安全示范工程,首先对江苏和辽宁省电力系统进行了实施,并初步构筑了电力信息系统的整体防护体系,整体防护主要包括边界防御、网络防御、主机防御、数据资源防御、应用系统防御等。

  (1) 边界防御。边界防御是利用防火墙、入侵检测等安全设备来保护进入电力网络的入口点。

  (2) 网络防御。网络防御包括网络分段、建立VPN、漏洞扫描等。

  (3) 主机防御。主机防御包括病毒防治系统、主机入侵检测系统的部署,对系统漏洞进行扫描、安全配置、安全补丁、安全主机加固等。

  (4) 数据资源防御。数据资源防御主要是保证数据在存储、使用、传输过程中的机密性、完整性和可用性,可以采用PKI技术来保证。还包括数据的备份,以保证系统和数据在出现意外时能及时恢复,将损失降到最低。

  (5) 应用防御。应用系统防御【1】包含两方面内容:一是应用系统支撑环境的安全,主要包括对数据库、Web服务器、中间件和群件系统的安全性扫描、加固及策略的制定等。二是应用程序本身的坚固性及完整的应用开发安全规范,保证新开发的应用系统,尤其是具有实时控制功能系统的产品都消除已知安全漏洞,从而将安全隐患带入运行的可能性降到最低。

  信息化的价值在于应用系统可以高效支撑业务系统的长期稳定运行,因此应用系统的安全防御是整个防御体系中的最后防线,也是重中之重,需要各级应用系统开发人员、运行维护人员,特别是应用系统开发厂商给予足够的重视。

2 安全的应用系统运行平台 


  目前普遍存在一种网络安全误区,人们在进行信息安全防护时首先想到的是防火墙、入侵检测、加密、认证、VPN等等一系列产品,往往只是产品的堆叠。事实上一个完整的与应用紧密相关的并且是容易部署、管理和应用的安全解决方案才是解决问题的关键,而安全坚固的应用程序本身是信息安全的最直接体现。安全的应用系统运行平台模型见图1。


  


图1 安全的应用系统运行平台  

     (1) 智能运行单元层。包括运行应用程序的各类计算机。

     (2) 网络安全传输层。承载应用程序运行的网络或通信系统。

     (3) 系统与网络安全支撑平台层。为运行应用程序提供各种安全防护手段,包括防火墙、VPN、SSL、网络安全入侵检测、数据完整性检查、PKI/PMI等。

     (4) 安全抽象层。负责对不同的安全技术进行封装,给上层即应用支撑平台层提供统一的接口。

     (5) 应用支撑平台层。为各类电力系统应用程序提供统一的安全应用支撑,如统一的加解密服务,统一的数字签名服务,统一的数字证书认证服务,统一的安全数据交换服务等。

     (6) 应用程序代码层。电力系统的各类应用系统程序。

  在上述的安全平台结构中,本文把硬件物理安全(智能运行单元层、网络安全传输层)和安全应用服务(系统与网络安全支撑平台层、安全抽象层)以及具体应用系统(应用支撑平台层、应用程序代码层)三部分独立开来,可以方便应用系统与各类安全措施的集成,有利于电力系统整体安全防护体系的实施。

  安全审计以安全策略为中心,整理分析各种应用系统和安全设备的日志,并通过运行模式的定义,为应用程序管理人员提供异常日志的通用管理手段,将基于运行环境的安全监视提升到基于运行环境及运行系统的综合安全审计,进一步提高应用系统的安全性及稳定性。

  在一些大型电力实时监控系统中,应用程序往往由许多进程组成,部分进程出错,不会使系统完全崩溃,只会让系统某些功能失效,应用系统使用者可能无法及时知晓系统的异常,运行监视系统【2】通过对应用系统运行状态、运行效率的监视,探知异常并及早采取报警和修复措施,保证整个应用系统的安全稳定运行。

3 应用程序开发中的安全问题


  以往在开发应用系统时,仅仅关注其功能和效率,实际上安全性也是其一个越来越重要的属性,需要在应用系统的整个生命周期中加以完整考虑【3】

  首先应该了解软件开发中可能出现的安全问题,明确开发中的安全需求;然后保证程序设计、编码的安全性,并对开发出的软件进行安全性检测和评估。在整个开发过程中,应当对开发人员进行安全培训和开发过程的安全监理。图2为软件开发安全模型的框架示意图。




图2 软件开发安全模型的框架

3.1 安全需求

  在用户需求和软件需求阶段,了解用户对安全性的要求,明确软件需要达到的安全性;在设计阶段,根据用户的需求,采取符合安全性要求的设计方案,才能保证软件的整体安全性。

     软件开发的安全需求通常包括以下方面:①开发成果的完整性;②开发过程、开发成果的保密性;③软件中没有安全隐患,包括设计的安全漏洞、编码引入的安全隐患等;④开发的软件不会引起法律纠纷;⑤开发出来的软件产品,需要进行安全性检测和评估;⑥软件开发和支持环境应当被严格控制。

3.2 安全设计

     软件的设计分为概要设计和详细设计。概要设计中应考虑如下的安全性因素:①系统输入的安全性,对错误输入、恶意输入的处理;②系统内部数据传输的安全性;③系统输出的安全性;④系统内各模块的出错处理;⑤运行中可能出现的各种异常情况,是否都有合适、安全的处理方法;⑥软件的防盗版设计;⑦如果是分布式系统,还要考虑网络传输的安全性(是否需要加密、加密的强度等),各分布模块的安全性,抗攻击能力等。

     详细设计中应考虑的安全性因素包括:①接口安全性(入口安全性检验);②算法安全性;③程序异常处理。

3.3 安全编码

  经过良好设计的、具有良好习惯的编程风格的代码也会使程序具有较好的安全性。通常良好的编码风格有:使用安全的函数;对输入的参数进行校验;开发完成后,进行完备的单元测试,包括边界测试、语句覆盖测试;开发完成后,确认错误和异常情况被正确地处理;修改代码的同时,确保注释和文档进行了相应的修改;在代码集成和引用方面还应注意不使用没有许可证权限的代码。

     (1) 使用安全的函数。尽管某种函数调用可能与安全性无关,但如果使用不当,仍会导致不易发觉的安全隐患。如CopyMemory、CreateProcess、CreateProcessAsUser、CreateProcessWithLogonW、memcpy、sprintf、swprintf等函数在安全性方面尤为值得注意。

     (2) 控制程序改动的步骤。为使信息系统的错误达到最少,执行改动时要进行严格控制。应当实行正规的改动控制步骤,确保安全和控制步骤不被损害。负责支持的程序员应只对那些与工作必要的部分系统享有访问权,并且确保改动已获得正式批准和同意。

     (3) 对操作系统改动的技术复审。定期的改动操作系统是有必要的,如为了安装一个新的软件版本或补丁。在改动后,应当对应用系统进行复审和测试,确保改动对操作或安全没有负面影响。

     (4) 对软件包改动的限制。在使用中应当尽量不要修改厂商提供的软件包。如果实在要修改,应当考虑以下几方面:①软件内置的控制和完整性步骤被损害的风险;②是否应当得到厂商的同意;③从厂商那里得到所需改动的程序更新的可能性;④将原来的软件保留,对该软件的副本进行改动。

     (5) 隐蔽通道和特洛伊程序。特洛伊程序被设计成以一种非法的、不易被注意的的形式来侵入系统。应考虑从以下方面进行控制:①只从声誉好的程序提供者处购买程序;②以源代码的形式购买程序,使得程序可以被检验;③使用经过安全评估的产品;④在操作使用前审查所有源码;⑤程序安装好后,对它的访问和修改要进行控制;⑥聘用经过安全考核的员工进行关键系统的管理。

     (6)程序中的出错和异常处理。正确输入的数据可能会由于处理错误或故意行为而出错,因此,程序的设计应当采取措施,以将导致完整性损失的风险降至最低。需要考虑的因素包括:①程序中用来执行对数据改动的加入与删除函数的使用情况和位置;②防止程序在错误指令下运行;③使用正确的程序进行处理失效的恢复,以保证程序正确地处理数据。

3.4 安全检测

  软件的安全检测方法通常包括:静态检测、动态检测、文档检查、接口安全性检测、出错处理检测、异常情况检测。

  (1) 静态检测方法和工具。静态检测指在程序没有运行的情况下,检查程序的正确性。静态检测工具不需要执行所测试的程序,它扫描所测试程序的上下文,对程序的数据流和控制流进行分析,然后给出测试报告。

  (2) 动态检测方法和工具。动态测试通过选择适当的测试用例,实际运行所测程序,比较实际运行结果和预期结果,以找出错误。动态检测需要在动态检测程序运行的情况下,执行所测试的程序,通过对程序运行时的内存、变量、内部寄存器等中间结果进行记录,来检测程序运行态的正确性,单步跟踪、设置断点是其基本的方法。

  (3) 文档检查。文档检查主要包括:①规格说明书中是否有安全性的需求定义;②概要设计说明书、详细设计说明书、技术白皮书中是否有对安全性的设计和描述;③概要设计说明书、详细设计说明书、技术白皮书中对安全性的描述是否和需求一致;④用户文档中是否提示了用户安全性相关事项。

  (4) 接口安全性检测。入口检测主要包括:①命令行输入的参数是任意的,尤其是setuid/setgid程序,一定要检查参数的有效性和合法性;②文件描述符的安全性:如文件权限读、写函数的安全性,标准输入、输出、出错的安全性;③文件内容的安全性:直接读取的文件,如果不被信任的用户能访问该文件或任何它的父目录,都是不可信任的;④所有的WEB输入都是不被信任的,都需要进行严格的有效性验证;⑤字符集问题:如果是新写代码,使用ISO
10646/Unicode,如果需要处理旧字符集,确保非法用户不能修改此字符集;⑥是否过滤可能被重复解释的 HTML/URI;⑦基于Web的应用程序,应该禁止HTTP的“GET”和“HEAD”函数,除非能限定他们只用于查询;⑧设置输入数据的超时和加载级别限制,特别是对于网络数据更应如此。

  出口检测主要包括:①最小化反馈信息,使得黑客不能获得详细信息;②反馈不要包含注释信息,特别是产生HTML 文件的WEB程序;③是否处理了阻塞或响应缓慢的输出情况;④是否控制了输出的数据格式(pringf系列函数问题);⑤控制输出的字符编码;⑥基于WEB的应用程序,不要运行用户访问Include文件和配置文件。

  (5) 出错处理检测。主要包括:①各种出错情况都被处理;②给用户的出错信息,不会泄漏程序信息的细节。

  (6) 异常情况检测。主要包括软件的各种异常情况是否都被处理、软件的异常情况是否会导致程序产生严重后果。

3.5 安全培训

  在软件开发整个过程中,都要对开发人员进行安全培训。

     (1) 对环境、网络、代码、文档等方面的管理培训。主要培养员工维护开发环境、网络、代码的安全意识,了解开发规范的安全要求。

     (2) 对配置管理的培训。使员工熟悉项目的配置管理工具、版本管理方法、变更管理方法等,对负责备份的人员进行备份方法、灾难恢复方法的培训,保证项目的正常进行。

     (3) 对安全编程的培训。包括:系统设计中的安全要素和可能出现的安全漏洞、编程中的常见安全问题、良好的编程习惯、进程的安全性、文件的安全性、动态链接库的安全性、指针的安全性、Socket
和网络通讯的安全性、避免缓冲区溢出、验证所有的输入、避免随意的输出信息、界面安全性、调用函数库的安全性。

     (4) 对安全性测试的培训。包括:在单元测试中测试代码的安全性、系统安全性测试的内容和方法、网络程序的安全性测试内容和方法、容错性和可靠性测试方法。

     (5) 对知识产权意识的培训。培养员工使用第三方资源的知识产权意识,避免在设计和开发中引入法律纠纷的隐患。

3.6 安全监理

  安全监理的主要作用是:检查和控制开发流程,确保开发流程中各项安全措施的遵守。安全监理应该由第三方担任,可以外包,也可以由公司的其他部门承担,不应由开发者担任这个角色。安全监理的内容主要包括如下5部分:①开发环境的安全性;②开发流程的安全性检查和评估;③开发各个环节的安全性措施是否被实施;④开发各个环节的安全性要求是否被遵守;⑤对出现的安全问题提出响应策略。

4 结束语


  电力系统信息安全防护有着整体性的特点,需要从产品、技术、管理等各个方面加以考虑,本文认为电力系统中应用安全是整个安全防护体系的重中之重,是各类自动化信息系统安全性的最直接体现,因此需要广泛了解并记录应用系统安全需求,评估一个应用程序在设计与开发阶段的安全风险、威胁,安全问题不是一个可有可无的“附属品”,需要在应用系统的整个生命周期内加以关注,确保应用系统上线之后可满足系统设计的各项性能指标,真正体现各应用系统的价值。

5 参考文献


  [1] 胡昌振,李贵涛. 面向21世纪网络安全防护.北京希望电子出版社,1999.

  [2] 陈伍军,吕至军. 一种软件系统运行安全保护方法,计算机工程,2005(16).

  [3] 周学广,刘艺.信息安全学,北京:机械工业出版社,2002.

  [4] Information Security Management BS 7799,1999.

资讯录入:admin    责任编辑:admin 
  • 上一篇资讯:

  • 下一篇资讯:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    不良信息
    举报中心
    机电之家设备管理网
    致力于机电设备维修与管理技术
    网络110
    报警服务
    服务热线:0571-87774297 传真:0571-87774298 电子邮件:donemi@hz.cn 服务 QQ:66821730
    机电之家(www.jdzj.com)旗下网站 杭州滨兴科技有限公司提供技术支持

    版权所有 Copyright © 机电之家--中国机电行业门户·设备维修与管理

    主办:杭州高新(滨江)机电一体化学会
    浙ICP备05041018号