知识库系统开发步骤(系统开发步骤图)难以置信
神州希望始终践行“一切为了更好的安全”,为您的网络安全保驾护航!
一切为了更好的安全 网络安全等级保护制度、关键信息基础设施安全保护制度、数据安全保护制度是国家网络安全的基石中国电子科技集团公司第十五研究所和信息产业信息安全测评中心于2021年举办了2021年度中国网络安全等级保护和关键信息基础设施保护大会,就上述等保及关基保护等相关内容进行交流和探讨。
此次会议将出版大会论文集,我司祁景晨、韩弘光、唐万松、肖传昊共同编写的《浅谈软件安全开发流程研究》论文成功入选《2021中国网络安全等级保护和关键信息基础设施保护大会论文集》。
入选论文分享
《浅谈软件安全开发流程研究》作者——祁景晨 韩弘光 唐万松 肖传昊摘要:在这信息发达、通讯便捷的时代,每个人不可避免的都会被信息化的浪潮所席卷,企业的生产效率也将得到极大的提高但是随着软件的广泛使用,软件开发需求的激增,软件的安全问题也逐渐被暴露出来。
为了能够开发出安全性更高的软件,需要从软件开发的源头开始就要考虑安全的问题基于此,本文以PMS项目管理系统为案例,SDL作为对象探讨了软件安全开发流程具体细节,并阐述了如何将软件安全开发流程引入软件生产生命周期的过程。
关键词:软件安全;SDL;安全开发流程 1.软件安全开发流程分析目前,随着互联网的普及,在涉及到信息隐私、数据安全等相关计算机网络问题上,人们愈发的重视起来这些问题一直都在影响着用户的体验与安全,为了提升用户在使用过程中的体验以及保障软件的性能,在软件开发的过程中开发人员应做到把系统安全漏洞的产生几率降至最低,让软件被攻击或者破解的问题从根源上得到解决,开发设计出安全的产品,提高用户的体验感。
1.1 SDL概述在软件行业这个相对成熟的时代,许多信息安全方面的专家已经在软件安全问题上有所研究,这期间,软件安全开发流程也应运而生现如今,由微软公司所提出的SDL得到了行业的普遍认可,SDL作为软件安全开发生命周期管理的安全实践,全称为。
Security Development Lifecycle其本质就是结合了软件开发生命周期,将安全工程师嵌入到整个开发流程,和研发人员一起协调工作保障整个软件生命周期内的安全1.2 SDL发展及应用现状。
微软公司2004年开始将SDL作为全公司的计划和强制政策,从需求确认、产品设计再到发布上线的每一个阶段都相应地增加了安全策略,为的就是尽可能减少软件的漏洞并将安全风险程度降低现如今,国产SDL也有了长足的发展,政府层面,中国国家测评中心推出安全开发类的资质;企业方面,搜狐、淘宝等大型互联网企业也相继推出自己的。
SDL1.3 SDL的改进当前的安全现状极大程度上说明了各行业对SDL的需求是广泛存在,但中国SDL的发展和推广现如今大部分依赖于大型互联网公司的实践与开拓,从发展和推广层面来说,专业信息安全公司也应该加入到先行者队伍。
中国SDL的发展应该考虑到各行各业的特征,按照行业去分别建立适合本行业,易于操作执行,依赖性低的SDL以银行业为例,部分公司在构建银行业SDL中,就非常注重需求、设计、开发、测试、部署等各层面与行业的结合,加强具有行业特征的模板文件建设,这样既保证了。
SDL的可操作性又尽可能地贴近行业特征为了降低现有SDL的限制性和经济方面的要求,扩充SDL适用方面的对象,将安全知识库作为软件安全开发流程的核心层面,软件开发周期可以简化成需求、设计、测试、维护4个阶段,这样会使得软件开发流程不再生硬、死板,开发过程具有可塑性以及更加地灵活多样。
1.3.1安全知识库安全知识库作为改进的软件安全开发流程核心,其包含了安全管理规范、安全漏洞库、安全开发设计规范、安全工具和一些相关的安全知识培训安全管理规范是为了确保单位的计算机网络信息安全,通过结合有关部门的相关规定,以及单位下计算机信息网络的使用情况,可定制相关规范等。
安全漏洞库是通过收集到的相关产品安全漏洞,为切实履行漏洞分析和风险评估的职能,为开发过程、后期的运维工作进行信息安全保障和提供基础的服务安全开发设计规范是规定项目开发设计工作应遵循的原则,保证需求说明文档中的各项需求得以实现,同时也能通过编码质量、规范来保证产品的安全性能。
安全工具包括一些网络安全测试工具,网络信息收集工具等例如namp,AppScan等安全知识库作为安全开发流程核心,在开发的每一个阶段都能使用其中的相关内容,所以其重要性不言而喻安全知识库结构图如图1.1
所示。
图1.1 安全知识库结构图2.安全开发的实现在传统的软件开发流程中,对客户需求的收集及分析这一阶段,更多考虑的是软件的功能性,而不注重对安全风险的管理现如今一个优秀的软件安全开发流程,应当去分析客户安全需求,制定安全的标准和要求,建立安全需求管理,有针对性的进行安全与隐私风险评估。
安全开发流程图如图2.1所示。
图2.1 安全开发流程图 2.1 评估安全需求在开发的需求阶段,针对用户的需求,开发人员需要考虑安全技术的选型,待保护资产的范围、保护的时间及方式、用户权限的访问控制、以及系统之间的通信安全和保护这些资产系统需要的开销等。
安全需求更侧重于减少软件功能设计的缺陷,以及在满足安全条件下,满足使用者的需求,安全需求应当与软件的功能需求一样,需给予同样的重视 2.2 安全性设计安全性设计阶段是软件安全开发的关键阶段,包括概要、详细设计
[1]在概要设计的阶段,应定义好各个模块的分工,参考产品风险库和漏洞库,在对需求有充分理解的基础上,对软件的架构进行一个初步的设计在团队型开发时,更需要针对一些已知的常见漏洞去制定一套团队的开发规范,在开发时共同遵守,尽可能地减少代码中的缺陷。
详细设计阶段则是需要详细分析需求中的设计与实现是否能满足安全性的要求,分析过程主要为发现系统中可能潜在的安全风险和做出一切可能造成错误输出的假设2.3 编写安全代码产品的研发离不开源代码的编写,开展软件安全工作也离不开对源代码的安全审计。
通过使用静态分析工具,可以在程序发布前帮助开发人员查找出代码存在的错误,从而保证软件的整体质量[2]除此之外,静态代码分析工具还可通过模型的检查、类型推断、以及对数据流的分析来完成对软件安全的验证,大大的提升代码审计的效率,使得开发人员能更快速的定位到具体问题,减少项目开发的时间成本。
当然,使用静态分析工具,也不能保证完全找出代码中所有潜在的缺陷一些存在于业务层面的漏洞或者说隐藏于功能上的安全问题,还是需要有经验的安全代码审计人员或开发工程师去人工完成审计业务层面的漏洞主要集中在业务逻辑和越权漏洞上,在代码的设计时,需要遵循最小权限原则。
指在用户完成它所需要的做的任务的进程中,所拥有的最小的权限的集合,此举是为了降低有恶意用户利用代码漏洞所造成的损失 2.4 安全风险管理安全风险管理是为了应对危险事件出现而衍生出的管控风险的科学由于软件开发生命周期的任何阶段,都有可能会出现安全风险,所以我们需要从项目一开始,就要引入安全风险管理,不间断的进行安全风险的跟踪,识别,监督和尽可能地减轻风险造成的影响。
安全风险管理包括但不限于,对风险的定量和定性的统计分析,风险识别,风险预案,风险监督的机制,风险管理计划的编制等总结为一句话,就是如何识别风险,谁来负责识别风险,谁为风险承担责任成功的风险管理,不可避免的要使用各种风险定性和定量的统计方法,中间使用到的技术包括蒙卡特罗分析、决策树分析、。
PERT等等,这个工作需要有项目开发人员,项目经理,以及用户的参与,在软件开发应用设计中引入这些安全风险管理的方法,通常都可以产生更有价值的结果 2.5 安全性测试软件安全测试首先得制定测试计划,先将系统中潜在的威胁依照危险系数排序,然后。
开始进行安全的测试工作测试工作可以分为3种类型,第一种是对代码进行静态的分析测试,主要对软件源代码进行安全漏洞扫描,得出一份针对代码内隐藏缺陷的检测报告,找出可能存在安全隐患的代码,从而让开发人员更快解决;第二种是渗透测试,站在攻击者或者防御者的角度去找出系统中存在的安全隐患和弱点,验证安全防御措施是否到位,是主要的安全性测试的手段。
第三种是运行时测试,即对系统运行时可能会出现的问题进行校验,可以使用缺陷分类表或者风险分类表来对测试中的缺陷进行统计,使用相应的测试方法修复发现的缺陷[3]3.软件系统开发案例说明本节通过对企业PMS项目管理系统说明本次研究提出的软件安全开发流程,该系统的业务是对企业项目的进度进行管理。
PMS项目管理系统的四个主要功能分别为:测评项目信息导入、测评项目任务管理、测评项目成果评审管理、测评项目数据导出以下将从软件安全开发流程的操作步骤方面,对PMS项目管理系统的开发进行说明3.1 开发流程的规范
PMS项目管理系统在需求分析阶段,需将企业的安全需求列入软件的安全开发需求中,并从全局上对系统安全进行考虑,客户的基础信息和用户相关数据的安全性;在异常记录上,需考虑判断规则的安全性、系统业务数据的安全性。
以下是四个主要软件安全开发需求项:项目信息导入步骤:该步骤的项目信息导入有两种方式,分别是另一系统通过API接口调用导入信息、一种是人工录入项目信息两个导入方式在导入过程中将会完整的记录导入时间、记录时间段等相关信息。
此步骤安全性上应提出数据库信息在网络传输等过程中的安全需求项目异常数据过滤步骤:依据项目信息记录的判断规则解析导入系统的项目记录,过滤掉存在异常数据的项目记录此项步骤落实,应拟定项目信息库,合同文件的输出。
/入及文件存储等方面的安全项目项目成果评审步骤:依据企业制定的项目评审流程规定制定项目评审流程管理每个环节中,都要记录该环节中设定的项目数据,并记录该环节数据的提交人和提交时间此步骤应拟定项目评审信息库,评审文件的传输和存储的安全性,注重程序业务逻辑的正确性和安全性。
项目数据导出步骤:依据排定的过程筛选出要导出的项目记录,在程序完成处理后,通过网络传输的方式传输至客户端实现下载在此过程中需要完整的记载导出时间、数据记录的创建时间等相关信息为完成此项步骤,应拟定测评项目的信息库、数据网络信息传输等安全需求项目。
3.2 开发流程的管理在需求分析阶段,对PMS项目管理系统拟定并确认安全开发需求项目,而后在系统开发阶段得到确实的落实每个功能需求,都要通过严格且全面的软件安全质量把关,检查任务的完成程度和安全漏洞检查,如在检查中发现系统存在安全漏洞或者安全需求没有落实到位的,必须立即找出问题所在并进行修订,并在修订完成后,重新进行一次安全质量检查,直到最终确认无安全问题后,再将程序原文件以及开发文档等相关材料进行管制,为后续的开发提供参考。
4.总结软件工程在软件安全质量上的管控方式是对软件开发全过程的介入、对过程的全面监督、对功能的全面测评,并结合软件开发过程的管理,最终确保了软件系统的质量本文通过对软件开发流程分析,明确了软件安全开发的流程阶段,以及在各个阶段需要落实的安全质量工作和方式。
在第二节软件开发的实现中,明确地明说了软件设计、代码编写、安全性测试等方面,安全需求存在的原因和意义,以及如何做好软件开发安全需求工作做好软件安全开发工作,也可以有效降低安全缺失造成的冲击与损失,其必将成为软件质量的重要保障手段之一。
[4]参考文献:[1] 张勉,曹卫峰. 软件安全开发的流程分析[J]. 信息与电脑, 2015(12): 1-2.[2] 江孟涛,荆琦. C语言静态代码分析中的调用关系提取方法[J]. 计算机科学, 2014
, 41(S1): 442-444.[3] 陆向阳,蒋树立,孙亮,熊延忠. 中小银行信息系统开发生命周期安全保障框架[J]. 2013, (11): 142.[4] 冯晓媛. 改善软件质量的软件安全开发流程研究
, 太原大学外语师范学院, 2012.9: 85.*原创文章,未经允许不得转载使用
我们始终坚守“质量、合规、保密”
往期精彩文章论文分享 | 《浅析取证分析在应急处置中的重要性》论文分享 | 《网络安全检查工作要点与实践》贺报|我司四篇论文入选《2021中国网络安全等级保护和关键信息基础设施保护大会论文集》神州希望2022年春季招聘大合辑
贺报|神州希望荣获“2021年度网络安全等级保护测评机构工作表现突出单位”称号贺报 | 神州希望荣获“2021年海南省网络安全实战攻防演练”二等奖网络安全知识竞赛,助力2021年三亚市第八届国家网络安全宣传周活动
贺报 | 神州希望荣获2021“护网行动”三亚市公安局网络实战攻防演习第一名OWASP进校园暨神州希望网络安全校园行专题讲座神州希望获评“博鳌亚洲论坛2021年年会”与“首届中国国际消费品博览会”网络安保工作技术支撑单位
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186