渗透性测试是信息安全人员模拟黑客攻击,用来发现信息安全防御体系中漏洞的一种常用方法。但它不同于真正的黑客攻击。首先,黑客入侵大多是悄无声息的,像间谍一样秘密进行,而渗透性测试事先要与用户签订好协议;其次,渗透测试是为了发现、验证安全漏洞的影响而进行的,注重入侵者可能的通道,并非关注用户的敏感信息内容。所以,渗透性测试时一种安全服务,简称渗透服务。
国内渗透服务开展不好的原因:
1、技术性要求很高。渗透与实际的入侵是同样的思路,需要渗透者有很强的逆向思维,有一定漏洞挖掘的能力,仅仅使用常规的入侵手段,面对安全意识较强的用户,渗透效果会很不理想;用新的“0Day”资源去做渗透,成本又过高,同时,这种方法会给用户带来心理上的恐慌。要得到用户的认可需要掌握好这个“度”,当然没有深厚的技术功底,只能被挡在服务大门的外边了;
2、用户的纠结。作为企业信息安全的管理人员,当然不希望自己辛苦建立的安全防御体系被说成千疮百孔;花钱请人来做渗透,无疑是自己要“上京赶考”,很煎熬啊;若渗透没有成果,又无法向领导解释这样的服务的必要性,无法验证自己安全工作的成绩,不暴露问题的严重性,安全保障工作也难以得到领导的重视。所以,心情是复杂的;如何衡量渗透服务的效果是面临的首要问题;
3、用户领导的顾虑。用渗透的方式检验目前的安全防御体系是否坚固,好比是“实战演习”,显然是有必要的。但是渗透毕竟是从自己不知道的地方进入到自己网络的内部,对于渗透者的工作的可控性是有难度的,渗透者除了给自己后汇报的,是否还知道了其他的什么?孰轻孰重,领导肯定是有顾虑的;
4、渗透者的纠结。渗透是为了验证用户防御体系的缺陷,每次渗透服务后,把发现的漏洞通告给用户,当然希望用户堵上它,可是下一次来渗透的时候,又需要再发现新的漏洞,否则无法渗透成功,而发现有价值的漏洞不是一件容易的事情,即使你技术再好,也有很多偶然的成分;因此渗透者很纠结,知道了的全说出来,以后工作会越来越挑战极限,毕竟这是商业;知道的不全说,对用户似乎很不公平,也违背了信息安全人员的职业道德。另外,验证的毕竟部分漏洞,未验证的漏洞也不少,也许是时间上的不充裕,也可能是自己还没有找到适合的方法,但这不等于别人做不到,搞技术的人,心情上很复杂。
正确定位渗透服务的目标:
这项工作的好处是共知的,“养兵千日,用在一时。”保持安全机制的有效性,的办法是经常性的“实弹演习”,渗透服务是一种“实弹演习”。
面对各方面人员复杂的心情,关键是正确定位渗透性测试服务的具体目标,定位大家的角色。目标清晰了,责任清楚了,大家的顾虑可以打消了。
渗透性测试是一种安全服务,不是黑客入侵的情景再现。
渗透服务的目标应该是部分验证安全漏洞可以被利用的程度,利用这些漏洞能给用户造成什么样的损害。简单地说,渗透服务是确认漏洞能给用户带来的损失有多大,从而可以评估修复这些漏洞的代价是否值得。
通过渗透服务,用户的收益是多方面的:
1、对信息安全系统整体进行了一次“实战演练”,在实战中锻炼安全维护团队应变的能力;
2、系统评估了业务系统,在技术与运维方面的实际水平,管理者清楚了目前的防御体系可以抵御什么级别的入侵攻击;
3、发现安全管理与系统防护中的漏洞,可以有针对性地进行加固与整改;
4、若定期地进行渗透服务,不仅可以逐步提高系统安全的防御能力,而且可以保持管理人员的警觉性,增强防范意识;
如何确定渗透服务的考核目标:
很多渗透测试服务(目前与安全评估服务一起提供的有很多)给用户的报告是一大堆的漏洞列表,告诉你要打补丁,买设备,以及一些很虚的安全管理建议。用户往往对这些漏洞的威胁不了解,面对如此多数量的、稀奇古怪的漏洞根本不知所措。第一,因为怕影响业务运行,不能全部打上补丁,哪些必须打,哪些可以不打,总是一本糊涂账;第二,即使打上补丁,心里也不踏实,漏斗少了吗?下次检查又是同样多的漏洞,好想补丁永远也补不完。
其实发现漏洞只是服务的第一步,验证哪些漏洞是可以被利用的,可以被利用到什么程度,才是渗透服务真正应该回答的,比如能获取系统管理员权限,能篡改系统数据,能植入木马等等,这样用户对漏洞的威胁有切身的体会了。
渗透服务是模拟黑客入侵,但不是真正的入侵,作为商业服务,用户如何确定渗透服务的考核目标呢?我们先来分析一下黑客攻击的方式。
从入侵攻击的流程,可以看出,入侵攻击分为几种目标类型:
1、正面攻击:DDOS攻击无论是针对网络入口的带宽,还是针对服务的处理能力(也称CC攻击),表现形式都是正面攻击,造成的损害,用户一目了然。
2、隐蔽型入侵:进入的方式多种多样,可以社会工程、垃圾邮件、漏洞溢出、密码猜解等,目的都是要悄悄进入到目标的内部,从进入目标后的行为可分为:
a)窃取特定目标信息:直接收集目标信息,如QQ账户密码、银行卡密码、特定的用户文件等,通过邮件、访问特定网站等方式发送回家后销毁自己,消除痕迹;
b)控制“肉鸡”:隐蔽自己,建立后门通道,接受并执行远程控制命令,可以远程操作此计算机;
c)篡改特定目标信息:直接对目标信息修改为自己设定的,如数据库的数据、系统特定文件等,然后自毁,消除痕迹。此类入侵常常是为其他入侵方式做好准备;
d)特定任务:长期潜伏,把自己隐藏起来,等到条件成熟,实施动作,如逻辑炸弹、修改系统信息等;
隐蔽型入侵中如何隐藏自己不被发现,或延长被发现的时间是很关键的,尤其是特定任务类型是作为APT攻击的必要手段,隐藏自己与反复入侵都是必然的选择,常用的技术如rootkit、进程注入、驱动钩子等。入侵者一旦入侵成功,常常制造多个潜伏点,分别设置好触发条件,相互监视,只要不被全部发现,可以死灰复燃,终实现预定任务。
针对不同类型的入侵攻击方式,渗透服务关注的重点显然是不同的:
1、正面攻击:渗透服务需要发现可以被正面攻击的关键点,以及不同攻击强度对业务所产生的影响;
2、隐蔽型入侵:渗透服务不仅要发现可能入侵的通道,即可被成功利用的漏洞,而且要验证入侵后可能造成的损失,后还要发现系统内是否已经存在的入侵。
有关正面攻击的测试服务,目前需求见到的还不多,很多系统建设者是通过处理能力的理论计算得出的这一数据的。但是,作为提供公众服务、云计算等服务的企业,应该更为确切地了解自己系统内的薄弱点所在,以及它所能承受攻击能力的限度,并实施实时监控。这好比建设的大坝可以抵御多少年一遇的大洪水,建造的大楼可以抵御几级地震一样。
在很多情况下,业务的突发性增长,与系统受到了CC攻击,其冲击效果是很相似的。
针对隐蔽型入侵,渗透性服务交付的成果有趣的,因为你是否有能力进入是一方面,你是否可以成功地窃取、成功的篡改是另外一个方面。在信息安全方面,你进入了目标系统也只是有了成功窃取与篡改的可能性而已,而后面的工作往往不是你成功利用了那个漏洞可以解决的。
从上面对入侵攻击结果的分析总,我们得出渗透服务的交付应该是具有“结果效应”的,即需要达到的终目标:
● 窃取到目标内的特定信息
● 修改了目标内的特定信息
● 建立了远程控制目标的后门通道
● 成功潜伏在目标内没有被发现