Sudo reloaded: Su und Sudo Rewrite in Rust

  Christian Spaan   Lesezeit: 4 Minuten

Su und Sudo sind kritische Komponenten des Linux-Systems, weil sie die Eskalation von Privilegien erlauben. Eine Koproduktion erstellt nun neue Ausgaben auf Basis von Rust.

sudo reloaded: su und sudo rewrite in rust

Mit Su und Sudo lassen sich Administrator-Privilegien erlangen. Umso bedeutender ist die Speichersicherheit. Hier kommt Rust ins Spiel, das Speichersicherheit by Design offeriert, im Gegensatz zum traditionellen C, in dem diese aus den 80ern stammenden Tools programmiert sind.

Das Prossimo-Projekt bestehend aus Ferrous Systems und Tweede Golf hat sich nun mit Unterstützung von Amazon Web Services dessen angenommen, um Rust-Alternativen für diese kritischen Tools zu erstellen. Das Projekt steht unter der Schirmherrschaft von ISRG (Internet Security Research Group) - einer Nonprofit-Organisation, die daher um Unterstützung bittet.

Das Team schreibt dazu:

Wenn wir darüber nachdenken, in welche Software wir investieren wollen, denken wir in erster Linie an vier Risikokriterien:

  • Sehr weit verbreitet (fast jeder Server und/oder Client)
  • In einem kritischen Bereich
  • Ausführen einer kritischen Funktion
  • Geschrieben in Sprachen, die nicht speichersicherfähig sind (z. B. C, C++, asm)

Sudo erfüllt diese Risikokriterien voll und ganz. Es ist wichtig, dass wir unsere kritischste Software absichern, insbesondere gegen Schwachstellen in der Speichersicherheit. Es ist schwer, sich Software vorzustellen, die viel kritischer ist als sudo und su.

Der Fahrplan des Projektes kann hier nachgelesen werden:

Meilenstein 0: Vorbereitung

  • Systemarchitektur und Anforderungen
  • Projekt-Einrichtung
  • Parsen von Sudoers-Dateien

Meilenstein 1: Drop-in-Ersatz mit einer Standardkonfiguration

  • Kern der sudo-Pipeline von der Richtlinienüberprüfung bis zur minimalen Befehlsausführung ohne Sicherheitsfunktionen
  • Sudoers-basierte Richtlinie, mit eingeschränkter Funktionsunterstützung
  • Authentifizierung auf Basis von PAM
  • Befehlsausführung mittels exec mit einfacher Signal- und fd-Übergabe
  • Test für Ubuntu 22.04 mit einer Standard-Sudoers-Konfiguration
  • Einrichtung eines Test-Frameworks

Meilenstein 2: Sicherheitsparität

  • Kern der sudo-Pipeline mit vollständiger Bereinigung von Signalen, Dateideskriptoren, Limits, ptrace, etc. und effizienterer Befehlsausführung
  • Hinzufügen der su-Implementierung
  • Testen auf vollständige Sicherheitskonformität
  • SELinux-Unterstützung
  • AppArmor-Unterstützung
  • Breitere Unterstützung von Konfigurationsmerkmalen
  • Benutzerorientierte Dokumentation

Meilenstein 3: Überprüfung von Unterbefehlen

  • Unterstützung für das Abfangen von Subkommandos

Meilenstein 4: Unternehmensfunktionen

  • LDAP-Unterstützung
  • Hostnamenabgleich für sudoers
  • Vollständige Audit- und IO-Protokollierung
  • Mail-Ereignisse
  • Authentifizierung für passwd und Kerberos (ohne PAM)
  • Unterstützung für mehr als 16 Benutzergruppen (group_file plugin)

Das Github-Repo für interessierte Unterstützer befindet sich hier.

Quelle: https://www.s3nnet.de/sudo-reloaded-su-und-sudo-rewrite-in-rust/

Bildquelle: https://nixhive.com/disable-su-access-for-sudo-users/ by Jobin Joseph

Hinweis: Dieser Artikel ist zuerst bei S3Nnet erschienen und wurde aufgrund einer Vereinbarung zur Zusammenarbeit auf GNU/Linux.ch übernommen.

Tags

su, Sudo, Rust, Sicherheit

Es wurden noch keine Kommentare verfasst, sei der erste!