作者:Loris Degioanni
刚刚发布的 Falco v0.31.0 是几个月艰苦工作的结果,包括许多令人兴奋的新特性。然而,对于 Falco 项目来说,其中一个特别具有战略意义:插件框架的普遍可用性。我想用这篇博文来解释为什么插件令人兴奋,以及它们对 Falco 的未来意味着什么。让我们先来解释一下这项新技术是什么。
插件是什么?
插件是 Falco 可以加载的共享库,以扩展其功能。插件有两种类型:
- Source 插件为 Falco 添加新的数据源。它们从本地机器或远程源产生 Falco 可以理解的输入事件。
- Extractor 插件解析来自源插件的数据,并暴露可在 Falco 规则中使用的新字段。
Source 和 Extractor 插件的组合允许用户将任意数据输入 Falco,以有用的方式解析数据,并从中创建规则和策略。让我给你一个例子:Cloudtrail 插件扩展了 Falco,以理解 Cloudtrail 日志(本地或存储在 S3 上),并允许你编写这样的规则:
代码语言:javascript复制- rule: Console Login Without MFA
desc: Detect a console login without MFA.
condition: ct.name="ConsoleLogin" and ct.error=""
and ct.user.identitytype!="AssumedRole" and json.value[/responseElements/ConsoleLogin]="Success"
and json.value[/additionalEventData/MFAUsed]="No"
output: Detected a console login without MFA (requesting user=%ct.user, requesting IP=%ct.srcip, AWS region=%ct.region)
priority: CRITICAL
source: aws_cloudtrail
上面这样的规则是你即时可用 Falco 验证和评估的。但是有了插件,规则现在几乎可以应用到任何你可以为它编写插件的数据源上。你甚至可以在不重建 Falco 的情况下添加新的数据源。
为什么要插件?
Falco 的“运行时安全”理念基于以下几个关键概念:
- 以流方式解析数据,实时检测威胁
- 在一个轻量级引擎上实现检测,该引擎易于运行和部署
- 提供一种精简的规则语言,快速学习,灵活且富有表现力
事实证明,这种理念对于系统调用非常有效,这也是 Falco 成为容器运行时安全解决方案的原因。
插件将这种哲学的适用性扩展到无穷无尽的新领域。其中一个领域是云安全。
运行时安全:云中威胁检测的更好选择
云安全是一个富饶且不断发展的空间。在实现云安全时,你可以在许多不同的选项中进行选择。然而,在架构上,大多数选项属于以下类别之一:
- 查询云 API 或监视云数据存储以检测错误配置或漏洞的工具
- 将云日志流到后端的工具,对它们进行索引和查询
要检测基于云计算的软件中的威胁,第一类并不十分有用。轮询在检测漏洞和验证遵从性方面非常好,但缺乏检测威胁和快速响应所需的实时特性。第二类非常强大,但也非常昂贵(特别是在产生大量日志的公有云环境中),而且不便于部署和使用。
我认为 Falco 运行时安全方法是理想的方法。Falco 消耗的资源很少,最重要的是,它以流的方式分析数据。不需要执行昂贵的拷贝,不需要等待数据做索引。Falco 会实时查看你的数据,并在几秒钟内通知你。
使用 Falco 启动和运行只需要几分钟,将其用于云日志和系统调用可以实现统一的威胁检测方法。
Falco 的未来是什么?
V0.31.0 提供一个 Cloudtrail 插件,但预计未来会有更多。我们的愿景是让 Falco 成为所有事物的运行时策略引擎。
我们希望支持所有的云,并从每个云中包含更多的服务。
请继续关注近期的公告,同时,如果你希望看到 Falco 在未来的某些行动,请让我们知道。另外,编写你自己的插件[1]是很容易的,作为一个社区,我们很乐意考虑你的创造性贡献。
参考资料
[1]编写你自己的插件: https://falco.org/docs/plugins/
[2]Falco 社区: https://github.com/falcosecurity/community
[3]GitHub: https://github.com/falcosecurity/falco
[4]Falco 社区: https://falco.org/community/
[5]Falco Slack: https://kubernetes.slack.com/messages/falco