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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ip6_access_control-1.0.0.post3.tar.gz
  • Upload date:
  • Size: 51.3 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.post3.tar.gz
Algorithm Hash digest
SHA256 3dcbf36b2f8e93bf8bb319212d3b57c2935dfc90f5fd3d02e8b32658bf4b2544
MD5 4a77d5c75374486c23136c9f7f0634ed
BLAKE2b-256 2d2321e20b3cf3c1867ba0eb120f84044163e39a7e70b95e24fbfe2b4d61a35c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ip6_access_control-1.0.0.post3-py3-none-any.whl
Algorithm Hash digest
SHA256 3b477775a076a39c12abcc9b32832ce3d88d9d152b950bbafac98e71595b9a7f
MD5 d8c614285bde6bfa1a2d0fa57ae8be5f
BLAKE2b-256 3a3a1b82c08b3039bdc4dfadc7acc87d54ea1535caa407fd88a8f78c50e9d479

See more details on using hashes here.

Provenance

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