【零信任】从一次黑客实战看“零信任”到底有啥用
2021-03-19
来源:白话零信任
时至今日,零信任已经不再冷门。但是大部分人对于零信任的了解还停留在概念层面,知道零信任有哪些能力,但不知道零信任到底怎么解决实际问题的。
其实,零信任本身是非常落地的,著名的零信任架构BeyondCorp就是谷歌公司根据自身的攻防实践总结出来的。谷歌内部一直沿用至今,效果显著。
下面举一个黑客攻击的实战案例,看看企业网络存在哪些问题。然后再看看面对同样的攻击,零信任能起什么作用。(案例根据《黑客出更》改编)
1、一次黑客攻击实战
(1)背景
Alpha公司(化名)是国际知名的系统软件公司。Hammer系统是公司的核心产品,产品质量行业第一。但是Hammer系统在给公司带来巨额收入的同时,也引起了很多同行的觊觎……
小黑是一名“客龄”三年的职业黑客。
某天,一个身穿西服老板模样的人找到小黑,出价500万,要偷到Hammer软件下一个版本的全部源代码。
商业竞争的事情,小黑也不是很明白,反正回报异常丰厚,小黑决定接受这个合约。
(2)收集信息
开始攻击之前,小黑对Alpha公司的信息进行了全方位的搜集。
小黑用谷歌搜到了很多Alpha公司的员工邮箱。小黑查看了所有邮箱的前缀,很快就猜出了Alpha公司邮箱的命名规则——姓名的全拼。
在网上搜索员工信息时,小黑还发现了不少Alpha公司大牛分享的技术帖,里面就包含很多Alpha公司的网络情况。小黑还意外地在一个合作公司的网站上找到了Alpha公司部分销售机构的通讯录。
在收集了大约200个公司的邮箱地址后,小黑觉得信息搜集得差不多了。
(3)钓鱼
为了配合下一步的攻击行动,小黑做了一个假的游戏网站。
小黑从之前搜集的邮箱中选出10个(控制数量避免垃圾过滤),发送了一封钓鱼邮件——免费试玩最新游戏。大致内容是我公司正在测试一款新的游戏,需要高手的测试,你是游戏高手吗?来试试!邮件中有个游戏的下载链接。当然,游戏文件是带木马的。
小明是个年轻的码农,除了写代码,就是玩游戏。一天早晨,小明浏览公司邮件时,发现了免费试玩游戏的邮件,“酷啊!”小明赞叹着,内心的冲动让他决定要试一试。
小明知道不能让公司抓住自己通过公司网络下载游戏,所以,他先关闭了公司的VPN连接,然后点击了邮件中的链接下载游戏。
下载后小明进行了病毒扫描,没问题后才开始游戏。游戏是个“绿色”软件,无需安装,小明感觉很不错,玩得很过瘾,还写了一个邮件,给“开发商”提了些建议。
当然他没有注意到,游戏开始的同时,木马后门程序已经开始工作。(小黑深知Alpha公司终端管控软件的厉害,木马没有在本地留痕迹,而是注入到了进程中)
(4)传播
玩了一会儿游戏,小明开始继续工作,所以又打开了与公司的VPN连接。
此时小明机器中的木马进程开始通过VPN链路扫描整个Alpha公司的网络。不一会就扫描到了一个文件共享服务器,上面有很多员工常用的软件,也包括VPN客户端软件。
这个服务器的安全管理很差,小黑没费什么力气就获得了管理员权限。
小黑替换了服务器上的一个常用的文字编辑软件,并在软件中植入了窃听木马。
公司的其他员工下载使用这个软件时,木马先复制自己,再正常运行,所以用户也没有感觉到什么异常,很快,小黑的窃听木马在Alpha公司内部四处传播。
(5)盗号
小黑的窃听木马可以收集系统内的密码文件,可以记录用户建立新连接时键盘记录,还可以分析流量过滤登录时填写的用户ID与密码。
木马把所有搜集到的密码都传到了小黑手里进行破解。不到三个小时,小黑就获得了50多个密码,其中还包括研发副总裁和产品总监的账号密码。
(6)窃取
利用这些刚破解的密码,小黑以“合法身份”登上Alpha公司的VPN,进入了Alpha公司的内部网络。
小黑开始慢慢地扫描Hammer软件源代码的藏身之处。(减少扫描频率是为了避免被发现)
为了不让安全人员的注意到自己的扫描行为,小黑还对Alpha公司的外部网站进行了间歇性的DDoS攻击,给自己打掩护。
在定位了Hammer源代码的位置后,小黑利用此前盗取的账号,很快取得了代码仓库的下载权限。
“宝藏”到手了,小黑高兴得叫了出来。当然,工作需要小心地、一步一步地进行…没有几天,小黑通过几台肉鸡把全部代码分割打包逐步下载了到自己的系统中。
(7)收尾
取走源码之后,小黑没忘记清理自己的入侵痕迹,下指令让木马自我毁灭,并利用it运维权限删除了日志。
成功的小黑如期“交货”,看着惊讶又钦佩的老板,惬意地点着厚厚的钞票……
2、问题分析:最大的漏洞是人的漏洞
上面例子中小黑用的是一个非常典型的攻击套路,这种套路的特点是以“人”为攻击的中心,先寻找弱点入侵设备或窃取身份,随后以入侵点为跳板,蔓延到整个网络,最后披着合法的身份干坏事。
在小黑的攻击之下,Alpha公司暴露了三个值得注意的问题:
(1)员工安全意识不足,导致设备的防护措施失效
因为人的安全意识参差不齐,容易做出各种违规操作。现实中很多企业可能已经上了安全软件,但员工有时候为了自己方便,会关掉这些杀毒、终端管理软件。这时,员工就很容易中招。
案例中,小黑通过钓鱼,很容易就让小明中招,入侵了小明的设备。
再比如,有人的电脑经常不锁屏。之前碰到过一个案例是攻击方从地下车库混进了公司大厦,跟着其他员工混过了门禁。在办公区看到没锁屏的电脑,就插上带毒的U盘,直接植入木马。
(2)内网权限疏于管理,威胁进来就会快速传播
一般企业网络会对外部彻底隔离,但是对已经接入内网的人限制很少。这就给攻击者提供了极大的便利。
案例中,小黑入侵小明的设备之后,可以随意扫描内网,并且很快就找到了有漏洞的系统。
系统漏洞没法避免,但是权限过度的问题可以避免。
小明可以使用文件共享服务,但是管理端口应该完全不对小明暴露才对。对小明暴露,就相当于对小黑暴露了。
(3)身份泄露后,黑客以“合法身份”窃取数据,难以拦截
除了黑客直接盗号之外,员工常常会互相“借用”账号,“共享”账号,造成身份信息泄露。加上各种弱密码、社会上的密码泄露事件等等,对于安全人员来说,基本可以默认用户的账号密码肯定会被泄露。
有些公司会记录一些网络数据,审计分析用户行为。但这些系统通常是“外挂式”的,很少能够做到贴合业务,及时发现并拦截异常行为。
案例中的小黑是非常狡猾的,利用合法的身份作掩护,还会通过一些技巧,如慢扫描、无文件攻击、切割文件后分批传走等等方式躲避安全人员的监控。所以,小黑的非法行为很难察觉。
3、解决方案:通过安全框架克服人的不可靠性
攻击的核心是“人”,所以防御的核心必须也是“人”。防御小黑这类攻击的关键就是通过建立一套“安全框架”,去克服“人”的不可靠性。
零信任就是一种聚合了很多实用的技术,针对“人”做全面防御的安全框架。
(1)人的安全意识比较低,但是零信任可以强制要求人去提高
零信任可以收集终端设备的安全状态,并制定限制条件,如果达不到要求,就不让访问。
比如,为了避免病毒的传播,“零信任客户端”可以检测用户电脑上是否装了杀毒软件和终端管理软件。零信任网关守护在内网入口,只有客户端检测成功,并且上报给网关,零信任网关才会放行。
这样,不安全的设备就没法接入内网,避免了因为用户安全意识不足而引入风险。(为了防御一些高级威胁,零信任还可以与EDR产品联动)
为了实现数据防泄密,可以要求客户端检测用户是否正在使用云桌面,如果没有,则不让该用户访问一些重要的资源,避免源代码、客户名单等敏感信息的泄露。
为了避免攻击者买通内鬼或者自己混入办公室传播风险,可以要求客户端检测用户是否设置了锁屏密码,如果没有则不让接入内网。
为了避免攻击者远程控制用户设备,可以要求客户端检测用户是否关闭了远程服务、远程共享,如果没有则不让接入内网。
(2)零信任网络中,人和资源天然就是隔离的,威胁不会快速传播
零信任网络中,零信任网关处于整个内网的入口位置,隔离了人和资源。
攻击者即便窃取了账号和设备,也不能直接进入内网。攻击者能做的事情非常有限。
首先,攻击者扫不出几个端口了。
零信任的SPA隐身技术能拦截掉未授权的端口扫描。用户如果没有访问权限的话,那么相应的服务器端口不会对其开放。攻击者发出的端口探测请求会被零信任网关中的防火墙直接丢弃。(具体可以参考我的文章《揭秘零信任里的“隐身”黑科技》)
这样的话,案例中的小黑只能扫到小明有权访问的服务器,不能在整个内网大范围扫描。
其次,攻击者没法直连服务器了。
零信任网关可以限制只做应用层的代理和准入。
此时,小黑会发现与他直连的只有零信任网关,对于真实的业务服务器则只能通过零信任网关的转发,进行HTTPS协议的通信。
再次,成熟的零信任还会包括数据级的统一权限管理。小黑会发现web页面中也不是所有数据都能访问。
最后,即便攻击者入侵了一台服务器,他也没法以此为跳板继续横向攻击。
零信任的微隔离技术可以做服务器之间的访问控制。攻击者入侵了一个服务器之后,扫描同一网段的其他服务器,是扫不到的。其他服务器上的微隔离agent会拦截掉探测流量。(具体可以参考我的文章《用微隔离技术实现零信任》)
(3)密码会泄露,但是零信任还会验证设备、人脸、行为
首先,设备绑定和多因子认证是零信任必备的功能。
攻击者盗号之后,零信任客户端会检测设备是否在可信名单中,用新设备登录会被视为一种可疑事件,触发一次多因子认证。
案例中,小黑没有Alpha公司发给员工的可信设备,是没法直接登录VPN接入内网的。
一些特别重要的应用,可以要求首次登录时必须做一次多因子认证,比如人脸识别之后才能进入。
有些特别重要的系统甚至可以要求客户端全程开启人脸识别,用户离开座位或者有人在后面围观就自动断开连接。
其次,即使身份蒙混过关,异常行为也会让他露馅。
零信任框架包含识别“异常行为”的能力,并且跟业务层结合的很紧。通过客户端和网关的配合,可以在发生异常情况时,触发二次认证,验证用户短信或人脸识别后才允许继续通信。
比如用户10分钟前还在北京,10分钟后登录位置突然变成了上海。这种异常的位置变化代表账号可能被盗了。
这时,零信任平台会命令客户端和网关暂时中断通信,提示让用户验证一下短信,通过之后,再恢复正常通信。
案例中,小黑的所有行为都会被持续监控,很多攻击行为都会被视为可疑事件,比如入侵小明的电脑后留下了可疑的进程,扫描内网时访问行为具有强烈的规律性,短时间内大量下载源码文件的行为等等,都会触发二次认证,阻止小黑继续干坏事,同时引起小明的警觉。
4、有零信任之后,案例变成什么样子
(1)钓鱼阶段:爱玩的小明还是会被钓鱼,下载木马。但是小明进入内网前,零信任客户端会主动检测设备的安全能力是否开启,设备是否处于安全状态,木马很快会被发现和处理。
(2)传播阶段:零信任会通过隐身和隔离技术限制风险的传播,让小黑探测不到有价值的目标。零信任还会持续检测传播风险的异常行为,触发多因子认证,封锁小黑的下一步行动。
(3)盗号阶段:小黑可以盗取账号密码,但是小黑没法通过设备认证和多因子认证,所以盗了也没用。
(4)窃取阶段:小黑在前几个阶段没法突破零信任对身份认证、设备认证、行为检测、网络授权等方面的限制,最终还是没法窃取到数据。
5、一句话总结:零信任到底能干嘛?
黑客攻防中,人是最大的漏洞。零信任就是不相信任何人,通过安全框架弥补人的不可靠性,综合各类检测、认证和限制,让原本来去自如的攻击者寸步难行。