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.tar.gz (47.6 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-py3-none-any.whl (39.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ip6_access_control-1.0.0.tar.gz
  • Upload date:
  • Size: 47.6 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.tar.gz
Algorithm Hash digest
SHA256 419c147320e3e54896ffac40476a2d1dd1735b160273e47d0554036e023ccc92
MD5 fc0eac3e1eb6d4dbfa759905da06a581
BLAKE2b-256 5f698b60795dcf1cece3d2565a8f519d6cbb4956378df28f08d0bb1c6c02daa2

See more details on using hashes here.

Provenance

The following attestation bundles were made for ip6_access_control-1.0.0.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-py3-none-any.whl.

File metadata

File hashes

Hashes for ip6_access_control-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2ee587c10cccf2d5db3f7a81ccdbe2fbc0e33991dd625b708ec9a6b67a08a525
MD5 c3f4ba496cb3e5114c76c7722ffbbf79
BLAKE2b-256 8833b8c3d8a0db640fb57ed3409ab8af4e835f171ae741512ace6b1cd1211ac9

See more details on using hashes here.

Provenance

The following attestation bundles were made for ip6_access_control-1.0.0-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