企业应用软件通用安全规范.docx
《企业应用软件通用安全规范.docx》由会员分享,可在线阅读,更多相关《企业应用软件通用安全规范.docx(17页珍藏版)》请在冰点文库上搜索。
企业应用软件通用安全规范
企业应用软件通用安全规范
ApplicationSoftwareCommonSecurityRequirementsofSGCC
1目的和范围
《国家电网公司应用软件通用安全要求》(以下简称《通用安全要求》)作为一个指导框架,列出了国家电网公司系统内应用软件在全生命周期各阶段需要满足的信息安全要求。
通过遵循和使用《通用安全要求》,达到以下目的:
1)明确应用软件的安全目标;
2)指导应用软件前期设计中的安全考虑;
3)指导应用软件开发阶段的安全实现;
4)指导应用软件安全性测评的实施和评定;
5)指导应用软件安全部署,以及制定运维和废弃阶段的管理要求。
《通用安全要求》应用到具体的应用软件时,应根据其业务使命、运行环境和安全等级等因素进行综合考虑,抽取一个能够保证其安全目标的子集,并予以实现。
抽取安全要求的子集时必须给出充分的依据,没有充分依据证明应用软件不需要或者不涉及某安全要求时,应用软件应该实现该安全要求。
《通用安全要求》适用于国家电网公司范围内信息系统中所有承载业务的应用软件,不包括这些应用软件运行所依赖的网络、主机和操作系统。
《通用安全要求》可作为:
1)信息安全风险评估结果符合性的参考;
2)软件安全性测评结果符合性的参考;
3)应用软件安全设计评价的依据。
《通用安全要求》不包括密码算法固有质量评价准则。
2规范性引用文件
下列标准所包含的条文,通过在《通用安全要求》中引用而成为《通用安全要求》的条文。
《通用安全要求》正式实施时,所示版本均为有效。
《GB/T18336-2001信息技术安全技术信息技术安全性评估指南》
《GB/T17544-1998信息技术软件包质量要求和测试》
《ISO/IEC17799:
2000信息安全管理体系》
3术语和定义
3.1应用软件ApplicationSoftware
本标准中声明的应用软件,专指国家电网公司范围内各单位信息系统中借助网络和计算机系统实现特定业务功能的软件。
3.2应用软件生命周期ApplicationSoftwareLifecycle
应用软件从生成到消亡的整个过程,包括规划、设计开发、建设、维护和废弃五个生存阶段。
3.3威胁Threat
一种对信息系统构成潜在破坏的因素,它是客观存在的。
3.4脆弱性Vulnerability
信息系统在安全方面的不足,通常也称为漏洞。
脆弱性可能被威胁利用,并对信息系统运行造成损害。
3.5安全风险SecurityRisk
安全风险是威胁利用信息系统中存在的脆弱性,对信息系统产生影响的潜在可能性和潜在影响的结合。
3.6安全目标SecurityTarget
安全目标是意在对抗信息系统面临的安全威胁,使信息系统达到特定安全等级的要求描述。
3.7安全需求SecurityRequirements
为保证信息系统正常运作,在信息安全防护措施方面提出的系列要求。
3.8安全设计SecurityDesign
为确保信息系统能够符合安全需求而提出的开发设计方案,能够明确的指导开发人员实施开发。
3.9机密性Confidentiality
信息系统的机密性是指信息系统软件本身及其处理的信息在时间、范围和强度上的保密特性。
3.10完整性Integrity
信息系统的完整性既包含了数据的完整性,即保证数据不被非法地改动和销毁,也包含了系统的完整性,即保证系统不被有意或无意的非法操作所破坏。
3.11可用性Availability
信息系统的可用性是指应用在不降低使用的情况下仍能根据授权实体的需要提供资源服务,保证授权实体在需要时可以正常地访问和使用系统。
3.12可控性Controllability
信息系统的可控性是指能够对信息系统安全状态、数据信息及其使用者的所有行为进行安全监控。
3.13认证数据AuthenticationData
信息系统中用于验证用户所声称身份的机密数据。
3.14系统数据SystemData
信息系统本身的程序文件、配置文件、客户端组件和源代码等,该类数据同业务没有直接关系,不会随业务运作而频繁变化。
3.15业务数据BusinessData
信息系统中由于业务操作所输入、修改、删除的数据,业务运行过程中需要频繁访问该类数据。
3.16基础主机环境BasicEnvironment
信息系统的基础主机环境包括了硬件平台、操作系统和附加的应用支撑系统。
3.17信息安全风险评估InformationSecurityRiskAssessment
依据有关信息安全技术与管理标准,对信息系统(包括信息系统及其运行环境)及由其处理、传输和存储的信息的机密性、完整性和可用性等安全属性进行评价的过程。
3.18应用安全性测评ApplicationSecurityTestandEvaluation
应用安全性测评是以用户的安全需求和相关安全标准为依据对应用软件的安全性进行专项测试与评估的活动。
4适用对象
《通用安全要求》主要适用于以下人员:
1)应用软件系统建设和管理人员
2)应用软件系统使用和维护人员
3)应用软件系统设计和开发人员
4)应用软件系统测试和评估人员
5信息系统安全目标
消除
水
信息系统的安全目标是在威胁分析的基础上,通过规范化的要求,利用技术手段减小或部分威胁给信息系统带来的安全风险,最终确保信息系统的安全防护能力达到保障业务安全可接受的平。
信息系统的安全目标体现在以下四个方面:
机密性保障、完整性保障、可用性保障和可控性保障。
6应用软件通用安全管理要求
6.1规划阶段安全管理
6.1.1安全需求设计
业务或信息系统管理部门应负责需求文档的编写、论证、变更和定稿,需求文档除了包含常规的功能、性能需求定义外,还应同等包含信息安全需求和法律需求。
安全需求设计应基于《通用安全要求》,明确定义应用系统必须满足的安全要求,并完成包含安全需求的应用软件需求说明书。
6.2开发阶段安全管理
6.2.1安全方案设计
应对应用软件的建设情况进行总体规划,包括相应的安全规划。
应根据安全需求,统一考虑信息系统安全保障体系的总体策略、技术框架和详细设计方案。
在设计方案确定后,基于《通用安全要求》完成详细、明确的包含安全设计内容的应用软件设计说明书。
6.2.2系统开发和安全性保证
应用软件的开发应严格按照系统的需求说明书和设计说明书进行,同时参考《通用安全要求》,确保满足相关的安全技术要求。
应用软件的开发应该在专用的开发环境中进行,开发人员不得对外泄漏开发内容、程序及数据结构。
对于处于运维阶段的应用软件,在进行二次开发时,需要考虑开发时对于现有系统的影响,在系统升级时,应该制定相应的安全预案,保证系统升级时不能影响原有系统的正常运行。
6.3上线运行阶段安全管理
6.3.1安全性测试和评估
在系统上线投运前,应进行软件产品最终的安全性测试和评估,检查软件产品是否满了安全需求。
在软件安全性测试前,应根据安全需求、合同要求、设计方案和《通用安全要求》制订测试方案
和测试实施计划,并进行充分的测试准备。
整
安全性测试后测试单位应出具详细的测评报告,不符合相应安全技术要求的应用软件须及时改。
6.4系统验收
在应用软件测试全面完成后,应组织相关部门和相关人员对系统验收测试报告进行审定。
6.4.1系统上线交付
应用软件上线前要对用户、内部操作人员及维护人员进行必要的培训,包括安全功能方面的培训。
系统上线交付前,应该制定安全预案,包括相关系统的回退措施。
应用软件上线后由开发单位进行服务承诺,并提交服务承诺书,支持相应的软件后续维护工作和对安全事故的应急响应。
6.4.2用户文档
用户文档应包含有关软件安全配置的使用说明和推荐配置。
6.5外包开发的安全管理
与外部开发商签订的开发合同,应包括对软件安全和信息保密的要求。
对外包开发的软件要执行全面的安全性测试,关键程序应检查源代码,以有效的防止和杜绝条件触发的、内嵌的、潜在不安全程序的存在。
6.6运维和废弃阶段安全管理
应用软件正式投入运行后,应指定专人对应用软件进行管理,删除或者禁用不使用的系统缺省账户,更改缺省口令。
应根据业务需求和安全分析确定应用软件的访问控制策略,用于控制分配数据、信息、文件及服务的访问权限。
应对应用软件账户进行分类管理,权限设定应当遵循最小授权要求。
应对应用软件的安全策略、授权访问、最小服务、升级与补丁加载、维护记录、日志以及配置文件的生成、备份、变更审批、符合性检查等方面做出具体规定。
应用软件废弃时,应确保系统中的所有数据被有效转移或可靠销毁,并确保系统更新过程是在一个安全、系统化的状态下完成。
7应用软件通用安全技术要求
通用安全技术要求定义了应用软件全生命周期中应该考虑和实现的安全要素的集合。
在应用到具体信息系统时,应结合应用软件的具体要求确定必须满足的要求子集。
7.1与基础环境的交互
本部分安全要求定义了应用软件同基础主机环境间的安全交互。
7.1.1安全机制独立性
应用软件的安全设计和实现应该具有独立性,不能完全依赖当前基础主机环境提供的安全机制来确保应用本身和它的数据不受到破坏或拒绝服务。
7.1.2安全控制有效性
应用软件应该防止用户绕过其安全控制机制直接尝试访问基础主机环境。
应用软件应该能够进行对以上安全功能的自检,这些检测可在启动时进行,或周期性地进行,或应授权用户的请求进行,或满足其他条件时进行。
7.1.3安全策略可配置
应用软件应该能够被配置(或通过自动配置)为在特定的环境中进行恰当的安全操作,并且能够报告缺陷。
7.1.4外部环境完整性
在应用软件运行期间,应该不执行、并且应该不能被用于执行任何可能改变主机安全配置、安全文件、操作环境或平台安全程序的功能;也不能破坏或试图破坏属于基础主机环境的文件和功能。
7.1.5外部环境检测
应用软件应该能够确认它的操作环境是被恰当配置了的,并且能够对任何影响信息系统正常运行或安全状态的环境因素的缺乏进行报告。
7.1.6外部环境失败的处理
应用软件应该可以探测到主机运行环境中的错误情况。
对主机环境状态的检验应贯穿于应用程序的整个执行过程,在探测到外部环境错误的时候可以以一个有序的过程实施关闭。
即首先在外部环境中终止其获得组件的意图,同时终止需要那个组件完成的功能。
7.2鉴别和认证机制
本部分安全要求规定了应用软件应该如何进行实体的鉴别和认证,或者利用外部认证系统和设备实现该安全机制所要到达的要求。
7.2.1身份鉴别和认证
应用软件应该能够对所有系统使用者进行有效鉴别,并且应该确保使用者在授予敏感权限之前已经被认证。
应用软件应该能够鉴别和认证应用中所有代表用户与系统进行交互的进程、程序以及其他活动实体或对象。
7.2.2身份认证提示
在鉴别过程和授予已鉴别用户使用应用软件资源的权限前,应用软件应当提供必要的信息给使用者,这类信息应该能够帮助使用者完成认证过程,并明确其应承担的责任。
7.2.3认证技术使用
应用软件在授予使用者权限前,所执行的鉴别和认证功能应该具备防篡改和防重放机制,在有明确需求的情况下,应用软件也应该能够支持服务器与客户端间的双向认证。
应用软件的鉴别和认证机制可以包含以下一个或多个安全技术,用来替代或者作为用户名+静态口令方式的补充:
1)公钥基础设施(PKI)
2)硬件令牌、生物识别认证
3)一次性动态口令
4)其它技术
7.2.4非法认证请求的识别
应用软件的鉴别和认证机制应该具有对非正常鉴别和认证尝试(登录、权限获取)的识别功能,并可根据安全策略启动对失败鉴别和认证尝试的锁定。
7.2.5非法认证请求的处理
应用软件应该能够允许系统管理员用户随时更改失败次数(允许连续的失败登录而不进行锁定的最大次数)和锁定时间(超过失败次数后锁定登录持续的时间)。
7.2.6客户端登录限制
应用软件应该能够允许系统管理员用户根据需要设置允许在客户端登录系统的用户属性,包括用户登录的时间段、用户登录的IP地址等。
7.2.7会话鉴别和认证
应用软件对客户端用户每一次初始的会话连接请求,都应当要求其完成鉴别和认证过程,并且在应用软件的各组成部分中都不能存储明文的口令数据,以及其他可以被利用进行会话重放的信息
鉴别成功的每个会话都要维持其连接和中断的状态,在会话超时后,应使会话进入休眠状态或中断连接。
7.2.8会话的管理
应用软件应该向系统管理员提供监视工具,以便实时检测客户端用户的连接状态和行为,应用软件也应该允许会话发起的用户手动终止该会话。
应用软件应该能够自动处理会话的异常状态,并且能够提供给系统管理员适当的管理工具对会话进行实时控制,包括设置会话超时时间、最大允许会话数。
7.2.9多用户登录的控制
应用软件应该能够确保一个客户端只能有一个用户同时登录到系统中,一个用户只允许同时在一个客户端上登录到系统中。
7.3用户和权限管理
本部分安全要求规定了应用软件的用户分类管理、口令管理和授权管理,同时也包含对存储和使用到的操作系统用户、数据库用户或中间件系统用户的口令管理。
7.3.1系统管理员帐号(角色)
应用软件应该将系统的管理权限(包括用户管理、权限管理、配置定制)单独赋予系统管理员帐号(角色),这类帐号(角色)仅负责进行系统级的管理,不具备任何业务操作的权限。
7.3.2安全管理员帐号(角色)
应用软件应该通过设置特殊的安全管理员帐号(角色),对系统中所有的安全功能进行管理或监视,以监督和查证系统管理员、业务员正常行使权限。
应用软件使用中,应该保证安全管理员帐号(角色)与系统管理员帐号(角色)不能为同一人。
7.3.3审核管理员帐号(角色)
应用软件应该能够通过设置审核管理员帐号(角色),对关键的系统管理和特殊要求的业务操作行为实施不可绕行的审批,没有经过审批的操作将不能生效。
应用软件使用中,应该保证审核管理员帐号(角色)与系统管理员帐号(角色)不能为同一人。
7.3.4非管理帐号(角色)
系统
应用软件应该将业务操作权限赋予非管理员帐号(角色),这类帐号(角色)不能具备任何级的管理权限,并且其具有的权限转移和委托机制不能违背系统的授权原则。
7.3.5禁用匿名帐户
除非提供公共信息访问,应用系统不应该内置匿名账户,也不允许匿名用户的登录。
7.3.6用户口令策略
应用软件应该可以让系统管理员用户去分发用户的初始口令,同时需要强制用户在初始登录时去改变管理员分发的口令,只有系统管理员用户和用户自身能够修改本人的口令。
应用软件在鉴别身份之前,应该能够检验用户口令是否过期,并强制性的要求口令过期的用户去更新口令。
应用软件在用户更新口令时应该能够检测用户的新口令是否已经被使用过,并阻止其选择使用过的最近几次(管理员定制)的口令。
应用软件应该能够对以上涉及的口令策略进行配置。
7.3.7用户授权管理
应用软件应该提供给系统管理员用户一个产生和修改用户授权的管理工具,并且保证在每次产生或修改权限后不需要重启系统就能立即生效。
应用软件应该能够根据业务特性,设置权限互斥的原则,保证用户、权限合理对应关系,避免任何可能产生安全问题的权限分配方式或结果。
7.4操作安全
本部分安全要求规定了应用软件的访问控制机制,具体表现为用户操作合法性的验证方式、操作输入的安全性以及异常情况的处理机制。
7.4.1用户授权的验证
应用软件应该在允许用户(或代表用户的进程)获取权限或者资源之前,已经对其进行了授权确认。
应用软件应该能够确保用户可以正常执行所有授权操作,同时不能绕过其控制机制执行任何非授权的操作。
7.4.2输入/导入数据的安全验证
应用软件应该对用户在客户端输入或导入的数据进行长度、范围、数据类型等属性的合法性进行检验,对不合法的数据应该禁止输入系统,并且提示明确的错误信息。
据应
应用软件应该在服务器端对将要存储到后台数据库中的数据进行合法性检验,对不合法的数
该舍弃,并报警。
7.4.3并发操作保护
应用软件应该能够允许多用户同时对同一个系统资源进行不相冲突的访问操作,并且设定保护措施,防止相互可能造成的冲突。
应用软件应该禁止多个客户端用户同时执行互斥的操作。
7.4.4异常事件的提示和报警
应用软件应该定义了分级的系统异常事件类型,并且根据异常的严重程度分别采用不同的方式进行通知。
7.4.5异常事件的自动处理
应用软件应该能够对部分严重故障进行自动处理,采取可能使系统恢复正常状态的行为或保护现存数据安全的行为。
7.5数据安全
本部分安全要求定义数据在存储、传输过程中的机密性、完整性和可用性等方面的需求。
7.5.1认证数据保护
应用软件应该对系统内认证数据的存储和传输进行保护,保证对其机密性、完整性和可用性的保护强度符合业务需求。
应用软件应该负责保证其访问数据库系统、中间件系统的用户名和口令的机密性,并能够允许系统管理员用户进行该类口令的修改而不影响系统的使用。
应用软件应该保证临时出现的认证数据的机密性,包括内存或缓存文件中口令、密钥等。
7.5.2业务数据分级保护
应用软件应该允许系统管理员用户或数据创建者定义、修改业务数据的安全性等级,并且确保该分级标记是可以被访问控制机制理解的。
应用软件应该按照已定义的业务数据安全级别,进行分级的存储保护和传输保护,对于重要业务数据应该提供备份和恢复机制,保证对其机密性、完整性和可用性的保护强度符合业务需求。
7.5.3系统数据保护
应用软件应该对程序文件、配置文件和可执行代码等系统数据进行存储保护和传输保护,保证对其机密性、完整性和可用性的保护强度符合业务需求。
7.5.4客户端返回数据
应用软件应该能够保证其向客户端提供的数据信息(包括不成功的连接尝试)中不包含会泄漏应用软件安全数据的内容,也不包含与用户请求无关的数据。
7.5.5客户端缓存数据
应用软件应该避免在客户端缓存任何重要和敏感的数据,如果有必要应采取安全措施确保数据的机密性和完整性。
7.5.6输出数据
应用软件应该在输出保密数据到外部系统或打印时,恰当的标记数据的保密等级。
7.6密码技术
本部分规定了应用软件在使用密码技术进行数据加密或完整性保护时需要满足的要求。
7.6.1密码算法的选择
应用软件中选择的密码算法在强度上应该等于或大于公司规定和用户提出的安全强度要求。
7.6.2密钥的安全管理
应用软件需要在密钥生成、存储、分配、销毁的整个生命周期中对其实施保护,确保密钥明文不能被其他进程、程序和应用中非相关组件访问到。
7.6.3证书验证
应用软件应该确保能够对系统中使用的证书进行正确鉴别,而且不会接受或继续使用非法的或者无效的证书。
7.7审计管理
本部分安全要求定义应用软件所应具有的审计功能和实现方式,包括利用外部审计系统达到的审计功能。
7.7.1基本审计功能
应用软件应该能够将所有的安全相关事件记录到事件日志中,或者将事件数据安全地发送到外部。
7.7.2完整的审计功能
应用软件应该提供对审计数据进行查看、分析的管理工具,保证系统管理员或安全管理员方实施安全运维行为。
7.7.3审计事件的类型
应用软件应该能够对所有与应用本身相关的各类事件进行有效记录,包括但不限于以下事件:
1).系统管理和配置事件
2).业务操作事件
3).成功事件
4).失败事件
5).对审计功能的操作
应用软件应该能够允许安全管理员选择需要进行审计的事件项目。
7.7.4审计事件的信息
应用软件对审计事件的记录应该确保可以将每个可审计事件与引起该事件的用户身份相关联,需要包含并绑定以下信息:
1).事件发生的时间(或时间段)
2).事件发起用户ID、程序ID或其他实体的识别ID
3).用户操作的客户端
4).事件内容
5).事件导致的结果
7.7.5审计数据的管理
应用软件应该具有对审计信息的访问控制机制,允许安全管理员配置能够对审计数据进行访问的用户范围。
应用软件应该提供对审计数据进行手动或自动备份的工具,具有根据用户提供的查询条件对审计数据进行搜索、分类、排序的能力。
应用软件应该提供对审计数据(日志)的管理工具,允许管理员或安全管理员设定审计日志的容量、覆盖规则和审计事件的类型。
7.8安全实施
本部分安全要求规定了应用软件上线部署阶段应该考虑的安全要求。
7.8.1代码清除
应用软件部署后应当确定应用程序代码和其运行的平台不包含着不必要的文件或者“后门”
7.8.2用户初始化
应用软件部署后,应当确认系统中存在的所有用户生成应该是合法,并且不能存在以下用户或口令:
1).实施过程中使用的临时用户,或测试用户
2).隐藏用户和匿名用户
3).管理员的初始默认口令
4).管理员给用户分发的口令
7.8.3权限初始化
应用软件部署后,应用软件用户和数据库用户的权限应该符合最小权限原则,并且由信息系统管理员完全控制。
7.8.4安全策略配置
应用软件部署后,应该按照具体业务的安全需求启用安全功能和配置安全策略。
7.8.5运行环境加固
应用软件部署后,应该对操作系统、数据库等基础系统进行针对性的加固,在保证应用软件正常运行的情况下,关闭存在风险的无关服务和端口。
8附则
《通用安全要求》的核心是技术要求,是对信息系统应用软件开发实现的安全机制和保护措施的范围和细则规定,通过与信息系统规划、建设和上线阶段的安全管理要求紧密结合,确保正式投入运行后的应用软件在技术实现上能够达到安全保障目标,并且满足安全管理和运维的要求。
在使用《通用安全要求》时,须基于应用软件系统的运行环境、主要威胁、安全等级和业务功能特性等因素,推导具体的安全需求和目标,据此选取安全要素,并对选择的依据进行明确的说明。