版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Q/CDT XXXX 201X信息化应用系统开发安全规范1概述软件不安全的因素主要来源于两个方面,一是软件自身存在错误和缺陷引起的安全漏洞,二是来自外部的攻击。良好的软件开发过程管理可以很好地减少软件自身缺陷,并有效抵抗外部的攻击。本规范主要规定了集团信息化应用系统在系统开发的各个阶段所应遵守的各种安全规范,将在不同阶段中所需要注意的安全问题和相关的安全规范进行进一步的描述和规定,以提高集团信息化应用系统的安全性和抵抗外部攻击的能力。2可行性计划可行性计划是对项目所要解决的问题进行总体定义和描述,包括了解用户的要求及现实环境,从技术、经济和需求3个方面研究并论证项目的可行性,编写可行性研究报告
2、,探讨解决问题的方案, 并对可供使用的资源(如 硬件、软件、人力等)成本,可取得的效益和开发进度作出估计,制订完成开发任务的实施计划。2.1 阶段性成果可行性研究报告。2.2 可行性研究报告重点如下4个方面:1、设计方案可行性研究报告的需对预先设计的方案进行论证,设计研究方案,明确研究对象。2、内容真实可行性研究报告涉及的内容以及反映情况的数据,必须绝对真实可靠, 不许有任何偏差及失误。可行性研究报告中所运用资料、数据,都要经过反复核实,以确保内容的真实性。3、预测准确可行性研究是投资决策前的活动,对可能遇到的问题和结果的估计,具有预测性。因此,必须进行深入地调查研究,充分地占有资料,运用切合
3、实际的预测方法,科学地预测未来前景。4、论证严密论证性是可行性研究报告的一个显著特点。要使其有论证性,必须做到运用系统的分析方法,围绕影响项目的各种因素进行全面、系统的分析,既要作宏观的分析,又要作微观的分析。3需求分析软件需求分析就是对开发什么样的软件的一个系统的分析与设想,它是一个对用户的需求进行去粗取精、去伪存真、正确理解,然后把它用 软件工程开发语言表达出来的过程。需求分析阶段主要工作是 完成需求对业务的表达,这体现在对需求规格说明书中,包括业务流程,子系统划分,状态图,数据流 图等,最终通过用户用例完成业务分析测试。需求分析阶段最大的隐患即需求未能准确地描述表达对用户需求的真正正确理
4、解,因此,需求分析阶段的安全工作,应主要在对用户需求真正准确的理解上。需求分析阶段需深入描述软件的功能和性能,确定软件设计的约束和软件同其他系统元素的接口细节,定义软件的其他有效性需求, 借助于当前系统的逻辑模型导出目标系统逻辑模型,解决目标系统 做什么”的问题。需求分析阶段需形成的文档包括需求分析说明书、业务分析测试报告、用户使用手册初稿。需求分析可分为需求提出、需求描述及需求评审三个阶段。3.1 需求提出需求主要集中于描述系统目的。 开发人员和用户确定一个问题领域,并定义一个描述该问题的系统,形成系统规格说明。3.2 需求描述在需求分析阶段分析人员的主要任务是:对用户的需求进行鉴别、综合和
5、建模,清除用户需求的模糊性、歧义性和不一致性,分析系统的数据要求,为原始问题及目标软件建立逻辑模型。分析人员应发现并提出哪些要求是由于用户的片面性或短期行为所导致的不合理要求,哪些是用户尚未提出但具有真正价值的潜在需求。3.3 需求评审在需求评审阶段,分析人员要在用户和软件设计人员的配合下对自己生成的需求规格说明和初步的 用户手册进行复核,以确保 软件需求的完整、准确、清晰、具体,并使用户和软件设计人员对需求规格 说明和初步的用户手册的理解达成一致。一旦发现遗漏或模糊点,必须尽快更正,再行检查。需求评审内容需至少包含以下内容:1、需求分析进度日程实施计划进行需求分析 时,应注意一切信息与需求都
6、是站在用户的角度上。要避免分析员的主观想象,并 将分析进度提交给用户,以确保需求分析过程及时与用户沟通交流,让用户进行检查与评价,从而达到需求分析的准确性。2、描述软件的功能和性能确定软件设计的限制和软件同其它系统元素的接口细节。3、需求评审的目的通过需求分析,逐步细化对软件的要求,描述软件要处理的数据域,并给软件开发提供一种可转化为数据设计、结构设计和过程设计的数据和功能表示。在软件开发完成后,制定的需求分析说明书还 要为评价软件质量提供依据。3.4 需求分析的基本原则:1、开发安全需求分析计划应由项目开发单位、信息化主管部门、业务主管部门共同商议决定。2、应用系统安全需求应能够达到业务所期
7、望的安全水平。3、所有关于应用系统的业务更新或改进原则上都必须基于业务需求,并有业务事件支持。4业务需求是系统更新和改动的基础,因此必须清晰明确地定义业务的需求,禁止在业务需求未经 业务部门和主要负责人员认可的情况下,盲目地进行开发工作。5、系统的每一次更新或改进都必须重新对安全需求进行定义、分析和测试评估,以保证不会对业 务造成影响。6、系统设计前,需建立开发安全需求分析报告,并通过信息化主管部门审核。7、应用系统开发需符合相关法律法规上的要求,符合相关的行业标准和管理制度。4设计软件设计通常分为概要设计和详细设计两个阶段,主要任务就是将软件分解成模块是指能实现某个功能的数据和程序说明、 可
8、执行程序的程序单元。概要设计就是结构设计,其主要目标就是给出 软件的 模块结构,用软件结构图表示。详细设计的首要任务就是设计模块的程序流程、算法和数据结构,以及设计数据库。系统的设计需达到一个从来没有接触过的人一看就能从各个方面都对系统的作用,功能,实现方面有一个大概了解,并为以后的各类详细设计文档提供一个指引和方向。设计析阶段需形成的文档包括概要设计说明书、详细设计说明书。设计阶段的主要安全工作包括:4.1 功能划分设计阶段的功能划分不合理,难以发现,且不好处理。因此功能模块设计需详细描述系统有那些主要功能,这些功能应该用何种技术,大致是如何实现的,以便发现问题。4.2 模块协作描述模块间如
9、何协同运作的,以便发现问题。4.3 系统定级安全设计描述系统应该具有的安全级别,以及达到此安全等级的所采用的技术。4.4 隐通道本来受安全策略限制不能进行通信的实体,利用可执行的操作的副作用而实现通信。4.5 认证不充分只有分配有足够权限访问的操作进程才可以访问和操作相应的进程,攻击者同城会采取一些攻击获权限而执行一些非法操作,使得系统不可靠。 在设计中,需加强访问孔子,确保操作都经过相应的授权 认证允许。4.6 缓冲区溢出缓冲区是分配的一段大小确定的内存空间,是内存中用来存放数据的地方。发生缓冲区溢出时, 会覆盖相邻内存块,从而引发程序安全问题。因此在设计阶段,就需做好缓冲区溢出防范工作。4
10、.7 并发控制策略并发作为一种提高计算机系统运行效率的重要手段,在得到广泛应用的同时,其机制本身容易引起 以下问题(1)竞争(2)活锁(3)死锁设计阶段需考虑到并发带来的上述问题,并做处理。4.8 TOCTTO错误是一种利用公用可写文件,攻击者可以创建同名连接到其访问的文件,来达到非法访问的目的。因4Q/CDT XXXXX 201X 此,系统设计时,需有相应的防护策略。4.9 数据库重要信息的保护 数据库中的重要信息需加密存储,并有相应的防控措施。4.10 配置管理:对管理界面进行未经授权的访问、 具有更新配置数据的能力以及对用户帐户和帐户配置文件进行未 经授权的访问。4.11 身份验证口令长
11、度不低于 8 位;口令至少需数字和字符串组合;口令需加密存储;口令验证通信信道需加密, 以 保护身份验证;使用强密码,支持密码有效期和帐户禁用。4.12 访问控制 任何用户如果希望访问应用系统中的某一部分,则必须通过唯一的认证授权方式。4.13 授权 使用最少超级管理帐户,每个系统不得多于2 个;不得采用集中授权,凡是授权,均进行单独授权(初始化授权可批量,但初始化权限分配必须经过信息化主管部门审核) ;限制用户访问最小权限资源。4.14 收权 用户离职或其它原因不需再访问系统,需要及时有关系统的权限4.15 敏感数据 对网络上传输的敏感数据进行加密;确保通信通道的安全;对敏感数据存储提供强访
12、问控制。4.16 Cookie 管理不要在 cookie 中永久性存储敏感数据;不要使用 HTTP-GET 协议传递敏感数据;不要通过 HTTP 连接传递身份验证 cookie 。在授权 cookie 内设置安全的 cookie 属性,以便指示浏览器只通过 HTTPS 连接向服务器传回 cookie 。4.17 远程维护管理 在管理界面上使用身份验证后授权;远程管理时要确保通信通道的安全。4.18 会话管理限制会话时常, 具体时长由业务系统决定,闲置会话原则上不超过 15 分钟。保护会话状态, 以防 止未经授权的访问。4.19 加密 考虑到集团公司会代表国家荣誉,加密算法,需采用我国的算法或我
13、国改造的算法。 SM1-SM9 算 法, SSF33 算法,祖冲之对称秘钥算法等,密钥最低不得低于32 位。定期回收管理密钥。5Q/CDT XXXXX 201X4.20 异常管理设计好异常处理机制。4.21 审核和记录在所有应用中审核和记录活动,确保日志文件访问的安全,定期备份日志文件。4.22 5.1.12后门预防控制系统须有机制,防止恶意攻击绕过安全性控制而获取对系统资源访问和控制。4.23 安全设计评审应用系统设计方案需要由信息化主管部门进行组织安全评审。4.24 确保日志管理机制健全建立可根据情况自由设置的日志管理机制,日志记录的范围和详细程度可以根据需求自行定制,且可以实现在应用系统
14、的使用过程中进行日志的定制和记录。保留所有与系统开发相关的程序库的更新审核记录。日志信息不可删除和修改,日志信息需是自动记录,不允许存在手工参与情况。4.25 审计安全规范(1)应包括每个用户的安全审计功能,对应用系统的重要安全事件进行审计。(2 )应保证无法单独中断审计进程,审计记录无法删除、修改或覆盖。(3)审计内容应包含事件主要信息:日期、时间、操作人、类型、事件信息和结果等。(4)应提供审计记录数据统计、查询。4.26 数据及通信有效性管理规范(1)应提供校验码技术,保证通信过程的数据完整性。(2)应具有在请求的情况下为数据原发者或接收者提供数据原发和接收数据的功能。(3)提供有效性验
15、证功能,保证人机接口或通过通信接口输入的数据格式或长度符合系统设定要求。(4)提供自动保护功能,当故障发生时自动保护当前状态,保证系统能够恢复。(5)当应用系统的通信双方中的一方在一段时间内未作任何响应,另一方应能够自动结束会话。(6)应能够对系统的最大并发会话连接数进行限制。(7)应能够对单个帐户的多重并发会话进行限制。(8)应能够对一个时间段内可能的并发会话连接数进行限制。(9)应能够对一个访问帐户或一个请求进程占用的资源分配最大限额和最小限额。(10 )、应能够对系统服务水平降低到预先规定的最小值进行检测和报警。(11)应提供服务优先级设定功能,并在安装后根据安全策略设定访问帐户或请求进
16、程的优先级,根据优先级分配系统资源。5编码软件编码 是指把软件设计转换成计算机可以接受的程序,即写成以某一程序设计语言表示的源程 序清单5.1 编码阶段的主要工作:1、基于软件产品开发质量要求,充分了解开发语言、工具的特性和风格,选取合适的编程语言。2、编码。3、提供源程序清单。5.2 编码阶段需要考虑的安全问题包括:1、内存安全的实现 编程过程中内存数据出现的常见安全问题,如缓冲区溢出、整数溢出、字符串格式化等。2、线程 /进程安全 如线程同步、线程死锁等3、科学地处理异常 异常是程序设计中必须处理的,主要解决怎样处理异常能够保证系统的安全性。4、输入输出的安全保障 如对输入的合法性检测。5
17、、权限控制的处理 系统中涉及授权和限制访问,需要有完善的权限控制机制。6、数据的保护 数据篡改和抵赖的防护和检验 除了加密解密外,还需要对对信息来源的鉴别、对信息的完整和不可否认等功能进行保障。7、代码的优化处理所有的程序, 都需经过代码优化, 代码性能的好坏有时候不仅关系到系统的运行效率, 也关系到系统的 安全。8、Web 编程安全。Web 编程中安全问题多种多样,但至少应有应付跨站脚本、SQL 注入、 Web 认证攻击、 URL 操作攻击等安全问题。9、参数变量处理如果需要设置变量, 不能使用缺失的默认值, 如需设置 PATH 为一个已知的值, 而不能使用启动时的缺 省值。10、SQL 规
18、范( 1)系统须有完善的防止 sql 注入处理机制。( 2) SQL 语句的参数应以变量形式传入。11、页面请求处理应校验参数的长度WEB 服务器在接受页面请求时,应校验参数的最大长度,截断超出最大长度的范围。12、登录失败信息错误提示WEB 服务器在接受用户登录请求时,不应区分登录失败的提示信息(如:用户名不存在、密码错 误、密码已过期等) ,应采用统一的失败提示信息(如:错误的用户名或密码) 。13、错误提示信息规范 所有对用户显示的错误信息都不应暴露任何关于系统、 网络或应用程序的敏感信息。 如果需要的话, 应使用包含编号的一般的错误信息,这种信息只有开发者或支持小组才能理解。14、开源
19、软件管理(1)开源的产品、平台及实现的功能应符合项目的需求。( 2)开源 License 需适用于产品,若无 License 或 License 不友好的,需进行开源产品使用的风险评估。(3)开源软件的代码需整洁、注释完善。(4)选取的开源产品的文档说明需齐全。15、开发版本管理( 1)在应用系统开发过程中使用配置及版本管理工具管理开发过程中的权限控制、源代码和相关 文档的版本控制、变更管理。( 2)保证开发、测试、正式运营环境的隔离,控制开发代码的安全传输。( 3)不能使用正式运营环境的数据作为测试数据,如必须使用,需要进行数据处理。( 4)应用系统软件版本审批。对应用系统的版本的升级,应确
20、认当前的版本为最新的版本,旧的 版本应进行归档,不得随意丢弃或删除。16、应用系统版本升级计划( 1)制定相关的升级计划,确保将系统升级对业务的影响降至最低。( 2)应用系统软件版本升级后需进行测试,确认系统的各种安全特性。( 3)应使用软件加锁技术防止不同版本相互覆盖的情况。( 4)当版本变更时应在更新的版本中记录变更的详细描述。( 5)应提供版本的合并功能。( 6)版本的更改应只允许指定的人员进行操作。( 7)应记录所有的版本变更的日志,其中包括更改日期、更改前版本号、更改后版本号、更改人、 审批人等信息。17、开发日志管规范( 1)系统开发中的相关日志文件应根据开发周期定期审核。( 2)
21、开发人员权限定期( 3 个月)审核一次。18、外包的管理规范应对外包开发进行管理, 保证软件代码的准确性、 控制恶意代码、 逻辑炸弹等, 可以采用代码抽查、 签署合同等模式来实现。19、开发环境安全管理规范( 1)软件开发环境由开发服务器、开发用户终端、网络控制域与端口、其他配套输入输出和存储 设备构成;( 2)软件开发环境应与正式运营环境在物理上隔离;( 3)软件开发环境与测试环境在逻辑上分开;( 4)规定软件开发环境的配置标准和实际配置维护日志;( 5)软件开发环境避免无关软件和数据文件的安装复制,防止有害代码植入和传播;20、其它( 1)应从正规的软件供应商那里购买相关的软件或程序或中间
22、件。( 2)应检验和验证源程序和源代码。( 3)在系统正式投入使用之前应进行评估,如一些行业的标准认证评估。( 4)在系统正式投入使用后,应严格管理源代码的访问、升级和修改。( 5)应使用有资质的开发人员操作密钥系统。( 6)不得随便安装别人给的软件,特别是不得随便打开电子邮件中的附件,一些可执行文件必须 先进行病毒及恶意代码的扫描。6 测试8Q/CDT XXXXX 201X软件测试 的目的是以较小的代价发现尽可能多的错误,软件测试的关键在于 设计一套出色的测试用例(测试数据与功能和预期的输出结果组成了测试用例)普通的功能测试的主要目的是:(1)确保软件不会去完成没有预先设计的功能(2)确保软
23、件能够完成预先设计的功能安全测试的主要目的是:要抢在攻击者之前尽可能多地找到软件中的漏洞。以减少软件遭到攻击的 可能性。安全性测试至少至少应考虑的问题:6.1 用户认证安全的测试要考虑问题(1 )明确区分系统中不同用户权限(2)系统中会不会出现用户冲突(3)系统会不会因用户的权限的改变造成混乱(4)用户登陆密码是否是可见、可复制(5)是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统)(6)用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统6.2 数据库安全考虑问题(1 )系统重要数据是否机密(2)系统数据的完整性(3)系统数据可管理性(4)系统数据的
24、独立性(5)系统数据可备份和恢复能力6.3 安全测试的内容案例和参考方法1、输入验证测试,包括如下方面(1 )数据类型(字符串,整型,实数,等)(2)允许的字符集的最小和最大的长度(3 )是否允许空输入(4)参数是否是必须的(5)重复是否允许(6 )数值范围(7)特定的值(枚举型)(8)特定的模式(正则表达式)2、问题访问控制测试主要用于需要验证用户身份以及权限的页面,复制该页面的url地址,关闭该页面以后,查看是否可以直接进入该复制好的地址从一个页面链到另一个页面的间隙可以看到URL地址或直接输入该地址,可以看到自己没有权限的页面信息3、会话管理测试系统的某些功能不允许用户浏览,如果必须要一
25、个用户列表,并对列表中和未有在列表中的用户进 行权限测试。4、跨站脚本(XSS)测试攻击者使用跨站脚本来发送恶意代码给没有发觉的用户,窃取他机器上的任意资料。测试参考方法:HTML标签: < ;转义参考字符: &(&) ;<(<);>(>); (空格 )。 脚本参考语言:特殊字符、最小和最大的长度、是否允许空输入。5、缓冲区溢出测试用户使用缓冲区溢出来破坏 web 应用程序的栈, 通过发送特别编写的代码到 web 程序中, 攻击者可 以让 web 应用程序来执行任意代码。6、注入式漏洞测试例:一个验证用户登陆的页面,如果使用的sql语句为:Sele
26、ct*from table A where username=''+username+''and password='+ password +'。Sql输入 or 1 = 1就可以不输入任何 password进行攻击。7、不恰当的异常处理 程序在抛出异常的时候给出了比较详细的内部错误信息,暴露了不应该显示的执行细节,网站存在潜在漏洞。8、不安全的存储,没有加密关键数据测试例: view source: http 地址可以查看源代码在页面输入密码,页面显示的是 *, 右键,查看源文件就可以看见刚才输入的密码。9、拒绝服务测试攻击者可以从一个主机产生
27、足够多的流量来耗尽狠多应用程序,最终使程序陷入瘫痪。10、不安全的配置管理测试Config 中的链接字符串以及用户信息,邮件,数据存储信息都需要加以保护。 至少应配置所有的安全机制,关掉所有不使用的服务,设置角色权限帐号,使用日志和警报。11 、漏洞测试负责安全测试工作的人员应通过工具或人工方式, 对软件执行漏洞识别测试, 尽可能识别软件漏洞、 后门等隐患,常见的隐患包括堆 SQL 注入漏洞、跨站脚本漏洞、缓冲区溢出漏洞、拒绝服务漏洞等。 负责安全测试工作的人员应对软件执行渗透测试,确定所识别漏洞被利用的难度及造成的后果。 12、测试用例保护对于涉及公司及员工敏感数据或隐私数据的测试用例, 测试人员应采取插入冗余数据和访问授权等 保护措施,测试结束后,测试人员应及时删除这些测试数据。1 3、测试过程中的安全测试数据应选择、 保护和控制; 应避免使用包含涉密信息的运行数据库用于测试。 如果测试使用了 涉密信息,那么在使用之前应去除或修改所有的敏感细节和内容。在应用系统测试中,使用正式运行系统数据进行测试应由数据所有人授权,使用敏感的正式运行
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024广西合同养殖合同模板
- 2024平面设计作品委托合同样本
- 2024标准版销售合同范本(酒水类)
- 钢筋混凝土及课程设计
- 2024建房指标转让合同
- 2023年天津市和平区招聘笔试真题
- 2023年临沂市人民医院招聘考试真题
- 课程设计拆分教案
- 青少年阅读课程设计
- 课程设计卷扬机
- 《病人安全护理学》-教学大纲
- 项目分成比例合同模板
- GB 27887-2024机动车儿童乘员用约束系统
- 期中考试模拟试卷 2024-2025学年人教版数学九年级上册
- 朝鲜半岛局势演变
- 自然科学基金项目申请书
- 第四届全国新能源汽车关键技术技能大赛(新能源汽车轻量化技术方向)决赛参考试题库(含答案)
- 2024年秋新鲁科版三年级上册英语课件 Unit 6 lesson 1
- 教师资格考试小学数学面试试题与参考答案
- 2024-2025学年深圳市九年级上册期中考试模拟试卷历史试卷
- 人教版英语2024七年级上册全册单元测试卷
评论
0/150
提交评论