
安全性测试(Security Testing)是指有关验证应用程序的安全等级和识别潜在安全性缺陷的过程其主要目的是查找软件自身程序设计中存在的安全隐患并检查应用程序对非法侵入的防范能力安全指标不同测试策略也不同。但安全是相对的安全性测试并不能最终证明应用程序是安全的而只能验证所设立策略的有效性这些对策是基于威胁分析阶段所做的假设而选择的。例如测试应用软件在防止非授权的内部或外部用户的访问或故意破坏等情况时的运作。软件安全是软件领域中一个重要的子领域系统安全性测试包括应用程序和操作系统两个方面的安全性。而系统安全性又包括两个方面的测试一是软件漏洞设计上的缺陷或程序问题;二是数据库的安全性这也是系统安全性的核心安全测试的常用方法有以下几种一、静态代码检查静态代码检查主要是通过代码走读的方式对源代码的安全性进行测试常用的代码检查方法有数据流、控制流、信息流等通过这些测试方法与安全规则库进行匹配进而发现潜在的安全漏洞。静态代码检查方法主要是在编码阶段进行测试尽可能早地发现安全性问题。二、动态渗透测试动态渗透测试法主要是借助工具或手工来模拟黑客的输入对应用程序进行安全性测试进而发现系统中的安全性问题。动态渗透测试一般在系统测试阶段进行但覆盖率较低因为在测试过程中很难覆盖到所有的可能性只能是尽量提供更多的测试数据来达到较高的覆盖率。三、扫描程序中的数据系统安全性强调在程序运行过程中数据必须保持安全且不被破坏否则可能引发缓冲区溢出等攻击。数据扫描主要针对内存进行测试旨在发现缓冲区溢出等类型的安全漏洞这类漏洞通常难以通过静态代码检查或动态渗透测试有效识别。从用户认证、网络、数据库和Web 四个角度进行安全性测试需要注意以下几个方面1)用户认证安全性测试系统中不同用户权限设置;系统中用户是否出现冲突;系统不应该因用户权限改变而造成混乱;系统用户密码是否加密、是否可复制;是否可以通过绝对途径登录系统;用户退出后是否删除其登录时的相关信息;是否可以使用退出键而不通过输入口令进入系统;2)网络安全性测试防护措施是否正确装配完成系统补丁是否正确;非授权攻击检查防护策略的正确性;采用网络漏洞工具检查系统相关漏洞(常用的两款工具为NBSI 和IPhackerIP);采集木马工具检查木马情况;采用各种防外挂工具检查程序外挂漏洞;3)数据库安全性测试数据库是否具备备份和恢复的功能;是否对数据进行加密;是否有安全日志文件;无关IP 禁止访问;用户密码使用强口令;不同用户赋予不同权限;是否使用视图和存储过程;4)Web安全性测试部署与基础结构;输入验证;身份验证;授权;配置管理;敏感数据;会话管理;加密;参数操作;异常管理;审核和日志记录;