A. 最受欢迎的软件安全性测试工具有哪些
之前在做 国内软件测试现状调查 之时,因为安全性测试工具太多,结果显示其分布比较广,填写“其它”占的比重很高(66%),为此专门做了一个调查 ,虽然收集的有效反馈不多(不到100),但基本反映了测试工具的使用现状。
1. 从总体看,(静态的)代码分析工具和(动态的)渗透测试工具应用还是比较普遍 ,超过60%,而且渗透测试工具(73.68%)略显优势,高出10%。模糊测试工具,可能大家感觉陌生,低至16%,但它在安全性、可靠性测试中还是能发挥作用的。从理论上看,代码分析工具应该能达到95%以上,因为它易用,且安全性已经是许多公司的红线,得到足够重视。 希望以后各个公司能够加强代码分析工具和模糊测试工具的应用。
2. Java代码安全性分析工具前三名是 : IBM AppScan Source Edition(42.11%)、Fotify Static Code Analyzer(36.84%)、Findbugs(26.32%) ,而JTest、PMD等没进入前三名,虽然和第3名差距不大,只有5%左右。也有公司使用Checkmarx,不在此调查中。Coverity也支持Java,可能Java的开源工具较多,人们很少用它。
3. C/C++代码安全性分析工具前三名是 : C++Test(38.89%)、IBM AppScan Source Edition(38.89%)、Fotify Static Code Analyzer(27.78%)、Visual Studio(27.78%) 。Coverity、CppCheck、LDRA Testbed 没能进入前三名,可能LDRA Testbed比较贵,关键的嵌入式软件采用比较多,而Coverity Cloud针对Github等上面的代码有免费服务(https://scan.coverity.com/projects/cloud-dirigible),大家可以尝试应用。
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%左右。也有用其它不在调查项中的工具,总体看,Android App安全性测试工具分布比较散。
9. 网络状态监控与分析工具中,Wireshark遥遥领先,超过70%。 其次就是Tcpmp、Burp Suite,占30%左右。网络状态监控与分析工具挺多的,但从这次调查看,越来越集中到几个工具中,特别是Wireshark功能强,覆盖的协议比较多,深受欢迎。
10. SQL注入测试工具排在前三位的:SQLInjector、SQL Power Injector、OWASP SQLiX, 三者比较接近,差距在6%左右。其它两项工具Pangolin、SQLSqueal也占了10%,而Antonio Parata、Blind SQL Injections、Bsqlbf-v2、Multiple DBMS Sql Injection、Sqlninja几乎没什么人用。
安全性测试工具很多,还包括黑客常用的一些工具,如暴力破解口令工具、端口扫描工具、防火墙渗透工具、渗透测试平台等。从某种意义看,它们超出软件范畴,更多属于网络空间安全、密码学等范畴,在此就不展开了。概括起来最受欢迎的软件安全性测试工具有:
B. 物联网步步逼近,软件测试问题如何解决
软件已经是企业在竞争中脱颖而出的利器。而随着物联网时代的步步逼近,设备也很少单独运行,越来越多的则是参与到M2M式的交互合作当中。多核、多操作系统、64位,这都是当今最热门的技术,而hypervisor(管理程序)在其中起到关键性作用。不仅软件环境如此复杂,产品上市速度的压力也更加严峻。特别是消费电子产品,其生命周期有的时候竟短于6个月。因此,传统的人工软件测试方法已经无法赶上其速度,自动化测试成为必然的选择。
作为Intel公司的全资子公司,风河正在把设备软件质量推向新的水平,帮助嵌入式软件开发团队提升安全可靠性和上市速度,满足不断攀升的代码量和复杂度需求。风河的核心观念是,保证软件质量免于风险就是保护企业的品牌,为此企业必须拥有商业级的解决方案。风河的设备软件测试解决方案就是以商业级的保证为目标,为企业提供有保障的确定性。
风河设备软件测试解决方案
风河的设备软件测试解决方案提供有,虚拟实验室管理(VLM)和虚拟设备。这套测试工具首先是可以帮助软件团队节省时间,因为不再需要把时间浪费在等待实验室和待测设备上面,从而可以把所有的时间都充分利用起来进行代码测试工作上。要知道,在设备和软件与日俱增的环境中,时间是金钱无法换得的。
风河公司的设备软件测试解决方案由以下部分组成(图2):
图2:风河设备软件测试解决方案。
风河测试管理:一个自动化测试框架,提供运行时白箱可视化能力,让测试者完全了解待测软件所发生的一切。这套综合性测试自动化系统包括了监控、执行和管理功能,特别是可以进行虚拟实验室的设置和管理(VLM),以及真实设备和虚拟设备的测试管理。
风河自动软件测试框架(FAST,Android自动化软件测试框架):一个为Android设备提供的自动化软件测试解决方案,已经内置了26000项测试。这个测试解决方案极为顺畅地实现了软件测试的自动化,缩短了Android设备测试的时间。其不仅降低了测试成本,提高了软件质量和稳定性,而且可以验证其是否符合Android兼容性测试套件(CTS)。
风河用户体验测试开发包(UXTDK):一个测试脚本编写解决方案,可以快速创建自动化测试脚本,用于Android设备、应用以及基于浏览器的Web内容。这个解决方案的设计目标是重现人工操作设备时与设备之间的所有互动,从而验证设备的用户体验。与传统的记录/重放式测试工具相比,UXTDK采用可编程的方法来创建测试情景,从而更加易于保证测试的完备性。由UXTDK编写的测试脚本可以通过风河FAST或者风河测试管理框架来进行管理。
风河虚拟化模拟器(Simics):一个全系统模拟器,让软件开发和质量管理更加易于进行。这个模拟器可以实现全部调试功能(例如反向执行和执行现场编辑),从而很容易进行故障植入。有了这个模拟器,所有的软件开发和测试都可以完全不依赖于硬件,从而在根本上改变了产品开发的时间顺序开发和测试工作可以先于硬件的开发和采购。这样一来,不仅节省了时间,而且极大地降低了成本和风险。
除了上述完整的产品组合,风河还跟传统的IT应用提供商建立合作伙伴关系,实现了企业IT应用与设备软件的融合。风河是HP公司的银牌合作伙伴,也是HP企业管理协会成员。其测试产品可与HP质量中心(QC)集成。同时,风河的测试产品已经获得IBM公司的Ready for Rational认证。而且,IBM Rational也是风河的战略合作伙伴。
Voke分析师指出:产品上市时程持续被压缩,使开发团队不断面临庞大压力,安全问题也因而常被忽略。风河和Coverity双方技术的整合改变了测试市场生态,使嵌入式开发团队能在最早阶段就专注于安全问题的解决,同时也兼顾了品质的确保,并有效降低因产品出错而导致品牌形象受损之风险。另外,也可避免因产品出现未知的安全漏洞而损及公司整体营收。
作为软件测试市场的变革型提供商,风河正在改变测试人员对于未来前景的看法。风河深知,软件是设备竞争力的推进剂。设备测试团队必须使用商业级的解决方案,以自动化、可重复使用的测试技术来武装自己,才能在未来的设备生命周期中占有自己的一席之地。