APP渗透测试技术,许多APP应用程序在开发过程中,由于对安全问题的疏忽,人员安全意识不成熟、漏洞攻击技术不断发展、资源和时间限制等其他因素,应用程序安全漏洞普遍存在。为了确保应用程序的安全性,有必要在发布和投入实际应用程序之前进行相关的安全测试。根据是否需要运行被测应用,将应用安全测试技术分为静态分析技术和动态分析技术,本节将分别比较这两种技术。
静态分析技术。
静态分析技术是指在不运行应用程序的情况下对源代码进行安全评价,发掘应用程序中可能存在的安全缺陷。因此,静态分析技术又称源码分析技术,是典型的白盒测试技术。经过多年的发展,目前市面上出现了很多关于APP的源码分析工具,这种技术最大的优势就是测试人员在运行APP之前可以检测APP的安全性,方便开发人员及时修复漏洞,从而提高APP在运行过程中的安全性;同时,静态分析技术的测试覆盖率高,几乎可以保证APP中的所有运行路径都可以被测试。但是,静态分析技术也有很多不足,主要表现在复杂性过高的几个方面。由于使用静态分析技术来开展应用安全测试,可以复盖应用程序的所有源代码,因此需要投入大量的人、财、物等费用,同时也大幅度提高了分析结果的难度。误报率很高。应用程序中的一些路径在执行时无法到达,测试人员很难确认漏洞,容易引起漏洞的误报。可用性不高。静态分析技术完全依赖于被测试应用程序的源代码,但在很多情况下,特别是在为一些商业网站提供安全测试服务时,几乎不可能获得网站的所有源代码。
动态分析技术。
动态分析技术是直接运行被测试应用程序,根据运行结果推测应用程序中可能存在的安全漏洞,是典型的黑盒测试技术。在应用的动态分析技术中,渗透测试是一种具有代表性的安全漏洞测试方法。与静态分析技术相比,动态分析技术应用于应用安全测试具有实际意义,其优势主要表现在以下几个方面。动态分析技术不需要审查应用程序的源代码,对测试者的专业技能要求比较低,可以在尽可能短的时间内找到更多的漏洞。准确性。动态分析技术是在真正的运行环境中对被测应用进行安全测试,测试人员通过直接模拟攻击者的行为实施漏洞利用测试。因此,使用动态分析技术进行应用安全测试的测试结果往往具有更高的准确性,漏洞的误报和漏报现象也相对较少。灵活性。动态分析技术不需要获得应用程序的所有源代码,只需提供与被测应用程序的网络连接即可,因此具有较高的灵活性。
目前,国内外对渗透测试没有标准定义。中国信息安全评价中心说:渗透测试是专业的信息安全服务,经用户认可后,信息安全专家采用攻击者的视角,使用与攻击者相同的技术和工具,通过攻击发现目标网络、系统、主机和应用系统存在的漏洞,帮助用户理解、改善和提高信息安全的手段。简单来说,渗透测试是通过直接模拟攻击者的行为来评价计算机系统和网络安全的方法。