还剩43页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
应用系统开发安全管理通则030326V3fd编号:PetroChina中国石油天然气股份有限公司应用系统开发安全管理通则BearingRoint毕悔版本号V3批阅人王巍规范引用的文件或者标准下列文件中的条款通过本标准的引用而成为本标准的条款凡是不注日期的引用文件其最新版本适用于本标准GB17859-1999计算机信息系统安全保护等级划分准则GB/T9387-1995信息处理系统开放系统互连基本参考模型607498:1989GA/T391-2002计算机信息系统安全等级保护管理要求ISO/IECTR13355信息技术安全管理指南NIST信息安全系列——美国国家标准技术院英国国家信息安全标准BS7799信息安全基础保护ITBaselineProtectionManualGermanyBearingPointConsulting内部信息安全标准RUSecure安全技术标准信息系统安全专家丛书CertificateInformationSystemsSecurityProfessional5术语与定义访问操纵accesscontrol一种安全保证手段,即信息系统的资源只能由被授权实体按授权方式进行访问,防止对资源的未授权使用应用系统applicationsystem认证authenticationa.验证用户、设备与其他实体的身份b.验证数据的完整性授权authorization给予权利,包含信息资源访问权的授予可用性availability数据或者资源的特性,被授权实体按要求能及时访问与使用数据或者资源缓冲器溢出bufferoverflow指通过往程序的缓冲区写超出其长度的内容,造成缓冲区的溢出,从而破坏程序的堆枝,使程序转而执行其它指令,以达到攻击的目的保密性confidentiality数据所具有的特性,即表示数据所达到的未提供或者未泄露给未授权的个人、过程或者其他实体的程度隐藏通道covertchannel可用来按照违反安全策略的方式传送!数据的传输信道完整性integrity在防止非授权用户修改或者使用资源与防止授权用户不正确地修改或者使用资源的情况下,信息系统中的数据与在原文档中的相同,并未遭受偶然或者恶意的修改或者破坏时所具的性质敏感信息sensitiveinformation由权威机构确定的务必受保护的信息,由于该信息的泄露、修改、破坏或者丢失都会对人或者事产生可预知的损害系统测试systemtesting用于确定系统的安全特征按设计要求实现的过程这一过程包含现场功能测试、渗透测试与验证后门代码trapdoor通常为测试或者查找故障而设置的一种隐藏的软件或者硬件机制,它能躲开计算机安全而且它能在非常规时间点或者无需常规检查的情况下进入程序特洛伊木马Trojanhorse一种表面无害的程序,它包含恶性逻辑程序,导致未授权地收集、伪造或者破坏数据,以此破坏计算机安全与完整性的进程验证verification将某一活动、处理过程或者产品与相应的要求或者规范相比较例将某•规范与安全策略模型相比较,或者者将目标代码与源代码相比较压力测试于确定系统的薄弱环节,确定系统在非正常条件卜.能够迅速恢复到正常的运行状态的能力应用系统开发总体原则应用系统的开发应遵循一系列的总体原则,以确保开发过程中的安全其中包含a)系统开发应从业务需求的角度出发,不得盲目追求系统的先进性而忽略了系统的有用性系统的开发是为了更好地满足业务上的需要,而不是技术上的需要b)开发的方法与管理务必规范化、合理化、制度化,从而确保开发的质量与进度c)应保证开发的进度并按时完成确保开发工作及时、有效且高质量的完成d)系统开发务必具有一定的前瞻性,符合主流系统的进展方向e)提高与加强开发人员的安全意识确保机密信息与关键技术不可能泄漏,特别是不可泄漏到竞争对手的手中,否则将会对公司的竞争力产生极大的影响0应充分利用现有的资源系统需求收集与分析阶段可行性研究分析关于应用系统开发项目应进行一定的可行性分析,以保证只有在确认具备了相当的资源与条件,同时有能力满足业务上的需求的情况下才能开展开发工作切忌盲目开发,否则既浪费资源,又浪费时间可行性研究宜从技术、需求面、投入与影响四个方面进行考虑技术可行性分析根据业务上提出的需求,从技术开发的角度分析现有的技术手段与技术能力是否能够实现业务上所要求的系统功能通常可从下列三个方面进行分析a)人员技术能力分析,指公司内的系统开发队伍或者外包的第三方开发公司是否具有足够技术与管理能力来完成系统开发的任务b)计算机软件与硬件分析,指公司现有的软件与硬件的性能是否足够满足开发相应的系统的要求c)管理能力分析,指现有的技术开发管理制度与管理流程是否成熟旦标准化,是否满足系统开发的要求需求可行性分析系统的开发来源于业务上的需求,因此需要对该需求进行可行性分析,以推断需求是否明确,是否符合实际,是否在一定的时间范围内能够实现投资可行性分析根据业务需求与技术手段的分析,确认实现系统开发所需的投资,并确认投资的数额是否在可操纵与可.承受的范围内影响可行性分析所谓的影响是指社会影响,比如系统开发是否符合法律法规上的要求,是否与有关的管理制度或者行业标准相抵触,是否符合人文或者道德上的约束等开发人员安全管理系统开发人员职责分配在系统开发的过程中,应明确不一致人员的身份与职责在系统开发过程中具体可分下列三种角色>项目负责人员确保在整个系统开发的各个阶段都实施了有关的安全措施,同时在整个系统开发的过程中负责整个项目的开发安全管理>系统开发人员根据业务需求确保开发的系统能够满足业务上的需求与相应的安全上的需求,同时满足系统质量上与进度上的要求>系统审核人员对整个开发的过程进行审核与监督,确保开发的质量与开发的安全开发人员授权a)应根据该员工在整个开发项目中所负责的开发内容授予其相应的权限与所应承担的责任b)开发人员务必负责其开发内容的保密性,不得私自将开发的有关信息泄漏出去,即使对家人或者开发团队中的其他开发人员也不得泄漏但开发人员有责任将开发的有关信息告诉项目的负责人员或者开发小组的负责人员c)以书面的方式将员工的权限与相应的责任提交给员工本人务必严格规定在为企业工作期间,所有与工作有关的开发成果的所属权都归企业所有d)应根据员工权限与责任的大小确认是否需要签署有关的保密协议e)应在日常工作中记录员工与开发有关的日志信息0员工一旦离职或者调动岗位应立即收回或者调整其相应的权限开发人员务必训练开发安全代码的能力a)在整个开发的过程中务必完整持续地进行代码错误处理所规定的流程b)错误问题报告应力求通俗易懂,不应在其中包含任何系统细节问题c)应对重要的敏感信息进行加密保护d)应使用一些相对复杂的加密与密钥生成机制e)应单独编写安全性设计说明概要分离系统开发与运作保护管理层务必确保应用系统的开发与运作管理从组织人事与权限职责上分开a)信息技术人员能够现场修复或者更换偶然或者恶意的数据与软件问题b)测试代码中往往包含调试或者者查错代码,大大增加了主机系统的性能负担c)开发人员不应具有很高的权限,否则将在系统运行中产生很大的风险建立系统开发安全需求分析报告a)安全需求计划应能够达到期望的安全水平其中包含了成本的预估,完成各个安全有关流程所需的时间b)所有关于应用系统的更新或者改进都务必基于业务需求,并有业务事件支持这里的业务需求不仅仅包含了系统的功能、性能、开发费用、开发周期等内容应明确系统的安全要求应用系统的任何一次改进或者更新都应与该业务系统的所有者密切有关c)开发安全需求分析计划应由开发项目经理与公司内部的安全小组共同商议决定d)应确保每一个应用系统的用户都意识到系统的更新或者改进都与其自身密切有关,所有的更新或者改动建议都务必基于业务需求,而不是基于所谓的“信息技术的要求”e)系统的每一次更新或者改进都务必认真对待,务必进行全面的需求定义、需求分析与测试评估,以保证不可能对业务造成任何不良影响f)业务需求是系统更新与改动的基础,因此务必清晰明确地定义业务的需求,禁止在业务需求未经业务部门领导与要紧负责人员认可的情况下,盲目地进行开发工作8系统设计阶段的安全规范单点访问操纵且无后门任何用户假如希望访问应用系统中的某一部分,则务必通过统一且唯一的认证授权方式及流程人员职责与权限的定义由于不是所有的人员关于某一个应用系统都具有同样的访问或者使用权限,因此系统务必具有基于人员职责的用户授权管理,以确保每个用户能够访问到其权限范围内的应用系统部分同时应确保每个用户无法访问其权限范围以外的应用系统部分确保敏感系统的安全性将应用系统中敏感的信息储存在服务器端以进行集中的加密的安全管理,确保客户端系统本身并不能存储任何敏感的数据确保访问层的安全性应用系统不仅仅要确保系统模块本身的安全性,同时还应考虑模块与模块之间通讯的安全性这种模块与模块之间通讯的安全性不仅仅包含了应用系统内部模块之间通讯的安全,也包含了应用系统内部模块与外部模块之间的通讯安全性,如主机与客户端之间通讯的安全性、服务器与服务器间通讯的安全性,与木地系统与异地系统之间通讯的安全性中国石油天然股份有限公司应建立可根据情况自由设置的FI志管理机制,也就是说FI志记录的范围与全面程度能够根据需求自行定制,旦能够实现在应用系统的使用过程中进行日志的定制与记录保留所有与系统开发有关的程序库的更新审核记录
8.6新系统的容量规划容量规划是指确定系统的总体规模、性能与系统弹性容量规划的具体内容可能是完全不一致的,但通常应考虑下列方面a)系统的预期存储容量与在给定的周期中获取生成与存储的数据量b)在线进程的数量与估计可能的占用资料c)系统与网络的响应时间与性能,即端对端系统d)系统弹性要求与设计使川率(峰值,槽值与平均值等)c)安全措施如加密解密数据对系统的影响f)24x7运作要求与可同意的系统宕机次数(保护或者者设备更新导致的务必性宕机)规划容量的时候关于系统使用的信息熟悉的越多越好近来,由于互联网站的使用以指数形式增长,容量规划的变动效果不是非常显著,有的时候甚至毫无用处原因在于很难估计实际的负教在容量估计的时候应尽量将情况设想得复杂一些系统开发阶段安全规范系统开发语言程序员可使用很多指导规范来防止应用程序中的普通安全问题其中许多能够应用于任何一种编程语言,但某些是针对特定的语言的特定语言的指导规范要紧集中在PerlJava与C/C++语言大多数情况下,通常的错误能够避免而这些本能够避免的错误常常会导致很多安全漏洞,从而威胁佶息的保密性、完整性与可用性.
1.1通用规范.
1.
1.1输入验证在客户机/服务器环境下,进行服务端的验证而不是客户端的验证(比如基于Javascript的验证)通过在客户端与服务器之间放置一个代理服务器,能够很容易绕过客户端验证有了代理服务器,攻击者能够在数据被客户端“验证”后修改数据(与uman-in-the-middlew攻击类似)在实际的校验中,输入校验首先定义一个有效(可同意)的字符集,然后检查每个数据的字符是否在有效范围内假如输入中包含无效的字符,应用程序应返回错误页面并说明输入中包含无效字符这样进行验证的原因是定义无效的字符集比较困难,同时一些不应有效的字符通常不可能被指出边界检查(比如字符串的最大长度)应在字符有效性检查往常进行边界分析能够防止大多数缓冲区溢出漏洞从环境变量获得的数据也需要进行验证同时避免在环境变量中存放敏感数据(比如密码)某些Unix系统(比如FreeBSD)包含ps命令,能够让用户看到任何当前进程的环境变量,这常常会暴露保密性信息
9.
1.
1.2SQL语句假如应用程序需要连接后端数据库,不得在代码中使用SQL语句使用程序以外的嵌入在代码中的SQL语句调用特别危险,难以防止攻击者使用输入域或者者配置文件(由应用程序载入)来执行嵌入式的SQL攻击而输入验证有助于缓解这种风险
9.
1.
1.3注释代码(commentedcode)当应用程序在实际环境中开始应用时,应删除所有的注释代码注释代码是用来调试或者者测试的,它们不是最终应用程序的一部分不管如何应在实际的环境中删除它们来避免意外的执行(通常注释标识被删除后就无法激活休眠的代码,但还是存在可能性的,因此应执行这项工作)
9.
1.
1.4错误消息所有对用户显示的错误信息都不应暴露任何关于系统、网络或者应用程序的敏感信息假如可能的话,应使用包含编号的通常的错误信息,这种信息只有开发者与/或者支持小组才能懂得通常的错误信息的例子是“发生了错误(代码1234)请您与系统保护部门联系J
9.
1.
1.5统一资源定位(URL)内容关于web应用,不要在URL上暴露任何重要信息,比如密码、服务器名称、IP地址或者者文件系统路径(暴露了web服务器的目录结构)这些信息能够在攻击时使用比如下面就是一个不安全的URL
9.
1.
1.6设置PATH变量设置PATH为一个已知的值,而不仅仅是使用启动时的缺省值攻击者能够在攻击应用程序时使用PATH变量,比如试图执行一个任意的程序这些也能够应用于大多数其他的语言
9.
1.2Perl语言多年以来,Perl己经成为用于系统管理与WebCGI开发的功能最强的编程语言之一(几乎能够使用PcH实现任何功能)但其扩展应用,即作为Internet上CGI的开发工具,使得它经常成为web服务器上的攻击目标另外,大多数CGI脚本有着比通常用户更高的权限,导致它更容易受攻击下面列举了一些开发者(特别是CGI程序员)能够使用的主动的预防性的措施来增强Perl代码的整体安全性(请注意这不是web服务器CGI脚本安全性的指导原则)
1.
2.1Taint验证Perl版本
5.x包含一个叫做TaintChecking的数据验证措施假如起用该功能,它就不同意通过用户输入(任何程序外的输入)来操纵其他的外部程序(比如通过管道将数据导入另一个程序执行))通常而言,程序员不能信任输入脚本与程序的数据(叫做左“〃数据),由于无法保证它不可能产生危害(有意或者者无意的)oTaint验证能够通过在命令行参数加入“-T”来开启比如能够Perl脚本的第一行这样加入“-T”#!usr/bin/perl5-TTainted数据包含命令行参数、环境变量与来自文件的数据引用tainted数据的变量也成为tainted数据假如脚本试图通过不安全的方式来使用tainted数据会产牛.一个致命错误(对这种情况称之“不安全的依靠”(Insecuredependency)或者者其他的说法)启用tainted验证在有些情况下会导致脚本停止运行,常常是由于Perl解释器要求所有脚本引用的外部程序的完全路径务必在PATH环境变量中列出,同时PATH中包含的每个目录除了目录的所有者及相应的所有者用户组外无法修改Taint验证关于环境比较敏感,这就可能会导致大多数程序员不愿使用它,但是只要可能就应使用taint验证,特别是代码执行其他程序功能时(比如在CGI脚本的情况下)
9.
1.
2.2安全模块假如不但输入数据不可信而且实际的代码也不可信会产生什么情况?比如用户从网站上下载了一个ActiveX控件,而它实际是一个特洛伊木马(Trojanhorse)o这种情况下taint验证就不起作用安全模块让程序员能够在Perl脚本中将不一致的代码模块与安全对象相联系每个安全对象关于运行的每块代码建立了一个限制的环境这与chroot在一个进程中只能在整体目录结构的一个子目录中运行类似而saft对象限制perl代码只能在perl包结构的某些特定包中运行如何使用安全模式超出了本文的范围,但程序员应在任何时候使用这一功能
1.
2.3警告参数-w使用-w参数能够在Perl解释脚本时显示所有的警告信息警告能够对下列情况产生只使用「一次的变量或者者完全没有使用过的变量,未定义的文件句柄,未关闭的文件句柄,或者将非数值变量传递到数据变量该功能不是针对安全处理的,但是有助于调试直接或者者间接对安全有危害的错误通常推荐总是使用・w参数可在taint验证时在第一行这样使用-w参数#!usr/bin/perl5-Tw
9.
1.3Java语言自从1995年公布以来,Java成为简单或者者复杂网络应用的有效编程语言它在设计时充分考虑了安全问题,因此它具有的限制特征有收集不再使用的内存碎片的垃圾收集器,严格的“sandbox”安全模型,与在特定主机上限制应用程序的活动的安全管理器下列为使用中的有关的规范
9.
1.
3.1不应在标准输出上打印消息在实际的Internet系统中避免使用System.out.println或者者Systcm.crr.println打印日志与错误消息,原因是当消息打印到标准输出时,无法立即确定消息发生的地点,且有可能将敏感信息透露给攻击者
9.
1.
3.2封装Java中,假如没有使用访问标识符accessmodifierprivateprotected或者public来声明类、方法与属性,那么它的默认访问范围是包,同时同一包中的所有类都能访问它务必记住尽管包有封装功能,但它只有在每部分加载到包的代码都由授权用户操纵时才起作用恶意的用户能够加入他们自己的类,从而关于包中的所有类、方法与属性都有完全的访问权限Java的政策文件支持两种操纵包访问权限的前缀accessClassInPackagedefineClassInPackage所有标准库中的类都默认是能够公共访问的除了由“sun”开头的类为了保证一个包的安全性,务必修改${JAVAHOME}/jre/lib/security文件夹中的java.security文件该文件中的重要行是package.access=sun.尽管该方法有作用,但仍存在问题比如程序员在java.securily文件中定义包的安全时务必十分小心在package.access中的值是字符型的,“sun.”将保护“sun.lools”等包但是不可能对“sun”或者者sunshine”等包进行保护另一个方法是使用JAR密封sealingJARJavaARchive文件是一些类的打包压缩格式的文件,与常用的ZIP格式类似假如从一个密封sealing的JAR文件中加载一个类,随后同一个包的类只能从该JAR文件加载为了起用密封sealing务必在建立JAR文件时这样设置密封seal参数Sealed:true使用密封sealing的JAR文件比权限pennission设置更好,由于它不需要安装安全管理器securitymanagero
9.
1.
3.3政策文件Java内建的安全管理器是对应用程序进行限制的一个方便的工具很多情况下需要编制一个定制的安全管理器,JDK
1.2及以后的版本提供了报送设置的方法取不是实施它们这是通过Java政策文件实现的能够用政策文件以相对模块化的方式操纵文件系统与网络的访问比如能够限制应用程序只能修改名字是foo的文件宜使用Java政策文件与安全管理器而不是重新创建一个类或者者系统来限制对主机与网络的访问
9.
1.4C/C++语言C本质上是不安全的编程语言比如假如不慎重使用的话,其大多数标准的字符用库函数有可能被用来进行缓冲区攻击或者者格式字符串攻击但是,由于其灵活性、快速与相对容易掌握,它是一个广泛使用的编程语言下面是针对开发安全的C语言程序的一些规范
1.
4.1缓冲区溢出避免使用不执行边界检查的字符串函数,由于它们可能被用来进行缓冲区溢出攻击下面是应避免使用的函数同时,也列出了每个函数相应的比较安全的替换方式不使用strcpy使用strncpy不使用strcat使用stmcat不使用sprintf使用snprintR不使用gets使用fgets在上面的前三个中函数中,每个替代函数的“n”表示了使用的缓冲区的大小最后一个函数的“f”,表示格式,它同意用户指定期望的输入的格式这些替换方程强制程序员定义使用的缓冲区的尺寸与确定输入的类型
9.
1.
4.2格式化字符串攻击FormatStringAttack该类攻击往往与缓冲区溢出有关,由于它们往往要紧利用了某些函数的假设比如sprimf与vsprintf假设缓冲区的长度是无限的然而即使使用snprintf替换sprintf也无法完全保护程序不受格式化字符串的攻击这些攻击通过直接将格式说明符formatspecifiers%d%s%n等传递到输出函数接收缓冲区来进行比如,下列的代码就是不安全的snprintfbuffersizeofbufferstring这种情况下,能够在字符串中插入格式说明符来操纵内存的栈,来写入攻击者的数据(这些数据中包含小的程序代码,并可由处理器接着执行)更多关于这些攻击的具体内容请见资源章节对以上的例子建议使用下面的代码snprintfbuffersizeofbuffer3s〃,string进行格式字符串攻击不太容易首先攻击者务必能获得内存栈的内容情况(从应用导出或者者使用调试器),然后务必明白如何精确访问特定的内存空间来操纵栈中的变量
9.
1.
4.3执行外部程序推荐使用exec函数而不是system函数来执行外部程序这是由于system()接收整个命令行的随机的缓冲区来执行程序snprintfbuffersizeofbufferHetnacs%sfilename;systembuffer;在以上的例子中,能够通过使用分号利用文件名变量在sehll中插入额外的命令(比如文件名能够是/etc/hosts;rm*这将在显示/etc/hosts目录文件的同时,删除目录中的所有文件)而exec()函数只保证第一个参数被执行execlusi7bin/emacsusr/bin/emacs”filenameNULL;上面的例子保证文件名仅仅作为一个参数输入Emacs工具,同样它在Emacs命令中使用完全的路径而不是使用能够被攻击者利用的PATH环境变量
9.
1.
4.4竞争条件racecondition进程需要访问资源时(不管是磁盘、内存或者是文件)通常需要执行两个步骤
(1)首先测试资源是否空闲可用2假如可用,就访问该资源,否则它等到资源不再使用为止再去访问它当另一个进程在步骤1与2之间想要访问同一个资源时将出现问题,导致不可预测的结果进程可能会被锁定,或者者一个进程籍此获得了另一个进程的较大的权限而导致安全问题攻击要紧集中在有较大权限的程序上称之setuid程序竞争条件攻击通常利用程序执行时能够访问到的资源另外权限低的程序也存在安全风险,由于攻击者可能会等待有较高权限的用户执行那个程序比如root然后进行攻击下面的建议有助于缓解竞争条件racecondition攻击在进行文件操作时,利用那些使用文件描述符的函数而不使用那些使用文件路径的函数比如使用fdopen而不要使用fopeno文件描述符使得恶意的用户在文件打开时或者是在原始的进程对文件进行操作前,无法使用文件连接符号式的或者是物理的来改变文件在写文件甚至在读文件时宜使用fcntl与flock函数来对文件加锁,这样它们就不能被其他进程访问它几乎能够建立原子级的操作应慎重操纵临时文件,由于它往往会导致竞争条件攻击
1.
4.5检验有效的返回值检验有效的返回值非常重要一个例子是旧的/bin/login的实现中不检验错误的返回值,导致当它找不到/etc/passwd文件时返回root的访问权限假如该文件损坏了则这种情况是合理的;但假如该文件存在只是无法访问,那么这就是一个大问题
9.2系统开发安全有关工具管理有许多方法来确保代码符合一定的安全级别正如前面指出的,最好的方法之一是让尽可能多的人来检查代码(而不是在QA环境中实际进行白箱或者者黑箱测试)然而,有的时候代码在开始实际环境的应用前往往没有足够的时间,同时即使检查代码也会漏掉一些不易发现的错误这些错误可能会对整个系统导致重大的安全问题因此(与其他的原因),使用源码分析工具(SourceCodeAnalysisTool(SCAT))来自动进行某些检查过程很有帮助本文介绍了一些这方面的工具每个工具都用同样的测试工具来检验,这些测试工具包含C与Java的代码段,而这些代码段存在潜在的安全错误我们比较了每个工具的测试结果,同时认真检查了下列的属性a)灵活性~有多种选项并能扫描多种类型的代码的工具得分会较高b)正确性一要紧目标是发现正确的安全问题,同时不可能出现大量的误报信息,或者者更糟的是没有发现真正的错误信息c)容易使用一大多数情况下,程序员只需将工具指定到特定的代码上然后选择“扫描”除非特别需要,程序员通常只做抽样检查,而无需开发复杂的测试机制d)孜美-扫描结果应以一种容易懂得的格式来显示,同时最好同时提示修改每个问题的方法,并附加理由每个工具在解析代码上的速度能够忽略不计,因此没有进行比较(尽管这并不包含配置扫描的时间,而MOPS在这方面相关于其它工具需要更多的时间)另外这些工具都能够免费获得,甚至能够获得它们的源代码,因此不需考虑它们的成木工具一PScanPscan是一个有针对性的扫描程序,要紧用于发现C程序中的缓冲区溢出与格式化字符串攻击该程序检查所有用到标准C程序库中的printf函数sprintf(buffervariable);printfbuffervariable;随着中国石油天然气股份有限公司(下列简称“中国石油”)信息化建设的稳步推进,信息安全日益受到中国石油的广泛关注,加强信息安全的管理与制度无疑成为信息化建设得以顺利实施的重要保障中国石油需要建立统一的信息安全管理政策与标准,并在集团内统一推广、实施本规范是根据中国石油信息安全的现状,参照国际、国内与行业有关技术标准及规范,结合中国石油自身的应用特点,制定的适合于中国石油信息安全的标准与规范目标在于通过在中国石油范围内建立信息安全有关标准与规范,提高中国石油信息安全的技术与管理能力信息技术安全总体框架如下1)整体信息技术安全架构从逻辑上共分为7个部分,分别为物理环境、硬件设备、网络、操作系统、数据与文档、应用系统与通用安全管理标准图中带阴影的方框中带书名号的为单独成册的部分,共有13本《规范》与I本《通用标准》2)关于13个《规范》中具有一定共性的内容我们整理出了7个《标准》横向贯穿整个架构,这7个《标准》的组合也根据了信息安全生命周期的理论模型每个《标准》都会对所有的《规范》中有关涉及到的内容产生指导作用,但每个《标准》应用在不一致的《规范》中又会有相应不一致的具体的内容我们在行文上将这7个标准组合成一本《通用安全管理标准》单独成册3)全文以信息安全生命周期的方法论作为基本指导,《规范》与《标准》的内容基本都根据预防-)保护一一〉检测跟踪一一〉响应恢复的理论基础行文本通则讨论了在企业内部自行开发一套应用系统或者外包开发所务必考虑到的安全问题开发应用关于这些语句在缓冲区溢出与格式化字符串攻击中如何被利用能够查阅有关的c与C++文档Pscan的一个不足是不能发现由于越界检查不充分而引起的常规性缓冲区溢出但Pscan关于缓冲区溢出与格式化字符串攻击的定位还是相当精准与快速的Pscan程序相对简单,它只将结果返回标准输出,当然也能够将其输出到文件,同时除了说明程序员应如何修正错误以外,不给出语句为什么出错等类似信息该工具一个显著的特点是能够同时扫描多个文件总体而言Pscan程序相对简单,易于使用,同时针对性很强,但是由于它能够适用的范围过于狭窄因此通常不推荐其在大型商也应用中使用,而只是检查一些相对简单的程序片断工具二FlawfinderFlawflndcr是一个分析C程序安全隐患的静态分析工具与Pscan类似,该程序能够发现很多种类型的错误,除了printf与标准的字符串函数,它还能够发现竞争条件与系统调用Flawfinder相比较Pscan它返回的错误信息要丰富很多,同时也更加全面而这关于程序员来说非常重要FlawEnder甚至能够对程序中的弱点进行分类,比如buffer弱点、格式弱点、shell弱点等Flawoflndcr是一个相当出色的C程序检查工具,速度会,界面友好,返回信息丰富,安装使用相对简单该工具是检查不一致规模的应用程序的首选,唯一不足的是它只能用于C程序的检查管理运作程序库我们通常将用于系统开发的软件工具与开发平台称之为运作程序,因此为「降低计算机程序被破坏的可能性,应对运作程序库的访问进行严格的操纵a)严格的管理在开发设备上的存放开发运作程序的目录假如开发运作程序没有很好的保护,则系统及其设置可能遭到未经授权的访问,并造成系统的安全性可靠性大大下降b)只有指定的人员如程序库管理员通过适当的管理授权后,才能够访问运作程序库,对运作程序库的访问务必结合严格的访问操纵技术手段与双重访问操纵机制
3.
1.1严格的访问操纵能够通过下列规定实现:a)严格管理开发部门所在区域的保安管理,防止未经授权的人进入开发区域b)严格管理开发用途的计算机使用,只有指定的人员才能够访问开发用的计算机设备c)严格管理开发运作系统的认证管理,建立严格的基于人员职责的授权等级制度,用口令或者其它身份识别技术确认访问者身份
3.
1.2建立双重访问操纵机制双重访问操纵机制就是对运作程序库的管理需经两个人同时进行认证后才可通过的方式比如对运作程序库进行更换或者删除需要两个人进行口令认证,系统才同意进行以上操作需要进行认证的两个人彼此不明白对方的认证口令或者步骤因此该认证过程务必两个人同时在场才可进行操作管理源程序库源程序包含了系统及其操纵如何实现的细节,为修改系统提供了很好的切入点,比如设置逻辑炸弹旦假如缺少源程序代码会使得今后应用系统的保护工作十分困难甚至无法完成因此为了降低计算机程序被破坏的可能性,应对源程序库的访问进行严格的操纵a)严格管理在开发设备上的存放源程序的目录假如源程序没有很好的保护,则系统及其设置可能会遭到未经授权的访问,并造成系统的安全性可靠性大大下降b)只有指定的人员如程序库管理员通过适当的管理授权后才能够访问源程序库,对源程序库的访问务必结合进行严格的访问操纵技术手段与双重访问操纵机制c)各项应用均应指定相应的管理员d)信息技术支持人员(非开发人员)不应自由访问源程序库e)源程序库与运作程序库宜分开存放同时分开管理0源程序库与运行的应用系统在分开存放且分开管理g)源程序库的更新与向程序员公布的源程序应由指定的管理员根据一定的授权进行,不得私自进行更新或者发放h)应储存所有对源程序库进行访问读取或者修改的日志记录,以便日后审核在软件开发过程变更管理a)系统容易受到未经授权的变更的影响,即使是完全授权的更换也可能存在破坏性的影响,存在数据完整性的缺失、应用系统的不可用与机密信息的泄漏的风险为了使信息系统的缺失降至最小,组织应对更换进行严格的操纵,即在系统开发的每一个阶段(可行性研究、需求分析、设计、编码、测试、培训等)的每一个更换实施前务必通过组织的评审与授权b)关于敏感的应用系统的更换应由另一人员进行检查,为了有效的进行操纵,组织应建立更换操纵审批程序,对更换的申请、评审、测试、批准、更换的计划的提出与实施提出明确要求并严格的实施,确保安全性与操纵程序不被损害,程序设计人员应只能访问他们工作所必需的部分,确保任何的改动都应通过审批的c)更换的程序宜如下>清晰确认所有需要更换的应用系统、信息、数据库与有关的硬件设备>清晰确认更换的原因(业务上的具体流程与具体的需求或者开发上的需求)>由授权的用户提交更换申请>保留有关的授权登记记录>在正式实施之前,更换的方案务必通过评审并通过正式的批准>确保授权的用户在实施之前确认并同意更换的内容>确保在实施的过程中,尽量减少对现行的业务运作系统的影响>确保建立的文件系统在完成各项更换时得到修改,旧文件被很好的归档或者处置>保证所有的应用系统升级的版本操纵确保对所有的更换请求进行审核跟踪>确保用户使用手册作相应的必要的更换>确保更换的实施选择了适当的时机,以确保更换的实施不可能干扰正常的业务运作开发版本管理操纵程序清单源程序有关信息能够帮助确认系统问题的根源,同时一旦掌握了系统源程序有关信息能够清晰地熟悉系统的运行逻辑与可能的薄弱点,对系统的安全有很大的影响a)在任何时候关于程序清单务必进行严格的操纵同时及时地进行更新b)对应用系统开发源程序的打印资料、电子版本或者者是有关的报告都务必进行操纵,纸质的文件应储存在一个安全的环境下,如保险柜等电子文档则应进行一定的加密版本升级操纵a)应川系统软件开发版本升级申请当软件的版本由于更新、修改等操作需要升级时务必先向有关负责人员提交申请b)应用系统软件版本升级测试对升级的应用系统进行测试,确认系统的各类安全特性c)应用系统软件版本审批对应用系统的版本的升级,应确认当前的版本为最新的版本,旧的版本应进行归档,不得随意丢弃或者删除d)应用系统软件版本升级计划制定有关的升级计划,确保将系统升级对业务的影响降至最低c)应用系统软件版本升级实施版本变更操纵a)版本变更应提出申请,详见194“软件开发过程变更管理规范”b)应使用软件加锁技术防止不一致版本相互覆盖的情况c)当版本变更时应在更新的版本中记录变更的全面描述d)应提供版本的合并功能e)版本的更换应只同意指定的人员进行操作D应记录所有的版本变更的日志,其中包含更换H期、更换前版本号、更换后版本号、更换人、审批人等信息开发日志审核管理开发日志的定期审计与人员权限的定期审核
9.
6.
1.1开发日志定期审计a)系统开发中的有关日志文件应根据开发周期定期审核
9.
6.
1.2开发人员权限定期审计b)开发人员权限定期(3个月)审核一次;
9.7防御后门代码或者隐藏通道后门代码与隐藏通道介绍a)后门代码,要紧指由攻击者在未经许可的情况卜,植入计算机系统的程序利用调用环境的权利进行与事实上际用途无关的拷贝、滥用或者破坏数据,要紧有三种类型的后门程序>调试后门一一为了方便调试而设置的机关,系统调试后未能及时消除>保护后门一一为了方便远程保护所设置的后门,被黑客恶意利用>恶意后门一一由设计者有意设置的机关,用来监视用户的秘密甚至与破坏应用系统>特洛伊木马也属于后门的一种,它是黑客攻击计算机的重要手段之一特洛伊木马能够放置在正常的文件或者程序中,当用户打开或者执行它的时候,它就会自动安装在计算机上,使得某些人通过Internet访问该计算机成为可能,使计算机处于一种非常危险的状态b)隐藏通道,要紧指在计算机安全技术中,一种同意某个进程在违反安全规则的状态下传递信息的通道隐藏通道能够通过某些直接的或者间接的方法暴露信息现在使用的应用系统中大多数都包含一定程度的隐藏通道,他们当中许多是无害的,像特殊的组合健能够给出软件制作者的信息,但也有些是有害的,因此务必进行相应的防范防御后门代码与隐藏通道的有关办法a)应从信誉好的软件供应商那里购买有关的软件或者程序b)应检验与验证源程序与源代码c)在系统正式投入使用之前应进行评估,如一些行业的标准认证评估(产品安全认证、CMM认证等)d)在系统正式投入使用后,应严格管理源代码的访问、升级与修改e)应使用可靠的开发人员操作密钥系统0不应随便从一些不知名的网站上下载软件g)不应过于相信别人,不得随便安装别人给的软件,特别是不得随便打开电子邮件中的附件,一些可执行文件务必先进行病毒及恶意代码的扫描h)安装并正确地使用有关的特洛伊木马的监测与查杀程序,现在大多数主流的杀病毒软件也带有该功能,目前比较流行的专门用于查杀特洛伊木马的程序要紧有Lockdown2000TheCleanerTrojianDefenceSuit等10系统测试阶段安全规范应用系统的安全性检测设计全面的测试计划、测试范围、测试方法与测试工具对软硬件的测试务必事先有正式的测试计划测试计划的一个关键点是测试计划文档不仅要包含测试的内容同时还需要包含测试预期的结果同时测试计划还需要覆盖除此之外的测试内容与结果,使之更加全面测试完成以后,需要对测试结果进行评估,确定其结果是否达到了预定的标准假如达不到标准,则应对测试结果划分一个错误严重性等级,杳则无法对结果进行客观评论测试种类测试的过程需要用户的参与以确保系统达到了业务上的需求与用户使用的需求因此要紧分为系统测试与用户同意测试
1.
2.1系统测试系统测试有很多种定义通常而言系统测试能够定义为在人工环境下,测试系统是否能够达到预期的要求的测试方法从系统开发的角度而言,系统测试是指由系统开发人员(程序员与其它技术人员)进行的,旨在确保系统各个模块能够正常运行(模块测试)与系统整体能够正常运行的测试过程系统测试务必确保系统的每一个功能都能够正确运行,并对所有的程序错误逐一分析同时还测试系统的模块与模块之间、功能与功能之间的接口的正确性需要注意的是系统测试不对系统总体的功能负责,而只需要达到测试计划中规定的测试准则即可a)系统负载测试,负载表示对系统的要求,通常包含下列因素>程序与数据的总体存储容量>并发运行的应用程序数量并发用户的数量,峰值,槽值与平均值外设数量确定硬件的规模比较复杂,在确定了上述因素以后,还应确定其它类似响应时间等因素b)压力测试压力测试用于确定系统的薄弱环节,确定系统在非正常条件下能够迅速恢复到正常的运行状态的能力,类似的非正常条件可能是在系统宕机、网络故障或者者高峰载荷下的数据处理等
10.
1.
2.2用户同意测试一UAT用户同意测试是用户对新系统或者者系统改动正式验收测试的过程,是任何系统开发项目都需要经历的重要阶段,同时需要终端用户的大力参与在现实中,UAT需要有周密详尽与准确的测试计划,特别是验收的标准务必非常全面UAT的最后部分往往包含并行运行,以比较开放系统与原有系统a)尽管系统的用户同意测试计划可能随着系统的不一致而不一致,测试务必涵盖所有今后实际运行中可能发生的事件测试计划通常能够在系统开发前制定的用户需求说明书的基础上制订b)对任何系统而言,关于出现的问题务必要明确要对这些问题做出什么应对措施与谁来做这些应对措施,比如用户、项目团队、供应商或者者是咨询顾问等所有可能的项目参与方c)为了更好地应对测试过程中可能出现问题,最终用户与项目团队务必协商制定“错误严重程度”的范围它的取值范围从1到6分别表示从业务/商业影响角度评估在系统测试过程中发现问题下文是一个成功应用的例子,“1”表示最严重的错误,而6则表示最轻微的影响“致命问题”——假如该程度错误发生,则测试不能继续“重大问题”一一测试能够继续,但是系统不能上线“要紧问题”一一测试能够继续,但是假如不解决该问题,则系统上线后可能对业务流程有严重破坏系统的安全性考虑就好像建设楼房一样,拥有越牢固的地基楼房越是稳固,因此假如在应用系统的开发阶段打好坚实的安全基础,那么以后的日常保护工作就会很轻松下列我们要紧从系统开发的各个阶段入手,阐述在标准的开发流程的各个阶段中所应注意的安全性考虑本规范由中国石油天然气股份有限公司公布本规范由中国石油天然气股份有限公司科技与信息管理部归口管懂得释起草部门中国石油制定信息安全政策与标准项目组“通常性问题”一除了这些问题会对既定的业务流程有一些轻微偏离外,测试能够继续,同时系统也能够上线“次要问题”一一能够继续测试与上线,但这些问题务必修正,同时这些问题对业务流程没有或者者很少有影响“粉饰性问题”一一类似颜色,字体等问题,假如这些问题关于业务需求而言特别重要,则需要将这些问题提高到较高层次系统的用户在征得主管项目的高层领导意见的前提下,务必就每类错误需要采取的行动与各自需要承担的责任等问题取得一致比如,能够要求马上解决严重程度为1的问题,并停止所有测试计划直到该层次的问题解决注意事项为避免类似分级问题的风险,在测试规划中宜给出每一类问题的例子,以避免对问题分级出现根本性的不一致当有不一致的时候应预先的准备d)最终用户与系统开发上务必就每一类错误的数量有一个上限注意有些情况下用户可能会有条件同意这些条件可能增加了工作范围在这种情况下与所有对系统的修正都需要非常严格的用户同意测试与必要的回归测试
10.
1.3在测试的过程中全面描述每个与测试方案有关的测试步骤与测试数据将所有的测试数据进行整理归档,将出错的记录进行分析,确认问题产生的原因并编写问题报告操纵测试环境操纵系统测试环境与实际工作环境应隔离的进行操纵处理,否则未经确认的软件修改会导致出现无法预料的问题工作人员在两个环境里切换,容易操作失误,引起不必要的烦恼>开发与系统测试同时进行容易导致对系统状态的错误估计为测试使用真实的数据测试的数据通常情况下是虚构的,但是有的时候候需要使用实际的操作或者运作的数据,当该数据含有企业敏感信息的时候,假如不加以操纵,会造成数据的泄漏当处于测试目的而使用真实的敏感的数据时,能够使用下列措施保护测试数据的安全a)对测试的系统进行严格的访问操纵只同意小部分的测试人员进行测试且测试的人员应签订安全保密协议b)每一次将真实的运作信息复制到测试系统时均需要一个单独的授权过程c)测试完成后,应立马上有关数据从测试的应用系统中删除d)记录下测试数据的复制、使用与删除的情况,以便于审查追踪在软件转移至生产环境前进行测试在软件程序上线投入使用之前,务必采取切实的措施保证这些软件同意了足够的测试与记录否则就有可能导致非常严重的问题,甚至导致企业的日常运营中止务必牢固树立类似的观点应用系统安全质量鉴定目前国际上公认的开发质量验证标准要紧有两种,能够根据这两种标准确认系统是否已经达到了这两种标准的要求a)ISO9000认证体系b)软件开发能力成熟度模型(CMM)系统培训及文档阶段安全规范新系统的培训a)对所有的用户与技术人员提供关于新系统功能与操作方面的培训务必保证所有的技术与业务用户同意足够的关于新系统或者者系统改进的培训b)培训应有侧重,而不是面面俱到、人人俱到c)关于应用系统的安全性方面的培训应摆在十分重要的位置撰写新系统与系统改进的文档假如缺乏足够的文档,当系统发生问题的时候,只能凭经验解决,而有可能会错上加错同样文档的不完整,不及时更新也会对系统的保护能力造成致命的影响a)所有新系统与系统改进都务必有充分的最新的文档支持,假如文档没有具备则系统不能上线b)务必保证新系统与系统改进有详实的文档不可由于资源与预算的限制,而导致文档不充分或者者完全没有是不同意发生的情况应用系统开发外包安全操纵假如关于外包(Outsourcing)应用系统开发过程缺乏有效的安全操纵,组织就会面临很多的风险,比如应用系统本身的质量问题、应用系统本身隐藏了特洛伊木马或者隐藏通道等因此组织务必对开发外包进行一定的管理确保外包的安全,建议采取下列的操纵措施a)应选择一个信誉与质量保证能力卓著的软件开发商来为自己开发软件比如开发商应通过了IS09001质量管理体系认证或者软件成熟度CMM等级b)应与外包的供应商签订商务或者技术合同或者协议,明确软件的质量、知识产权与安全要求,与软件本身的安全功能与开发过程的安全操纵要求c)应与外包的供应商确定软件开发后的使用许可、代码的所有权与有关知识产权的归属问题d)开放商应出具所开发的应用系统的质量证明与完成工作的精确性e)应在系统正式投入使用之前认真测试代码中是否包含了特洛伊木马程序或者隐藏通道附录1参考文献【国家法律】《中华人民共与国国家安全法》《中华人民共与国计算机信息系统安全保护条例》《中华人民共与国计算机信息网络国际联网管理暂行规定》《中华人民共与国保守国家秘密法》《中华人民共与国国家安全法》【国家规定】《保护互联网安全的决定》中华人民共与国计算机信息系统安全保护条例中国信息安全产品测评认证用标准目录一军用计算机安全评估准则GJB2255-95国土资源部信息网络安全管理规定安全策略分析报告一样例浅谈金融计算机信息系统安全管理电子计算机机房施工及验收规范sj电子计算机机房设计规范GB50174-1993网络国际联网管理暂行规定计算机信息系统国际联网保密管理规定计算机信息系统安全专用产品分类原则GA163-1997计算机信息系统安全产品部件安全功能检测GA216T-1999计算机信息系统安全保护等级划分准则GB17859-1999计算机信息系统安全等级保护操作系统技术要求GAT388-2002计算机信息系统安全等级保护数据库管理系统技术要求GAT389-2002计算机信息系统安全等级保护管理要求GAT391-2002计算机信息系统安全等级保护网络技术要求GAT387-2002计算机信息系统安全等级保护通用技术要求GAT390-2002计算机软件保护条例计算站场地安全要GB9361_1988计算站场地技术条件gb2887-1989field银行卡联网联合安全规范【国家防火规范标准】建筑内部装修设计防火规范GB50222_
95.doc建筑物防雷设计规范GB50057_
94.doc建筑设计防火规范.doc火灾自动报警系统设计规范GBJ116_
88.doc高层民用建筑设计防火规范GB50045_
95.doc【国外有关标准】RFC2196BS7799UKITBaselineProtectionManualGermanyOECDGuidelinesISO15408fCommonCriteriaRainbowSeriesOrangeBookUSInformationTechnologySecurityEvaluationCriteriaITSECUKSystemSecurityEngineeringCapabilityMaturityModelSSE-CMMDevelopmentISO11131BankingandRelatedFinancialServices;Sign-onAuthenticationISO13569BankingandRelatedFinancialServices-InformationSecurityGuidelines附录2本规范用词说明
一、为便于在执行本规范条文时区别对待,对要求严格程度不一致的用词说明如下.表示很严格,非这样做不可的正面词使用“务必”;反面词使用“严禁”;.表示严格,在正常情况下均应这样做的正面词使用“应”;反面词使用“不应”或者“不得”.表示同意稍有选择,在条件许可时首先应这样做的正面词使用“宜”或者“可”;反面词使用“不宜”
二、条文中指定应按其它有关标准、规范执行时,写法为“应符合……的规定”或者“应按……要求(或者规定)执行”在中国石油信息安全标准中涉及下列概念组织机构中国石油(PetroChina)指中国石油天然气股份有限公司有的时候也称“股份公司”集团公司(CNPC)指中国石油天然气集团公司有的时候也称“存续公司二为区分中国石油的地区公司与集团公司下属单位,担提及“存续部分”时指集团公司下属的单位如辽河油田分公司存续部分指集团公司下属的辽河石油管理局计算机网络中国石油信息网(PetroChinaNet)指中国石油范围内的计算机网络系统中国石油信息网是在中国石油天然气集团公司网络的基础上进行扩充与提高所形成的连接中国石油所属各个单位计算机局域网与园区网集团公司网络(CNPCNet)指集团公司所属范围内的网络中国石油的一些地区公司是与集团公司下属的单位共用一个计算机网络,当提及“存续公司网络”时,指存续公司使用的网络部分主干网是从中国石油总部连接到各个下属各地区公司的网络部分,包含中国石油总部局域网、各个二级局域网(或者园区网)与连接这些网络的专线远程信道有些单位通过拨号线路连接到中国石油总部,不是利用专线,这样的单位与所使用的远程信道不属于中国石油专用网主干网构成部分地区网地区公司网络与所属单位网络的总与这些局域网或者园区网互相连接所使用的远程信道能够是专线,也能够是拨号线路局域网与园区网局域网通常指,在一座建筑中利用局域网技术与设备建设的高速网络园区网是在一个园区(比如大学校园、管理局基地等)内多座建筑内的多个局域网,利用高速信道7相连接起来所构成的网络园区网所利用的设备、运行的网络协议、网络传输速度基本相同于局域网局域网与园区网通常都是用户自己建设的局域网与园区网与广域网不一致,广域网不仅覆盖范围广,所利用的设备、运行的协议、传送速率都与局域网与园区网不一致.传输信息的信道通常都是电信部门建设的二级单位网络指地区公司下属单位的网络的总与,可能是局域网,也可能是园区网专线与拨号线路从连通性划分的两大类网络远程信道专线,指数字电路、帧中继、DDN与ATM等经常保持连通状态的信道;拨号线路,指只在传送信息时才建立连接的信道,如电话拨号线路或者ISDN拨号线路这些远程信道可能用来连接不一致地区的局域网或者园区网,也可能用于连接单台计算机石油专网与公网石油专业电信网与公共电信网的简称最后一公里问题建设广域网时,用户局域网或者园区网连接邻近电信部门信道的最后一段距离的连接问题这段距离通常小于一公里,但也有大于一公里的情况为简便,同称之最后一公里问题涉及计算机网络的术语与定义请参见《中国石油局域网标准》概述7目标7适用范围7规范引用的文件或者标准8术语与定义9应用系统开发总体原则11系统需求收集与分析阶段12可行性研究分析12开发人员安全管理14建立系统开发安全需求分析报告15系统设计阶段的安全规范17单点访问操纵且无后门17人员职责与权限的定义17确保敏感系统的安全性17确保访问层的安全性17确保日志管理机制健全18新系统的容量规划18系统开发阶段安全规范19系统开发语言19系统开发安全有关工具管理规范27操纵软件代码程序库29在软件开发过程变更管理31开发版本管理32开发日志审核管理34防御后门代码或者隐藏通道34系统测试阶段安全规范36应用系统的安全性检测36操纵测试环境38为测试使用真实的数据39在软件转移至生产环境前进行测试39应用系统安全质量鉴定39系统培训及文档阶段安全规范40新系统的培训40撰写新系统与系统改进的文档40应用系统开发外包安全操纵41附录1参考文献42附录2本规范用词说明42概述信息系统的许多的安全操纵或者其他安全性保证是通过系统的开发设计予以实现的因此假如在系统的开发设计阶段没有对系统的安全性给予充分的考虑,那么系统本身一定会存在许多先天不足,系统就会漏洞百出为确保应用系统的安全,在应用系统开发之前就应确认系统的安全需求,并以此作为开发设计的阶段的基础本规范要紧规定了在系统开发的各个阶段所应遵守的各类安全规范,从需求分析开始,到设计,再到开发与保护与最后的文档等系统开发的各个阶段分别进行阐述,并将在不一致阶段中所需要注意的安全问题与有关的安全规范进行进一步的描述与规定目标本规范的目标为保护应用系统开发过程的安全具体地说就是保护应用系统开发过程免受未经授权的访问与更换,保护系统开发中系统软件与信息的安全,确保开发项口顺利正确的实施并对开发环境进行严格的操纵同时确保应用系统开发外包中的各项安全适用范围本套规范适用的范围包含了整个应用系统开发过程中的安全包含了系统开发可行性与需求分析阶段的安全,系统设计阶段的安全,系统开发阶段的安全,系统测试阶段的安全,系统培训与文档阶段的安全与系统开发外包的安全规范要紧规定了应用系统开发过程的安全保密,软件的质量的要求,系统与业务需求的符合性保证敏感信息的安全,系统本身的稳固性与兼容性问题。