1、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.3业务功能表132.3.4组织结构与功能分析对安全评估的借鉴132.4业务流程分析132.4.1软件工程中的业务流程分析132.4.2安氏现有的业务流程评估142.4.3业务流程分析对安全评估的借鉴152.5数据流程分析172.5.1软件工程中
2、的数据流程分析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审查旧的安全问题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.
3、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是否识别错误的证书316.1.4认证进程是否适当316.1.5是否支持客户端对服务器的认证326.2用户帐户管理326.2.1用户ID不唯一326.2.2不活动用户是否禁用326.2.3不必要的内置用户是否禁用326.2.4用户ID是否有默认的或者弱口令326
4、.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应用在执行操作之前没有进行授权356.5.3进程运行的权限过高356.5.4应用没有对session的限制356.5.5应用修改在应用的范围之外的文件366.5.6用户绕过用户界面直接修改资源366.6生产环境下应用配置366.6.1应用和支持库中包含从未激活的
5、代码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敏感数据未经修改地直接导入测试环境376.8应用配置和授权376.8.1应用未恰当设置Banner信息376.8.2会话结束后应用在客户端保存认证凭证376.8.3普通用户可以执行超级用户权限386.8.4应用没有明显的logout的办法386.8.5认证凭证或者敏感数据在代码中保存
6、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.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.4Cooki
7、e或者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.1测试前准备457.6.2系统是否进行了基本的过滤457.6.3常用的其他测试方法467.7跨站脚本测试467.7.1跨站脚本攻击多发点477.7.2测试方法477.8其他问题477.8.1源代码在站点中可以下载477.8.2站点目录可以浏览47
8、7.8.3源代码泄漏477.8.4ODBC连接问题487.8.5错误消息泄漏487.8.6同时开放其他服务48附录 参考文献481 概述本文是一个“业务系统”安全评估指南,但其主要关注“应用系统”安全评估(Application Security Readiness Review)的过程,是在DISA(Defense Information Systems Agency)的Application Security Checklist基础上,增加或者修改了部分内容形成的。关于“业务系统”安全评估和“应用系统”安全评估之间的关系,将在本文第1.1节进行澄清。1.1 评估的范围与概念澄清1.1.1
9、业务系统评估业务系统安全评估应该包含业务系统的所有服务器端组件、以及需要安装或者配置的客户端组件,包含但不限于以下部分:一个全面的业务系统安全评估,应该包含该业务相关的以上各个方面。1.1.2 应用系统评估一般在评估项目中,会同时进行网络架构安全性评估、主机系统安全性评估、安全策略评估等;在这样的情况下,对业务系统的评估,就不必再进行这些部分的评估,侧重于“应用代码或程序”评估即可。所以本文对业务系统安全性评估的论述,侧重于对应用系统安全性评估。1.2 评估手段在应用系统安全评估中,应该综合采取以下方式,进行全面的应用系统安全评估:l 应用系统文档审核;u 包括应用系统开发、维护文档等,尤其关
10、注其中的和安全性相关的部分;l 顾问访谈;u 询问应用系统开发者、系统管理员、普通用户等;u 一般若用户回答否,则结果为否;若回答是,则应尽可能实际上机验证;l 系统配置状况检查;u 实际登陆系统,检查其安全状况;l 源代码审核;u 可以针对具体的checklist检查项,在应用系统开发者的配合下,查看相关的源代码实现方式;l 渗透测试;u 可以部分采取渗透测试的方式,来检验系统的安全性,比如SQL injection攻击、跨站脚本测试、口令的暴力破解等;u sniffer也是一个好工具;在实际评估工作中,以上有些方式可能无法实现,比如源代码审核、配置文件检查等;这时候可以考虑通过其他方式来进
11、行验证其现状,比如渗透测试。1.3 评估实施环境在应用系统安全评估工作中,评估环境一般可以分为测试环境和生产环境。有些评估工作只能在测试环境下面做,否则会对生产有影响,比如缓冲区溢出测试、脚本注入测试等等,不然有可能影响生产系统的正常运行。前提是测试环境下的代码要和生产环境下一致。有些测试要在生产环境下面做,因为有些情况下,具体的配置会产生巨大的影响。2 软件工程模型对安全评估的借鉴2.1 软件工程对信息安全评估工作的借鉴意义在计算机发展史上,在六七十年代,由于“软件危机”的产生,导致了软件工程科学的发展。在信息安全评估工作中,应该分析、借鉴软件工程的相关思想和模型,来提高信息安全评估工作的质
12、量,原因如下:l 软件发展史上曾经遭遇从个体劳动、作坊劳动向大规模协作劳动的瓶颈,信息安全评估工作可以借鉴软件工程中克服该瓶颈的思想;l 分析软件工程中的过程和思想,有助于理解改善软件开发过程中安全水平;2.2 以业务为核心的全面风险评估对用户要求没有准确完整的认识,就匆忙着手编写程序是许多软件开发失败的主要原因之一。同样,对于信息安全评估工作,对于用户要求、用户现状的全面调查和分析,也是决定信息安全评估工作成败的重要原因。在软件开发过程中,代码编写所占的比例应该相对较小,而前期调研、系统设计应该花较多精力。同样,在信息安全评估工作中,应该有大量的时间是花在前期调研上。用户业务,应该是一切安全
13、评估的基础。2.3 组织结构与功能2.3.1 组织结构图在软件工程的开发前期,需要调研企业的组织架构图,比如:2.3.2 组织/业务关系图在软件工程的调研、设计阶段,也需要调研企业的组织架构和业务关系,比如:2.3.3 业务功能表对于企业的应用系统,一般在开发过程中会有相应的业务功能表,比如:2.3.4 组织结构与功能分析对安全评估的借鉴在应用系统安全评估工作中,应该获得以上组织结构图、组织/业务关系图、业务功能表,以获得对用户现状的全面认识。2.4 业务流程分析2.4.1 软件工程中的业务流程分析在软件工程中,业务流程分析有助于了解某项业务的具体处理过程,发现和处理系统调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。业务流程图(Transaction Flow Diagram ,简称 TFD )就是用一些尽可能少的规定的符号及连线来表示某个具体业务处理过程。业务流程图易于阅读和理解,是分析业务流程的重要步骤。2.4.2 安氏现有的业务流程评估安氏现有的或者以前的业务系统流程分析,从部分售前文
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1