MITRE从攻防视角给出了用于描述攻击方战术、技术和过程(TTP)的威胁分析框架ATT&CK方法论模型,那么安全厂商该如何从产品角度定义“检测”和“分析”呢?
1. 广义“检测”和“分析”的定义
广义“检测”是指检测攻击者所使用的,传统防御无法识别的恶意对象、通讯及行为等威胁。广义“分析”是指判断攻击的真实性,确认攻击本质和攻击者意图,回溯攻击场景,评估其的严重性、影响和范围。如果要进一步细化定义“检测”和“分析”,就得先把检测和分析的对象——“威胁”描述清楚。
2. 威胁描述分层模型
我在2017年总结了一套产品视角的 “点线面体”威胁分层描述模型,用于解释哪些产品和技术用于解决哪些层面的威胁问题:
![从产品视角重新定义“检测”和“分析” 从产品视角重新定义检测和分析]()
图1 威胁描述分层模型
a. 点 (Element,基本攻击元素)
构成攻击的基础元素,即攻击者使用的攻击元素。攻击元素分为静态介质元素和动态行为元素。静态介质元素主要指攻击介质,如:恶意文档、恶意URL(含IP、C&C等)、恶意邮件、漏洞(文档/系统/通讯/服务/应用等漏洞)、恶意App、渗透工具等;动态行为元素主要指攻击行为,如:恶意网络、终端及主机行为等,常见如端口探测、漏洞利用、C&C外联、提权、横移、爆破、资产探测等。
b. 线 (Event,单一攻击活动)
由人、物、时间、渠道、攻击元素等组成的单一攻击行为或活动,即攻击链中某阶段的具体活动,即如:攻击者在某时间通过某IP向目标企业的某用户发送社交工程攻击邮件;某后门程序在某时间通过某主机访问了恶意C&C站点;某IP在某时段多次尝试某主机的登录帐号/密码等。
把多个相关的攻击活动(Events)有序地关联起来构成的完整攻击事件,即一个完整的攻击链。如某完整APT攻击事件(Incident):攻击者在某时间通过某IP向目标企业的某用户发送社交工程攻击邮件,致使该用户的终端被植入后门;该后门程序在某时间外联访问了某C&C站点,下载了某恶意渗透工具;该渗透工具在某时间内多次尝试渗透企业网络内其他主机,并成功获取某主机用户权限;攻击者某时间遍历了该主机的文件,并将某些关键文件进行了打包外传。
由多起相似的攻击事件(Incidents)或攻击活动(Events)构成的全面攻击态势,即全部攻击图谱。通过大数据AI/ML、统计学分析、模式分析等攻击归因分析总结攻击模式,发现新型攻击特征、攻击活动、攻击事件,以及攻击发展趋势,初步具备攻击感知能力。
3. 威胁检测分析分层模型
每个层面的威胁需要对应什么样的检测分析技术和能力呢?
![从产品视角重新定义“检测”和“分析” 从产品视角重新定义检测和分析]()
a. 打点(Data Acquisition)
执行:基于“点”的数据采集产品及技术
输入:打点规则(Data Acquisition Rule)
打点是指按照指定规则采集数据,该过程通常是由云管端各神经元(Telemetry)完成,而打点规则通常由上层检测分析产品下发,或是各神经元预置。各神经元根据打点规则进行数据打点,收集来自终端的文件、进程、通讯、注册表、用户登录等活动,来自网络的横移、外联、数据流等活动,来自邮件的附件调用进程、外部URL链接等活动,以及来自云端的配置修改、实例创建及修改、容器运行、特许访问等活动,最终产生各种活动日志(包括人、物、时间、渠道、介质、行为等),即打点信息(Activity Info)。
输出:事件线索(Event Warning)
检测大概分为以下三种类型:
主要借助威胁情报和沙箱对包含文件、URL/IP/Domain等静态介质的打点信息做检测,如判断静态介质可疑或者恶意,则会产生事件线索(Event Warning)。由于判断过程只需要文件、URL/IP/Domain等静态介质,无需关联其他打点信息,因此,静态介质检测通常可用作实时检测分析。
主要借助行为检测模型和检测规则对多个有关联的包含行为活动的打点信息做检测。ATT&CK模型中列举了很多攻击行为场景,行为检测模型和检测规则主要针对这些场景进行检测。由于此类检测通常需要关联多条互相临近的上下文打点信息,需要跨越较短的时间周期进行检测,因此动态行为检测可用作准实时短周期检测分析。这些多条互相临近的上下文打点信息有可能来自同一终端、网络或主机,也可能跨终端、网络或主机,因此,执行此类检测需要具备跨云管端数据的获取能力。举例:某终端遭受powershell无文件攻击后,使用xp_cmdshell攻击了云服务。行为检测规则需要把终端上调用powershell的打点信息和网络上调用xp_cmdshell的打点信息关联起来做检测,如果符合检测规则,则会产生事件线索(Event Warning)。
主要借助大数据统计和大数据基线模型对指定监控对象在较长时段内的打点信息进行基线建模,并根据基线检测规则发现异常,产生事件线索(Event Warning)。
分析通常是针对事件线索(Event Warning)的进一步确认和调查,确认事件的真实性,并完成事件调查的整个过程。分析通常包括定性分析和定量分析两个阶段:定性分析即验伤(Triage),定量分析即取证(Forensics)。
验伤是指根据事件线索进行快速分析,提升事件线索的可信度,初步确认攻击的本质及攻击者意图。主要借助大数据关联分析(验伤规则),以事件线索为切入点,关联上下文的打点信息和其他事件线索,快速确认事件的真实性、本质和意图,产生高质量的精准事件告警(Incident Alert),并确定其优先级。使得安全人员可以将注意力集中在更关键的问题上,减少误报导致的注意力转移。
举例:安全人员发现了网络侧事件线索A-可疑外联通讯,通过大数据关联分析(验伤规则)找到了另外两个事件线索:网络侧事件线索B-可疑钓鱼邮件,以及终端侧事件线索C-打开附件创建可疑进程。安全人员通过关联线索B和线索C,可快速确定事件线索A的可信性,并将线索A、B和C合并在一起,产生精准事件告警(Incident Alert),从而让安全人员有针对性地开启完整的事件调查活动,避免大海捞针。
取证是指根据精准事件告警,通过大数据上下文关联分析(取证规则)执行事件调查,包括回溯完整攻击场景,判断攻击严重性,评估攻击的影响和范围,溯源攻击者,提供修复补救建议,最后产生事件报告(Incident Report)。事件报告包括人读报告和机读报告,人读报告正如法院的卷宗和医院的病历,机读报告是按照格式化的方法将事件报告中的各类数据整理记录下来,以便后期机器可读取和查询,机读报告包括:
-
攻击属性
-
攻击者意图、攻击者属性(画像信息)
-
攻击严重性
-
攻击影响的终端和主机
-
完整原始日志(打点信息、事件线索、事件告警等)
-
完整攻击链(将原始日志按攻击阶段进行划分,再按攻击顺序形成攻击链)
-
完整ATT&CK标注(将原始日志归纳到不同TTP控制点,完成TTP标注)
-
完整原始攻击介质及其对应的IOC(攻击者使用的静态介质,如恶意文档、漏洞、C&C等)
-
其他机读数据
输出:事件模式(Incident Pattern)
学习是指将事件报告中的信息归纳形成事件知识库以及提炼形成事件模式的过程,因此,学习过程也可称作归因分析。当一个事件调查结束形成事件报告之后,可以将该事件报告归纳到所属事件类型的知识库中,如某类APT事件知识库、加密勒索事件知识库、挖矿事件知识库、钓鱼事件知识库等,知识库通常按攻击属性和场景进行分类,某大类下面还可划分若干子类。通过各类知识库梳理,可以发现某类攻击常用的攻击TTP和攻击介质,找到攻击规律和攻击模式,甚至找到背后的攻击组织。此过程的输出为事件模式(Incident Pattern),事件模式通常包括各类攻击常用的TTP模式和介质集合。安全人员通过对比事件报告和事件模式,还可以发现某类攻击使用的新型攻击TTP和新型攻击介质。
输入:事件模式(Incident Pattern)
转化是指将事件模式中积累的新型攻击TTP和新型攻击介质进一步编写成“点线面”检测分析所用到的打点规则、威胁情报、沙箱检测规则、行为检测规则、验伤关联分析规则、取证关联分析规则等。这些转化结果可进一步提升打点的粒度、检测的广度、事件线索的可信度、事件告警的精准度、以及验伤取证的自动化程度,进而提升用户的防护能力。
大家可能注意到,分析(Analysis)过程的关键技术点在于验伤取证关联规则(Triage & Forensics Rules)的制定,这些关联规则又取决于事件模式的成熟度,最终又取决于事件知识库中样本数据的多少。而安全人员要在浩如烟海的数据中发现有效威胁,必须借助大数据分析的力量,从事件知识库到事件模式的形成,需要借助AI/ML,把事件模式转化成检测分析规则,也需要借助AI/ML,比如,通过ATT&CK热力图拟合判断一个攻击的属性,用于验伤分析;通过终端打点信息的DNA序列图创建检测规则,用于发现可疑的终端威胁活动事件线索等。
4. 威胁检测分析流程
综上,描述了产品层面构建完整的基于“点线面体”威胁分层检测分析所具备的技术和能力,以及在每个层面要做的具体工作。下面是“点线面体”威胁分层检测分析的完整流程。
![从产品视角重新定义“检测”和“分析” 从产品视角重新定义检测和分析]()
该流程以云管端各神经元打点为起点,依次经历检测、分析(验伤&取证)和反馈(学习&转化)几个阶段,每个阶段都有明确的输入和输出。每个阶段都以前面阶段的输出结果作为输入,经历一个阶段之后,给出该阶段的输出结果,再作为下一阶段的输入,最后在反馈阶段形成新的检测分析规则,继续提供给前面的几个阶段使用,最终形成完整流程闭环。每经历一次完整闭环流程,用户的安全防护能力就会进一步提升。
5. 小结
必须回答的问题:通过以上能力建设,是否可以真的发现APT?
回答:会提升发现APT的概率,把原来中彩票碰运气的小概率事件提升至依靠人和技术可以稳定提升的较大概率事件。原因如下:
a. 攻击者一定会进入企业内部;
b. 攻防是不对等的,体现在两个地方:
i. 企业边界,易攻难守,众所周知;
ii. 企业内部,由于攻击者的攻击链较长,攻击者在攻击的任何一个环节被防守者捕获,就会宣告攻击失败,此时防守方是有优势的,提倡纵深防御就是这个道理;
c. APT攻击者可以在某些攻击环节使用新的攻击技战术,但不太可能在攻击链的所有环节都使用全新的攻击技战术,防守方只要识别出攻击者在某些攻击环节中使用的技战术,就有可能回溯出完整攻击场景。
现实中最大的问题是,如何避免有价值的线索被海量信息所淹没,如何在浩如烟海的信息和线索中准确判断事件线索的可信度,如何让安全人员把时间放在有价值的事件调查上,而非判断事件告警的真实性,这就是验伤环节需要解决的主要课题。
(未完待续)
原文始发于微信公众号(白日放歌须纵9):从产品视角重新定义“检测”和“分析”
评论