一、概念
APT(Advanced Persistent Threat),中文释义为高级持续性威胁,APT攻击是一种利用先进攻击手段对特定目标进行长期持续性攻击的攻击形式。
它的攻击原理相对于其他攻击形式更为高级和先进,其高级性主要体现在APT组织在发动攻击之前需要对攻击对象的业务流程和目标系统进行精确的收集。在此收集的过程中,APT组织会主动挖掘被攻击对象受信系统和应用程序的漏洞,利用这些漏洞组建攻击者所需的网络,并利用0day漏洞进行攻击。
为了更好的理解APT攻击,下面我们拆解下APT。
A(Advanced):高级
意味着攻击者拥有更高级的全方位的情报收集技术和更高级的攻击手段。这些可能包括传统的情报收集技术、计算机入侵技术、会话劫持技术以及卫星成像等技术。APT组织一般会自己动手构建的恶意软件工具包,根据需要访问和开发更高级的工具。他们经常结合多种定位方法,工具和技术,以达到并保持对目标的访问。
P(Persistent):持续性
APT攻击一方优先考虑某项具体任务,而不会投机取巧地寻求获取财务或其他收益的信息。这个意味着攻击者是由外部实体引导的。攻击的针对性是通过持续监控和互动来实现的,以达到既定的目标。这并不意味着需要不断的攻击和恶意软件更新的攻势。事实上,“低级”的做法通常更成功。如果APT攻击方失去对目标的访问权限,他们通常会重新尝试访问,而且通常是成功的。APT攻击方的目标之一是保持对目标的长期访问,而不会仅仅满足于短时间的访问权限。
T(Threat ):威胁
APT攻击是通过团队协作来执行的,而不是通过无意识和自动化的代码。并且APT攻击方都有一个特定的目标,同时他们技术精湛,积极主动,有组织有目的,资金充足,所以有大多数的APT攻击都是针对其他国家的,也被视为一种间谍活动。
二、APT攻击特征
APT攻击与传统攻击不同之处在于:
- 它的攻击目的非常明确,相比而言,传统攻击选择的目标计算机是随机的,例如著名的“极光”攻击,在Google中攻击目标是源代码,而在索尼中攻击目标则是个人验证信息PII;
- 提供精心策划,对特定目标完成预定任务; 建立长期的攻击点,等待时机完成预定任务;
- 由专业人员精心组织,长期监控,攻击过程随着找到防御弱点动态调整,更有效的实现攻击目的;
- 通常采用专门设计的、攻击方法复杂、传统攻击检测技术难以检测到。
三、APT攻击技术
3.1 APT攻击方式
APT组织常用的攻击手法有:鱼叉式网络钓鱼、水坑攻击、路过式下载攻击、社会工程学、即时通讯工具、社交网络、零日利用等
-
鱼叉攻击(Spear Phishing)
针对特定组织的网络欺诈行为,目的是不通过授权访问机密数据,最常见的方法是将木马程序作为电子邮件的附件发送给特定的攻击目标,并诱使目标打开附件。
-
水坑攻击(Water Holing)
黑客通过分析攻击目标的网络活动规律,寻找攻击目标经常访问的网站的弱点,先攻下该网站并植入攻击代码,等待攻击目标访问该网站时实施攻击。水坑攻击(Watering hole)是一种计算机入侵手法,其针对的目标多为特定的团体(组织、行业、地区等)。攻击者首先通过猜测(或观察)确定这组目标经常访问的网站,并入侵其中一个或多个,植入恶意软件,最后,达到感染该组目标中部分成员的目的。 由于此种攻击借助了目标团体所信任的网站,攻击成功率很高。
除了插恶意代码外,攻击者还会判断访问该页面的访问者的ip,只有当访问者在攻击目标的ip范围内,也会进行下一步的攻击动作,依次来防止误伤。
如某次海莲花攻击,该攻陷网站的某个js上插入了一段代码,用于访问恶意代码:
下图为使用鱼叉攻击和水坑攻击的基本方法。
-
路过式下载(Drive-by download)
用户不知道的情况下下载间谍软件、计算机病毒或者任何恶意软件。路过式下载可能发生在用户访问一个网站、阅读一封电子邮件、或者点击一个欺骗性弹出式窗口的时候。例如,用户误以为这个弹出式窗口是自己的计算机提示错误的窗口或者以为这是一个正常的弹出式广告,因此点击了这个窗口。
-
社会工程学
社会工程学是一种通过人际交流的方式获得信息的非技术渗透手段。不幸的是,这种手段非常有效,而且应用效率极高。
-
远程可执行漏洞和密码爆破攻击
除了鱼叉和水坑攻击,利用远程可执行漏洞和服务器口令爆破进行攻击,也成为了一种可选的攻击方式。
3.2 APT攻击诱饵种类
APT攻击中,攻击诱饵种类也是纷繁复杂,包括如下几类:
- 文档类:主要是office文档、pdf文档;
- 脚本类:js脚本、vbs脚本、powershell脚本等;
- 可执行文件:一般为经过RLO处理过的可执行文件、自解压包;
- lnk:带漏洞的(如震网漏洞)和执行powershell、cmd等命令的快捷方式;
- 网页类:html、hta等。
四、APT攻击模式
APT攻击可以轻松绕过基于代码的传统安全方案(如防病毒软件、防火墙、IPS等),并更长时间地潜伏在系统中,让传统防御体系难以侦测,APT攻击在发现前可能已经潜伏了很长时间,而一旦反病毒软件或其他安全防御措施发现、清除了这些病毒或恶意软件,它们不会再次被使用,所以通过传统的特征匹配方式查找病毒、恶意软件没有意义。从Mandiant’s M-Trends报告可以看出,反病毒软件仅查出了24%的APT恶意软件,而攻击人员成功渗透系统后进一步通过后门程序获取系统管理员权限,进而随意访问系统、窃取数据。
典型的APT攻击主要由以下七个阶段组成:
4.1 第一阶段:扫描探测
在APT攻击中,攻击者会花几个月甚至更长的时间对"目标"网络进行踩点,针对性地进行信息收集,目标网络环境探测,线上服务器分布情况,应用程序的弱点分析,了解业务状况,员工信息等等。
信息收集方法有:公开网站搜索(域名注册信息、zoomeye等)、DNS记录分析(dig、fierce等)、信息收集工具(discover、recon-ng等)、端口服务扫描(nmap等)、主机扫描(nessus、openvas等)、Web应用扫描(mvs、burpsuite等)。
下面为一些常见的信息收集手段:
邮件信息搜集
1.包括工具收集:theHarvester、Infoga、EmailSniper等;
2.邮箱测试收集:TOP500姓名+邮箱后缀。
邮箱测试验证相关地址有:https://verify-email.org/、http://tool.chacuo.net/mailverify、http://www.all-nettools.com/toolbox/email-dossier.php
目标内网信息收集
1.元数据收集:企业发布到网络上的文档信息。可以获取文件上传者的机器名,操作系统及相关软件安装路径和版本等信息。FOCA工具主要是个检查和扫描文件的元数据及隐藏信息的信息收集工具。这些文件可以是在网页上的,FOCA 能下载并分析它们。
2.探针信息收集:最常见的是XSS探针,将JS探针信息嵌入网站链接中,或者钓鱼页面中,收集目标系统的详细信息。
一般攻击者可以收集到的信息为:
- 内网使用的浏览器信息,针对IE浏览器漏洞进行挂马攻击,水坑攻击;
- 内网FLASH版本信息,主要进行挂马攻击,发送带有网马的链接攻击;
- 内网使用的Java版本信息,进行网马攻击。 内网使用的杀毒软件信息,对木马针对性的进行免杀;
- 内网使用的Office版本信息,针对特定的office版本,制作相应的攻击样本;
- 内网使用的Adobe Reader版本信息,主要用来在PDF中嵌入木马进行攻击;
- 内网安装的常用软件信息,结合相应的软件漏洞进行相应漏洞攻击;
- 内网IP地址信息以及内网的外网出口。
4.2 第二阶段:工具投送
在多数情况下,攻击者会向目标公司的员工发送邮件,诱骗其打开恶意附件,或单击一个经过伪造的恶意URL,希望利用常见软件(如Java或微软的办公软件)的0day漏洞,投送其恶意代码。一旦到位,恶意软件可能会复制自己,用微妙的改变使每个实例都看起来不一样,并伪装自己,以躲避扫描。有些会关闭防病毒扫描引擎,经过清理后重新安装,或潜伏数天或数周。恶意代码也能被携带在笔记本电脑、USB设备里,或者通过基于云的文件共享来感染一台主机,并在连接到网络时横向传播。
4.3 第三阶段:漏洞利用
利用漏洞,达到攻击的目的。攻击者通过投送恶意代码,并利用目标企业使用的软件中的漏洞(如CVE-2017-8570等office溢出类漏洞)执行自身。而如果漏洞利用成功的话,你的系统将受到感染。普通用户系统忘记打补丁是很常见的,所以他们很容易受到已知和未知的漏洞利用攻击。
4.4 第四阶段:木马植入
随着漏洞利用的成功,更多的恶意软件的可执行文件——击键记录器、木马后门、密码破解和文件采集程序被下载和安装。这意味着,犯罪分子现在已经建成了进入系统的长期控制机制。
1.攻击者直接发送exe文件到目标主机
2.利用unicode控制符进行逆名欺骗
制作一个自解压文件,然后重命名,插入Unicode 控制字符RLO(这里只需要在.前面加上cod即可,这样就制作出一个显示doc后缀的EXE)。
4.5 第五阶段:远程控制
一旦恶意软件安装,攻击者就已经从组织防御内部建立了一个控制点。攻击者最常安装的就是远程控制工具。这些远程控制工具是以反向连接模式建立的,其目的就是允许从外部控制员工电脑或服务器,即这些工具从位于中心的命令和控制服务器接受命令,然后执行命令,而不是远程得到命令。这种连接方法使其更难以检测,因为员工的机器是主动与命令和控制服务器通信而不是相反。
4.6 第六阶段:横向渗透
一般来说,攻击者首先突破的员工个人电脑并不是攻击者感兴趣的,它感兴趣的是组织内部其它包含重要资产的服务器,因此,攻击者将以员工个人电脑为跳板,在系统内部进行横向渗透,以攻陷更多的pc和服务器。攻击者采取的横向渗透方法包括口令窃听和漏洞攻击等。
4.7 第七阶段:目标行动
也就是将敏感数据从被攻击的网络非法传输到由攻击者控制的外部系统。在发现有价值的数据后,APT攻击者往往要将数据收集到一个文档中,然后压缩并加密该文档。此操作可以使其隐藏内容,防止遭受深度的数据包检查和DLP技术的检测和阻止。然后将数据从受害系统偷运出去到由攻击者控制的外部。大多数公司都没有针对这些恶意传输和目的地分析出站流量。那些使用工具监控出站传输的组织也只是寻找"已知的"恶意地址和受到严格监管的数据。
五、传统安全防御体系缺陷
传统的安全防御体系对于APT攻击而言形同虚设,具体表现为:
-
特征检查无法识别未知流量
APT攻击常常利用社会工程学、零日漏洞、定制恶意软件等,传统的基于特征库的被动防御体系无法识别异常流量,存在严重的滞后性。
-
伪造签名可规避恶意代码检测
APT攻击有时通过伪造合法签名的方式避免恶意代码文件被识别,为传统的基于签名的检测带来很大困难。
-
加密数据能够防范内容检测
在内部网络,攻击者能使用SSLVPN来控制主机。因为数据是加密的,所以现有的内容检测系统无法识别。
-
难以发现利用合法途径的窃密
在攻击者获取目标数据时,他们并不利用恶意软件,而是利用合法的方法——— 例如命令窗口、NetBIOS命令、Windows终端服务等将数据加密并发送出去,无法被发现。
-
及时消痕导致无法溯源
APT攻击者不留任何痕迹地在目标系统展开活动,使得无法溯源至他们的命令和控制中心,他们可在目标系统保持控制权数年之久。
六、APT防御方法
按照防御体系安全能力不同,一般将安全防御机制划分成三个层次,分别是防护层、协同层以及检测层,不同层次对应的安全技术手段如下图。
针对APT攻击具体防御技术有:
6.1 基于沙箱的恶意代码检测技术——未知威胁检测
要检测恶意代码,最具挑战性的就是利用0day漏洞的恶意代码。因为是0day,就意味着没有特征,传统的恶意代码检测技术就此失效。
沙箱技术简单说就是构造一个模拟的执行环境,让可疑文件在这个模拟环境中运行起来,通过监控可疑文件所有的真正的行为(程序外在的可见的行为和程序内部调用系统的行为)判断是否为恶意文件。
沙箱技术的模拟环境可以是真实的模拟环境,也可以是一个虚拟的模拟环境。而虚拟的模拟环境可以通过虚拟机技术来构建(KVM),或者通过一个特制程序来虚拟(docker)。
6.2 基于异常的流量检测技术——IDS(已知的特征库的检测)
传统的IDS都是基于特征的技术去进行DPI分析(入侵检测系统),检测能力的强弱主要看ids库的能力(规则库要广泛还要及时更新),主要是安全分析人员要从各种开源机构或自发渗透挖掘出利用代码或恶意代码,来加入ids规则库来增强检测能力。这种防御技术对常见的、已知的网络威胁检测时可以的,对未知的威胁就没有用武之地了。
面对新型威胁,有的ids也加入了DFI技术,来增强检测能力。基于Flow,出现了一种基于异常的流量检测技术,通过建立流量行为轮廓和学习模型来识别流量异常,进而识别0day攻击、C&C通讯,以及信息渗出。本质上,这是一种基于统计学和机器学习的技术。
6.3 全包捕获与分析技术
应对APT攻击,需要做好最坏的打算。万一没有识别出攻击并遭受了损失怎么办?对于某些情况,我们需要全包捕获及分析技术(FPI)。
借助天量的存储空间和大数据分析(BDA)方法,FPI能够抓取网络中的特定场合下的全量数据报文并存储起来,进行历史分析或者准实时分析。通过内建的高效索引机制及相关算法,协助分析师剖丝抽茧,定位问题。
有了全流量然后用机器学习—检测建模—数据挖掘—引擎分析,做全面的大数据安全分析。
6.4 信誉技术
信誉技术早已存在,在面对新型威胁的时候,可以助其他检测技术一臂之力。无论是WEB URL信誉库、文件MD5码库、僵尸网络、恶意IP、恶意邮件,还是威胁情报库,都是检测新型威胁的有力武器,一旦检测到不良信誉资源能够利用网络安全设备进行过滤和阻断。信誉技术一般只作为辅助技术来检测APT攻击,而信誉技术的关键在于信誉库的构建,这需要一个强有力的技术团队来维护。
一般是借助第三方情报平台:如国内的有“烽火台”、“微步在线”等,实时的收集互联网上的最新威胁情报,实时的更新情报库。
6.5 关联分析技术
把前述的技术关联在一起,进一步分析的威胁的方法。我们已经知道APT攻击是一个过程,是一个组合,如果能够将APT攻击各个环节的信息综合到一起,有助于确认一个APT攻击行为。通过ids+情报+沙箱+机器学习等综合的判断网络数据是否有威胁。
综合分析技术要能够从零散的攻击事件背后透视出真正的持续攻击行为,包括组合攻击检测技术、大时间跨度的攻击行为分析技术、态势分析技术、情境分析技术,等等。
6.6 安全人员的挖掘,提升安全防御技术
要实现对这种有组织隐蔽性极高的攻击攻击,除了监测/检测技术之外,还需要依靠强有力的专业分析服务做支撑,通过专家团队和他们的最佳实践,不断充实安全知识库,进行即时的可疑代码分析、渗透测试、漏洞验证,等等。安全专家的技能永远是任何技术都无法完全替代的。
七、APT攻击技术的最新发展方向
7.1 精准钓鱼
精准钓鱼是一种精确制导的钓鱼式攻击,比普通的定向钓鱼(spear phishing)更聚焦,只有在被攻击者名单中的人才会看到这个钓鱼网页,其他人看到的则是404 error。也就是说,如果你不在名单之列,看不到钓鱼网页。如此一来,一方面攻击的精准度更高,另一方面也更加保密,安全专家更难进行追踪(因为你不知道名单,且不在名单之列)。
7.2 高级隐遁技术
高级隐遁技术这个术语最初源自2010年芬兰的Stonesoft公司(2013年5月被McAfee收购)的一个研究成果。高级隐遁技术(AET,Advanced Evasion Technology)是一种通过伪装和/或修饰网络攻击以躲避信息安全系统的检测和阻止的手段。
高级隐遁技术是一系列规避安全检测的技术的统称,可以分为网络隐遁和主机隐遁,而网络隐遁又包括协议组合、字符变换、通讯加密、0day漏洞利用等技术。
7.3 沙箱逃避
新型的恶意代码设计越来越精巧,想方设法逃避沙箱技术的检测。例如有的恶意代码只有在用户鼠标移动的时候才会被执行,从而使得很多自动化执行的沙箱没法检测到可疑行为。还有的沙箱用到了虚拟机方式来执行,那么恶意代码的制作者就会想办法去欺骗虚拟机。
7.4 水坑式攻击
所谓“水坑攻击”,是指黑客通过分析被攻击者的网络活动规律,寻找被攻击者经常访问的网站的弱点,先攻下该网站并植入攻击代码,等待被攻击者来访时实施攻击。这种攻击行为类似《动物世界》纪录片中的一种情节:捕食者埋伏在水里或者水坑周围,等其他动物前来喝水时发起攻击猎取食物。
八、APT防御产品
Gartner把高级威胁防御产品定义了5种类型,为网络流量分析型、网络取证型、Payload分析型、终端行为分析型、终端取证型。
8.1 网络流量分析型
主要进行DNS流量模式、Netflow、内容分析和协议分析等,其长处在于实时检测、无签名和基于签名的检测、不需要终端部署,其挑战主要是需要维护人员进行精心设置并具备丰富知识来处置虚假告警、并且对攻击阻断能力有限(多带外)、对离线移动终端存在盲点,防火墙、IPS、WAF和Arbor等流量分析产品都算这个类型。
8.2 网络取证型
主要进行全包捕捉和存储、分析和报表工具、输出和维护网络主数据等,其长处可以提供搞的ROI(降少事故响应时间和人员)、在数天乃至数周后仍可重放流和事件、帮助满足关于分析和监控法律法规需求,其挑战为工具的复杂性、需要有技能的使用人员、产生报表的时间可能达数小时以上。
8.3 Payload分析型
主要在沙箱环境(云或本地)中分析可疑对象、详细描述恶意软件行为信息等,其长处为无需签名的检测、可以得到恶意软件行为的详细行为报告、可选的对向外回连的阻断,其挑战为运行恶意代码进入环境中、并且存在可逃逸沙箱检测的技术、大多沙箱仅包括Windows、不能提供恶意软件已在终端的执行验证,目前市场上主要的FireEye、PANW的野火等都属于此种类型。
8.4 终端行为分析型
主要对应用和文件使用虚拟容器进行隔离(允许恶意代码执行,容器对系统内核调用进行阻断)以及系统配置、内存、进程的监控,其长处在于可以通过应用的绒里隔离阻断0day攻击、支持对在线/离线系统的保护、基本的取证能力,其挑战为需要部署单独的客户端、客户端对系统/文件类型/应用/浏览器有支持限制、应用容器方案需要耗用更多的CPU和内存。
8.5 终端取证型
主要可以识别被入侵的终端、识别特定的行为、对被入侵特征的识别(如可以的Windows注册表键值创建、DNS请求、可执行文件安装),其长处是可以包住自动处置应急任务、支持对在线/离线主机的监控、部分客户端程序可以提供在其他终端发现的恶意软件的阻断,其挑战为需要安装客户端、不能实时阻断0-day攻击、对非Windows终端支持有限。