渗透性测试是模拟黑客入侵的思维,而不是形式。那么黑客入侵时想什么?因为任何安全体系的建设都是基于一种信任的,网络的存在是要为人提供服务的,不可能对所有人都封闭,所以黑客想的应该是:正常用户业务处理的正常逻辑、方法,用户需要这样去完成他的工作,就需要IT部门这样支持业务访问通道,黑客模拟成企业员工,通过同样的通道,就不容易被发现。当然这里说的入侵不包括野蛮型的DDOS攻击与表演型的网站涂鸦攻击,这两种攻击都只在企业网络外部,不需要入侵到内部。
实际的网络入侵是一种“灰盒”测试,所谓灰的含义是黑客在入侵的过程中,通过猜测与分析、信息收集,逐渐明晰网络的内部结构(防火墙的位置,机密资源所在的服务器位置等)。渗透性测试要简单一些,可以看作是一种白盒测试,测试者可以先得到部分“内部”信息,或一些实验账号,可以节省很多探测的时间,但它与入侵的目的是一样的,都是要利用一切可能的漏洞进入,无声无息地取走机密信息。
这样,我们再看企业网络结构图,渗透性测试的目标就明确了,要找到进入目标资源的通道,而不仅仅是找到进入网络的通道。更为重要的是:测试还需要有非常好的自我隐蔽技术,不能很快被发现(安全监视系统与审计系统能在你获取机密资源前发现你),因为进入网络后,获取目标资源还需要很多时间,这也正式渗透性测试与风险评估的差别,风险评估常常是评价防护体系,而渗透性测试常常是与监控体系较量,入侵进去是一种技术,进去后不被发现地干好自己的事情是另一种技术——隐藏技术。
我们总结了一些衡量渗透性测试结果的信息,通常以获得下面信息为标志:
● 企业员工信息表:姓名、身份证、电话、邮箱、住址、简历、薪水…
● 高级管理人员的财务支出明细
● 入侵CEO的电脑(密码与信息)
● 商业秘密的邮件与企业合约
● 领导的电话语音(有电话信箱的)
● 企业核心机密资料(如软件公司的源代码库)
● 安装后门,保证进入通道
● 各种服务器账户与密码列表
● 高级管理人员的账户与密码列表
渗透性测试的报告中,应该提交入侵可利用的资源分布图(服务器、账号、密码列表),包括可看到的、可拿走的、可篡改的…
当然,安全漏洞都是有时限的,用户打上了补丁,可能“通道”就关闭了,所以渗透性测试的结果也有时限意义。按我们的经验,渗透性测试的结果通常不是要用户增加多少安全设备与投资,而是要用户提高安全措施的利用程度,加强安全管理,如制度落实、安全事件有人管、监控报警有人跟、审计记录有人看…
我们没有“神话”渗透性测试过程,但它的确需要改变安全公司常用的安全防护思路,用黑客的入侵式的思维去想问题,才能有理想的效果。