一、软件安全性测试基本概念
软件安全性测试包括程序、网络、数据库安全性测试。根据系统安全指标不同测试策略也不同。
1.用户程序安全的测试要考虑问题包括:
① 明确区分系统中不同用户权限;
② 系统中会不会出现用户冲突;
③ 系统会不会因用户的权限的改变造成混乱;
④ 用户登陆密码是否是可见、可复制;
⑤ 是否可以通过绝对途径登陆系统(拷贝用户登陆后的链接直接进入系统);
⑥ 用户推出系统后是否删除了所有鉴权标记,是否可以使用后退键而不通过输入口令进入系统。
2.系统网络安全的测试要考虑问题包括:
① 测试采取的防护措施是否正确装配好,有关系统的补丁是否打上;
② 模拟非授权攻击,看防护系统是否坚固;
③ 采用成熟的网络漏洞检查工具检查系统相关漏洞;
④ 采用各种木马检查工具检查系统木马情况;
⑤ 采用各种防外挂工具检查系统各组程序的客外挂漏洞。
3.数据库安全考虑问题:
① 系统数据是否机密(比如对银行系统,这一点就特别重要,一般的网站就没有太高要求);
② 系统数据的完整性;
③ 系统数据可管理性;
④ 系统数据的独立性;
⑤ 系统数据可备份和恢复能力(数据备份是否完整,可否恢复,恢复是否可以完整)。
多年以来,有很多人列出了最佳渗透测试和网络安全评估工具,但是我想用一种不同的方法,按分类列举最佳测试工具。废话不多说,下面根据调查分出10类,基本反映了安全测试工具的使用现状:
最受欢迎的软件测试工具有哪些?
1. 从总体看,(静态的)代码分析工具和(动态的)渗透测试工具应用还是比较普遍,超过60%,而且渗透测试工具(73.68%)略显优势,高出10%。模糊测试工具,可能大家感觉陌生,低至16%,但它在安全性、可靠性测试中还是能发挥作用的。从理论上看,代码分析工具应该能达到95%以上,因为它易用,且安全性已经是许多公司的红线,得到足够重视。希望以后各个公司能够加强代码分析工具和模糊测试工具的应用。
2. Java代码安全性分析工具前三名是:IBM AppScan Source Edition(42.11%)、Fotify Static Code Analyzer(36.84%)、Findbugs(26.32%)。
3.C/C++代码安全性分析工具前三名是:C++Test(38.89%)、IBM AppScan Source Edition(38.89%)、Fotify Static Code Analyzer(27.78%)、Visual Studio(27.78%)。可能LDRA Testbed比较贵,关键的嵌入式软件采用比较多,所以没有进前三。
4. JavaScript代码安全性分析工具应用最多的是Google's Closure Compiler,其次是JSHint,也有的公司用Coverity来进行JS的代码分析。
5. Python代码安全性分析工具应用最多的是Pychecker,其次是PyCharm,而Pylint使用比较少,也有几个公司用Coverity来进行Python的代码分析。
6. Web应用安全性测试的商用工具中,IBM AppScan异军突起,高达70%的市场,其它商用工具无法与它抗衡,第2名SoapUI和它差距在50%以上,HP webInspect 不到10%。
7. Web应用安全性测试的开源工具中,Firebug明显领先,将近50%,比第2名OWASP ZAP高12%,第三名是Firefox Web Developer Tools,超过了20%。
8.Android App的安全性测试工具中,Android Tamer领先,将近30%,比第2、3名AndroBugs、Mobisec、Santoku高15%左右。
9. 网络状态监控与分析工具中,Wireshark遥遥领先,超过70%。其次就是Tcpdump、Burp Suite,占30%左右。网络状态监控与分析工具挺多的,但从这次调查看,越来越集中到几个工具中,特别是Wireshark功能强,覆盖的协议比较多,深受欢迎。
10.SQL注入测试工具排在前三位的:SQLInjector、SQL Power Injector、OWASP SQLiX,三者比较接近,差距在6%左右。其它两项工具Pangolin、SQLSqueal也占了10%。
总结:
这些工具将安全测试员从手动审核的工作中解放出来。它们也使审核的过程变得更为快速有效。执行有力的安全测试评估并不意味着简单地从列表中选择一个工具。相反,它意味着评估组织结果,以及评估信息、要求和所涉及的利益相关者。这个过程将有助于构建一个理想的策略,包括使用工具来有效和高效地识别和解决安全漏洞。