Practical and effective sandboxing for Linux containers

Zhiyuan Wan, David Lo, Xin Xia, Liang Cai

Research output: Contribution to journalArticleResearchpeer-review

4 Citations (Scopus)

Abstract

A container is a group of processes isolated from other groups via distinct kernel namespaces and resource allocation quota. Attacks against containers often leverage kernel exploits through the system call interface. In this paper, we present an approach that mines sandboxes and enables fine-grained sandbox enforcement for containers. We first explore the behavior of a container by running test cases and monitor the accessed system calls including types and arguments during testing. We then characterize the types and arguments of system call invocations and translate them into sandbox rules for the container. The mined sandbox restricts the container’s access to system calls which are not seen during testing and thus reduces the attack surface. In the experiment, our approach requires less than eleven minutes to mine a sandbox for each of the containers. The estimation of system call coverage of sandbox mining ranges from 96.4% to 99.8% across the containers under the limiting assumptions that the test cases are complete and only static system/application paths are used. The enforcement of mined sandboxes incurs low performance overhead. The mined sandboxes effectively reduce the attack surface of containers and can prevent the containers from security breaches in reality.

Original languageEnglish
Pages (from-to)4034-4070
Number of pages37
JournalEmpirical Software Engineering
Volume24
Issue number6
DOIs
Publication statusPublished - Dec 2019

Keywords

  • Cloud computing
  • Container
  • Docker
  • Monitoring
  • Sandbox
  • Seccomp
  • System call
  • Testing

Cite this