Falco in 2020
这个帖子的范围是回顾Falco及其社区在大流行年的进展,这一年将永远不会忘记。
我会尽量保持紧凑,但Falco和它的社区今年成长了很多,我觉得这可能是一个博客文章系列。
2020年是我们完全和最终把 公开的Falco释放过程! 📖
当 Lorenzo 和 I 在2019年加入 Sysdig 的时候,情况并非如此。
这是从流程中产生的强制性要求将Falco移至CNCF孵化级别.
所以,是的,2020年也是Falco被[原生云计算基金会](http://cncf.io)接受为孵化级托管项目的一年!
[Falco发布流程](https://github.com/falcosecurity/falco/blob/master/release.md)现已开放,一些Falco维护者在我们的[社区电话](https://github.com/falcosecurity/community)中提出自己的建议,他们领导每2个月进行一次的下一次Falco发布。🔄
在将发布过程公开的同时,我们还抓住机会去做:
- 为Falco提供更清晰、连贯的SEMVER 2.0版本化方案
- 将Falco驱动程序版本与Falco版本分开
- 以更一致的方式重命名驱动程序
- 重新组织其工件
- 现在,主分支上的每个合并和每个新版本都会自动创建Falco包,并将它们推送到包存储库(tarball、DEB and RPM) download.falco.org 📦
- 重新组织其容器映像
- 主分支上的每个合并和每个新版本,都会自动在 DockerHub 🐳
- 很快也会在AWS ECR Gallery上出现(1512很快就会被合并进来!)
- 在falcosecurity GitHub组织中建立一个发展和孵化新的Falco项目和社区资源的过程 ↗
如果你想了解这些主题的更多信息,this和this是你需要阅读的Falco博客文章。
同时,我们建立了driverkit 🗜,让我们的用户为他们的主机手动预编译Falco驱动程序。我们使用这个工具创建了一个Drivers Build Grid,使其最初能在CircleCI上运行,现在由AWS的Prow和Kubernetes支持的Falco Infra上使用。
我们最终重新组织了存储预置Falco驱动程序的方式。看一看 download.falco.org.
你想看看我提到的 Falco Infra 吗? 🛠
看一看prow.falco.org。多么了不起的成果啊!
如果这个话题真的吸引了你,那么你可以在我和Jonah在AWS开源博客上共同撰写的🔗[这篇博文](http://bit.ly/falco-prow-aws)中阅读所有细节。
我要公开感谢所有Falco Infra工作组的参与者(Spencer、Massimiliano、Lorenzo、Grasso、Umang),特别是来自亚马逊的Jonah,感谢他作为新的维护者给予我们的所有帮助,并将继续给予我们帮助!
另一个对法尔考的采用有巨大作用的领域是Falco Helm chart。📋
我们对它们进行了内化、修复和不断改进。 我们的社区非常喜欢它们,以至于外部贡献者--如Spencer--每天帮助我们保持图表的健康。
不提falcosidekick。🔫
Thomas在这里为加强Falco输出警报所做的工作实在是太棒了。在这里列出他与Falco输出警报整合的所有工具,会让这篇文章变得更长。
所以,请大家去读一下这篇博文(第四部分🔗),由POP来了解他们。
既然我刚刚提到了他,如果你还不知道的话。POP,我的意大利裔美国人大朋友,加入我们的目的是帮助Falco社区和生态系统闪耀到前所未有的水平。毫无疑问:他是Falco社区的一个伟大的补充。
我想现在已经很清楚了,2020年是Falco社区起飞的一年。是吗?
看看我们现在有多少维护者,看看我指示我们的Falco Infra生成的这个美丽的maintainers.yaml。👥
我们吸收了很多来自不同公司的新的外部贡献者(IBM、Amazon、Mercari、Hetzner Cloud、DeltaTre等),他们使情况发生了变化。
这就是开源的力量,这就是人们走到一起时发生的事情。🤗
从技术角度来看,对Falco最艰难和最重要(IMHO)的贡献是在3月份由Lorenzo和我开发的Falco eBPF驱动的修复。🔬
事实上,正如我所说,真正的问题是在eBPF虚拟机中:它会影响到许多其他eBPF程序,可能会导致乏味和危险的情况。
总之,在过去的一年里,为了改进Falco的核心技术,我们也做了很多工作。
我现在能想起的最重要的事情(没有特别的顺序)是(原谅我,如果我忘记了什么):
- 修正Falco警报中存在的
<NA>
值(1133, 1138, 1140, 1492 🩺 - 使用valgrind来修复各种内存泄漏 🔩
- 改进gRPC Falco Outputs API的性能,并使其成为双向的(1241) 👉👈
- 将Falco输出机制从Lua移植到C++(感谢Grasso的1412) 🔧
- 在Falco核心中添加其他gRPC APIs
- 版本API
- 使用gRPC Falco Outputs API也可以流式传输下降警报
- 调查drops
- 100%静态链接的Falco版本(感谢Lorenzo!) ⛓
- 在aarch64上构建Falco(再次感谢Lorenzo。1442) ⚙
- 用户空间仪器化,使Falco能够在没有内核模块或eBPF探针的情况下运行
- 以及第一个用户空间的Falco驱动--即pdig--感谢Loris和Grzegorz。
我100%肯定我忘了一些重要的东西。但是,考虑到我今天吃的Panettone的数量🍞,我认为我记住并写在这里的东西对我的大脑来说是非常好的结果。
2021年掠影
请继续关注,因为2021年是我们计划让用户对Falco进行编程的一年。 📻
我们正在编写一个真正的Falco规则语言--即,有一个编译器和一切。⚗
我们正在准备一套很酷的C语言API(可能是libhawk),让你在Falco运行时与它互动(从它的规则集开始)。🧪
我们正在改造Falco网站(请看falco-website#324)。
准备同时阅读一个很酷的新的开发者文档(观看1513)网站,并为Falco核心做出贡献! 📔