安全性测试(security testing)是有关验证应用程序的安全服务和识别潜在安全性缺陷的过程。
注意:安全性测试并不最终证明应用程序是安全的,而是用于验证所设立策略的有效性,这些对策是基于威胁分析阶段所做的假设而选择的。以下是我读<<软件评测试教程>>中的Web安全性测试章节内容,并进行修改的笔记,前面看了好多朋友写的,不过不是很全,希望对大家有所帮助,建议大家还是买本<<软件评测试教程>>此书绝对物超所值^_^WEB安全性测试一个完整的WEB安全性测试可以从部署与基础结构、输入验证、身份验证、授权、配置管理、敏感数据、会话管理、加密。参数操作、异常管理、审核和日志记录等几个方面入手。1. 安全体系测试1) 部署与基础结构l 网络是否提供了安全的通信l 部署拓扑结构是否包括内部的防火墙l 部署拓扑结构中是否包括远程应用程序服务器l 基础结构安全性需求的限制是什么l 目标环境支持怎样的信任级别2) 输入验证l 如何验证输入A. 是否清楚入口点B. 是否清楚信任边界C. 是否验证Web页输入D. 是否对传递到组件或Web服务的参数进行验证E. 是否验证从数据库中检索的数据F. 是否将方法集中起来G. 是否依赖客户端的验证H. 应用程序是否易受SQL注入攻击I. 应用程序是否易受XSS攻击l 如何处理输入3) 身份验证l 是否区分公共访问和受限访问l 是否明确服务帐户要求l 如何验证调用者身份l 如何验证数据库的身份l 是否强制试用帐户管理措施4) 授权l 如何向最终用户授权l 如何在数据库中授权应用程序l 如何将访问限定于系统级资源5) 配置管理l 是否支持远程管理l 是否保证配置存储的安全l 是否隔离管理员特权6) 敏感数据l 是否存储机密信息l 如何存储敏感数据l 是否在网络中传递敏感数据l 是否记录敏感数据7) 会话管理l 如何交换会话标识符l 是否限制会话生存期l 如何确保会话存储状态的安全8) 加密l 为何使用特定的算法l 如何确保加密密钥的安全性9) 参数操作l 是否验证所有的输入参数l 是否在参数过程中传递敏感数据l 是否为了安全问题而使用HTTP头数据10) 异常管理l 是否使用结构化的异常处理l 是否向客户端公开了太多的信息 11) 审核和日志记录l 是否明确了要审核的活动l 是否考虑如何流动原始调用这身份2. 应用及传输安全WEB应用系统的安全性从使用角度可以分为应用级的安全与传输级的安全,安全性测试也可以从这两方面入手。应用级的安全测试的主要目的是查找Web系统自身程序设计中存在的安全隐患,主要测试区域如下。l 注册与登陆:现在的Web应用系统基本采用先注册,后登录的方式。A. 必须测试有效和无效的用户名和密码B. 要注意是否存在大小写敏感,C. 可以尝试多少次的限制D. 是否可以不登录而直接浏览某个页面等。l 在线超时:Web应用系统是否有超时的限制,也就是说,用户登陆一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用。l 操作留痕:为了保证Web应用系统的安全性,日志文件是至关重要的。需要测试相关信息是否写进入了日志文件,是否可追踪。l 备份与恢复:为了防范系统的意外崩溃造成的数据丢失,备份与恢复手段是一个Web系统的必备功能。备份与恢复根据Web系统对安全性的要求可以采用多种手段,如数据库增量备份、数据库完全备份、系统完全备份等。出于更高的安全性要求,某些实时系统经常会采用双机热备或多级热备。除了对于这些备份与恢复方式进行验证测试以外,还要评估这种备份与恢复方式是否满足Web系统的安全性需求。传输级的安全测试是考虑到Web系统的传输的特殊性,重点测试数据经客户端传送到服务器端可能存在的安全漏洞,以及服务器防范非法访问的能力。一般测试项目包括以下几个方面。l HTTPS和SSL测试:默认的情况下,安全HTTP(Soure HTTP)通过安全套接字SSL(Source Socket Layer)协议在端口443上使用普通的HTTP。HTTPS使用的公共密钥的加密长度决定的HTTPS的安全级别,但从某种意义上来说,安全性的保证是以损失性能为代价的。除了还要测试加密是否正确,检查信息的完整性和确认HTTPS的安全级别外,还要注意在此安全级别下,其性能是否达到要求。l 服务器端的脚本漏洞检查:存在于服务器端的脚本常常构成安全漏洞,这些漏洞又往往被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。l 防火墙测试:防火墙是一种主要用于防护非法访问的路由器,在Web系统中是很常用的一种安全系统。防火墙测试是一个很大很专业的课题。这里所涉及的只是对防火墙功能、设置进行测试,以判断本Web系统的安全需求。另推荐安全性测试工具:Watchfire AppScan:商业网页漏洞扫描器(
此工具好像被IBM收购了,所以推荐在第一位)
AppScan按照应用程序开发生命周期进行安全测试,早在开发阶段就进行
单元测试和安全保证。Appscan能够扫描多种常见漏洞,例如跨网站脚本、HTTP应答切开、参数篡改、隐藏值篡改、后门/调试选项和缓冲区溢出等等。
Acunetix Web Vulnerability Scanner:商业漏洞扫描器(
目前用的比较多,不过这东东N占内存)
Acunetix WVS自动检查您的网页程序漏洞,例如SQL注入、跨网站脚本和验证页面弱密码破解。Acunetix WVS有着非常友好的用户界面,还可以生成个性化的网站安全评估报告。