如何采取衡量的方法来进行自动化渗透测试?
2014-11-21 TechTarget中国 编辑:邹铮
自动化渗透测试在改进渗透测试过程和减少所需资源方面发挥着举足轻重的作用,但如果没有适当的方法,则可能完全是浪费时间。本文中专家Kevin Beaver探讨了这个话题。
快要被渗透测试压垮?很多人都是这样。面对PCI DSS、业务合作伙伴和客户需求或者类似责任,对渗透测试的需求的浪潮永无止境。鉴于系统和应用的数量以及网络环境的复杂程度,渗透测试可以是非常艰巨的任务,这导致很多信息安全专业人员都只是“走走过场”来满足合规要求或者想办法完全跳过这些测试。但是这样做的代价是什么?正如生活中的所有事物一样,半心半意的方法来执行渗透测试只会得到半心半意的结果,合规麻烦、信息风险和不可避免的数据泄露事故都会随之而来。
但是,这些肩负这种基本业务工作的人员可以采取很多其他信息安全管理任务的方法以及自动化来完成这些工作。例如,这些年以来,信息安全专业人员已经能够自动化诸如日志管理、补丁修复和源代码分析等工作。并且,通过添加一些自动化到渗透测试,我们可以最大限度地降低所需资源,同时保持渗透测试过程的完整性。另外,重要的是,采取衡量的方法。
采取量的方法来实现自动化
首先,通过确定你想要完成的目标来定义什么是“渗透测试”。有些人认为渗透测试是运行简单的漏洞扫描来安抚审计员。其他人则是证明他们可以找到一个漏洞来利用。笔者更喜欢更广泛的漏洞评估定义,任何有IP地址或者URL的事物都可能受到攻击。
从最关键的系统开始,最后专业人员需要考虑网络,因为外部黑客和恶意员工都知道网络没有界限。随后,测试你系统的各个方面来确定易受攻击的部分,无论你怎么命名这些部分。否则,这个安全计划注定会失败。
在“自动化”渗透测试中,这种方法尤其重要。为什么呢?因为你不能使用现有工具自动化每个系统和应用的每个测试。例如,寻找网络主机中低强度密码的大多数函数都可以自动化,但登录提示来浏览网络、操作文件等相关程序无法自动化。这些类型的测试通常被称为身份验证漏洞扫描,这些测试可以通过编写脚本来进行,但并不是真正的自动化。
发现和利用Web应用登录机制、用户会话管理和SQL注入中的漏洞同样是如此。同样地,单个函数(例如发现SQL注入和从数据库提取数据)也可以实现自动化,但整个过程不能被自动化。这个过程需要人类互动和专业知识来知道在哪里定位漏洞利用以及如何获得最好的结果。
工具只是辅助
人们对自动化的渴望让流行的漏洞扫描仪中添加了很多新功能,例如Acunetix Web漏洞扫描仪(该工具善于破解Web应用中的密码)以及Metasploit Pro(可用于获取命令提示符以及建立后门程序)。
但即使这些工具也不能完全自动化这个过程。例如,通过Metasploit Pro,IT必须首先运行漏洞扫描仪(例如Nexpose或Nessus)来发现漏洞。Metasploit Pro和商业漏洞扫描工具的用户界面和很简单,但并不是每个渗透测试工具都简单,对于缺乏技术知识的人来说,这是一个问题。
现在的渗透测试的最大好处是,市面上有丰富的安全测试工具可以让渗透测试人员在几分钟内破解未加密笔记本或无线网络的密码,或者简单地发起调子邮件钓鱼活动。网络共享和访问不安全PII可以非常迅速实现。但这些并不能完全自动化。就像放射科人员和房屋检查人员,渗透测试人员可以采用先进的工具,但发现、枚举和报告结果不能完全自动化,并且,笔者认为未来可能仍然会这样。
深度安全审查需要的不仅仅是输入IP地址或者URL再单击确定。当然,程序和工作流程可以变得更有效,但创造力和过往实战经验将决定最终的胜负。最后,无论渗透测试发现了多少“漏洞利用”,IT专业人员仍然需要确定哪些是真正的安全风险以及哪些不是。