信息化应用系统开发安全规范
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
信息化应用系统开发安全规范
1 概述
软件不安全的因素主要来源于两个方面,一是软件自身存在错误和缺陷引起的安全漏洞,二是来自外部的攻击。良好的软件开发过程管理可以很好地减少软件自身缺陷,并有效抵抗外部的攻击。
本规范主要规定了集团信息化应用系统在系统开发的各个阶段所应遵守的各种安全规范,将在不同阶段中所需要注意的安全问题和相关的安全规范进行进一步的描述和规定,以提高集团信息化应用系统的安全性和抵抗外部攻击的能力。
2 可行性计划
可行性计划是对项目所要解决的问题进行总体定义和描述,包括了解用户的要求及现实环境,从技术、经济和需求3个方面研究并论证项目的可行性,编写可行性研究报告,探讨解决问题的方案,并对可供使用的资源(如硬件、软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。
2.1 阶段性成果
可行性研究报告。
2.2 可行性研究报告重点
如下4个方面:
1、设计方案
可行性研究报告的需对预先设计的方案进行论证,设计研究方案,明确研究对象。
2、内容真实
可行性研究报告涉及的内容以及反映情况的数据,必须绝对真实可靠,不许有任何偏差及失误。可行性研究报告中所运用资料、数据,都要经过反复核实,以确保内容的真实性。
3、预测准确
可行性研究是投资决策前的活动,对可能遇到的问题和结果的估计,具有预测性。因此,必须进行深入地调查研究,充分地占有资料,运用切合实际的预测方法,科学地预测未来前景。
4、论证严密
论证性是可行性研究报告的一个显著特点。要使其有论证性,必须做到运用系统的分析方法,围绕影响项目的各种因素进行全面、系统的分析,既要作宏观的分析,又要作微观的分析。
3 需求分析
软件需求分析就是对开发什么样的软件的一个系统的分析与设想,它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用软件工程开发语言表达出来的过程。需求分析阶段主要工作是完成需求对业务的表达,这体现在对需求规格说明书中,包括业务流程,子系统划分,状态图,数据流图等,最终通过用户用例完成业务分析测试。
需求分析阶段最大的隐患即需求未能准确地描述表达对用户需求的真正正确理解,因此,需求分析阶段的安全工作,应主要在对用户需求真正准确的理解上。
需求分析阶段需深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么”的问题。
需求分析阶段需形成的文档包括《需求分析说明书》、《业务分析测试报告》、《用户使用手册初稿》。需求分析可分为需求提出、需求描述及需求评审三个阶段。
3.1 需求提出
需求主要集中于描述系统目的。开发人员和用户确定一个问题领域,并定义一个描述该问题的系统,形成系统规格说明。
3.2 需求描述
在需求分析阶段分析人员的主要任务是:对用户的需求进行鉴别、综合和建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。
分析人员应发现并提出哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。
3.3 需求评审
在需求评审阶段,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进行复核,以确保软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格说明和初步的用户手册的理解达成一致。一旦发现遗漏或模糊点,必须尽快更正,再行检查。
需求评审内容需至少包含以下内容:
1、需求分析进度日程实施计划
进行需求分析时,应注意一切信息与需求都是站在用户的角度上。要避免分析员的主观想象,并将分析进度提交给用户,以确保需求分析过程及时与用户沟通交流,让用户进行检查与评价,从而达到需求分析的准确性。
2、描述软件的功能和性能
确定软件设计的限制和软件同其它系统元素的接口细节。
3、需求评审的目的
通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。在软件开发完成后,制定的需求分析说明书还要为评价软件质量提供依据。
3.4 需求分析的基本原则:
1、开发安全需求分析计划应由项目开发单位、信息化主管部门、业务主管部门共同商议决定。
2、应用系统安全需求应能够达到业务所期望的安全水平。
3、所有关于应用系统的业务更新或改进原则上都必须基于业务需求,并有业务事件支持。
4业务需求是系统更新和改动的基础,因此必须清晰明确地定义业务的需求,禁止在业务需求未经业务部门和主要负责人员认可的情况下,盲目地进行开发工作。
5、系统的每一次更新或改进都必须重新对安全需求进行定义、分析和测试评估,以保证不会对业务造成影响。
6、系统设计前,需建立开发安全需求分析报告,并通过信息化主管部门审核。
7、应用系统开发需符合相关法律法规上的要求,符合相关的行业标准和管理制度。
4 设计
软件设计通常分为概要设计和详细设计两个阶段,主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的程序单元。概要设计就是结构设计,其主要目标就是给出软件的模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,以及设计数据库。
系统的设计需达到一个从来没有接触过的人一看就能从各个方面都对系统的作用,功能,实现方面有一个大概了解,并为以后的各类详细设计文档提供一个指引和方向。
设计析阶段需形成的文档包括《概要设计说明书》、《详细设计说明书》。
设计阶段的主要安全工作包括:
4.1 功能划分
设计阶段的功能划分不合理,难以发现,且不好处理。因此功能模块设计需详细描述系统有那些主要功能,这些功能应该用何种技术,大致是如何实现的,以便发现问题。
4.2 模块协作
描述模块间如何协同运作的,以便发现问题。
4.3 系统定级
安全设计描述系统应该具有的安全级别,以及达到此安全等级的所采用的技术。
4.4 隐通道
本来受安全策略限制不能进行通信的实体,利用可执行的操作的副作用而实现通信。
4.5 认证不充分
只有分配有足够权限访问的操作进程才可以访问和操作相应的进程,攻击者同城会采取一些攻击获权限而执行一些非法操作,使得系统不可靠。在设计中,需加强访问孔子,确保操作都经过相应的授权认证允许。
4.6 缓冲区溢出
缓冲区是分配的一段大小确定的内存空间,是内存中用来存放数据的地方。发生缓冲区溢出时,会覆盖相邻内存块,从而引发程序安全问题。因此在设计阶段,就需做好缓冲区溢出防范工作。
4.7 并发控制策略
并发作为一种提高计算机系统运行效率的重要手段,在得到广泛应用的同时,其机制本身容易引起以下问题
(1)竞争
(2)活锁
(3)死锁
设计阶段需考虑到并发带来的上述问题,并做处理。
4.8 TOCTTOU错误
是一种利用公用可写文件,攻击者可以创建同名连接到其访问的文件,来达到非法访问的目的。因