一,安全测试的常用方法
(1)静态代码检查
静态代码检查主要是通过代码走读的方式对源代码的安全性进行测试,常用的代码检查方法有数据流、控制流、信息流等,通过这些测试方法与安全规则库进行匹配,进而发现潜在的安全漏洞。静态代码检查方法主要是在编码阶段进行测试,尽可能早地发现安全性问题
(2)动态渗透测试
动态渗透测试法主要是借助工具或手工来模拟黑客的输入,对应用程序进行安全性测试,进而发现系统中的安全性问题。动态渗透测试一般在系统测试阶段进行,但覆盖率较低,因为在测试过程中很难覆盖到所有的可能性,只能是尽量提供更多的测试数据来达到较高的覆盖率。
(3)扫描程序中的数据
系统的安全性强调,在程序运行过程中数据必须是安全的,不能遭到破坏,否则会导致缓冲区溢出的攻击。数据扫描主要是对内存进行测试,尽量发现诸如缓冲区溢出之类的漏洞,这也是静态代码检查和动态渗透测试很难测试到的。
从用户认证、网络、数据库和Web 四个角度进行安全性测试,需要注意以下几个方面:
(1)用户认证安全性测试
系统中不同用户权限设置;
系统中用户是否出现冲突;
系统不应该因用户权限改变而造成混乱;
系统用户密码是否加密、是否可复制;
是否可以通过绝对途径登录系统;
用户退出后是否删除其登录时的相关信息;
是否可以使用退出键而不通过输入口令进入系统。
防护措施是否正确装配完成,系统补丁是否正确;
非授权攻击,检查防护策略的正确性
(4) 采用网络漏洞工具检查系统相关漏洞(常用的两款工具为NBSI 和IPhackerIP);
(1) 采集木马工具&#