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

Uploaded Python 3

File details

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

File metadata

  • Download URL: ip6_access_control-1.0.0.post4.tar.gz
  • Upload date:
  • Size: 51.5 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.post4.tar.gz
Algorithm Hash digest
SHA256 212382203c1f48794e9764888e7f6c79e10edc7216953612831c3314a033d103
MD5 5a6217bedd28edd011d622598d8da399
BLAKE2b-256 b9ed8d5cf92a5847ddb0ef852fc019ccd988fe2281484b3df54248ba80b04686

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for ip6_access_control-1.0.0.post4-py3-none-any.whl
Algorithm Hash digest
SHA256 18718c6bac4aba64b573c355444edcf259ce325cf014a31a6201d14058bc4fa1
MD5 1a6c10caade6af9bb3aa32021f488d6f
BLAKE2b-256 ec4bec07e39817ea9622862ba490ab234567961096f4b457f424916127d4871b

See more details on using hashes here.

Provenance

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