三、技术概述
3.1勒索软件:攻击方法和技术
>>>>
3.1.1勒索软件攻击概述
一般来说,勒索软件攻击分为多个阶段。只有充分了解各阶段活动,组织才能有备无患,应对自如。需要注意的是,勒索软件是软件代码,在攻陷兼容计算机后执行,对本地存储、网络或云中的可访问数据进行操控。此外,还可能利用网络访问权限和互联网与命令控制(C2)服务器(攻击者的基础设施)通信。攻击受害人应料到勒索软件会利用强加密算法加密数据且只有联系勒索软件组织才能获得解密秘钥。受害人支付赎金后,攻击者提供的解密工具和秘钥可能无法正常使用,导致某些数据仍无法解密和访问。
受害人应事先知晓,勒索软件不仅可加密本地计算机存储器中的数据,而且还能通过网络加密数据。尽管数据访问可能受限,但勒索软件仍可能利用漏洞访问受限数据。此外,勒索软件可能导致企业无法访问关键数据,而这些数据对于面向客户的服务和后端服务来说非常必要。
>>>>
3.1.2 勒索软件常见感染途径
勒索软件利用多种方法入侵系统。下面几节介绍最常见感染途径:邮件、被攻陷的网站以及网络上误配置系统中的漏洞。
>>>>
3.1.2.1 电子邮件
电子邮件是最常用的勒索软件传播机制。第二节中提及的所有家族几乎都利用电子邮件作为感染途径。网络攻击者可通过各种方式获得大量电子邮件地址,并利用这些地址发起钓鱼攻击。通过钓鱼邮件传播的勒索软件使用了社会工程手段,旨在让用户相信邮件正常且其附件和链接可靠。大多数情况下,邮件包含恶意附件,可导致勒索软件攻击。
图2是鱼叉式钓鱼邮件例子,即勒索软件利用的定向钓鱼邮件。(Klein,2015年)在此类钓鱼攻击中,邮件正文内容和链接面向特定人员和组织量身定制。本例中,钓鱼邮件内容为顾客对Backblaze的投诉。正常情况下,邮件发送给被投诉公司的CEO。人们收到后很容易相信该邮件正常,然后根据指示点击链接。
图2:2015年Locker勒索软件的鱼叉式钓鱼邮件(Klein,2015年)
>>>>
3.1.2.2 网站
通过入侵站点投递的勒索软件主要利用恶意广告和漏洞利用工具包。恶意广告并不是一种新的传播方式,最早出现在2007年。2019年6月,Sodinokibi勒索软件被发现利用恶意广告作为感染途径,借助PopCash广告网络将受害人重定向至RIG漏洞利用工具包。(趋势科技,2019年)Nemty也利用RIG漏洞利用工具包开展恶意广告活动。(Ilascu,Nemty勒索软件通过RIG漏洞利用工具包传播,2019年)利用网站传播勒索软件的好处是无需用户交互即可成功感染机器,单单让用户浏览网页就可使恶意广告的恶意代码自动执行,进而感染机器。
恶意广告不仅利用危险的网站,还渗透了诸如纽约时报、NFL、MSN和BBC等主流网站。要在网站上展示恶意广告,关键是攻击者以合法方式参与广告网络的活动。攻击者在网络上注册成为广告商,通过竞标在流行网站上投入广告,最初通过投放无恶意软件的合法广告赢得信任,一段时间后会在这些网络中引入恶意广告,赢得广告位竞标后将广告显示在网站上。若广告网络实现了交易自动化和最小安全检查,那么广告投放会非常方便。恶意广告商可轻松地在无人察觉情况下投放广告。一旦恶意广告被展示(有时需要点击),将出现多个重定向方式。最常见的情况是,代码中隐藏的内联框架(iframe)标签开始执行一系列域名/IP跳转,最终达到存储漏洞利用工具包的恶意服务器。
图3是恶意重定向至RIG漏洞利用工具包的例子。该重定向利用PopCash广告网络下载和安装Sodinokibi勒索软件。(Abrams,通过漏洞利用工具包和恶意广告实现Sodinokibi勒索软件攻击,2019年)Sodinokibi在下载并执行后可加密文件,如图4所示。
图3:在未安装补丁的Windows PC上进行恶意广告重定向(Abrams,通过漏洞利用工具包和恶意广告实现Sodinokibi勒索软件攻击,2019年)
图4:Sodinokibi勒索软件加密未打Windows补丁的PC(Abrams,通过漏洞利用工具包和恶意广告实现Sodinokibi勒索软件攻击,2019年)
>>>>
3.1.2.3 漏洞利用工具包
漏洞利用工具包指试图利用操作系统、浏览器、插件和其他软件中的已知和未知漏洞入侵机器的软件。这些工具包主要攻击浏览器及其他可通过访问网页自动执行的软件。大多数现代Web浏览器通过限制对系统资源的网页访问防御入侵,并要求进行实际的用户交互才能访问网页。
恶意代码一旦侵入系统,则会从远程服务器中下载勒索软件并在机器上执行。感染通常在后台执行,若未及时发现,勒索软件会完成数据加密,弹出赎金支付消息。
漏洞利用工具包成功执行的关键在于是否能发现漏洞。有些工具包只利用公开发布的漏洞,有些工具对发现的漏洞秘而不宣,囤积居奇,在黑市中待价而沽。以下是最常用的技术:
- 流行软件(如Adobe AcrobatReader、Microsoft Office和WordPress)
- 浏览器(如Internet Explorer(IE)、Firefox、Chrome和Safari)
- 插件(如Adobe Flash)
有些漏洞利用工具包已成功利用。有些勒索软件运营商可能正在减少使用这些工具包,而更多的采用钓鱼邮件。下面介绍几个有代表性的工具包。
RIG:该漏洞利用工具包在2016年出现,据知已传播了Nemty和Sodinokibi等至少35个勒索软件家族。(迈克菲,2018年)RIG漏洞利用工具包一直在维护和升级,可对34个漏洞进行恶意利用,包括近期发现的AdobeFlash Player和Microsoft Windows中的CVE-2018-4878和CVE-2018-8174漏洞。
Fallout:该漏洞利用工具包在2018年8月被发现,据悉已传播了包括Maze和Sodinokibi在内的多种勒索软件家族。(迈克菲,2019年)Fallout利用AdobeFlash Player和Microsoft Windows中的CVE-2018-4878、CVE-2018-8174和CVE-2018-15982漏洞。
Spelevo:该漏洞利用工具包在2019年年初被发现,据悉已传播了Maze勒索软件。(迈克菲,2019年) Spelevo漏洞利用工具包利用CVE-2018-8174和CVE-2018-15982漏洞,通过Adobe Flash Player投放木马在Microsoft Windows中创建持续定时任务。(迈克菲,2019年)
Radio:该漏洞利用工具包针对Microsoft Windows,据知已传播了Nemty勒索软件。(Abrams,漏洞利用工具包利用勒索软件和木马攻击Windows用户,2019)Radio漏洞利用工具包基于Internet Explorer中广泛利用的漏洞CVE-2016-0189(已修复),与其他漏洞利用工具包相比可能不够先进。(nao_sec,2019年)
漏洞利用工具包五花八门,甚至无需用户交互也能入侵系统。为避免遭受这些工具包的攻击,最好严格遵守软件更新策略。似乎大多数工具包均利用公开发布的漏洞的攻击利用程序,只有少数利用个人发现的漏洞。漏洞利用程序之所以成功执行,说明软件未能定期打补丁,导致工具包可持续完全依赖公开发布的漏洞。
>>>>
3.1.3 修改操作系统
勒索软件一旦在受害人机器人执行,其行为与大多数恶意软件并无二致。勒索软件的初始执行目标均为:
- 在已攻陷机器上实现持久化。
- 避免从已攻陷机器上检出并移除。
- 在某些情况下,与C2服务器建立网络连接。
>>>>
3.1.3.1 建立持久化
建立持久化后,勒索软件可持续执行并可在足够长时间内访问系统中所有必要资源,实现恶意目标。勒索软件利用下面的一些策略在入侵的系统中建立持久化:
- 在新文件中自我复制。勒索软件在系统文件夹及临时文件夹等不常见的位置生成其执行文件的多个副本。这样,就可以避免被彻底删除,除非所有副本都被检出并移除。在Windows系统中,典型位置包括system32、AppData、Local和临时文件夹。
- 在现有文件中自我复制。勒索软件在现有二进制文件中写入恶意代码,该恶意代码或为自身副本,或为其他恶意代码。勒索软件一般在系统文件夹中复制,原因是这些系统文件对操作系统功能的正常运行至关重要,反恶意软件程序不会删除这些系统文件或不阻止其运行。此外,系统文件夹中的文件一般具备系统管理权限。
- 创建新二进制文件。系统中释放的勒索软件通常会创建二进制文件,这些文件稍后执行,完成恶意任务。此举的目的是将两个文件分开。若所创建的文件被移除,原始的释放文件可重新创建文件,再次尝试实现恶意目标。二进制文件可从远程主机上下载,也可从其可执行文件的嵌入代码中复制(并非精确复制);第二种情况是一种自我复制行为。
- Windows注册表。有时,勒索软件利用Windows注册表建立持久化。Windows注册表是个分层数据库,包含操作系统以及相关应用程序的设置。勒索软件试图创建和修改注册表项用于自身目的,并且重置或删除安全和反恶意软件相关的表项。此外,勒索软件就数个已知的开机自启动注册表项(主要是“CurrrentVersionRun”)设置路径,从而创建开机自启动的恶意二进制文件。
>>>>
3.1.3.2 逃避检测
勒索软件加密受害者的数据需要时间(有时需数小时),所以,须保证在这段时间内不被检出并移除。勒索软件采取如下策略逃避检测:
- 删除之前文件:勒索软件执行之前下载或创建的二进制文件。这些进程通常会衍生很多恶意子进程,避免其从被入侵的系统上移除。一般情况下,这些衍生出来的子进程运行相同实例,也就是说,指子进程执行与父进程同样的行动。在这些进程中,木马可能进行各项恶意任务或执行其他二进制文件,而这些二进制文件提供的是一些本身并无恶意的支持功能。为逃避检测,衍生出的子进程可能会从文件系统中删除父进程的二进制图片,从而尽可能地减少在入侵系统上的执行结果和痕迹。
- 终止父进程:如上所述,勒索软件一般会在首次下载或创建二进制文件后创建和生成恶意子进程。创建子进程后,父进程可能自动终止。在某些情况下,子进程会终止父进程,即删除父进程,旨在将释放的勒索软件进程与执行恶意任务的子进程分离,避免勒索软件从入侵系统上被检出和移除。
- 禁用反恶意软件程序:一些勒索软件变体知晓反恶意软件程序的进程和配置选项。为逃避检测,勒索软件试图通过终止进程禁用反恶意软件程序,导致反恶意软件程序无法正常运行或完全停止运行。
- 注入代码:要将恶意任务授权给非恶意进程,勒索软件通常会将代码注入当前运行的其他进程以逃避检测。同时,因为非恶意进程可能具备较高的系统资源访问权限权限,在这些进程中注入代码,就能够收集数据或监测用户交互。此外,系统级操作系统进程、文件管理器和Web浏览器也可能遭受攻击。在Windows操作系统中,此类非恶意进程可能包括winlogon、svchost、iexplore和explorer。
>>>>
3.1.3.3 建立网络连接
远程C2服务器通信:勒索软件变体通常会尝试与远程C2服务器通信。该通信在勒索软件的核心功能中是关键一环,主要用于存储加密秘钥和受害者机器的唯一标识符,现在还用于转移数,从而对勒索软件受害人进行敲诈勒索。初始连接时,勒索软件可发起DNS正向查询和反向查询,试图与多个IP地址建立连接,直至连接成功。在实时流量分析过程,应对失败的连接尝试突出显示和标记。为逃避检测,可能会通过网络匿名程序(如Tor)实现C2服务器通信。
>>>>
3.1.4 定位目标
勒索软件可能会针对特定数据、系统中所有文件,甚或整个磁盘发起攻击。本文中讨论的勒索软件家族的大多数变体均能扫描设备的整个本地文件系统。此外,Ryuk和MedusaLocker等一些勒索软件家族不仅攻击本地硬盘,而且会对任何连接的或可访问的网络存储器进行攻击,如表2所示。
表2:勒索软件家族概念[1]
勒索软件 | 加密手段 | 加密位置 | 加密文件类型 | 是否发公布数据 |
---|---|---|---|---|
FuxSocy(Abrams,新的FuxSocy勒索软件假冒臭名昭著的Cerber,2019年) | RSA和AES-256结合使用 | 大多数变体会尝试对整个系统(除白名单外)进行加密。 | 各种类型的文件,包括存档文件、办公文件(如文档、电子表格、演示文稿)、图片、媒体、脚本/代码和数据库。不加密整个文件,能够破坏数据即可(NCFTA 2020)。 | 否 |
GlobeImposter(Kline,2017年) | RSA-4096和AES-256结合使用 | 大多数变体会试图对整个系统(除白名单外)加密;在网络上寻找其他主机进行加密(Cyware Social,2019年)。 | 试图加密除白名单之外的所有文件(Cyware Social,2019年)。 | 否 |
LockerGoga(趋势科技,2019年) | RSA-4096和AES-256结合使用 | 预定义列表或整个系统。 | 各种类型的文件,包括存档文件、办公文件(如文档、电子表格、演示文稿)、图片、媒体、脚本/代码。 | 否 |
SamSam(Coveware,2019年) | RSA-2048 | 整个系统。 | 试图加密除白名单之外的所有文件 | 否 |
MedusaLocker(Abrams,MedusaLocker勒索软件欲从你的钱包中分一杯羹,2019年) | RSA-2048和AES-256结合使用 | 整个系统(白名单);同时,攻击映射的网络驱动器(Walter,MedusaLocker勒索软件疯狂攻击远程主机,2019年)。 | 各种类型的文件,包括可执行文件、办公文件(如文档、电子表格、演示文稿)、图片、媒体、脚本/代码。 | 否 |
Ryuk(Hanel,2019年) | RSA-2048和AES-256结合使用 | 大多数变体试图加密除白名单之外的整个系统;查找其他可通过网络访问的共享文件。 | 试图加密除白名单之外的所有文件。 | 否 |
Nemty(Mundo和Lopez,2020年) | RSA-2048、RSA-8192、AES-128和AES-256结合使用(van den Hurk,2019年) | 整个系统(除白名单)。 | 试图加密除白名单之外的所有文件 | 是 |
MegaCortex(Abrams,MegaCortex勒索软件揭秘,2019年) | AES-128 | 整个系统(除白名单)。 | 试图加密除白名单之外的所有文件 | 是 |
Maze(NCFTA,2019年) | RSA-2048和ChaCha20结合使用 | 整个系统(除白名单)。 | 试图加密除白名单之外的所有文件 | 是 |
Sodinokibi(NCFTA,2020年) | AES和Salsa20结合使用 | 大多数变体试图加密除白名单之外的整个系统;查找其他可通过网络访问的共享文件(Tiwari和Koshelev,2019年)。 | 各种类型的文件,包括存档文件、办公文件(如文档、电子表格、演示文稿)、图片、媒体、脚本/代码。 | 是 |
图5为勒索软件的典型文件加密示意图,从内至外,加密可能性依次递增。通常,最常见的目标文件为各种office文档(如.doc、.sxw、.xlsx和.sxc)、图像格式(如.tiff、.png和.bmp)、存档文件(如.zip和.tar)、音频文件(如.mp3和.sxc).wav)和视频文件(如.mp4和.avi)。
一些勒索软件变体还可能包括数据库(如.sqlite和.mdb)和网站相关文件(如.html和.aspx)。不太复杂的加密勒索软件可能会将目标限制在系统的特定目录上,而目标明确的勒索软件可能会锁定特定应用程序(如MongoDB)。
图5:从勒索软件最青睐的加密文件(最外圈)到最不常见的加密文件(最里圈[2])
如图5所示,许多勒索软件家族避免加密可执行文件或系统文件,因为这样做会使系统不稳定,甚至可能导致勒索软件无法运行。然而,这种情况正在改变,许多勒索软件家族现在仅将启动计算机所需的最基本文件列入白名单,其余文件一律加密。勒索软件还瞄准组织服务器上的数据(如数据库、网站和文件共享),利用数据泄露的负面影响,迫使受害者支付赎金。
3.2加密
勒索软件使用某种形式的加密来限制对作为勒索筹码的数据的访问。加密指通过使用唯一加密密钥的加密算法对数据进行打散来保护数据。正确使用加密可防止未经授权(即唯一解密密钥)访问数据,勒索软件正是基于此思路设计,只有收到赎金,才会提供解密密钥。本节将回顾勒索软件使用的加密算法。
>>>>
3.2.1 算法
大多数勒索软件变种在攻击中结合使用对称和非对称加密算法。对称加密比较简单和快速,通常用于加密大容量数据。对称加密只使用一个加密密钥进行数据加密和解密,如图6所示。非对称加密更复杂,需要两个不同加密密钥(公钥和私钥),如图7所示。公钥加密数据,私钥用于解密由公钥加密的数据。由于非对称加密较为复杂,所以速度慢得多,通常用于加密少量数据。
图6:对称加密算法
图7:非对称加密算法
这里我们以MedusaLocker为例进行介绍。勒索软件利用AES-256对称加密算法加密文件。由于AES-256是对称加密算法,须使用同一密钥加密和解密数据,如图6所示。MedusaLocker利用RSA-2048非对称加密算法对对称密钥进行加密保护,其中加密通过公钥完成,解密则利用对应私钥实现,如图7所示。大多数情况下,公钥由C2服务器提供给勒索软件,而C2服务器也保存相关私钥。这就对加密方法设置了限制,因为如果不访问C2服务器,则无法获得用于加密数据的对称加密密钥。不过,MedusaLocker通过在可执行文件中嵌入公钥绕过了这一限制,也就是说它无需连接到C2服务器利用对称和非对称加密。
从MedusaLocker实例中,我们可看出在勒索软件中利用加密算法组合的典型复杂性。事实上,许多新的勒索软件家族都试图采取相似的最佳实践进行加密以及生成和管理密钥,这使得在不支付赎金的情况下恢复数据愈加困难。
数据加密中的一个最佳实践是建议采取对称加密对大量数据进行加密,因为对称加密比非对称加密快得多。因此,合理实现的加密方案通常包括对称加密组件(例如AES)和非对称加密组件(例如RSA),如图8所示。在自定义加密算法中,漏洞很常见,因为它们不会受到严格的大范围代码审查。勒索软件开发人员可通过使用构建的加密算法限制潜在漏洞面。因为减少了勒索软件所使用加密过程的漏洞,。如上所述,MedusaLocker采取了最佳实践,使用AES-256对称加密算法和RSA-2048加密算法。目前,没有用于MedusaLocker的公共解密程序。
图8:结合使用对称性和非对称性加密保护密钥
将对称和非对称加密方法结合使用在fuxsocyl、GlobeImposter、LockerGoga、Ryuk和Nemty等很多其他勒索软件家族中非常常见。与Medu-saLocker不同,在这些勒索软件家族中,有些会与C2服务器通信,生成用于加密AES对称密钥的RSA公钥,这就使得C2服务器连接成为了一项必要条件。如果勒索软件无法连接到C2服务器将无法获得加密AES对称密钥的公钥,若缺乏安全的对称密钥,勒索软件组织将无法加密数据,进行勒索。
一些勒索软件试图通过使用本地生成的AES-256对称密钥加密数据解决该问题。若是明文密钥,那么受害者就可在不支付赎金的情况下解密他们的数据。除非无法与C2服务器通信,否则勒索软件不会在本地存储明文对称密钥。在这种情况下,勒索软件使用硬编码的RSA公钥基于对称密钥创建恢复密钥。恢复密钥创建后,原始明文格式的AES对称密钥将从系统中删除。
恢复密钥稍后会和赎金一起提交给威胁攻击方控制的网站,从而恢复原始的AES主对称密钥。然后,解密工具可使用该对称密钥恢复数据。
>>>>
3.2.2 数据完整性
数据加密包含数据修改,可能导致数据损坏。如果数据在加密过程中损坏,即使使用正常运行的解密工具也可能无法恢复。从勒索软件实现来看,原始明文数据可在原位修改,也可复制到另一个文件容器中进行加密。一旦加密,原始明文数据文件将从系统中删除。然而,勒索软件代码实现中的缺陷可能导致加密数据不完整。与许多其他涉及大量数据写入的应用程序一样,数据写入过程若突然中断可能导致数据损坏。
最近几个勒索软件家族对原始数据文件进行了修改,添加了加密密钥和唯一标识符,在解密工具恢复原始文件前必须删除这些密钥和唯一标识符。最后,解密工具在实现上可能存在缺陷,导致数据损坏。
如果原始数据已删除但未在存储器中覆盖,则可利用正规的数据恢复工具恢复删除的文件。如果解密工具损坏了数据,则可对该工具进行修改避免数据损坏。在任何情况下,我们都建议您在尝试进行数据恢复前对加密数据进行备份。
与任何恶意数据修改一样,若不将数据与之前存储的副本或数据哈希值进行比较,就无法保证数据完整性未受到破坏。因此,应将恢复的数据与泄露的数据采取同样的方式处理。
3.3支付
>>>>
3.3.1 提示用户
一旦加密完成,勒索软件会向用户提示相关情况和下一步行动。提示消息以各种形式发送,包括桌面墙纸、浏览器窗口、勒索软件运行程序生成弹出窗口和提醒。此外,勒索软件通常还会锁定计算机或限制其使用,连续显示信息。
消息内容通常包含四个部分:
- 文件加密声明;
- 加密原因;
- 受害者恢复文件须采取的步骤;
- 支付赎金的最后期限及受害者延迟支付赎金的后果;赎金金额一般在最后期限前随时间的推移而增加。
这些信息通常使用社会工程让用户相信这一情况非常严重,除了支付赎金别无选择。有时候会表示可以解密少数文件,从而使受害者相信支付赎金会解密剩余文件。
>>>>
3.3.2 货币
随着加密货币的广泛使用,勒索软件也在最近几年兴起。加密货币交易因具备不受监管特性而成为勒索软件支付的首选支付机制。2019年第一季度支付的赎金中,比特币约占98%。(Coverware,2019)
除了加密货币,一些勒索软件家族还接受各种形式的预付借记卡、礼品卡和更为传统的电汇和汇款单。预付卡为可能不适应加密货币交易复杂性的受害者提供了一种方便的支付方法。但是,预付卡支付方式可能会因用户所在地而异。欧洲、亚洲、北美和其他市场存在各种不同的预付卡和支付终端。
>>>>
3.3.3 客户服务
有一些勒索软件运营商提供客户服务,帮助受害者获得所需的支付货币进行支付,然后解密数据。这项服务背后的逻辑是,向受害者提供的帮助越多,获得赎金的可能性就越大。勒索软件客户服务通常通过用户填写常见支持请求表或聊天窗口实现。进一步通信通常通过电子邮件进行。除了帮助受害者付款和解密数据外,通信通道还可用于协商赎金金额或延长付款期限。(Shackelford和Wade,2020年)
>>>>
3.3.4 付款期限超期
勒索软件通常会设置支付赎金的截止日期,该日期到期则销毁解密密钥。在传统意义上的密码安全属性中,若解密密钥不复存在,则认为加密数据被销毁。勒索软件依靠该属性迫使受害者尽早付款。解密密钥通常存储在攻击者控制的C2服务器上。因此,在感染目标后,攻击者可根据时间逐步实施密钥销毁过程。
通过之前对勒索软件C2服务器进行分析,我们发现解密密钥在截止日期到期后未被销毁。尽管密钥过期警告可能用于诱使受害者尽早付款并阻止其拖延时间寻找替代解决方案,但若不进行分析,通常无法判断密钥过期威胁是否真实。因此,若无其他辅助知识,应对此认真分析。
勒索软件也可利用截止日期提高赎金,而不是威胁销毁解密密钥。在这种情况下,赎金通常每7至10天翻一番,直到付清为止。对于勒索软件客服来说,延长付款期限或协商价格并不罕见。
3.4解密
>>>>
3.4.1 攻击者提供的服务
赎金支付完成后,勒索软件运营商提供解密密钥、软件和支持。有时,解密软件访问权限嵌入在赎金支付屏幕中。在这些情况下,用户只需提供加密文件。在其他情况下,必须下载软件。
运营商进一步确保解密正确且所有文件都恢复到其原始形式。这项服务对于攻击活动持续取得成功至关重要。让受害者知道文件会正确恢复是确保支付赎金的一条可靠途径。图9为Alma Locker勒索软件示例。
图9:AlmaLocker 内置的解密工具(Cimpanu,2016年)
>>>>
3.4.2 解密的可信度
一些报告指出,即使支付了赎金,也无法恢复数据。加密数据只有在未损坏的情况下才能成功解密。2019年第四季度,平均而言,受害者在支付了解密程序费用后仍损失了3%的加密数据。(Coveware,2019年)此外,解密工具通常不仅进行数据解密,还定位数据并识别正确的解密秘钥。若每个文件均使用唯一密钥,解密工具的功能可能更为复杂。
若识别和解密过程较为复杂,则更容易出现编码和功能性错误,导致数据解密不完整或受损。此外,解密工具通常提供解密密钥,该密钥对存储加密数据的计算机有效。威胁源起方提供了正确的解密秘钥,该密钥来自存储用于勒索赎金的解密秘钥的数据库。我们在这里举一个无效解密秘钥的例子:为受损系统提供了不正确的标识符,导致密钥数据库出现多个冲突。无效的解密密钥会导致解密尝试失败或数据损坏。
如果不将解密数据与原始数据进行比较,或不验证解密数据的哈希值,则无法保证和验证解密数据的完整性。无论解密结果如何,无论解密工具来自何处,解密的数据都应被视为受损数据。
>>>>
3.4.3 可靠性问题
勒索软件的设计目的是操控静态磁盘中的数据。加密是将明文格式的数据转换的加密格式。这种数据操控由合理实现的软件执行,该软件通常会加密数据,将其存储在单独创建的新文件中,然后安全删除原始明文数据,如图10所示。在该过程中,需对文件系统操作考虑周详,以确保数据完整性。
图10:勒索软件文件加密流程
如果数据操控流程中断或失败,数据可能会停留在损坏状态。与执行类似数据操控商业软件产品相比,勒索软件代码通常缺乏严格的测试阶段。这种未测试的代码可能会产生更大错误面,从而导致数据损坏。
在解密方面,勒索软件解密数据,将其存储新创建的明文文件中,然后删除原始加密文件,如图11所示。虽然解密过程通常不太容易出现与文件系统和操作系统相关的错误,但解密工具的稳定性可能不及勒索软件加密组件。
图11:勒索软件文件加密流程
勒索软件通常会修改受损的系统或网络,并致使系统稳定性和安全性下降。这些修改可能包括利用各种代码漏洞来获得执行攻击所需的访问权限。例如,勒索软件使用提升的权限安装内核级驱动程序,导致受损系统不稳定,性能下降甚至经常崩溃,直至勒索软件被删除。
在决定如何处理勒索软件事件时,应考虑这些问题。事件发生后,应在解密前对加密数据进行备份。同样,删除勒索软件恢复数据时,应在事件发生后彻底移除受损的系统,对其重新安装和配置。这样可避免整个系统出现稳定性和安全性问题,并减少将来可能出现的危害。
3.5数据转移
大多数早期勒索软件并非用于感染网络,转移大量数据。然而,可以预见的是,威胁源起方蓄意从受害人处窃取敏感信息。之前的勒索软件家族分析表明,大多数勒索软件收集受损系统的一些信息,创建唯一标识符。命令控制(C2)服务器使用此信息跟踪勒索软件攻击以及数据恢复所需的加密密钥。通常,勒索软件利用受损系统的计算机名、存储设备序列号和操作系统版本生成唯一标识符,然后传输到威胁源起方控制的命令控制(C2)服务器上。
一些勒索软件还可窃取处于加密中的各文件的信息,如文件名和路径。显然,这个过程会招致数据泄漏风险,尤其是文件名或路径中含有敏感信息时。
此外,Nemty、MegaCortex、Maze和Sodinokibi勒索软件家族在未得赎金的情况下已开始窃取全部数据内容,将之公之于众。数据转移通常发生在数据加密之前。这四个勒索软件家族对受害者组织进行攻击,导致数据泄露。大多数情况下,文档、数据库和其他敏感数字材料最终都会落入攻击者手中。但是,攻击者在收到赎金后也不一定能老老实实地删除数据,而且其他威胁源起方可能获得这些数据的访问权限。
四、停止勒索软件
4.1监控
>>>>
4.1.1 系统级监控
多项感染指标可用于系统级别的勒索软件检测。杀毒软件提供了一些勒索软件防护措施,但并不完善。杀毒软件产品应在数据被破坏前对已知勒索软件进行文件级和过程级检测和阻断。此外,杀毒软件产品应该能够扫描在线下载文件和电子邮件附件——传播勒索软件的最常见攻击途径。然而,杀毒软件通常依赖于更新的哈希表,而勒索软件快速进行调整逃避杀毒软件的检测。
删除本地管理权限可防止勒索软件在本地系统上运行。本地管理员有权修改系统文件、目录、注册表和存储库。后者都是勒索软件操作的关键部分。删除本地管理权限可降低勒索软件在系统上持续存在并在整个企业网络中传播的风险,并在一定程度上阻止勒索软件访问关键系统资源实施破坏性文件加密。
网络防火墙可以检测需要与远程命令控制(C2)服务器通信的勒索软件。配置本地系统防火墙,监控和阻止允许列表之外的应用程序的出站网络通信,协助阻止勒索软件。如果无法访问命令控制(C2)服务器,一些勒索软件变种则可能无法使用强数据加密或加密数据,其加密机制也可能会失去作用,受害者很有可能无需支付赎金即可恢复数据。
勒索软件也利用了系统漏洞。重要的是,制定合理操作系统更新策略,修复已知安全问题。然而,第三方应用程序,尤其是具备更高权限的应用程序,也会带来安全风险。主动识别需要更高系统权限的应用程序,有助于在勒索软件能够访问敏感数据之前就检测和阻止勒索软件。建议对第三方应用程序进行定期维护和更新,限制安装白名单之外的新应用程序,监控新进程执行,阻止未未经授权的应用程序运行。
对Windows临时文件夹和AppData文件夹中代码的执行进行监控也有助于降低在感染点执行勒索软件的风险。勒索软件的许多变种通过下载文件和附件进行传播,必须在数据加密开始之前部署。部署恶意代码通常需要轻松访问现成的目录来解压、执行勒索软件文件。Temp和AppData文件夹经常中招。若对系统进行配置对这些文件夹中的代码执行进行检测和阻止,勒索软件在部署后可能无法执行加密代码。假设指标由当前运行的进程执行,那么在Windows系统中,可以使用微软支持的小型过滤器和回调实现监控。应对以下运行时事件进行监控,从而更容易发现勒索软件执行。
勒索软件通常在文件系统中执行以下操作:
· 修改开机启动文件,向受害者展示该信息
· 在文件系统中查找具有特定文件扩展名的所有文件
· 请求对多个文件进行高频访问
· 创建新文件(可能使用非标准文件类型扩展名)
勒索软件经常篡改以下进程:
· 利用创建或下载的二进制文件生成新进程
· 删除反恶意软件相关进程,防止其在加密和勒索数赎金期间被删除
· 将一些二进制图像或内存空间注入之前运行的进程的内存空间
勒索软件通常会更改Windows注册表区域:
· 设置恶意二进制文件开机启动项,以控制机器访问、显示勒索消息
· 重置或删除与安全和反恶意软件相关的密钥,防止这些秘钥在赎金支付前被删除
>>>>
4.1.2网络级监控
一些勒索软件变种使用远程服务器存储被转移的受害者数据、加密信息和其他项目。当勒索软件可执行文件试图从受损系统与命令控制(C2)服务器进行初始连接时,它必须确定哪个IP地址处于活跃状态。这是因为若获取多个IP地址并成功连接过程中可能会出现多次连接失败和其他异常情况,而受害者可通过查看这些连接失败和异常的监控信息注意到系统上的勒索软件。
以下行为与连接失败或IP地址获取异常相关,应进行记录和标记:
· 未返回结果的DNS查询
· 未返回结果的反向DNS查询
· 成功的DNS查询和尝试连接返回的IP地址失败
· 对同一或少数顶级域名重复发送DNS查询请求
可以通过网络流量分析器主动记录和搜索这些行为。为了避免勒索软件的检测和阻断,要从内核内部记录和监控网络流量。为此,微软引入了Windows过滤平台,提供应用程序编程接口(API)和命令在网络堆栈的各个层级构建内核级网络监视器。
此外,可通过监控超文本传输协议(HTTP)、文本传输协议(FTP)和电子邮件等已知转移途径,进行内容过滤检测有数据转移行为的勒索软件。(Jareth,2020年)可以定制一些内容过滤器,识别与敏感组织数据匹配的数据模式。但是,如果勒索软件在传输过程对转移数据进行了模糊处理,绕过内容过滤器。数字水印文件也可以有效检测数据转移。(Jareth,2020年)由于水印是嵌入文件的,因此水印文件一旦外泄,可被深度包检测产品发现。通过检测这些行为以及主机级别的其他行为,就有可能在加密开始之前阻止勒索软件。
4.2策略与流程
要防范勒索软件攻击,最佳方法是定期进行数据备份并对备份数据进行验证。最近出现的勒索软件不仅能加密文档文件,还能加密在勒索软件攻击后用于数据恢复的Windows 操作系统还原点和卷影副本。
比较理想的备份做法是将备份文件保存在不接入网络的独立系统上,这样无需向攻击者支付赎金即可恢复加密数据。此外,经常检查备份的数据有助于确保数据备份策略的一致性和可靠性。
>>>>
4.2.1缓解策略
以下是针对勒索软件的有效缓解策略:
· 定期进行离线备份并做好维护。处于离线状态的数据无法被勒索软件获取,安全性较高。应定期检查现有的备份流程,确认数据是否进行了合理备份。定期检查备份数据的完整性,以确保备份数据的有效性和可用性。
· 开展用户培训,对员工开展最佳安全实践教育。勒索软件通常通过电子邮件附件、在线下载文件、网络浏览和USB驱动器来攻击系统。为解决这些问题,定期开展员工安全培训及其他最佳实践有助于避免勒索软件入侵。
· 限制临时文件夹和数据文件夹中的代码执行。如果勒索软件用于提取并执行这些文件夹中的数据,那么如果没有权限,勒索软件可能无法继续进行数据加密。
· 定期更新。操作系统和第三方组件都可能受到勒索软件的攻击,更新可确保勒索软件无法利用已知的漏洞访问系统和数据。
· 限制管理员和系统访问。勒索软件可能依赖系统管理员帐户执行操作。限制用户帐户、删除默认的系统管理员帐户,可为勒索软件制造更多困难。
· 维护更新杀毒软件。定期更新杀毒软件,下载最新的恶意软件签名和其他可用的识别数据,尽量在早期发现已知勒索软件。
>>>>
4.2.2响应策略
以下是针对勒索软件的有效响应策略:
· 创建系统内存快照。如有可能,请在关闭受损系统之前对正在运行的整个系统内存创建快照。内存快照有助于找到勒索软件使用的攻击途径,并帮助定位可用于解密数据的加密材料。
· 将受损系统下线。将受损系统下线可阻止勒索软件继续传播,防止对组织数据的进一步损坏。
· 备份受损系统。对受损系统相关的所有存储的数据进行备份,防止数据恢复失败时进一步损坏数据。
· 阻止对勒索软件使用的任何已识别的命令控制(C2)服务器的网络访问。如果没有访问权限,勒索软件通常无法实现安全的加密方案。这就使得数据恢复更容易实现。
· 识别攻击途径。在整个企业网络中召回涉嫌携带勒索软件攻击的电子邮件,以防止勒索软件进一步传播。
· 限制网络存储器的写入权限。在网络上清除勒索软件之前,限制对网络可访问数据存储的写入权限有助于保护数据并防止勒索软件的进一步传播。
· 通知有关部门。考虑通知有关部门协助调查。
4.3系统配置
虽然系统不太可能完全不受勒索软件的影响,但良好的系统管理可以降低成功攻击的可能性。勒索软件常见的两个感染途径是电子邮件和网站。可以降低通过这些途径感染的可能性,但不能完全消除。
对于利用电子邮件发起的攻击,最重要的是对系统进行配置提供完善的过滤功能。发送的垃圾邮件和恶意电子邮件信息越少,用户打开恶意附件或单击恶意链接的可能性就越小。
减小电子邮件攻击面的其他方法包括屏蔽可执行附件和使用纯文本电子邮件。很多勒索软件都是作为可执行文件传播。若在电子邮件中删除了这些内容,即使恶意电子邮件绕过了过滤器,仍可以防止感染,原因是未传送有效负载。遗憾的是,当勒索软件作为包含宏的微软办公类型的文件被传送时,这种方法不奏效。纯文本电子邮件可阻止用户点击恶意链接或下载可能传送勒索软件可执行文件的外部内容。然而,这并不能阻止用户将URL复制到浏览器中。
更为困难的是防止合法网站在受损后或沦为恶意网站后感染其他目标。从系统层面上讲,最好及时更新网页浏览器,并使用广告拦截器。禁用Flash和Java也可以减小攻击面。不过,许多组织在日常业务中都需要Flash和Java。
较为常用的恶意软件防范方法需要系统维护和权限管理。最重要的是安装可用的操作系统和软件补丁。即使勒索软件没有利用软件或操作系统的漏洞,它也可能会随漏洞利用工具包一起传送。
很多权限相关实践有助于防止或限制勒索软件攻击的影响。首先,最重要的一点是限制设备的管理权限。许多漏洞利用工具包和一些勒索软件需要权限才能安装组件或进行系统更改。当勒索软件以当前用户的权限启动时,限制这些权限可以阻止感染。用户进行日常活动时不应以管理员权限登录,应在任何管理功能完成后立即恢复为标准用户权限。
其他与权限相关的实践包括限制用户写入功能、阻止从用户目录执行、将应用程序加入白名单以及限制对网络存储器或或共享的访问。有些勒索软件需要对特定文件路径的写入权限才能安装或执行。对少数目录(如用户/文档和用户/下载)分配写入权限,这样勒索软件变种就无法成功执行其操作。删除这些目录中的执行权限也可以阻止勒索软件可执行文件的实际运行。许多组织都使用限量的应用程序来开展业务。对系统上的应用程序只使用白名单策略就可以阻止白名单之外的任何应用程序,如勒索软件。总的来说,权限管理相关做法主要是为了降低影响,限制传播。除此之外,由于勒索软件实施了新的数据转移行为,组织应加密静态数据,从而降低与某些勒索软件家族相关的潜在数据泄露威胁。
许多勒索软件变种不再只是扫描本地驱动器来查找文件。勒索软件变种也不局限于映射的驱动器,他们能够找到任何连接的网络存储器或共享。为了防止加密,这些设备在每次访问时都需要显式登录。此外,应该限制通过文件资源管理器等方法直接访问的设备的数量。虽然这可能会给用户带来麻烦,但使用更安全的设备访问方法(例如安全外壳协议SSH)可在某一用户被感染时减少设备上数据被加密的可能性。
使用反恶意软件程序可以更积极地防范勒索软件。这些程序可以是基于文件的,也可以是基于行为的。基于文件的反恶意软件或杀毒程序可以隔离或删除通过电子邮件或网站传送的已知勒索软件变种。基于行为的反恶意软件程序监控应用程序的行为,并且(1)如果应用程序开始充当恶意软件,则将其停止;或者(2)在使文件完全可供终端用户使用之前,在沙盒中执行该文件,以检查是否存在恶意行为。遗憾的是,第一种方案通常是马后炮,因为勒索软件通常在被识别出来之前就已经加密了多个文件。第二种方案也有缺点。比如,应用程序在沙箱中运行的时间可能不够长,无法被标记为恶意程序。或者,勒索软件可能使用沙箱规避技术,如果在检测到其在沙箱中运行时可能无法将其识别为恶意程序。
对于只加密具有特定文件扩展名的勒索软件变种,可利用文件扩展名映射这种较新的方法保护文件免受影响。这种方法包括创建当前未使用的文件扩展名的列表(可通过www.file-extensions.org核查),仅使用这些扩展名命名文件,并利用操作系统文件扩展名管理将这些扩展名分配给相关程序。例如,组织可以将所有Microsoft Word文档的扩展名设置为.ourworddocs,而非.docx。当其他预防方法不奏效时,这种方法可以帮助保护重要文件不被加密。遗憾的是,如果扩展名不在白名单上,现在只有几个勒索软件变种可以加密所有文件。
表3:勒索软件防范方法[3]
防范方法 | 作用 | 局限性 |
---|---|---|
使用垃圾邮件过滤器 | 降低基于电子邮件的攻击成功几率 | 无法防范合法用户无意中传播的勒索软件;过滤器漏掉了部分垃圾邮件,尤其是鱼叉式网络钓鱼邮件 |
屏蔽可执行的电子邮件附件 | 防止直接通过电子邮件传送勒索软件可执行文件 | 无法防范邮件信息中嵌入的恶意URL造成的感染 |
使用纯文本电子邮件 | 防止意外点击恶意URL | 无法阻止用户复制/粘贴恶意URL |
使用广告拦截器 | 防止通过网络漏洞利用程序传播感染 | 只阻止被屏蔽广告的感染,而不屏蔽普通网页或加入白名单的广告服务 |
对操作系统及其他软件进行更新 | 防止勒索软件利用已修复的漏洞 | 对未修复的漏洞无效 |
限制管理员权限 | 限制了安装和修改系统的能力 | 只有当用户没有以管理员权限登录并且无法利用正在运行的服务/应用程序来提升权限时才起作用 |
限制用户写入权限 | 防止写入受限目录的感染,限制加密 | 只有当用户没有以管理员权限登录并且无法利用正在运行的服务/应用程序来提升权限时才起作用;不受限制的目录仍然易受攻击 |
不允许在用户目录中执行 | 防止勒索软件/漏洞利用工具包下载为可执行文件时运行 | 仅当可执行文件最终添加至受保护的用户目录中时才起作用 |
将应用程序添加至白名单 | 限制执行 | 如果被利用的勒索软件是被允许的应用程序,此方法无效 |
映射文件扩展名 | 对寻找特定文件扩展名的勒索软件隐藏文件 | 若勒索软件加密硬盘或白名单之外的文件,此方法无效 |
限制联网的存储器和共享 | 抑制感染并限制其加密 | 只有在机器被感染时用户保持断开连接时才有用;通常是不切实际的 |
使用基于文件的反恶意软件 | 隔离/删除已知的勒索软件变种 | 对新的、罕见的勒索软件变种无效 |
使用基于行为的反恶意软件 | 停止已知的勒索软件行为 | 如果使用端点反恶意软件,当恶意行为被识别出来时,勒索软件已经在执行了;如果使用沙箱反恶意软件,则行为可能与在端点上运行时不同,因此勒索软件不会被捕获 |
加密静态数据 | 保护组织的信息不受勒索软件的数据转移行为的影响 | 无法防范勒索软件攻击;勒索软件仍然可以加密已加密过的数据 |
4.4网络配置
虽然在系统级别可以采取很多措施阻止和防范勒索软件,但是在网络级别上能做的事情却不多。要在源头上阻止感染,采取完善的通用实践可能会有所帮助。提供白名单或完善的黑名单功能的防火墙可降低基于网络的恶意软件的下载成功几率,并且可能阻止勒索软件连接到命令控制(C2)服务器。
防火墙应该限制或完全阻止远程桌面协议和其他远程管理服务。强大的垃圾邮件列表和其他垃圾邮件检测技术可以防止大多数附带攻击的电子邮件被发送到用户的收件箱。对可借助电子邮件传送的文件名进行限制,可减轻绕过过滤的网络钓鱼电子邮件可能发生的感染。
防止勒索软件从受感染的内部主机传播的难度更大。有一些工具可以检测具备蠕虫行为特征的恶意软件。多个勒索软件家族都具备蠕虫行为特征。然而,这些工具不太可能完全阻止恶意软件传播,因为行为识别需要时间。若要降低感染传播,可限制终端设备对联网设备的访问。
仅仅“隐藏”网络设备不足以阻止勒索软件的访问。(G.,2016年)如果可以通过扫描或类似文件资源管理器的方式查找到设备,勒索软件也可找到该设备。如果受损系统的活跃用户拥有该设备的权限,则该设备很可能会被损坏。活动目录(AD)等服务配置为不需要用户直接登录每个设备,勒索软件就可以在活跃用户的名下无障碍地运行。也就是说,如果用户有写入权限,勒索软件可以加密、复制和转移数据。即使没有单点登录类型的服务,勒索软件或加密范围也会传播到用户当前登录的任何设备、任何包含“记住我”设置的地方以及用户在意识到感染前登录的任何系统。
防止恶意软件传播的最有效方法是尽快断开受感染设备(以及那些疑似被感染的设备)的网络连接。这些除了有线连接,还应断开设备的Wi-Fi和蓝牙连接。
原文链接:
https://resources.sei.cmu.edu/library/asset-view.cfm?assetid=645032
关于小蜜蜂翻译组公益译文项目
小蜜蜂翻译组公益译文项目,旨在分享国外先进网络安全理念、规划、框架、技术标准与实践,将网络安全战略性文档翻译为中文,为网络安全从业人员提供参考,促进国内安全组织在相关方面的思考和交流。
内容编辑:翻译组蒋红梅 责任编辑:王星凯
[1]该表由计算机应急响应小组的研究员绘制
[2]该图由计算机应急响应小组的研究员和设计人员绘制
[3]本表为CERT研究人员绘制