语言的本质源于规则,准确的规则是安全逻辑判别的标尺;语言的魅力在于传播,有效的传播是安全情报与技术打破安全信息孤岛的关键路径。回顾总结安全智能与运营智能技术的演进,笔者愈发认为,网络安全是一门语言的艺术,需要深入解读与探讨,以通过语言模型的构建、语义的度量,来提升数据驱动方法在安全场景中的鲁棒性与适应性。因此,《安全是一门语言的艺术》将分多个篇章,梳理安全这门语言艺术的技术思考与实现,介绍自动化与智能化手段如何助力新的安全语言设计和应用。
本文为系列首篇,将浅谈对安全领域专用语言的思考,进而概述总结面向威胁狩猎的调查分析语言(Threat Hunting Investigation and Analysis Language)技术与方案。
一、 安全数据分析技术与领域专用语言
熟悉安全领域学术论文的朋友应该都有体会,论证数据驱动的(Data driven)和智能驱动的(AI driven)方法相对传统方法的有效性,一般会把基于规则的(Rule based)方法拿出来对比一下。在数据过载的时代背景下,安全大数据给提取指纹特征、写检测规则这种传统纯手工的安全防护模式出了多道难题:规则的泛化能力、适应性、覆盖率等指标如何跟上数据、场景、手法数量的爆炸式增长。
此时,机器学习、深度学习、图算法等数据驱动的方法的优越性就体现出来了。数据中蕴含的规律和模式,是可以通过数据挖掘的方法呈现出来的。流量特征、样本特征、编码特征、序列特征、关联特征、时序特征等等,这些关键的数字维度能够在没有专家参与的情况下,在限定条件下完成检测、溯源、评估等任务。这里的“限定条件”是一个关键的问题。诸多实验性模型与算法,在实战化的安全运营中难以有效发挥作用。主要瓶颈体现在:
l 异构多源数据欠缺规范约束。数据采集系统所收集的数据完整度,包括基础的字段完整性,信息流的刻画完整性,信息归属的完整性等等,难以有效的、规范化的留存。与此同时,数据分析中的训练数据集往往经过多轮次的清洗、过滤和标记。而实际部署环境下,理想的数据分布假设空间难以覆盖复杂动态的网络环境与攻击技战术变化。
l 模型黑盒缺乏可解释性。某些复杂高容量的模型,端到端的给出的预测结果,无论是恶意的流量或样本,或是高风险的告警,都无法同时给出合理的佐证。这在运营环节中带来巨大的分析成本。
l 统计数据匮乏语义内涵。与缺乏可解释性相关,统计驱动的机器学习方法习得的数据模式,不总是能够匹配安全经验与直觉,对不齐安全的关注焦点。举个例子,异常检测是安全智能技术中的重要组成之一。然而,异常识别的维度可源于多种类型的数据统计维度,例如密度、距离、关联性等等。这些统计维度的离散点,需要在安全场景中给定一个对应的语义化“阈值”才能有潜在的安全含义。
l 采集数据隐私泄露隐忧。数据利用与数据隐私保护之间的对抗与平衡,始终是安全技术升级的驱动力之一。随着安全防御收集的数据广泛性和深度的提升,被采集端的数据所有者对采集系统的抵触心理愈发明显。数据从明文到加密,甚至拒绝“出境”,这些都限制了数据驱动技术方案的落地。
上述列举的多个技术瓶颈,给数据挖掘方法的安全应用加入了不少限制。与之相对应的是,安全技术的工业实现中,与攻击方武器库相对应的,各种类型的规则仍然是最宝贵的情报战略资源;各种类检测防御系统的核心单元,绝大部分还是规则引擎,而不是某个基于机器学习的检测模型。那么,是否有一天,当模型的准确性足够高、泛化能力足够强,模型与算法将统一安全防御体系的天下呢?智能化手段与方法,应该在安全场景中发挥怎样的作用呢?
为回答上述问题,不妨设想和回顾网络安全的本质。安全可以认为是一种状态,在这种状态下,人、系统、财产等现实或虚拟实体未受到威胁与损害。那么怎么界定与评价实体是否受到威胁和损害呢?笔者认为其中的关键在于“立法”,也就是设定界限与规则,对越界、违规行为进行惩罚。这里的“法”不特指法律或者法令,而是强调界限与规则的重要性。“不以规矩,不能成方圆”,在网络安全的场景下明确任务边界尤为关键。而安全场景下执行任务的关键,则在于“依法”执行与“执法”透明。以上可统称为“依法”属性。安全行业的“依法”属性,决定了规则引擎的安全技术底座核心地位。从这个角度来看,数据驱动的模型的主要瓶颈,在于其对边界定义的模糊性。模糊的边界定义给统计类模型赋予了超过规则的灵活性,但同时注定了其无法对任何事件分析给出明确的责任划定。所以可以得出这样的朴素结论:数据驱动方法应当用于辅助安全“立法”与“执法”,而不应该是“立法”与“执法”的主体。
图1 威胁检测领域的经典语言
回到本文的主题,所谓语言,正是规则的集合,是“法”的具体体现形式。一套面向特定场景的、自成体系的规则系统,可称为一种领域语言;而描述或者定义规则系统的规则,可称为领域语言的语言,即元语。回到网络安全领域,比较经典的规则系统,包括用于流量攻击检测的Snort规则,用于恶意文件检测的YARA规则,用于日志威胁检测的Sigma规则等等。这些规则系统都自成体系,形成领域专用的语言系统。而Snort、YARA、Sigma规则的书写规范与规则,就是其对应的元语。
安全领域专用语言(Domain Specific Language For Security),在威胁检测的各个领域,都具有很强的统治地位。这种规则系统的完善,或称为语言系统的成熟,会充分发挥语言的规范性、表达力,有效提升其本身的传播性与影响力。近年来ATT&CK知识库的风靡,正得益于威胁分类与描述元语设计的完备性与表达力。
二、 威胁狩猎调查分析语言概述
语言的设计源于科学的认知,也更依赖对事物理解的艺术。标准语言,类似普通话,能够促进信息的交换与传播,减少信息孤岛效应。在安全领域,除了上述提到的检测语言,威胁情报规范STIX,恶意软件描述语言MAEC,威胁检测框架ATT&CK等等,都是具有广泛影响力的领域信息交换与描述语言,虽然不一定称为标准,但其影响力被行业广泛认可。标准语言的成功普及一方面依赖于产业技术的成熟,另一方面需要强有力的行业领导者来推动。除了标准语言,定制语言也很重要,类似方言,能够提升局部信息的高效流转与决策实施。定制语言就是为了效率而生,一千个成熟厂商就可能有一千个定制的检测规则引擎系统。
我们已经看到,在威胁检测领域,即定位威胁的方法论上,已经有较为成熟的语言系统。但随着高级攻击技战术的演进与攻击面的拓展,威胁分析已经不仅限于初级的威胁定位。主动的威胁狩猎,对灵活的威胁定位、高效的上下文拓展、精准的路径溯源提出了更高的要求。传统流量、样本、情报、日志分立的“语言模型”与规则系统,已经难以适应跨多源、多类型日志的威胁调查与分析需求。
图2 泄露的FireEye攻击工具检测方法概述
如图1所示,为了应对攻击工具集泄露,FireEye给出了数百条检测规则,其中包括Snort、Yara、ClamAV、HXIOC等多种语言格式[1]。尽管相关规则都是各自领域的系统中的语言“标准”,但在安全运营中心日渐成熟的今天,缺乏一种更灵活的、能够有效覆盖多种日志数据的标准语言,支持交互式的威胁调查与分析,这无疑是技术发展的痛点之一。此外,这些规则系统仍然普遍局限于基于IOC的特征指纹匹配预定位功能,无法捕获威胁事件的时序依赖、信息流依赖等复杂关系特征。
虽然缺乏事实的公认方法与标准,但是面向主动威胁狩猎场景下的威胁调查与分析,工业界与学术界团队仍然给出了不少“方言”版尝试,以下通过表格概述几种前沿技术方案。
表1 威胁调查分析语言总结
如表1所示,我们主要从该语言模型针对的数据类型、支持的模式类型、实时性三个角度来初步标定各技术方案主要的应用领域与方式。数据类型方面,行为、环境、情报、知识四种类型的数据可覆盖安全运营中心所接入的不同类型数据。在模式类型中,“单点”指的是以特征或指纹匹配为主的单个事件模式;“集合”表示多个事件的无序组合;“序列”表示有序的事件组合;“静态图”表示信息流或结构相关的事件组合;“时序图”表示有序并且存在信息关联的事件组合;“模型”表示基于机器学习等模型方法,在统计特征上可关联起来的事件组合。实时性方面,主要包括流式的分析模式和批量的调查模式。
威胁调查分析语言,核心在于“表达力”,即能否灵活的支持威胁狩猎过程中的持续验证过程。为此,数据类型覆盖越全面,支持的事件模式类型越丰富,语言的表达能力越强,越能够有效的降低调查过程中的跨数据开销和复杂事件关联分析开销。威胁调查分析语言不限于表中总结的几种实现方案。如前文所述,当前针对威胁调查领域语言的设计,业界尚处于探索之中,是安全学术与工业研究中的重要课题之一。限于篇幅,本文简要总结在此,感兴趣的读者可在参考文献或资料中深入研究具体的技术实现。
三、 总结
与语言的建模与分析相关,安全知识库、知识图谱、语义分析、可解释智能、因果挖掘等等,这些技术名词已经逐渐融入安全技术发展的视野中。抛去追逐热点的部分,从语言设计与应用的角度审视安全技术的发展,能更清晰的审视我们为什么要做与如何做。
参考文献
[1] https://github.com/fireeye/red_team_tool_countermeasures
[2] https://github.com/endgameinc/eql
[3] Noel S, Harley E, Tam K H, et al.: CyGraph: graph-based analytics and visualization for cybersecurity, Handbook of Statistics: Elsevier, 2016: 117-167.
[4] Shu X, Araujo F, Schales D L, et al. Threat Intelligence Computing[C]. Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security, 2018: 1883-1898.
[5] https://github.com/SigmaHQ/sigma
[6] https://ci.apache.org/projects/flink/flink-docs-stable/dev/libs/cep.html
[7] Gao P, Shao F, Liu X, et al. Enabling Efficient Cyber Threat Hunting With Cyber Threat Intelligence[J]. arXiv preprint arXiv:2010.13637, 2020.
[8] Gao P, Xiao X, Li D, et al. {SAQL}: A stream-based query system for real-time abnormal system behavior detection[C]. 27th {USENIX} Security Symposium ({USENIX} Security 18), 2018: 639-656.
[9] Gao P, Xiao X, Li Z, et al. {AIQL}: Enabling efficient attack investigation from system monitoring data[C]. 2018 {USENIX} Annual Technical Conference ({USENIX}{ATC} 18), 2018: 113-126.
,