信息化应用系统开发安全规范_第1页
信息化应用系统开发安全规范_第2页
信息化应用系统开发安全规范_第3页
信息化应用系统开发安全规范_第4页
信息化应用系统开发安全规范_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.wd.wd.wd.信息化应用系统开发安全标准概述软件不安全的因素主要来源于两个方面,一是软件自身存在错误和缺陷引起的安全漏洞,二是来自外部的攻击。良好的软件开发过程管理可以很好地减少软件自身缺陷,并有效抵抗外部的攻击。本标准主要规定了集团信息化应用系统在系统开发的各个阶段所应遵守的各种安全标准,将在不同阶段中所需要注意的安全问题和相关的安全标准进展进一步的描述和规定,以提高集团信息化应用系统的安全性和抵抗外部攻击的能力。可行性方案可行性方案是对工程所要解决的问题进展总体定义和描述,包括了解用户的要求及现实环境,从技术、经济和需求3个方面研究并论证工程的可行性,编写可行性研究报告,探讨解决问题

2、的方案,并对可供使用的资源如HYPERLINK :/baike.baidu /view/1024731.htm t _blank硬件、软件、人力等成本,可取得的效益和HYPERLINK :/baike.baidu /view/522596.htm t _blank开发进度作出估计,制订完成开发任务的实施方案。阶段性成果可行性研究报告。可行性研究报告重点如下4个方面:1、设计方案可行性研究报告的需对预先设计的方案进展论证,设计研究方案,明确研究对象。2、内容真实可行性研究报告涉及的内容以及反映情况的数据,必须绝对真实可靠,不许有任何偏差及失误。可行性研究报告中所运用资料、数据,都要经过反复核实,

3、以确保内容的真实性。3、预测准确可行性研究是投资决策前的活动,对可能遇到的问题和结果的估计,具有预测性。因此,必须进展深入地调查研究,充分地占有资料,运用切合实际的预测方法,科学地预测未来前景。4、论证严密论证性是可行性研究报告的一个显著特点。要使其有论证性,必须做到运用系统的分析方法,围绕影响工程的各种因素进展全面、系统的分析,既要作宏观的分析,又要作微观的分析。需求分析HYPERLINK :/baike.baidu /view/671802.htm t _blank软件需求分析就是对开发什么样的软件的一个系统的分析与设想,它是一个对用户的需求进展去粗取精、去伪存真、正确理解,然后把它用HY

4、PERLINK :/baike.baidu /view/37.htm t _blank软件工程开发语言表达出来的过程。需求分析阶段主要工作是完成需求对业务的表达,这表达在对需求规格说明书中,包括业务流程,子系统划分,状态图,数据流图等,最终通过用户用例完成业务分析测试。需求分析阶段最大的隐患即需求未能准确地描述表达对用户需求的真正正确理解,因此,需求分析阶段的安全工作,应主要在对用户需求真正准确的理解上。需求分析阶段需深入描述软件的功能和性能,确定HYPERLINK :/baike.baidu /view/575391.htm t _blank软件设计的约束和软件同其他系统元素的接口细节,HY

5、PERLINK :/baike.baidu /view/25538.htm t _blank定义软件的其他有效性需求,借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统“做什么的问题。需求分析阶段需形成的文档包括?需求分析说明书?、?业务分析测试报告?、?用户使用手册初稿?。HYPERLINK :/baike.baidu /view/111493.htm t _blank需求分析可分为需求提出、需求描述及需求评审三个阶段。需求提出需求主要集中于描述系统目的。开发人员和用户确定一个问题领域,并HYPERLINK :/baike.baidu /view/25538.htm t _blank

6、定义一个描述该问题的系统,形成系统规格说明。需求描述在需求分析阶段分析人员的主要任务是:对用户的需求进展鉴别、综合和建模,去除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建设逻辑模型。分析人员应发现并提出哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。需求评审在需求评审阶段,分析人员要在用户和HYPERLINK :/baike.baidu /view/575391.htm t _blank软件设计人员的配合下对自己生成的需求规格说明和初步的用户手册进展复核,以确保HYPERLINK :/baike.baidu

7、/view/10192.htm t _blank软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格说明和初步的用户手册的理解达成一致。一旦发现遗漏或模糊点,必须尽快更正,再行检查。需求评审内容需至少包含以下内容:需求分析进度日程实施方案进展HYPERLINK :/baike.baidu /view/111493.htm t _blank需求分析时,应注意一切信息与需求都是站在用户的角度上。要防止分析员的主观想象,并将分析进度提交给用户,以确保需求分析过程及时与用户沟通交流,让用户进展检查与评价,从而到达HYPERLINK :/baike.baidu /view/111493.h

8、tm t _blank需求分析的准确性。描述软件的功能和性能确定HYPERLINK :/baike.baidu /view/575391.htm t _blank软件设计的限制和软件同其它系统元素的接口细节。需求评审的目的通过HYPERLINK :/baike.baidu /view/111493.htm t _blank需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给HYPERLINK :/baike.baidu /view/190611.htm t _blank软件开发提供一种可转化为数据设计、HYPERLINK :/baike.baidu /view/411272.htm t

9、 _blank构造设计和过程设计的数据和功能表示。在软件开发完成后,制定的需求分析说明书还要为评价HYPERLINK :/baike.baidu /view/1451265.htm t _blank软件质量提供依据。需求分析的 基本原那么:1、开发安全需求分析方案应由工程开发单位、信息化主管部门、业务主管部门共同商议决定。2、应用系统安全需求应能够到达业务所期望的安全水平。3、所有关于应用系统的业务更新或改进原那么上都必须基于业务需求,并有业务事件支持。4业务需求是系统更新和改动的根基,因此必须清晰明确地定义业务的需求,制止在业务需求未经业务部门和主要负责人员认可的情况下,盲目地进展开发工作。

10、5、系统的每一次更新或改进都必须重新对安全需求进展定义、分析和测试评估,以保证不会对业务造成影响。6、系统设计前,需建设开发安全需求分析报告,并通过信息化主管部门审核。7、应用系统开发需符合相关法律法规上的要求,符合相关的行业标准和管理制度。设计HYPERLINK :/baike.baidu /view/575391.htm t _blank软件设计通常分为HYPERLINK :/baike.baidu /view/551728.htm t _blank概要设计和详细设计两个阶段,主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、可执行程序的HYPERLINK :/baike.b

11、aidu /view/2610106.htm t _blank程序单元。HYPERLINK :/baike.baidu /view/551728.htm t _blank概要设计就是构造设计,其主要目标就是给出HYPERLINK :/baike.baidu /view/37.htm t _blank软件的模块构造,用HYPERLINK :/baike.baidu /view/3224863.htm t _blank软件构造图表示。详细设计的首要任务就是设计模块的程序流程、算法和HYPERLINK :/baike.baidu /view/9900.htm t _blank数据构造,以及设计HYP

12、ERLINK :/baike.baidu /view/1088.htm t _blank数据库。系统的设计需到达一个从来没有接触过的人一看就能从各个方面都对系统的作用,功能,实现方面有一个大概了解,并为以后的各类详细设计文档提供一个指引和方向。设计析阶段需形成的文档包括?概要设计说明书?、?详细设计说明书?。设计阶段的主要安全工作包括:功能划分设计阶段的功能划分不合理,难以发现,且不好处理。因此功能模块设计需详细描述系统有那些主要功能,这些功能应该用何种技术,大致是如何实现的,以便发现问题。模块协作描述模块间如何协同运作的,以便发现问题。系统定级安全设计描述系统应该具有的安全级别,以及到达此安

13、全等级的所采用的技术。隐通道本来受安全策略限制不能进展通信的实体,利用可执行的操作的副作用而实现通信。认证不充分只有分配有足够权限访问的操作进程才可以访问和操作相应的进程,攻击者同城会采取一些攻击获权限而执行一些非法操作,使得系统不可靠。在设计中,需加强访问孔子,确保操作都经过相应的授权认证允许。缓冲区溢出缓冲区是分配的一段大小确定的内存空间,是内存中用来存放数据的地方。发生缓冲区溢出时,会覆盖相邻内存块,从而引发程序安全问题。因此在设计阶段,就需做好缓冲区溢出防范工作。并发控制策略并发作为一种提高计算机系统运行效率的重要手段,在得到广泛应用的同时,其机制本身容易引起以下问题1竞争2活锁3死锁

14、设计阶段需考虑到并发带来的上述问题,并做处理。TOCTTOU错误是一种利用公用可写文件,攻击者可以创立同名连接到其访问的文件,来到达非法访问的目的。因此,系统设计时,需有相应的防护策略。数据库重要信息的保护数据库中的重要信息需加密存储,并有相应的防控措施。配置管理:对管理界面进展未经授权的访问、具有更新配置数据的能力以及对用户帐户和帐户配置文件进展未经授权的访问。身份验证口令长度不低于8位;口令至少需数字和字符串组合;口令需加密存储;口令验证通信信道需加密,以保护身份验证;使用强密码,支持密码有效期和帐户禁用。访问控制任何用户如果希望访问应用系统中的某一局部,那么必须通过唯一的认证授权方式。授

15、权使用最少超级管理帐户,每个系统不得多于2个;不得采用集中授权,但凡授权,均进展单独授权初始化授权可批量,但初始化权限分配必须经过信息化主管部门审核;限制用户访问最小权限资源。收权用户离职或其它原因不需再访问系统,需要及时有关系统的权限敏感数据对网络上传输的敏感数据进展加密;确保通信通道的安全;对敏感数据存储提供强访问控制。Cookie管理不要在cookie 中永久性存储敏感数据;不要使用 -GET 协议传递敏感数据;不要通过连接传递身份验证 cookie。在授权 cookie 内设置安全的 cookie 属性,以便指示浏览器只通过 S 连接向服务器传回 cookie。远程维护管理在管理界面上

16、使用身份验证后授权;远程管理时要确保通信通道的安全。会话管理限制会话时常,具体时长由业务系统决定,闲置会话原那么上不超过15分钟。保护会话状态,以防止未经授权的访问。加密考虑到集团公司会代表国家荣誉,加密算法,需采用我国的算法或我国改造的算法。SM1-SM9算法,SSF33算法,祖冲之对称秘钥算法等,密钥最低不得低于32位。定期回收管理密钥。异常管理设计好异常处理机制。审核和记录在所有应用中审核和记录活动,确保日志文件访问的安全,定期备份日志文件。5.1.12后门预防控制系统须有机制,防止恶意攻击绕过安全性控制而获取对系统资源访问和控制。安全设计评审应用系统设计方案需要由信息化主管部门进展组织

17、安全评审。确保日志管理机制健全建设可根据情况自由设置的日志管理机制,日志记录的范围和详细程度可以根据需求自行定制,且可以实现在应用系统的使用过程中进展日志的定制和记录。保存所有与系统开发相关的程序库的更新审核记录。日志信息不可删除和修改,日志信息需是自动记录,不允许存在手工参与情况。审计安全标准1应包括每个用户的安全审计功能,对应用系统的重要安全事件进展审计。2应保证无法单独中断审计进程,审计记录无法删除、修改或覆盖。3审计内容应包含事件主要信息:日期、时间、操作人、类型、事件信息和结果等。4应提供审计记录数据统计、查询。数据及通信有效性管理标准1应提供校验码技术,保证通信过程的数据完整性。2

18、应具有在请求的情况下为数据原发者或接收者提供数据原发和接收数据的功能。3提供有效性验证功能,保证人机接口或通过通信接口输入的数据格式或长度符合系统设定要求。4提供自动保护功能,当故障发生时自动保护当前状态,保证系统能够恢复。5当应用系统的通信双方中的一方在一段时间内未作任何响应,另一方应能够自动完毕会话。6应能够对系统的最大并发会话连接数进展限制。7应能够对单个帐户的多重并发会话进展限制。8应能够对一个时间段内可能的并发会话连接数进展限制。9应能够对一个访问帐户或一个请求进程占用的资源分配最大限额和最小限额。10、应能够对系统服务水平降低到预先规定的最小值进展检测和报警。11应提供服务优先级设

19、定功能,并在安装后根据安全策略设定访问帐户或请求进程的优先级,根据优先级分配系统资源。编码HYPERLINK :/baike.baidu /view/178766.htm t _blank软件编码是指把HYPERLINK :/baike.baidu /view/575391.htm t _blank软件设计转换成HYPERLINK :/baike.baidu /view/3314.htm t _blank计算机可以承受的程序,即写成以某一程序设计语言表示的“源程序清单。编码阶段的主要工作:1、基于软件产品开发质量要求,充分了解开发语言、工具的特性和风格,选取适宜的编程语言。2、编码。3、提供源

20、程序清单。编码阶段需要考虑的安全问题包括:1、内存安全的实现编程过程中内存数据出现的常见安全问题,如缓冲区溢出、整数溢出、字符串格式化等。2、线程/进程安全如线程同步、线程死锁等3、科学地处理异常异常是程序设计中必须处理的,主要解决怎样处理异常能够保证系统的安全性。4、输入输出的安全保障如对输入的合法性检测。5、权限控制的处理系统中涉及授权和限制访问,需要有完善的权限控制机制。6、数据的保护数据篡改和抵赖的防护和检验除了加密解密外,还需要对对信息来源的鉴别、对信息的完整和不可否认等功能进展保障。7、代码的优化处理所有的程序,都需经过代码优化,代码性能的好坏有时候不仅关系到系统的运行效率,也关系

21、到系统的安全。8、Web编程安全。Web编程中安全问题多种多样,但至少应有应付跨站脚本、SQL注入、Web认证攻击、URL操作攻击等安全问题。9、参数变量处理如果需要设置变量,不能使用缺失的默认值,如需设置PATH为一个的值,而不能使用启动时的缺省值。10、SQL标准1系统须有完善的防止sql注入处理机制。2SQL 语句的参数应以变量形式传入。11、页面请求处理应校验参数的长度WEB 服务器在承受页面请求时,应校验参数的最大长度,截断超出最大长度的范围。12、登录失败信息错误提示WEB 服务器在承受用户登录请求时,不应区分登录失败的提示信息如:用户名不存在、密码错误、密码已过期等,应采用统一的

22、失败提示信息如:错误的用户名或密码。13、错误提示信息标准所有对用户显示的错误信息都不应暴露任何关于系统、网络或应用程序的敏感信息。如果需要的话,应使用包含编号的一般的错误信息,这种信息只有开发者或支持小组才能理解。14、开源软件管理1开源的产品、平台及实现的功能应符合工程的需求。2开源License需适用于产品,假设无License或License不友好的,需进展开源产品使用的风险评估。3开源软件的代码需整洁、注释完善。4选取的开源产品的文档说明需齐全。15、开发版本管理1在应用系统开发过程中使用配置及版本管理工具管理开发过程中的权限控制、源代码和相关文档的版本控制、变更管理。2保证开发、测

23、试、正式运营环境的隔离,控制开发代码的安全传输。3不能使用正式运营环境的数据作为测试数据,如必须使用,需要进展数据处理。4应用系统软件版本审批。对应用系统的版本的升级,应确认当前的版本为最新的版本,旧的版本应进展归档,不得随意丢弃或删除。16、应用系统版本升级方案1制定相关的升级方案,确保将系统升级对业务的影响降至最低。2应用系统软件版本升级后需进展测试,确认系统的各种安全特性。3应使用软件加锁技术防止不同版本相互覆盖的情况。4当版本变更时应在更新的版本中记录变更的详细描述。5应提供版本的合并功能。6版本的更改应只允许指定的人员进展操作。7应记录所有的版本变更的日志,其中包括更改日期、更改前版

24、本号、更改后版本号、更改人、审批人等信息。17、开发日志管标准1系统开发中的相关日志文件应根据开发周期定期审核。2开发人员权限定期3个月审核一次。18、外包的管理标准应对外包开发进展管理,保证软件代码的准确性、控制恶意代码、逻辑炸弹等,可以采用代码抽查、签署合同等模式来实现。19、开发环境安全管理标准1软件开发环境由开发服务器、开发用户终端、网络控制域与端口、其他配套输入输出和存储设备构成;2软件开发环境应与正式运营环境在物理上隔离;3软件开发环境与测试环境在逻辑上分开;4规定软件开发环境的配置标准和实际配置维护日志;5软件开发环境防止无关软件和数据文件的安装复制,防止有害代码植入和传播;20

25、、其它1应从正规的软件供应商那里购置相关的软件或程序或中间件。2应检验和验证源程序和源代码。3在系统正式投入使用之前应进展评估,如一些行业的标准认证评估。4在系统正式投入使用后,应严格管理源代码的访问、升级和修改。5应使用有资质的开发人员操作密钥系统。6不得随便安装别人给的软件,特别是不得随便翻开电子邮件中的附件,一些可执行文件必须先进展病毒及恶意代码的扫描。测试HYPERLINK :/baike.baidu /view/16563.htm t _blank软件测试的目的是以较小的代价发现尽可能多的错误,软件测试的关键在于HYPERLINK :/baike.baidu /view/14417.

26、htm t _blank设计一套出色的测试用例测试数据与功能和预期的输出结果组成了HYPERLINK :/baike.baidu /view/106882.htm t _blank测试用例。普通的功能测试的主要目的是:1确保软件不会去完成没有预先设计的功能2确保软件能够完成预先设计的功能安全测试的主要目的是:要抢在攻击者之前尽可能多地找到软件中的漏洞。以减少软件遭到攻击的可能性。安全性测试至少至少应考虑的问题:用户认证安全的测试要考虑问题1明确区分系统中不同用户权限2系统中会不会出现用户冲突3系统会不会因用户的权限的改变造成混乱4用户登陆密码是否是可见、可复制5是否可以通过绝对途径登陆系统拷贝

27、用户登陆后的链接直接进入系统6用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统数据库安全考虑问题1系统重要数据是否机密2系统数据的完整性3系统数据可管理性4系统数据的独立性5系统数据可备份和恢复能力安全测试的内容案例和参考方法1、输入验证测试,包括如下方面1数据类型字符串,整型,实数,等2允许的字符集的最小和最大的长度3是否允许空输入4参数是否是必须的5重复是否允许6数值范围7特定的值枚举型8特定的模式正那么表达式2、问题访问控制测试主要用于需要验证用户身份以及权限的页面,复制该页面的url地址,关闭该页面以后,查看是否可以直接进入该复制好的地址从一个页面链到另

28、一个页面的间隙可以看到URL地址或直接输入该地址,可以看到自己没有权限的页面信息3、会话管理测试系统的某些功能不允许用户浏览,如果必须要一个用户列表,并对列表中和未有在列表中的用户进展权限测试。4、跨站脚本XSS测试攻击者使用跨站脚本来发送恶意代码给没有觉察的用户,窃取他机器上的任意资料。测试参考方法:HTML标签:;转义参考字符:&(&);(); (空格)。脚本参考语言:特殊字符、最小和最大的长度、是否允许空输入。5、缓冲区溢出测试用户使用缓冲区溢出来破坏web应用程序的栈,通过发送特别编写的代码到web程序中,攻击者可以让web应用程序来执行任意代码。6、注入式漏洞测试例:一个验证用户登陆

29、的页面,如果使用的sql语句为: Select*fromtableAwhereusername+username+andpassword=+password +。Sql输入or 11 就可以不输入任何password进展攻击。7、不恰当的异常处理程序在抛出异常的时候给出了比较详细的内部错误信息,暴露了不应该显示的执行细节,网站存在潜在漏洞。8、不安全的存储,没有加密关键数据测试例:viewsource:地址可以查看源代码在页面输入密码,页面显示的是*,右键,查看源文件就可以看见刚刚输入的密码。9、拒绝服务测试攻击者可以从一个主机产生足够多的流量来耗尽狠多应用程序,最终使程序陷入瘫痪。10、不安

30、全的配置管理测试Config中的链接字符串以及用户信息,邮件,数据存储信息都需要加以保护。至少应配置所有的安全机制,关掉所有不使用的服务,设置角色权限帐号,使用日志和警报。11、漏洞测试负责安全测试工作的人员应通过工具或人工方式,对软件执行漏洞识别测试,尽可能识别软件漏洞、后门等隐患,常见的隐患包括堆SQL注入漏洞、跨站脚本漏洞、缓冲区溢出漏洞、拒绝服务漏洞等。负责安全测试工作的人员应对软件执行渗透测试,确定所识别漏洞被利用的难度及造成的后果。12、测试用例保护对于涉及公司及员工敏感数据或隐私数据的测试用例,测试人员应采取插入冗余数据和访问授权等保护措施,测试完毕后,测试人员应及时删除这些测试数据

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论