业务系统(暨应用系统)安全评估指南.doc
《业务系统(暨应用系统)安全评估指南.doc》由会员分享,可在线阅读,更多相关《业务系统(暨应用系统)安全评估指南.doc(36页珍藏版)》请在咨信网上搜索。
1、密 级:秘密文档编号:项目代号:业务系统(暨应用系统)安全评估指南Ver 0.4二零零五年二月安氏互联网安全系统(中国)有限公司版本控制版本日期参与人员更新说明0.42005-2-11崔天强文档框架开始建立分发控制编号读者文档权限与文档的主要关系1编写,修改文档作者2读取目 录1概述71.1评估的范围与概念澄清71。1。1业务系统评估71。1。2应用系统评估81。2评估手段91。3评估实施环境102软件工程模型对安全评估的借鉴102。1软件工程对信息安全评估工作的借鉴意义102.2以业务为核心的全面风险评估102。3组织结构与功能112。3。1组织结构图112。3.2组织/业务关系图122.3
2、。3业务功能表132.3。4组织结构与功能分析对安全评估的借鉴132。4业务流程分析132。4.1软件工程中的业务流程分析132。4。2安氏现有的业务流程评估142。4.3业务流程分析对安全评估的借鉴152.5数据流程分析172。5.1软件工程中的数据流程分析172。5。2数据流程分析对安全评估的借鉴192。6威胁模型233应用系统的安全开发过程243.1教育243。2设计阶段243.2。1面试时进行安全性考核243.2。2设定产品的安全目标253.2.3建立威胁模型253。2。4设置Bug阀值253.2。5安全小组检查253。3开发阶段263。3.1定义安全的编码准则263。3。2审查旧的安
3、全问题263。3.3外部安全审查263.3.4安全推动活动263。4测试阶段263。5发行和维护阶段273。5。1响应过程274评估前的准备274。1.1确定用户配合人员274.1。2确定评估的范围274。1.3获得应用系统组件的清单284。1.4业务系统介绍会和相关文档284.1。5建立数据流程图和威胁模型284.1.6签署应用系统安全评估申请295常见应用系统的架构295。1C/S架构295.2N-tier架构295.3应用系统架构和安全性的关系306通用应用系统的评估306.1认证和鉴别306。1.1是否启用了PKI316。1。2是否启用了组织统一要求的PKI316。1.3是否识别错误的
4、证书316。1.4认证进程是否适当316.1。5是否支持客户端对服务器的认证326。2用户帐户管理326。2。1用户ID不唯一326。2。2不活动用户是否禁用326。2。3不必要的内置用户是否禁用326。2。4用户ID是否有默认的或者弱口令326.3数据保护336.3.1敏感数据不适当地存储336.3.2敏感数据传输中没有适当的保护336.3.3使用未经验证的加密算法346.4审核346。4.1没有适当纪录安全相关的事件346.4.2日志将满没有警告346.4.3日志存在未授权删除、修改、泄露等漏洞346.5应用操作356.5。1基于角色的访问控制没有加强责任分离356.5。2应用在执行操作之
5、前没有进行授权356.5。3进程运行的权限过高356。5.4应用没有对session的限制356。5.5应用修改在应用的范围之外的文件366.5。6用户绕过用户界面直接修改资源366.6生产环境下应用配置366。6。1应用和支持库中包含从未激活的代码366.6。2应用代码和数据在相同的目录中366。6。3安装源代码保存在服务器中366.6.4应用的环境中同时使用了不必要的软件或者服务366.7影响控制376。7.1网络架构不适当376.7.2没有灾难恢复计划376.7。3备份或者备份程序不完备376。7。4没有确保应用日志可以长时间保存的流程376。7.5敏感数据未经修改地直接导入测试环境37
6、6。8应用配置和授权376。8.1应用未恰当设置Banner信息376。8.2会话结束后应用在客户端保存认证凭证376.8.3普通用户可以执行超级用户权限386.8。4应用没有明显的logout的办法386。8。5认证凭证或者敏感数据在代码中保存386.8.6应用代码包含无效的网络资源引用386。9基于代码的因素386.9。1应用的进程在终止前没有从内存或者磁盘中删除临时对象386。9。2应用没有充分验证用户输入396。9。3应用直接暴露出错信息396。9.4应用失败能够导致不安全的状态397基于WEB应用系统的评估397。1认证机制407。1。1验证代码可下载407。1。2HTTP认证407
7、。1.3表单认证407。2授权417.2。1攻击种类417。2.2角色矩阵417。2.3常见攻击手段427。3会话状态管理427.3。1URL直接绕过427。3.2hidden字段427.3。3HTTP Referer头标437.3。4Cookie或者session ID437。4输入验证437.4。1输入验证攻击的种类437。4。2缓冲区溢出攻击447。4。3shell injection攻击447.4。4文件上传漏洞447.4。5数值边界校验447.5客户端验证447.5。1脚本验证447.5。2hidden字段457。5.3HTTP头标457。6SQL injection测试457.6。
8、1测试前准备457.6。2系统是否进行了基本的过滤457。6。3常用的其他测试方法467。7跨站脚本测试467。7。1跨站脚本攻击多发点477。7。2测试方法477。8其他问题477。8.1源代码在站点中可以下载477。8.2站点目录可以浏览477.8.3源代码泄漏477.8。4ODBC连接问题487。8.5错误消息泄漏487.8。6同时开放其他服务48附录 参考文献481 概述本文是一个“业务系统”安全评估指南,但其主要关注“应用系统”安全评估(Application Security Readiness Review)的过程,是在DISA(Defense Information Syste
9、ms Agency)的Application Security Checklist基础上,增加或者修改了部分内容形成的。关于“业务系统”安全评估和“应用系统”安全评估之间的关系,将在本文第1。1节进行澄清。1.1 评估的范围与概念澄清1.1.1 业务系统评估业务系统安全评估应该包含业务系统的所有服务器端组件、以及需要安装或者配置的客户端组件,包含但不限于以下部分:一个全面的业务系统安全评估,应该包含该业务相关的以上各个方面.1.1.2 应用系统评估一般在评估项目中,会同时进行网络架构安全性评估、主机系统安全性评估、安全策略评估等;在这样的情况下,对业务系统的评估,就不必再进行这些部分的评估,侧
10、重于“应用代码或程序”评估即可。所以本文对业务系统安全性评估的论述,侧重于对应用系统安全性评估。1.2 评估手段在应用系统安全评估中,应该综合采取以下方式,进行全面的应用系统安全评估:l 应用系统文档审核;u 包括应用系统开发、维护文档等,尤其关注其中的和安全性相关的部分;l 顾问访谈;u 询问应用系统开发者、系统管理员、普通用户等;u 一般若用户回答否,则结果为否;若回答是,则应尽可能实际上机验证;l 系统配置状况检查;u 实际登陆系统,检查其安全状况;l 源代码审核;u 可以针对具体的checklist检查项,在应用系统开发者的配合下,查看相关的源代码实现方式;l 渗透测试;u 可以部分采
11、取渗透测试的方式,来检验系统的安全性,比如SQL injection攻击、跨站脚本测试、口令的暴力破解等;u sniffer也是一个好工具;在实际评估工作中,以上有些方式可能无法实现,比如源代码审核、配置文件检查等;这时候可以考虑通过其他方式来进行验证其现状,比如渗透测试。1.3 评估实施环境在应用系统安全评估工作中,评估环境一般可以分为测试环境和生产环境。有些评估工作只能在测试环境下面做,否则会对生产有影响,比如缓冲区溢出测试、脚本注入测试等等,不然有可能影响生产系统的正常运行。前提是测试环境下的代码要和生产环境下一致。有些测试要在生产环境下面做,因为有些情况下,具体的配置会产生巨大的影响.
12、2 软件工程模型对安全评估的借鉴2.1 软件工程对信息安全评估工作的借鉴意义在计算机发展史上,在六七十年代,由于“软件危机”的产生,导致了软件工程科学的发展。在信息安全评估工作中,应该分析、借鉴软件工程的相关思想和模型,来提高信息安全评估工作的质量,原因如下:l 软件发展史上曾经遭遇从个体劳动、作坊劳动向大规模协作劳动的瓶颈,信息安全评估工作可以借鉴软件工程中克服该瓶颈的思想;l 分析软件工程中的过程和思想,有助于理解改善软件开发过程中安全水平;2.2 以业务为核心的全面风险评估对用户要求没有准确完整的认识,就匆忙着手编写程序是许多软件开发失败的主要原因之一。同样,对于信息安全评估工作,对于用
13、户要求、用户现状的全面调查和分析,也是决定信息安全评估工作成败的重要原因。在软件开发过程中,代码编写所占的比例应该相对较小,而前期调研、系统设计应该花较多精力。同样,在信息安全评估工作中,应该有大量的时间是花在前期调研上.用户业务,应该是一切安全评估的基础。2.3 组织结构与功能2.3.1 组织结构图在软件工程的开发前期,需要调研企业的组织架构图,比如:2.3.2 组织/业务关系图在软件工程的调研、设计阶段,也需要调研企业的组织架构和业务关系,比如:2.3.3 业务功能表对于企业的应用系统,一般在开发过程中会有相应的业务功能表,比如:2.3.4 组织结构与功能分析对安全评估的借鉴在应用系统安全
14、评估工作中,应该获得以上组织结构图、组织/业务关系图、业务功能表,以获得对用户现状的全面认识。2.4 业务流程分析2.4.1 软件工程中的业务流程分析在软件工程中,业务流程分析有助于了解某项业务的具体处理过程,发现和处理系统调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程.业务流程图(Transaction Flow Diagram ,简称 TFD )就是用一些尽可能少的规定的符号及连线来表示某个具体业务处理过程.业务流程图易于阅读和理解,是分析业务流程的重要步骤.2.4.2 安氏现有的业务流程评估安氏现有的或者以前的业务系统流程分析,从部分售前文档中看,侧
15、重于以下方面:1、详细的业务流程2、业务相关性分析是因为用户的维护部门的岗位职责设置通常是根据业务来设置的,用户关心业务系统和业务系统之间的、业务系统各组件(部分)间的安全问题,包括数据交换、权限、包括业务管理上安全要注意的问题等。3、数据流和数据存储方式4、业务流程和拓扑结构的关系2.4.3 业务流程分析对安全评估的借鉴2.4.3.1 从软件工程中的业务流程分析中借鉴可以看到,在软件工程中的业务流程分析,是准确意义上的业务流程分析.它描述的是纯粹的业务处理过程,是要在应用系统中实现的东西,和计算机系统本身没有直接关系。业务流程分析,对于用户业务的安全性,也有着重要的意义.最明显的例子,比如在
16、银行存取款业务中,只有流程合理才能有效保证资金的安全.在银行存取款业务中,有部分流程可能在应用系统中实现了;而有部分流程未在应用系统中实现。对银行业务安全角度而言,可能这两部分都很重要。比如,银行用户是否会考虑委托专业的会计咨询顾问来做这个工作?在毕马威的ppt中看到,它们宣称有银行业务流程分析这个业务。本文建议我们的业务流程评估,只考虑“在应用系统中实现的部分流程”,即和计算机相关的部分,而不考虑“未在应用系统中实现的部分流程.因此,在安全评估过程中,有必要对用户应用系统开发过程中产生的业务流程图等业务流程分析结果进行再分析,有以下益处:l 分析用户业务流程中是否存在逻辑上的安全弱点;l 有
17、助于了解用户业务流程,为建立应用系统相关的威胁模型打下良好基础;2.4.3.2 从安氏现有的业务流程评估借鉴分析售前文档中提到的安氏现有的业务流程评估,可以从两个方面看:l 一方面,这个“业务流程评估并非是准确意义上的业务流程分析;它涉及到应用系统架构、数据流程、网络拓扑结构、甚至应用系统开发等等各个方面.l 另一方面,这个“业务流程评估”较多关注用户的实际需求,应该充分借鉴.安氏现有的业务流程评估中,所提到的某些需要关注的问题,比如对数据流、数据存储等因素的考虑,可以在数据流程分析、应用系统安全评估中实现。除此之外,安氏现有的业务流程评估基本可以使用如下的业务系统结构图来表述:该结构图对于业
18、务流程和网络拓扑的相关性分析、数据流程分析、应用系统架构分析都有所帮助。建议在这个业务系统结构图中,要充分表述以下方面:l 应用系统架构;l 和其他业务系统的访问关系,需要具体到端口号;l 外部访问用户的位置;l 业务功能的实体实现;可以看到,这个业务系统结构图中,包含了应用系统架构图。2.5 数据流程分析2.5.1 软件工程中的数据流程分析数据流程分析是把数据在组织(或原系统)内部的流动情况抽象地独立出来,舍去了具体组织机构、信息载体、处理工作、物资、材料等,单从数据流动过程来考查实际业务的数据处理模式.主要包括对信息的流动、传递、处理、存储等的分析.数据流程分析的目的是要发现和解决数据流通
19、中的问题,如:数据流程不畅、前后数据不匹配、数据处理过程不合理等等。数据流程分析可以通过采用分层的数据流程图(Data Flow Diagram , 简称 DFD )来简单表示。把待解决的问题当作一个整体系统,找出其输入、输出和处理(即:外部项、处理功能、存储数据、数据流向),不考虑其中细节部分,画出第一层数据流图。遵循由上至下、逐步求精的原则,根据业务范围和处理功能,在第一层数据流图的处理框中进一步细划,找出其内部的业务处理关系和数据传输关系,画出第二层数据流图。根据问题的复杂程度按照上述方法逐步分层,直到所需表达的数据都显露出来。如图所示,是一个分层的数据流程图:以下以一个汽车配件厂为例,
20、分析其数据流程图。第一层数据流层图,表述了其和外部实体之间的数据流关系。第二层、第三层数据流程图,对汽车配件厂内部的数据流程,进行了更细致的表述。2.5.2 数据流程分析对安全评估的借鉴在业务系统安全评估过程中,可以通过对数据流程的分析,发现数据流在产生、传输、存储、处理、输出等过程中所经过的各个环节所可能存在的安全隐患.这种安全隐患,可能是应用系统设计上的问题,也可能是业务系统部署上的问题.一方面,在评估中,软件工程中的数据流程分析及其数据流程图,是一个非常重要、高效的信息来源,应该细致分析。另一方面,软件工程中的数据流程分析及其数据流程图,不能很好满足为安全评估目的的数据流程分析.它比较注
21、重于软件各组件之间的逻辑关系,而安全评估中的数据流程分析,不仅仅要关注各组件之间的逻辑关系,也要关注实现各组件功能的实体.根据评估对象和目的的不同,所绘制的数据流程图可能有所不同。这里,建议可以考虑以下三种粒度的数据流程图:l 网络架构评估之数据流程图;l 业务系统评估之数据流程图;l 应用系统评估之数据流程图;2.5.2.1 网络架构评估之数据流程图在网络架构安全性评估中,尤其是在大型网络中,网络架构是否合理、网络架构该如何调整、如何实施访问控制,都和网络中的数据流程密切相关,可以考虑采用数据流程图的方式来作为网络架构评估的参考依据。下表是某广域网的数据流分析:可以看到,由于目前该网络上跨全
22、网的应用系统较少,除DNS、电子邮件、WWW等基本网络应用外,只有办公自动化系统、财务系统等几个应用系统运行,所以广域网(城域网)上的流量较少,流向主要是全国中心与各省公司的双向传送,各省公司之间数据传输很少.流量较大的是本部局域网及对Internet的访问。也可以参照软件工程中分层次数据流程图的方式,以分层次的方式,来表述不同层次安全域中数据流程,比如,在第一级安全域中:在第二级安全域中:在第三级安全域中:调查各业务系统之间的数据流所用表格如图所示:在这样的网络架构评估中的数据流程图,一般具体到“业务系统、“终端”这样的较小的“网段单位即可满足需求。在这样的评估中,要特别关注外部网络边界、不
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 业务 系统 应用 安全 评估 指南
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。