赞
踩
随着网络安全攻防双方的技术不断升级,敌方活动不再单纯地用静态的 “入侵指标”(IOCs)来描述。仅仅关注IOCs会导致检测变得脆弱,而且在发现未知攻击时效果不佳,因为对手可以通过简单的修改工具包以轻松逃避基于指标的检测。相反,安全从业者需要基于恶意行为的持续检测。MITRE ATT&CK框架可以帮助从业者将其防御传统技术集中在这些恶意行为上。通过将对手的传统技术和行为组织成一个战术和技术矩阵,ATT&CKTM 是超越IOCs并向基于行为的检测发展的理想选择。
有了一个全面而强大的对抗行为模型,下一步就是建立一个支持捕获和实时检测的事件收集架构,以及一种促进可用性和性能的查询语言。我们创建了用于捕获和实时检测的事件查询语言(EQL),其简单的语法可以帮助从业者表达复杂的查询,而没有很高的入门门槛。本文将讨论 EQL 背后的动机,它如何融入 Elastic Security 整体架构,并提供几个 EQL 的实际案例,以展示其推动捕获和实时检测对抗行为的能力。
许多数据库和搜索平台繁琐且不直观,语法复杂,进入门槛高。检测可疑行为需要对多个数据源进行分析,并具备无缝的数据收集、汇总和分析能力。搜索和探索数据应该是直观和反复的,并能灵活地对问题进行微调,并对可疑行为进行精确定位。
在Elastic Security 平台中,我们创建了克服这些数据分析和检测挑战的功能。我们的目标是增强用户的能力,而不是让他们感到无所适从。我们的解决方案,EQL,平衡了可用性,同时大大扩展了狩猎和检测的能力。它可以用来回答复杂的问题,而不会给用户带来联接(join)、事务(transaction)、聚合(aggregation)或状态管理等内部工作的负担,这些工作伴随着许多数据库解决方案和分析框架。EQL已经被证明是有效的,我们很高兴将它介绍给社区,以推动实时检测。
我们希望确保EQL在为大家所熟悉的语法中支持复杂的问题,以限制学习曲线并最大化功能。EQL提供了抽象,允许用户执行有状态的查询,识别事件序列,跟踪进程的父子关系,跨多个数据源的连接,并执行堆叠。在设计EQL时,我们首先关注的是暴露底层数据模式。每个收集到的事件都由一个事件类型和一组属性组成。例如,一个进程事件(process event)有诸如 process identifier
(PID), name
, time
, command line
, parent
等字段,还有一个子类型来区分创建和终止事件。在最基本的层面上,事件查询根据一些布尔逻辑将事件类型与条件匹配,以比较字段。where
关键字用于在查询中把这两者联系起来。条件表达式与布尔运算符(and
、or
、not
)、比较运算符(<
、<=
、==
、 !=
、>=
、>
、in
)以及函数调用相结合。数字和字符串的表达很容易,并且支持通配符(*)。所有这些都导致了一种简单的语法,感觉应该和Python类似。
在搜索单个事件时,用EQL可读性强、精简的语法,可以很容易地表达很多问题。例如,这个问题:
svchost.exe进程的目的端口为1337,IP域为192.168.0.0/16或172.16.0.0/16时,有哪些独特的出站IPv4网络目的地?
用EQL表示:
network where
event_subtype_full == "ipv4_connection_attempt_event" and
process_name == "svchost.exe" and
destination_port == 1337 and
(destination_address == "192.168.*" or destination_address == "172.16.*"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。