Ein Projekt zur Implementierung der Dienstprogramme sudo und su in Rust

Die ISRG (Internet Security Research Group), die Gründerin des Let's Encrypt-Projekts ist und HTTPS und die Entwicklung von Technologien zur Erhöhung der Sicherheit des Internets fördert, stellte das Sudo-rs-Projekt zur Erstellung geschriebener Implementierungen der Dienstprogramme sudo und su vor Rust, mit dem Sie Befehle im Namen anderer Benutzer ausführen können. Unter den Apache 2.0- und MIT-Lizenzen wurde bereits eine Vorabversion von Sudo-rs veröffentlicht, die noch nicht für den allgemeinen Gebrauch bereit ist. Das Projekt, dessen Arbeiten im Dezember 2022 aufgenommen wurden, soll im September 2023 abgeschlossen sein.

Die Arbeit konzentriert sich derzeit auf die Implementierung von Funktionen in Sudo-rs, die es ermöglichen, es in typischen Anwendungsfällen (Standard-Sudoers-Konfigurationen unter Ubuntu, Fedora und Debian) als transparenten Ersatz für Sudo zu verwenden. Für die Zukunft ist geplant, eine Bibliothek zu erstellen, die die Einbettung der Sudo-Funktionalität in andere Programme ermöglicht und eine alternative Konfigurationsmethode bereitstellt, die das Parsen der Syntax der Sudoers-Konfigurationsdatei vermeidet. Basierend auf der implementierten Sudo-Funktionalität wird auch eine Variante des su-Utilitys vorbereitet. Darüber hinaus erwähnen die Pläne die Unterstützung von SELinux, AppArmor, LDAP, Audit-Tools, die Möglichkeit zur Authentifizierung ohne Verwendung von PAM und die Implementierung aller Sudo-Befehlszeilenoptionen.

Laut Microsoft und Google werden etwa 70 % der Schwachstellen durch unsichere Speicherverwaltung verursacht. Es wird erwartet, dass die Verwendung der Rust-Sprache zur Entwicklung von su und sudo das Risiko von Schwachstellen aufgrund unsicherer Speicherverarbeitung verringert und das Auftreten von Fehlern wie dem Zugriff auf einen Speicherbereich nach dessen Freigabe und Pufferüberläufen verhindert. Sudo-rs wird von Ingenieuren von Ferrous Systems und Tweede Golf mit Mitteln von Unternehmen wie Google, Cisco und Amazon Web Services entwickelt.

Die speichersichere Handhabung wird in Rust zur Kompilierungszeit durch Referenzprüfung, Verfolgung des Objektbesitzes und der Objektlebensdauer (Umfang) sowie durch die Bewertung der Korrektheit des Speicherzugriffs während der Codeausführung gewährleistet. Rust bietet außerdem Schutz vor Ganzzahlüberläufen, erfordert eine obligatorische Initialisierung von Variablenwerten vor der Verwendung, behandelt Fehler in der Standardbibliothek besser, wendet standardmäßig das Konzept unveränderlicher Referenzen und Variablen an und bietet starke statische Typisierung, um logische Fehler zu minimieren.

Source: opennet.ru

Kommentar hinzufügen