eBPF is a new technology which allows dynamically loading pieces of code into the Linux kernel. It can greatly speed up networking since it enables the kernel to process certain packets without the involvement of a userspace program. So far eBPF has been used for simple packet filtering applications such as firewalls or Denial of Service protection. We show that it is possible to develop a flow based network intrusion detection system based on machine learning entirely in eBPF. Our solution uses a decision tree and decides for each packet whether it is malicious or not, considering the entire previous context of the network flow. We achieve a performance increase of over 20% compared to the same solution implemented as a userspace program.
翻译:eBPF 是一种新技术, 允许将代码片段动态装入 Linux 内核。 它可以大大加速网络建设, 因为它使内核能够在没有用户空间程序参与的情况下处理某些包件。 到目前为止, eBPF 已经用于简单的包过滤应用程序, 如防火墙或拒绝服务保护。 我们显示, 开发一个基于流动的网络入侵探测系统是可能的, 完全基于在eBPF 中完全的机器学习。 我们的解决方案使用一个决策树, 并且决定每个包件是否恶意, 并且考虑到整个网络流的前一环。 我们的性能比作为用户空间程序实施的同一解决方案增加了20%以上 。