Skip to main content

A project with a supervisor and a central daemon.

Project description

PyPI Python Versions codecov GitHub Actions test GitHub Actions build

25FS_IMVS14: System zur feingranularen Ressourcen-Zugriffskontrolle unter Linux

IP6 Bachelorarbeit

Problematik

Projektbeschreibung

Linux bietet verschiedene Mechanismen zur Kontrolle des Zugriffs auf Systemressourcen wie Dateien oder Netzwerkverbindungen (z. B. AppArmor, SELinux). Diese Mechanismen weisen jedoch folgende Schwächen auf:

  • Ungenauigkeit: Die Regeln sind oft zu allgemein und erlauben keine feingranulare Zugriffskontrolle.
  • Komplexität: Die Konfiguration erfordert spezialisiertes Wissen und ist statisch, d. h., sie passt sich nicht dynamisch an.
  • Mangelnde Benutzerinteraktion: Benutzer werden nicht aktiv über Zugriffsversuche informiert und können diese nicht situativ erlauben oder verweigern.

Lösung

Projektvereinbarung

Linux Access Control ist ein benutzerfreundliches Werkzeug, das die Steuerung des Zugriffs von Programmen auf Ressourcen unter Linux ermöglicht. Es bietet:

  1. Überwachung: Überwachung von Systemaufrufen, die Programme nutzen, um auf kritische Dateien zuzugreifen.
  2. Benutzerkontrolle: Interaktive Abfragen, ob ein Zugriff erlaubt oder dauerhaft blockiert werden soll.
  3. Verständliche Kommunikation: Übersetzung von Systemaufrufen und Parametern in leicht verständliche Fragen, um fundierte Entscheidungen zu ermöglichen.

Benutzung

Schnellstart (als geklonte Repository)

# Build-Prozess
make create # Erstellt eine Python-Umgebung und kompiliert den C-Code

# In zwei separaten Terminals ausführen:
make ut   # Startet das User-Tool und wartet auf Anfragen über ZMQ
make run  # Startet den Supervisor mit einer Demo für Datei-Zugriffe

Verfügbare Make-Befehle

# Setup und Verwaltung
make create       # Erstellt virtuelle Umgebung und kompiliert Demo-Programme
make delete       # Löscht die virtuelle Umgebung und alle temporären Dateien
make build        # Erstellt ein Python-Paket zur Veröffentlichung

# Anwendungsausführung
make ut           # Startet das User-Tool im normalen Modus
make utv          # Startet das User-Tool im Debug-Modus mit ausführlicher Protokollierung
make run          # Führt die Communication-Demo mit dem Supervisor aus
make run2         # Führt die Datei-Operationen-Demo mit dem Supervisor aus
make run3         # Führt die Child-Process-Demo mit dem Supervisor aus
make runv         # Führt die Demo im Debug-Modus aus (auch run2v, run3v verfügbar)

# Tests und Qualitätssicherung
make test         # Führt alle Tests mit Coverage-Bericht aus
make pylint       # Führt Pylint-Codeanalyse aus

# Benchmarking
make plots        # Generiert Plots aus Benchmark-Ergebnissen
make setup-plot-env # Installiert Abhängigkeiten für die Plot-Generierung

Schnellstart (als python Installation)

# Installieren Sie das Paket in einer Python-Umgebung
pip install ip6-access-control

# In zwei separaten Terminals ausführen:
user-tool               # Startet das User-Tool und wartet auf Anfragen über ZMQ
supervisor $(which ls)  # Startet den Supervisor mit dem absoluten Pfad des Programms (z. B. "ls")

Benchmarking

Das Projekt enthält Tools zur Leistungsmessung des Access Control Systems. Benchmarks werden verwendet, um die Performance-Auswirkungen der Zugriffskontrolle zu messen und verschiedene Szenarien zu vergleichen.

Remote Benchmarks mit Ansible

Für konsistentere Ergebnisse wurden Benchmarks auf 2 Remote-Maschinen ausgeführt:

cd benchmark/ansible
# Vorbereitung der Remote-Umgebungen
ansible-playbook -i inventory.yml prepare-environment.yml

# Ausführen der Benchmarks auf allen Remote-Maschinen
ansible-playbook -i inventory.yml run_benchmark.yml

# Generieren von Plots aus den Ergebnissen
cd ..
make plots

Ergebnisanalyse

Die Benchmark-Ergebnisse werden in der results/ Verzeichnis gespeichert und mit Matplotlib visualisiert:

  • Histogramme: Zeigen die Verteilung der Ausführungszeiten
  • Liniendiagramme: Zeigen Trends und potenzielle Performance-Abnahmen über mehrere Ausführungen
  • Box-Plots: Vergleichen die Leistung zwischen verschiedenen Szenarien und Umgebungen

Die durchschnittlichen Ausführungszeiten werden in der Datei average_times.log protokolliert und können als schneller Vergleichspunkt verwendet werden.

# Anzeigen der durchschnittlichen Zeiten
cat benchmark/results/*/average_times.log

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ip6_access_control-1.0.0.post1.tar.gz (50.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ip6_access_control-1.0.0.post1-py3-none-any.whl (42.3 kB view details)

Uploaded Python 3

File details

Details for the file ip6_access_control-1.0.0.post1.tar.gz.

File metadata

  • Download URL: ip6_access_control-1.0.0.post1.tar.gz
  • Upload date:
  • Size: 50.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.8

File hashes

Hashes for ip6_access_control-1.0.0.post1.tar.gz
Algorithm Hash digest
SHA256 fad5e6c3a4232a630d503a5e50c4a576c2ae4a8d10d1e04308784bd3eb5a1ca0
MD5 ff73503db901904c6c9ef8cc148ce148
BLAKE2b-256 f6fecadda6b72449a9b8cfbfe96244d68de989f56ae646ee756b48d28f086879

See more details on using hashes here.

Provenance

The following attestation bundles were made for ip6_access_control-1.0.0.post1.tar.gz:

Publisher: build-upload.yml on Soldatstar/ip6-access-control

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ip6_access_control-1.0.0.post1-py3-none-any.whl.

File metadata

File hashes

Hashes for ip6_access_control-1.0.0.post1-py3-none-any.whl
Algorithm Hash digest
SHA256 fb70078c03a4d1c078d5070d5a50e622940873ba60010074be95198f9eeac958
MD5 a312cdd316ba50d90d6cafc15b55888a
BLAKE2b-256 335c3645033aa8f048c0702b64e0b1f542a2abffeb9852ed99638474756fb409

See more details on using hashes here.

Provenance

The following attestation bundles were made for ip6_access_control-1.0.0.post1-py3-none-any.whl:

Publisher: build-upload.yml on Soldatstar/ip6-access-control

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page