任何成功攻击BAT

 

看似坚不可摧的BAT网络,其实像阿喀琉斯的脚后跟,总有致命的弱点,企业怎么防,黑客怎么攻。正邪只在一念之间,攻守重在快人一步。...



只是想起个有噱头的标题,我不是一个黑客。我的第一份工作是在省电信公司的数据机房做运维,经历过系统被攻击的实例,也有幸就职BAT。我更想从一个运维的角度看待攻守。通过本文,试图阐述大型企业安全风险所在和防护关键要素。

当然,我并不想说DDOS或者内部攻击,因为这些永远都是最容易的。

有人会问

是不是0Day漏洞就可以搞定?

或者对于牛企,APT更有效?

后面我会回答这些问题。

作为一个曾经的运维人员,我曾经感觉很困惑。每天有补不完的漏洞,没完没了的弱口令,根本不用什么APT,成千上万台服务器,BAT的服务器动辄就是几十万台,管理个口令就整死你,就算OS层面的安全你搞得定,多如牛毛的应用你自己都不知道是啥,根本管不过来。你感觉你的防守就像是扎篱笆,总有阳光从某个缝隙里面漏进来,永远都堵不住。

作为一个攻击者,可能很迷茫。我就一个人,BAT一帮大牛,几百上千人做安全,据说很多黑客高手都被高薪招安到BAT,没等你发现,人家早就补救了。又有各种安全设备和手段辅助防护,无从下手啊,要是那么容易,不知道有多少人已经成功了,哪里还轮得到我。



【其实,BAT很好攻击】

在进入BAT之前,我也曾经有过攻击BAT谈何容易的想法。但是当我在BAT看到一份常规的内部安全扫描报告的时候,我打消了这个念头。重新回到了我原来的观点,做一个运维人员,管住安全真不容易啊。

这只是一个常规的月报,每个月都会出一份,这个月没有任何的特别之处。一个部门,一个月的时间内,被发现的已知漏洞有几百个,未能及时处理的安全工单有一百多个;还存在高危端口暴漏在公网、服务没备案等等问题;弱口令有几千个,包括服务器、数据库、应用等众多系统。其他低危问题在这里就不提了。不难想象,这些问题放大到全公司会是一个什么情况。

看到这些数字,你还认为BAT安全吗?好可怕啊,分分钟被攻破的感觉。没及时处理的安全工单就意味着漏洞你随时可以利用;成千上万的弱口令,入侵BAT就像是闲庭信步。这是真的吗?



做过运维的我,冷静之后感觉这个其实才是正常的情况啊,即便没在BAT工作过,想一想也会是这个结果。几十万台服务器,每台上平均5~10个用户,还有数据库(数据库也有用户)、应用(应用又有用户),算起来可能出现的问题点不止千万,万分之一的概率也要上千个了,上千个问题,随便抓住一个你就成功了,根本不用什么高科技。更不要说还有大量的其他设备和系统:路由、交换、SDN等等。甚至安全系统还有口令和漏洞问题,它们也是软件做的不是。

原因分析

让我们先来看看产生以上问题的原因:

1、多。

2、流程复杂。

3、业务永远优先。

4、安全是个动态的过程。

5、安全和业务是难以融合的两张皮。

系统多只是一个方面,参与系统工作的人也多,而人的安全意识和能力差别就很大,不断有人参与进来,又不断有人离开,新人带来了新的风险,老人带走了系统密钥;

大公司的安全流程难免过于复杂。最经典的像补丁管理,发现漏洞的安全人员直接打补丁是最高效的,在大企业也是最不现实的。补丁安装对业务的影响如何,如何避开业务忙期,涉及大型数据库、敏感数据,你敢动吗?业务层面的安全,恐怕要研发才能解决,等等这样的问题造成大公司的安全流程会涉及很多的部门、人员,动一发而牵全身,人多,流程复杂,效率就会有问题;

业务永远是第一位的,不可能配备了一大堆安全,最后造成卫星飞不上天。很多漏洞和弱口令不能及时修复,原因就是不能影响业务。必须平衡安全与业务的关系,即便领导说再多:安全第一,没有了安全就没有了一切,你也不要当真;

有时候安全真的很让人烦,好不容易满足了一大堆听不懂的规矩和技术,第二天,新的漏洞又出现了,你都不好意思跟人家产品提。

安全和业务两张皮是不是有解很难说。很少有人既懂业务又懂安全,让一个根本不熟悉数据库技术的人做数据库安全效果可想而知,泛泛的安全可以做一些,高级黑客的防护就只能嘿嘿了。

你不是一个人在战斗

这么多问题,大企业的安全就无解吗?

作为一个曾经的运维人员,我经常想起来一句话:你不是一个人在战斗

安全的漏洞就像阿喀琉斯的脚后跟,总有致命的弱点存在,但是会有很多的安全产品、安全系统帮助我们解决专业的问题,每个服务器、数据库、应用的厂商都在帮助运维人员开发最新的补丁,修复最新的漏洞,有很多的安全厂商、安全从业人员帮助运维人员提供安全情报,实现安全功能。

而这些资源,不会自己掉下来,需要运维人员选择、整合、学习和接受。

我们不可忽视,攻击者也不是一个人在战斗。黑产和黑客已经通过利益的方式实现了信息和资源的共享,你可以把偷来的数据交给有计算资源和字典的人去解密,也可以花钱购买用户信息、邮箱口令。防护者购买或者研发安全系统,也可以比喻为基于利益的共享,共享防护信息和能力。两者其实很相似,只不过一个在明,一个在暗。谁能更好的利用资源,谁就更容易获胜

【攻防对等理论】

2014年爆发了心脏失血等好几个特别有名的0day漏洞,不禁有业内高人感慨:天下武功,唯快不破。如何在第一时间收集到这些情报,如何在没有厂商支持的情况下实现临时补丁,其实是一个和黑客赛跑的过程。我当时有个想法:这个说法其实对大多数企业并不适用。对于大多数一般企业,没有资源做到如此快速的跟踪响应,而攻击其实也是对等的,真正高级的黑客也不屑攻击泛泛的企业。漏洞刚刚出现的时候,获得消息的人本来就不多,恐怕也少有攻击利用代码,即便有,使用可能也不够方便,需要黑客自己在特定环境编译,甚至要简单的调整攻击代码,所以,能够掌握利用的人水平也会相对高些,不屑于用牛刀杀鸡。但是几个月后,漏洞消息已经满天飞,自动攻击脚本都有中文使用说明了,这个时候你还不解决,连个脚本小子都能搞死你。

这也许就是安全的一个度,做与自己体量相当的安全,实现一个可以平衡的安全即可,没有最好的安全。

很多问题上升到一定高度肯定是哲学问题。世界总是平衡的,攻击和防守总是对等的。更多黑客关注的系统也必然有更多资源可以投入到安全防护。而高级的安全攻防,就是对对方的熟悉和了解。

【安全说到底还是要研究人】

我认为,攻守的高级境界是研究人,而不是固有的攻击技术或者漏洞。在攻防领域其实就是熟悉你的对手,如果你知道BAT安全都做了些什么,哪个层面用了哪个技术,网络架构如何,运维体系等等,会更容易实现攻击。所谓:知己知彼,百战不殆。

就算你有幸渗透到某个系统,也可能由于不知道对方都做了什么安全措施,而很快被发现,还没等你获得你想要的数据或者效果,你已经被断线了。

一个简单攻击是:你在网上看到一个0day漏洞,或者一个攻击工具,甚至扫描器,用它去遍历一个网段,看看谁有问题,然后去攻击,以显示你的能力。

如果你的对手是个小白,你大可以用兵书上教你的方法去做,原因你懂的。但是高手对决,必然要分析对手的特点,而不能一概而论,所谓的对症下药。

对于防守者,要保护好的不仅仅是你的系统,还好保护好的你系统信息,包括网络拓扑,防护手段,发现攻击的机制等等。就像我们更改OS或者应用的version信息一样,明明SSH是2.3版本,我们更改为10.9,让攻击者无法了解你,或者了解到的是错误的信息,更有利于保护自己。

而非常不幸,我们会由于各种原因泄露上面提到的这些需要保护的信息。例如在安全大会上介绍我们的防护能力,或者把我们的拓扑给我们的合作伙伴,这些信息之后的传播完全不可控,你很可能从百度上搜索到自己的拓扑图,就是这么无奈。

防护者要做好别人对你有一定了解的攻击准备,也就是不仅要应对黑盒攻击,也要有一定的能力应对白盒攻击

所以,BAT都在研究黑产客户手里有什么资源,应对这些,我需要有什么,需要如何应对;通过行为分析发现异常,用户的正常行为是什么,反常的行为可能就是黑产或者黑客的行为。而这些内容,一般的企业并不关心,也不需要关心。比如用户的登陆IP,登陆时间,购买的商品内容、价位,付款的习惯、送货的地址等等,从而判断是否被盗号;服务器用户经常使用的命令、操作可能大多跟业务相关,而黑客上来很可能先看看/etc/password或者shadow,尝试一下本地溢出啥的。这些明显的行为异常被用来判断好人还是坏人,而不简单通过口令尝试、漏洞扫描来判断攻击。

黑客和黑产在研究你,如果你还在研究黑客技术,你就out

【回答问题的时间到了】

说到这,回答一下文章开始提到的问题。APT之所以叫做advanced(先进),我认为它并不神秘,重要的是它针对性很强,是在研究被攻击的对象,有针对性的下手。比如搜集被攻击对象的一个拓扑就是APT的一部分,比如最古老的伊朗核设施被攻击的APT案例,攻击者甚至需要把下一个感染对象的IP地址写进病毒程序,病毒的传播如果需要扫描或者按照网段分发都可能被识别为异常行为而被发现,这就需要了解拓扑。所以APT并不神秘,而是真正的订制化攻击。

再说说0Day,BAT被成功攻击还真未必0Day居多,有时候大家把过多的关注点放在了这个上面,我倒是认为利用最简单的安全问题可能是攻击成功案例中最多的。比如业务人员的一个更改配置的操作,打开了某个服务或者端口。这个比0Day还可怕。

这时候一定有人不服气,跳出来说:瞎掰!我怎么就没碰上这样的好事。要是这么简单,我早就成功攻破BAT出名了。我只能说,那是因为你不够爱她攻击这件事,我理解就像是追求美女,很多人看美女漂亮,尝试追求,结果被拒绝了。然后就离开了,毕竟美女有的是,没必要在这个美女身上浪费时间。而有心的人会默默的守候在美女身边,美女总有悲伤、失意、不如意,甚至失恋的时候(就是企业内部犯错),这个时候你挺身而出,成功的概率就很高。不要整天只想着,我要是开着跑车去(0Day),成功的概率就会大很多。跑车不是那么容易就能到你手的,就算你有了,也许美女早就有了。

发现没,美女嫁帅哥的其实是少数。

被人盯上的感觉是不是很可怕。攻击的人有耐心,就需要防守的人更加有耐心。攻击人的耐心被一次次扫描和尝试失败而打击;防护者的耐心被没完没了的打补丁,改密码而消磨,最后高手的比拼反而是看谁更有耐心了,安全人员要耐得住寂寞,无论是攻击者还是防护者

孙子:不可胜在己,可胜在敌

什么意思?就是要打败对方,就要等他犯错误,人家不犯错误,你是没有机会攻击成功的。BAT不可能不犯错误,只是这种错误可能转瞬即逝,所以只有高手才有足够的耐心等待BAT犯错误,只有高手才能够抓住转瞬即逝的错误。

《多情剑客无情剑》里面有一段关于李寻欢和上官金虹决战的经典分析:

李寻欢取胜的机会在于上官金虹犯错误,只有上官金虹犯错误,李寻欢才有机会。而最终的结果确实是上官金虹轻视了李寻欢,他不该给李寻欢一试小李飞刀的机会,他不犯错误,李寻欢就没有机会全力发出这一刀,但是他好奇,好奇害死猫。



公司大,什么事情都会发生。难免有系统要临时上线调测,然后再下线,例如特定版本的测试,特定情况的割接。可能临时打开一个SSH在公网请求外部人员帮忙调测,或者是一个没打补丁的测试系统被更改了公网IP。这些情况对于一个拥有几十万IP设备的企业来讲,随时都可能发生,而问题的发现是有时间窗口的。扫描器的遍历周期可能是24小时(过于频繁的扫描可能有其他问题),大多数问题没被发现就结束了,少部分问题被企业内部的各种安全措施补救,只有极个别的可能被外部黑客捕获并成功利用。成功者不能不说有运气的成分,但是最重要的还是有耐心。就像一个捕猎的猎人,钓鱼的渔人,要耐得住寂寞。

你可能不犯错误,不代表你的同事不犯错误,对于有50W+服务器的企业,安全不可能是铁板一块,安全永远是动态的过程,是你比黑客快一步的对抗

【总结】

让我们总结一下:

BAT的安全问题一点都不比普通企业少,由于一大堆原因,BAT的安全人员也必须面对繁琐无聊的常规安全内容。

幸运的是,安全运维人员有一大帮伙伴可以协助你完成安全防护,虽然黑客也在联合,让自己拥有更多资源是战胜黑客的有效手段。

安全对等理论,大多数的中小企业也不必过于悲观,关注你的黑客,水平也高不到哪里去,但是BAT这样的大企业,要做好应对高级黑客的准备,这种高级,并不是APT或者0Day就叫做高级,而是肯在你身上下功夫而且有功夫的人。

高级的安全不是研究武功招式,是研究人。研究黑客、黑产的行为特点,既然人家能够定制针对你的攻击,你就要有定制的针对性防守,看《三国演义》总有一个不确定的感觉,一场战争,从开始准备阶段,排兵布阵阶段,你就知道谁会赢了。

经过长期的攻守磨合,其实攻防双方已经形成了一种动态的平衡,双方更多时候是在僵持,在等对方犯错误。没有不犯错误的人,能不能被攻破,损失的大小,要看你犯了错误是否能快速补救。

安全永远是动态的过程,是你比黑客快一步的对抗。


    关注 晒网场


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册