我们从两个最重要的组件Falco和Falco库开始,研究一下它们的数据流和关键模块。
如图3-2所示,系统调用是数据的核心来源之一。这些是由Falco的两个驱动程序在操作系统的内核中捕获的:内核模块和eBPF(extended Berkeley Packet Filter)探针。
图3-2:传感器数据流和主要模块
收集的系统调用首先流入Falco的核心库 libscap ,它也可以从插件接收数据,并向上层暴露一个通用接口。然后,数据被传递给另一个关键的库 libsinbd1 以进行解析和扩充。接下来,数据被提供给规则引擎进行评估。Falco接收规则引擎的输出并发出结果通知,这些通知可以选择转到Falcosidekick。
图3-3进一步详细介绍了这些模块的功能,在接下来的内容中,我们也会更深入地探讨它们。
图3-3:传感器主要模块的关键角色