软件安全性是一个广泛而复杂的主题,每一个新的软件总可能有完全不符合所有已知模式的新型安全性缺陷出现。要避免因安全性缺陷问题受各种可能类型的攻击是不切实际的。在软件安全测试时,运用一组好的原则来避免不安全的软件上市、避免不安全软件受攻击,就显得十分重要。
专注于为中小企业提供网站建设、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业清水河免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。一、软件安全性测试基本概念
软件安全性测试包括程序、网络、数据库安全性测试。根据系统安全指标不同测试策略也不同。
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%。
总结:
这些工具将安全测试员从手动审核的工作中解放出来。它们也使审核的过程变得更为快速有效。执行有力的安全测试评估并不意味着简单地从列表中选择一个工具。相反,它意味着评估组织结果,以及评估信息、要求和所涉及的利益相关者。这个过程将有助于构建一个理想的策略,包括使用工具来有效和高效地识别和解决安全漏洞。