Seccomp und AppArmor: Container-Hardening unter Linux

Seccomp und AppArmor sind zentrale Mechanismen für das Hardening von Docker-Containern unter Linux. Sie schränken die Systemaufrufe und Ressourcen ein, die ein Container verwenden darf, und reduzieren so die Angriffsfläche. In diesem Tutorial erfahren Sie, wie Seccomp-Profile und AppArmor-Profile eingesetzt werden, um Container sicherer zu betreiben.

Seccomp (Secure Computing Mode)

Seccomp ermöglicht das Filtern von Systemaufrufen (Syscalls), die ein Container ausführen darf. Standardmäßig verwendet Docker ein vordefiniertes Seccomp-Profile, das die meisten gefährlichen Syscalls blockiert.

Standard-Seccomp-Profil nutzen

docker run --rm --security-opt seccomp=default.json nginx:latest
  • Standardprofil default.json schützt vor gefährlichen Systemaufrufen
  • Container kann weiterhin reguläre Operationen ausführen

Eigenes Seccomp-Profil erstellen

Für strengere Sicherheitsanforderungen können eigene Profile definiert werden:

{
  "defaultAction": "SCMP_ACT_ERRNO",
  "syscalls": [
    {
      "names": ["read", "write", "exit", "sigreturn"],
      "action": "SCMP_ACT_ALLOW"
    }
  ]
}
  • Nur die erlaubten Syscalls werden ausgeführt
  • Alle anderen führen zu einem Fehler
docker run --rm --security-opt seccomp=custom-seccomp.json myorg/app:latest

AppArmor

AppArmor ist ein Linux-Sicherheitsmodul, das Prozesse einschränkt und Dateisystemzugriffe kontrolliert. Docker unterstützt AppArmor-Profile, die Container auf bestimmte Aktionen beschränken.

Standard-AppArmor-Profil verwenden

docker run --rm --security-opt apparmor=docker-default nginx:latest
  • Standardprofil schützt Container vor Zugriffen auf sensitive Host-Bereiche
  • Automatisches Laden bei Docker-Installation

Eigenes AppArmor-Profil erstellen

Ein Beispielprofil für einen minimalen Webservice:

profile web-container flags=(attach_disconnected) {
  network,
  capability,
  file,
  deny /etc/shadow r,
  deny /root/ r,
}
docker run --rm --security-opt apparmor=web-container myorg/web:latest
  • Blockiert den Zugriff auf sensible Dateien
  • Erlaubt nur Netzwerk- und Standardoperationen

Best Practices

  • Standard-Seccomp- und AppArmor-Profile immer aktivieren
  • Für produktive Services eigene restriktive Profile definieren
  • Nur benötigte Syscalls erlauben
  • Logs prüfen, um blockierte Syscalls zu erkennen und Profile anzupassen
  • Profiles versionieren und in CI/CD einbinden
  • Zusammen mit Least Privilege, Capabilities und read-only Filesystem verwenden

Praxisbeispiele

Seccomp und AppArmor kombinieren

docker run --rm 
  --security-opt seccomp=custom-seccomp.json 
  --security-opt apparmor=web-container 
  myorg/app:latest
  • Erhöht die Sicherheit durch Syscall-Filter und Datei-/Netzwerkrestriktionen
  • Verhindert ungewollten Zugriff auf Host-Ressourcen

Überprüfung von Sicherheitsoptionen

docker inspect --format '{{.HostConfig.SecurityOpt}}' mycontainer
  • Zeigt, welche Security-Optionen auf den Container angewendet werden
  • Hilft beim Audit und Compliance

Zusammenfassung

Seccomp und AppArmor sind zentrale Werkzeuge für das Hardening von Docker-Containern. Seccomp filtert gefährliche Systemaufrufe, AppArmor kontrolliert Dateisystemzugriffe und Fähigkeiten von Prozessen. Durch den Einsatz eigener Profile in Kombination mit Least Privilege, read-only Filesystemen und eingeschränkten Capabilities lassen sich Container sicher und stabil betreiben, was das Risiko von Exploits und Host-Kompromittierungen deutlich reduziert.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles