Configure a Custom Seccomp Profile

45 minutes
  • 4 Learning Objectives

About this Hands-on Lab

In this lab, we need to create a custom seccomp profile which has a default action to allow system calls to occur and bans certain listed system calls. After that, we need to run a test container with our seccomp profile. With that, we will need to conduct some tests to see if the calls on the list were banned or not.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Check Seccomp Capabilities
grep SECCOMP /boot/config-$(uname -r)

Expected output:

CONFIG_HAVE_ARCH_SECCOMP_FILTER=y
CONFIG_SECCOMP_FILTER=y
CONFIG_SECCOMP=y
Create Our Own Policy and Override the Default Seccomp Profile
vim /home/cloud_user/myProfile.json
{
  "defaultAction": "SCMP_ACT_ALLOW",
  "architectures": [
      "SCMP_ARCH_X86_64"
  ],
  "syscalls": [
    {
      "name": "chmod",
      "action": "SCMP_ACT_ERRNO"
    },
    {
      "name": "fchmod",
      "action": "SCMP_ACT_ERRNO"
    },
    {
      "name": "fchmodat",
      "action": "SCMP_ACT_ERRNO"
    },
    {
      "name": "mkdir",
      "action": "SCMP_ACT_ERRNO"
    }
  ]
}
ESC
:wq
ENTER
Run a Container with a Custom Seccomp Profile
sudo docker run --rm -it --security-opt seccomp=/home/cloud_user/myProfile.json debian:jessie sh
Test the Restrictions within the Container

The following should be denied.

mkdir test 

Expected output:

mkdir: cannot create directory 'test': Operation not permitted

The following should work.

touch testFile 

The following should be denied.

chmod +x testFile 

Expected output:

chmod: changing permissions of 'testFile': Operation not permitted

Additional Resources

We need to write a seccomp profile under /home/cloud_user/ named myProfile.json.

The default action is to allow syscalls, but there are four syscalls it must deny:

chmod 
fchmod 
fchmodat
mkdir 

The syscalls need to be denied on debian:jessie on x86_64 architecture.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?