一、什么是TTPS
TTPS是Tactics(战术), Techniques(技术), Procedures(程序或者过程、步骤)的缩写。TTP最初用于反恐,根据世界范围内所有恐怖分子或组织实施袭击分析和研究,恐怖分子的攻击可以用TTP的方式描述。
他们的攻击过程(Procedures)可能是这样的:攻击准备、制定计划、选择目标、实施攻击。过程中的每一步会因恐怖组织不同使用方式(即技术,Techniques)也不同,比如准备阶段需要获得财务、人员训练、侦察等,每个组织都有自己人员训练方式,获得财务方式,各恐怖组织的方式手段(技术)不同,但实施攻击的流程大致是相同的。
全称为:AdversarialTactics, Techniques, and Common Knowledge,对抗性策略、技术和通用知识,是一套反应各个攻击生命周期攻击行为的模型和知识库。
根据行为模型和知识库,我们可以把攻击分成若干阶段,每个阶段可以使用不同的技术点描述,这样我们就可以详细攻击的整个过程以及攻击的特点。ATT&CK总结了TTPS的方式,框架。
二、数据准备
基于对攻击过程、攻击特点的描述,我们可以了解到各个攻击的特点,这些特点方便我们对攻击的定性及识别,同样的,攻击组织或病毒样本也具有各自特点的攻击步骤或过程,不同组织和样本具有自己的攻击习惯和方式,在这些组织的病毒中也有相应的体现。
如下表展示的攻击过程有:初始访问、执行、提权等过程。每个过程都会有不同的攻击方式。
以这个这个知识库模型为标准,我们对样本进行数据收集,包括执行过程,执行用到的技术点。
例如样本520df0c411c041731ce96042d1cdc726的技术点是:144|19|199|209|239|58|79|95,对应的技术点分别是:Process Injection(144)、Hidden Files and Directories(19)、Hooking(199)、LSASS Driver(209)、RegistryRun Keys / Startup Folder(239)、ComponentObject Model Hijacking(58)、DLLSearch Order Hijacking(79)、ShortcutModification(95)。
样本信息转换为技术ID表达后,一方面可以比较好的描述样本的特点,另一方面可以方便数据处理,将这些特征变成可比较hash值(类似DNA),通过这些生成的hash进行匹配、聚类。
三、应用
有了描述样的行为特点的数据,从算法应用层面来说就相当于有了描述样本的特征。在安全领域家族的识别、定性是一个很重要工作,有了定性我们可以很快了解病毒的全局信息。
如果是已出现家族那么我们可以通过这个家族的已知信息可以更快的了解它,如果是新的家族,我们可以按新家族处理的方式快速分析他的特性。这样可以提升我们未知样本的分析效率。
我们当前采取了两种应用方式:
1.家族定性规则自动提取
离线批量聚类,聚类完成后所有样本都有属于自己的簇(家族),计算每个簇常用技术点的频繁项目集,同时计算全量数据的所有项目集,将每个簇的频繁项目集和全量数据的所有项目集比较,提出家族的常用项目集,这个项目集可以作为识别该家族的规则。
2.应用于新家族或组织发现
起始阶段,我们将近期所有数据进行大规模离线聚类,取出我们认为比较重要的top N簇,对这些簇分析并标注出所属家簇或组织,同时每个家族都会有一个唯一簇ID,这个ID是稳定的,可作为家族的标识,并存储到数据库中。
每天运行当天或前一天待分析样本数据,采用离线聚类分析聚类结果的top N簇,和库中已有数据对比,如果有新簇出现则需要重点关注。新簇分析完成后,新增家族追加到数据库中,以这种方式持续运营。也可以使用实时进行DNA匹配,将输入样本hash化,然后和库里家族进行相似度比较。
这种方式初期由于数据较少,结果可能不稳定,每天都会有新的需要关注的簇出现,运营一段时间后结果会逐渐稳定,后续发现新的簇可能就是我们需要关注的新家族。
四、算法落地部分结果展示
1.家族定性规则自动提取结果
聚类后,我们列出家族较好的技术点组合列表,并给出置信度。可以装高置信度的直接用于识别,低置信度可用于可疑或者加一些其它规则使它更准确。
2.聚类结果
簇ID为324257791269729724553703670710785568442的簇中有1177个样本,大部分样本是office文档(非PE),他们用到的技术方式大部分相同。通过人工抽样的方式确认,他们确实是同一个家族。
该账号主要围绕智能化技术如何帮助企业提升网络安全水平展开,内容涉及机器学习、大数据处理等智能化技术在安全领域的实践经验分享,业界领先的产品和前沿趋势的解读分析等。通过分享、交流,推动安全智能的落地、应用。欢迎关注~