Timeloops:面向容器化微服务的自动系统调用策略学习
密码学与安全
2022-09-27 v3 软件工程
摘要
本文介绍 Timeloops,一种用于自动学习容器化微服务应用的系统调用过滤策略的新技术。在运行时,Timeloops 自动学习程序应被允许调用的系统调用,同时拒绝调用多余系统调用的尝试。此外,Timeloops 解决了最先进的基于静态分析的技术的诸多不足,例如能够为用 PHP、Python 和 JavaScript 等解释型语言编写的程序生成紧凑的过滤器。Timeloops 实现简单且健壮,因为它主要由成熟的商品化技术构建,如 seccomp-BPF、systemd 和 Podman 容器,代码少于 500 行。我们通过为单个服务及两个微服务基准应用(使用了 Python Flask、Nginx(含 PHP 和 Lua 模块)、Apache Thrift、Memcached、Redis 和 MongoDB 等流行技术)学习系统调用,展示了 Timeloops 的实用性。此外,Timeloops 的摊还性能与未加固系统相近,同时生成的系统调用过滤器比最先进的基于静态分析的技术更小。
引用
@article{arxiv.2204.06131,
title = {Timeloops: Automatic System Call Policy Learning for Containerized Microservices},
author = {Meghna Pancholi and Andreas D. Kellas and Vasileios P. Kemerlis and Simha Sethumadhavan},
journal= {arXiv preprint arXiv:2204.06131},
year = {2022}
}