浅析渗透测试之手动和自动的优缺点
手动渗透测试和自动渗透测试本是出于相同的目的,即帮助企业主动发现漏洞,了解现有安全措施的成效或不足。它们之间的唯一区别就是执行方式不同,手动渗透测试是由人工来完成,自动渗透测试是由机器本身完成。
那么,手动与自动渗透测试孰优孰劣?我们不妨来比较一下各自的优缺点。
手动渗透测试
在手动渗透测试中,机器的脆弱性和风险是由渗透测试工程师或安全专家进行测试。
通常,执行的方法有:
1、数据收集:数据收集在测试中起着关键作用。一个人可以手动收集数据,也可以使用在线免费提供的工具服务(网页源代码分析技术等)。这些工具有助于收集信息,例如表名、数据库版本、数据库、软件、硬件,甚至有关不同的第三方插件等。
2、漏洞评估:收集数据后,它可以帮助测试人员识别安全漏洞并采取相应的预防措施。
3、实际利用:这是测试人员用来对目标系统发起攻击的一种典型方法,同样可以降低遭受攻击的风险。
4、报告准备:渗透完成后,测试人员将准备一份最终报告,该报告描述有关系统的所有信息。最后,分析报告以采取纠正措施保护目标系统。
手动渗透测试的类型
通常按以下两种方式进行分类:
1、重点突出的手动渗透测试:这是测试特定漏洞和风险的重点突出的方法。自动渗透测试无法执行此测试;它仅由检查给定域内特定应用程序漏洞的人员完成。
2、全面的手动渗透测试:通过测试相互连接的整个系统来识别各种风险和脆弱性。但是,此测试的函数更多的是根据情况而定,例如调查多个较低风险的故障是否可以带来更易受攻击情况等。
手动渗透测试的优点
手动渗透测试的最大优点是灵活,手动渗透测试可以发现自动测试可能未发现的更狡猾漏洞和攻击,比如盲SQL注入攻击、逻辑缺陷和访问控制漏洞。
训练有素的专业人员可以在手动渗透测试中分析应用程序对此类攻击的响应,可以捕捉到自动测试软件认为没问题,但实际上有问题的响应。
另一个优点是专家随时审查报告。虽然自动渗透测试工具也会生成报告,但安全分析员仍然要审查和修复发现的许多问题。手动渗透测试还可以在寻找漏洞时更灵活。例如,当企业想要分析防范社会工程攻击的情况,就需要手动渗透测试,测试有无语音钓鱼攻击时更是如此。
手动渗透测试的缺点
手动渗透测试的最大缺点是成本和时间。渗透测试付出的成本和时间以其彻底程度而定,有时可能需要数周时间才能获得结果,这并不总是尽如人意,在处理严重漏洞时更是如此。
手动渗透测试也可能很烧钱,这就是为什么许多企业执行这种测试只是为了满足合规和监管要求。如果企业没钱设立内部红队或渗透测试团队,会选择第三方服务提供商用于满足测试需求,这是另一项成本。
自动渗透测试
自动渗透测试更快、更高效、更容易操作且更可靠,自动测试机器的漏洞和风险。该技术不需要专家工程师操作,初级测试人员也可完成。
常见的自动渗透测试工具有Nessus、Metasploit、OpenVA、backtract(系列5)等,这些非常有效的自动化工具大大提高了渗透测试的效率。
自动渗透测试的优点
自动测试成本较低、更容易进行。相比较手动渗透测试既复杂又烧钱,许多企业更青睐于自动测试。
自动渗透测试的另一个优点是为安全分析师节省了时间,使他们可以专注于测试期间可能被耽搁的其他任务。
自动化还可以处理重复性任务,这些任务不一定复杂,但手动处理起来很耗时。
频繁的自动渗透测试还可以帮助企业评估全部计算机系统——这些系统的更新比测试来得更频繁,比如在快速发布周期期间内。
自动渗透测试的缺点
自动渗透测试的缺点是测试结果取决于渗透测试工具本身的好坏以及用户的知识水平。如果渗透测试软件开发人员没有尽到本职工作,自动渗透测试就有缺陷,可能会错漏关键问题。
此外,自动渗透测试在功能上依然有限,无法面向各种测试场景进行部署。大多数工具不支持面向无线网络、Web应用程序和社会工程攻击进行渗透测试。
总 结
在实际工作中,企业在选择渗透测试方式时,往往不是二选一的问题。相反,自动渗透测试工具应该辅助手动渗透测试工作。至少在接下来几年,自动渗透测试不会完全取代测试人员或红队。
自动化还带来了渗透测试即服务(PTaaS)的发展潮流,NetSPI、Cobalt和Pentest People等供应商已经提供了一些服务。PTaaS产品结合手动渗透测试和自动渗透测试,通过两者的结合使用,企业更容易完成特定的渗透测试工作,满足合规或监管要求等。
以上为今天分享的内容,小伙伴们看懂了吗?