SAQL:基于流查询的实时异常行为检测系统

作者:{Fr4nk}@ArkTeam

原文作者:Peng Gao, Xusheng Xiao, Ding Li, Zhichun Li, Kangkook Jee, Zhenyu Wu, Chung Hwan Kim, Sanjeev R. Kulkarni, Prateek Mittal

原文标题:SAQL: A Stream-based Query System for Real-Time Abnormal System Behavior Detection

原文会议: The 27th USENIX Security Symposium

由一系列漏洞和终端主机组合发起的高级网络攻击严重威胁了受到良好保护企业的安全性。为了应对这些挑战,作者提出了一种基于流的实时查询系统,将来自企业中众多主机聚合的实时事件提要作为输入,并提供了用于识别异常行为事件提要的实时查询引擎。为了便于根据知识库表达异常,系统使用了特定查询语言SAQL,它允许研究人员定义基于规则的异常、时间序列的异常、基于不变量的异常以及基于异常值的模型。

1 主要异常系统行为类型

SAQL提供(1)事件模式的语法,以简化特定相关系统活动及其关系;2)用于滑动窗口和有状态计算的构造,它允许在数据流上的每个滑动窗口中计算有状态异常模型。系统通过对监视数据流的连续查询来检查SAQL中的指定模型,并连续输出报告检测到的异常。

作者基于系统级监控工具auditd [2]ETW [3]和现有的流管理系统Siddhi[1]构建了整个SAQL系统,如图2所示。根据输入的SAQL查询,系统汇合Siddhi查询以匹配来自流的数据,同时执行有状态计算、构造异常模型以检测流上的异常。

为解决大规模系统监控数据上处理多个并发异常查询的可扩展性,系统根据滑动窗口、事件属性等维度分析提交的查询,随后将可兼容的查询放入同一个组中,在每个组中主查询直接访问流数据,其他相关查询利用主查询的中间执行结果。


2 SQAL系统架构

最后,作者在包含150台主机的NEC Labs America中部署系统,并使用1.1TB的实际系统监控数据(包含33亿个事件)对其进行了评估。实验在对广泛的攻击行为和微基准测试的评估结果中表明,SAQL具有低检测延迟(<2s)和高系统吞吐量(110,000个事件/;支持~4000个主机),并且实现更高效的内存利用,从而平均节省了30%的检测时间。项目网站:https://sites.google.com/site/saqlsystem/

参考文献:

[1] Siddihi complex event processing engine. https://github.com/wso2/siddhi.

[2] The Linux audit framework. https://github.com/linux-audit/.

[3] ETW events in the common language runtime. https://msdn.microsoft.com/en- us/library/ff357719(v=vs.110).aspx.

发表评论

电子邮件地址不会被公开。 必填项已用*标注