近年来勒索病毒慢慢发展成一个规模非常巨大的黑色产业链,公司受到勒索病毒洗脑的可能性呈现一个上升的趋势,网络安全对公司网络建设和维护越来越重要。日前商湾网络架构总监莫江成在又拍云 Open Talk 公开课上作了题为《如何替公司省下数千万勒索费用》的分享,以下是直播分享内容整理,查看视频请点击阅读原文。
莫江成
商湾网络(UPWAN)架构总监,现主要负责商湾网络产品架构设计和原型实现,曾任职又拍云负责底层网络架构的设计和维护,以及大规模攻击防御的方案和实现。
START
大家好,今天主要分享一下自己这些年的一些心得,以下是分享内容提纲:
从勒索病毒说起
安全架构设计思路
零信任是怎么回事
从勒索病毒说起
勒索病毒是一个比较大的话题,我今天不会特别展开做一些深入的技术研究、分析,毕竟勒索病毒的分析会有很多专业的安全公司,他们就是干这个事情的,我今天主要是想站在一个 IT 运维的角度,来和大家聊一些在公司的网络安全和IT建设方面的经验,安全架构设计的思路等等,然后再跟大家聊一下零信任这件事情。
传统的安全思路其实大家应该都知道,装杀毒软件、做审计系统,然后态势感知等等,这些都是老生常谈。道理大家都懂,但很多时候,在实际业务或是在实际的运维实施环节中就是做不到。所以今天针对比较务实的场景来展开说一下,对于企业网络安全,聊聊一些构建纵深防御体系的经验和思路。
我们先来聊一下勒索病毒这件事情。勒索病毒从 2015 年、2016 年开始,慢慢地多起来,到现在已经变成一个规模非常巨大的黑色产业链。下图是 Safety Detectives 做的一个预估,大家可以看到针对这个病毒每年造成的损失或者说勒索的金额是呈现逐年上涨的趋势,而且完全没有看到下降的态势。
GandCrab 应该可以说是历史上继 WannaCry 以后嚣张的勒索病毒,没有之一。GandCrab 出现在 2018 年,到 2019 年他们居然金盆洗手了,然后在论坛上发了一个帖子,帖子大意是“我们赚了 20 亿美元,钱赚够了,我们决定退出江湖。”由此可见,勒索病毒这个产业规模有多么巨大,受影响的人有多么地广泛。
GandCrab 的事件,再结合前面的趋势图,可以说不管是各位自己还是所在公司会受到勒索病毒洗脑的可能性是呈现一个上升的趋势,而不是因为周边未出现或者说没涉及到我,这事与我相关不大。如果你是负责公司的网络维护或者建设,网络安全这个问题更是你必须要考虑的。
刚 20 亿美元的故事并没有结束,后续出现了一个叫 REvil 的团队,他们放出来的勒索病毒与 GandCrab 有很多相似之处,前段时间勒索了特朗普的一个律师事务所 4200 万美元,这好像也是我听说的高的勒索金额了。
这个事情其实也算是标志性的事情。在 WannaCry 刚开始流行时,勒索病毒通常以广撒网的方式,它没有特定的勒索目标,勒索金额基本固定在 300 美元左右。后面逐步地开始变成非常有针对性地从 to C 转向 to B 了。没错,勒索病毒也有 to C 和 to B 的区别。勒索病毒开始更加有针对性,选择特定的公司、特定的机构去渗透、勒索,这样他们就可以针对性地开价,赎金也变得越来越高。
同时,勒索病毒的功能性也增强了。正常来说,勒索病毒就是到你的电脑上,加密全部数据,然后以解密为目的来勒索金钱。但是REvil不一样,他们渗透进去之后先把数据给捞出来,加密数据,然后再去勒索。如果大家安全习惯不够好的话,未来遇到勒索病毒的概率也会比较高。
△ 勒索病毒的目标分布
上图是勒索病毒的目标分布,主要是政企相关的传统企业、制造业、政府这些,还有医疗。互联网这一块好像没有特别地明显,不过近期似乎也有一些自媒体的人中招,但我暂时不确定是有针对性的还是广撒网钓大鱼的。
勒索病毒的手段和目的
勒索病毒刚流行时,它一直依赖于邮件、漏洞的渗透,先通过铺开它的攻击工具,然后疯狂地去扫公网上的设备。勒索病毒进入一家公司的跳板就是它的公网机器。一般来说,这个机器同时连了公网和内网,勒索病毒打掉公网的机器之后就能跳进内网来进行各种横向移动,从而进一步传播以实现目的。
漏洞和弱密码也是勒索病毒广撒网的手段,另外,还有很多人都喜欢用破解软件,破解软件的风险也是非常大的,所以建议大家不要随便去装破解软件,因为你真的不知道里面塞了什么东西。
从一开始,漏洞病毒和后来流行的 ATP 攻击是勒索病毒的好基友。如果没有这些攻击手段,勒索病毒的传播会很困难。而如果没有勒索病毒,这些攻击手段它又很难变现。
勒索病毒与黑客行为或者说是手段的发展是齐头并进的,因为黑客依赖于勒索病毒去锻炼自己的入侵手段,锻炼完了还能变现。所以勒索病毒的规模会越来越大,勒索病毒也一定会进一步发展。这里还提到了手动投毒,手动投毒也是近期进化出来的一个趋势,就像前面所说的,相比 to C,to B 的增长趋势是更加明显的。手动投毒的好处就是去筛选目标机构,筛选出来之后再有针对性地去入侵渗透它。如果是安全机制比较完善的大型企业,就会用到 ATP 的一些方法和手段。ATP 也是近年来比较火的一个概念,它是一个非常复杂和系统的东西,今天就不展开去讲了。
这是前两天刚看到的一个特别搞笑的案例,我也不知道这是段子还是真的。这已经不是直接勒索,而是把数据加密后勒索金钱了。这脱胎于 Oracle 法务部的传奇事迹,我感觉任天堂法务部也要给它点个赞。
企业安全架构思路
前面聊到勒索病毒并不是今天想说的重点,只是让大家简单了解下勒索病毒已经是一个非常全面的攻击方式了。接下来讲一下企业安全架构的思路,
做安全架构重要的一点,千万不要觉得自己的系统是绝对安全的,不要有盲目的自信。永远都要假设自己的系统是不安全的,只有这样才能不断地去演进迭代。你所做的演进迭代,所有手段只是为了提升攻击方的攻击成本,而不是说去绝对的阻拦。
千万不要跟领导说我设计的安全架构 100% 安全,那是不可能的。你再怎么谨慎,也不可能是 100% 的安全,也不能指望着一套系统去应对所有的威胁措施和手段,这是非常不现实的。
纵深防御
现在我们来说一下纵深防御这个概念,其实建设公司 IT 系统或者说网络安全体系,重要的核心就是要有纵深防御的概念。
什么是纵深防御?纵深防御其实并不是计算机领域的概念,而是前苏联的一位将军提出的军事理念。它是指在作战行动中以空间换时间的一种方式。这位将军收缩兵力,把自己的领土让出来,以这样的代价去集中兵力打败对方。
纵深防御在计算机领域被用的比较多,它是一个综合防御体系的理念,并不依赖某一个特定的设备或者某一套系统来进行防御。一个合格的IT会衡量系统的功能性、易用性、成本等因素之间的关系,然后去找到一个恰当的平衡点,在一定成本的基础上达到比较好的防御效果。
上图可以较好地展现纵深防御的理念。作为一家公司的防御体系,技术防御只是占其中一部分,比如说硬件、软件、网络方面的一些技术措施,比如说行为审计设备、态势感知,防火墙这些都是技术防御体系。
除此之外还有很多东西,比如说流程、策略、预案都是组成防御体系的一部分。这里也要提一下行政,行政手段很多时候单从技术角度是无法防范的,比如说内鬼、外部人员的窃密等,行政上没有相对应的措施和手段去规范,这些就很容易出现安全漏洞。
技术防御需要结合各个部分去工作的,比如网络隔离。如果仅仅只有网络隔离,那是没有用的。同样,如果你仅仅只有一些软件方面的防御措施,比如说杀毒软件,也是没有用的。也不能说没有用,而是作用会小非常多。因为你并不知道需要面对的威胁是来自于什么?是内鬼、病毒、木马还是其他一些物理窃密的手段。当然这没有到一定规模的公司暂时不会去考虑物理窃密这一块。
前面有说到 IT 需要权衡各方面的关系做出一个比较均衡的体系来实现好的效果,再小的公司,再低的要求就是防火墙和 Vlan,如果有这个意识,你至少会配置一台防火墙,配置规则,给不同的部门配置 Vlan,这是非常常见的一种方式。
当然这只是比较低限度的防御,因为 Vlan 的隔离效果并没有那么好,它毕竟是一个粗粒度的隔离,隔离的是人群,而不是单个的人或者设备。纵深防御困难的一点是阻止威胁的横向移动。无论是勒索病毒还是内部、外部窃密,特点就是在内部网络的横向移动,而不是从防火墙进来的。你的防火墙根本没有发现这个东西,它是直接从内部,从你可信的那些设备上出来的,这才是可怕的。
纵深防御包含了很多部分,除了物理这一块,软件、网络、策略、流程之类的这些都算,这主要偏技术方向的分层,对一个防御体系的分层,分成边界、网络、终端、应用和数据。
主动策略和监视响应可能不太好理解。主动策略是指你需要主动事前去做好一些事情,比如说网络的隔离、权限的分割,以及应急预案、行政手段等,这种是要提前去做的主动策略。而行为审计和态势感知算是监视响应这一块的,它是一个被动防御。所有的安全设备,包括行为审计和态势感知,都不会告诉你这个设备属于被动防御。它在事发以后能够尽可能快地去响应、去防御。只有主动和被动结合的情况下,这家公司的IT安全体系才能说是比较完善的。
我之前见过一些客户很注重安全,投了小几十万,甚至上百万在 IT 系统的建设上,其中包含了安全。他们买了一堆的设备,但却没有把这些设备很好地结合起来,各自为战,态势感知很贵、很好,但是报告就只能自己看得到,行为审计、防火墙也是。他们投入非常大,但是没有做一个很好的体系整合,导致各个安全系统都各自为战,仍然没有起到一个非常好的纵深防御的效果。可能看起来每一个环节都能防某些特定的攻击,但就像勒索病毒这种非常具有欺骗性的手段进来了之后,就不能很好地去应对它。
所以我觉得一个公司的 IT 建设,并不是投的钱越多越好,而是要适当,要能够达到比较好的综合效果,而不是在某一些系统上面无限制去投钱,这样并没有太大的意义。
威胁应对
SCP 是一个基金会,感兴趣的同学可以了解下,它的三个关键标志性就是控制、收容、保护。
我觉得 SCP 基金会面对的威胁和企业 IT 人员面对的威胁其实有一些类似,所以我就把这个概念给借用过来了。企业面对的是不知道下一个威胁来的是什么,需要针对所有情况去做好准备,而不是说只针对某一个威胁手段去做准备。例如针对一个木马,然后你做好了完全的准备措施,结果来了一个勒索病毒,系统就不行了。所以整个体系是需要一个完善的控制,控制包括对内、对外的控制,给员工的权限要做到尽可能小权限原则。你需要知道给不同员工哪些权限就够了。当然要做到这个,需要做到很好的隔离和认证的工作,比如说网络的认证、应用接入的认证;另外,网络隔离也是很重要的一块。控制不仅仅是对外的,也是对内的。现在,很多威胁都并不是从防火墙跑进来的,而是产生在内网,通过内网横跳,找到有访问权限的电脑,然后挑到例如应用服务器的主机上,就很难去控制了。
第二块是收容,首先你要定义面对的威胁,把它框成一个实体。你要知道面对的是什么,比如说勒索病毒,首先是要想办法防止它进来,要在防火墙做好管控,它进不来也就无从去跳。发现识别威胁的等级,这个挺好理解。你可以依赖态势感知、行为审计发现这些威胁,根据它的威胁程度做一个定级。如果威胁非常大,是不是要启动一些应急预案,比如说阻止它的扩散,把办公网、业务网临时地给阻断掉,或者临时把大部分员工关键的权限取消掉,这些都需要提前做预演,这样才能限制它的扩散。不管是何种原因的威胁,勒索病毒也好,其他的窃密也好、内鬼也好。勒索病毒可能比较快,但是其他的都需要一些过程,需要时间进一步地跳,发现你的数据。如果你的应急预案足够快,就有办法阻止这些扩散,甚至有足够的时间去追踪溯源。
第三块是保护,重要的系统额外地加固保护,终端做基本的加固和防护,这些大多数公司都会做。面对发现威胁时,要去发现、定义,对终端做好保护,探测出来后解决它,再出一个总结,这对接下来完善系统、防御手段有很大的帮助。
备份偏执
接下来聊聊备份,不管对于系统还是体系来说,备份都是非常重要的。如果不做好备份,不管是攻击或者是误操作,都有可能导致整个系统完全就崩掉。这里说一下 321 备份原则,大家应该也都有听过。
这对个人来说也是适用的,比如在你的个人 NAS 系统什么的。你不能指望自己的 NAS 100% 地可靠,哪怕你做了一个 RAID1。万一你的 NAS 中了一个勒索病毒,你RAID1 的两份数据一起镜像了,镜像也全都死掉了,那也就没有起到作用。
所以这个 1 就是一份异地的数据,这是非常重要的,不管你是个人也好,是公司也好,只要条件允许都需要做好对于数据的异地备份。备份的流程要尽可能在前面,建议是在数据产生之后马上就把它备份掉,如果条件不允许的话也要提高备份频率,当然也可以根据业务的性质来,如果修改频次不高,也可以间隔时间长一点。
定期检查备份是非常重要的。如果不定期检查的话就会有一些非常悲剧的事情,比如突然有一天数据挂掉了,然后你发现备份的脚本出了问题,我相信有比较长时间运维经验的同学应该会碰到过类似的情况。
作为 IT 或者说运维人员,你要永远假设手里的数据随时会丢或被破坏掉。在这种心态下,去展开工作,才能避免出现一些非常悲剧的事情。
关键系统选型
很多公司到了一定的体量后,可能会觉得内容放哪里都不安全,就决定自建,放在自己系统是安全的。有时候事实并不是这样的,自建并不一定是件美好的事情,你需要确保这个系统有足够强大的运维和管理能力,如果需求复杂的话还需要一些定制化的能力。
这种情况下要谨慎考虑自建,比如自建邮件系统,结果服务器被勒索病毒入侵了,全公司的邮件全没了,那不是要疯了。如果放在腾讯或者 Google,就不用担心勒索病毒的问题。就算勒索病毒把云端硬盘同步到本地的数据全加密了,打开网页版回档,数据就全回来了。所以自建不是一件非常美好的事情,自建后会面对很多问题,可能代价会更大。
流程安全
在面对安全问题时,要做好预防措施、预防限制、追溯,这三点是非常重要的。预防这一块,像华为的一些行为手段其实也可以算作流程安全。流程安全主要可以划分为日常治理、限制传播和追根溯源,这三个是相辅相成的。
日常治理
渗透测试:有一些公司可能定期地去找可靠的第三方公司去做渗透测试。
日常威胁处置及常态化威胁追踪研判:针对自己的设备,技防的措施、技防的设备产生的报告要及时响应,要专门有人去分析研判,才能够去发现威胁。不然就像前面说的,做好了隔离,做好了主动的防御手段,但是,没有人去做被动响应,日积月累下,本来很小的漏洞,可能就会慢慢扩大,变成致命的安全隐患。
员工安全意识、职责分离:这两块可以放到一起说,一方面是需要日常加强对于员工的安全意识和相关案例的培训,另一方面做到减少员工特权、职责分离。员工可能掌握了一些子系统的权限管理,在培训时需要告诉他们会面临哪些威胁,可能有哪些异常现象,针对不同的问题如何及时反馈给IT部门。减少特权和职责分离比较好理解。比如某个同事需要开通一个比较关键的权限,那么审批就至少要通过两个人。很少有公司的人事、行政会去复盘这块的审批流程是否合规,这就比较容易导致一些安全隐患或者说人为漏洞。这是技防解决不了的。
限制传播
做安全架构时是没有办法保障所有系统都万无一失的。你一定要假设系统被突破了,比如说勒索病毒进来了,有人感染了,这个时候你收到了告警,这时候需要做什么呢?你需要有一定的危机预案。你要去紧急地给已经中毒的人和中毒周围的人,给他们做隔离。如果没有网络隔离的手段,就直接去拔他的网线。首先就是要限制住威胁主体的动作。然后再考虑进一步的处置措施。
主机加固这一块比较简单,就不多说了。比如说接入控制的一些终端软件,比如说装了某个软件才能上网,有很多公司都在用。这种体验很不好,对员工也不友好。
另外,还有一些 IP Guard 或者文件加密之类的,要防止员工泄密。不过 IP Guard 其实也是防君子不防小人,真要想办法的话,泄密的手段太多了。
追根溯源
这个环节态势感知和行为审计发挥作用的时候终于到了,他们重要的价值就在这里,如果没有行为审计和态势感知之类的设备,就无法去追踪溯源,就算有人窃密了也很难在事后找出来是谁。
此外,还要进行日志分析、保留现场、总结复盘、扫尾检查。比如说扫清了一波病毒之后,要再去把其他这次事件中没有报出来的主机排查一遍,看有什么主机里面的威胁是潜伏期的,看有没有内鬼在隐蔽的角落又种了木马……总之扫尾是非常繁琐的一件事情。
聊聊零信任
简单地讲,零信任就是对所有流量、终端都去做身份验证,无论是访问应用、终端访问网络还是终端访问终端,全都做一遍验证,这个就是零信任。
零信任这个概念并不是特别新,它被炒起来之前,很多大公司、大厂就已经在往这方面去做了。注重安全的公司在这个概念吹起来之前早就已经在用了。
零信任真正实施起来,代价还是蛮大的。严格来说,要做到零信任,需要对所有东西都去做校验,所有的身份都去做校验。零信任就是不信任何人,啥都不信。看个网页也要验证一下身份,就是接入认证。然后访问内部系统、ERP 系统,要走一下认证网关。当然现在这种认证网关还有一个名字叫软件定义边界 SDP,这也是一个非常硬核操作的概念。
说到零信任的话就不得不说一下传统企业网的架构。传统企业网就是如上图的结构,防火墙、态势感知、行为管理、交换机,下面就是终端,服务器、数据库、台式机全部都在交换机下面。
一般公司在这些设备之间都会做 Vlan 的隔离。但做 Vlan 隔离没有一个非常细粒度的保护,也没有办法灵活地去做权限控制。Vlan是基于交换机做的,动起来没有那么方便。如果今天要访问这个部门的资源,明天要访问另一个部门的资源,你就很难去给他规划,这会把整个网络体系做得比较复杂,实现起来也很困难,也很难去实现前面说的限制传播,因为这个时候没办法单独地针对某些特定的东西去做限制。
也有一些传统企业的安全系统以边界防护和事后的响应措施为主。态势感知报警了,赶紧找人去处理,行为管理报警了,赶紧找人去处理,防火墙报警了好像不需要处理。防火墙报警了说明拦掉了,没报警说明没拦掉。
这种情况就很难达到前面所说的纵深防御的效果。因为它纵深到内网这一块就全都自由了,可以随意横向移动,你可以发现行为审计、态势感知、流量全都镜像过去,也只能事后发现,看报告、看告警,这就没什么意义,你没办法让把威胁扼杀在萌芽之前,只能眼睁睁看着它发生再去查漏补缺。
还有一个问题,现在很多公司没有做 wifi 这块的身份认证,外部的人可以比较容易地通过伪基站、伪 wifi 热点的方式去打掉你现有的网络,密码就这样泄露了,这个实施起来非常方便。
有线网络基本上都是随意的,别人可以半夜跑到公司来,就直接用你的网线端口,开始疯狂地扫描。虽然肉身进别人公司风险稍微有点大,但是这确实非常不安全,而且绝大多数公司都存在这样的问题。
下面简单聊一下我们的产品。零信任其实也是一个非常宽泛的概念,我们现在是做了一款网络管家的产品,在网络层面很好地实践了零信任的架构,能够实现让现在这样的一个东西向自由的架构,变成这样一个完全纯隔离、完全隔离的一个结构,并且还能做到非常自由和简单的权限设计、权限的管控,包括设备到设备、设备到应用,终端到终端,并且所有的流量都和人是挂钩的。你在后台可以看到每个人今天的网络带宽用了多少,IT 可以直接看到谁谁谁在下载东西,占用带宽很大,而不需要很费劲地去排查。
在这个基础上,我们还做了身份认证的功能。我们对每个设备做身份认证的基础上,去做行为审计和网络隔离。每个员工去分配独立的账号,也支持 AD 域和钉钉的对接,办公网络不管有线还是无线都需要通过员工的账号认证授权过后才能使用。
网络隔离这一块就是分层隔离的理念实践。细分到员工级颗粒度级别的网络隔离,这样可以有效地去控制威胁的传播,不管这个威胁是内鬼、病毒还是其他的东西。他会受到非常严格的限制,没办法自由地在内网之间跳。当然这也离不开行政手段的配合,在使用了我们这一套系统之后,你就能够很好地实践这样上图这个机制,识别每个终端,然后探测并且看到每个终端的事件行为,再去解决安全问题。
以上是莫江成在又拍云 Open Talk 公开课上的主要分享内容,演讲视频和 PPT 详见下方链接: