Bei der Anwendungspaketierung ist es einfach, sich auf das zu konzentrieren, was sichtbar ist: ob ein Installationsprogramm läuft und ob die Anwendung erfolgreich gestartet wird.
Es gibt jedoch auch Probleme, die die Funktionalität nicht beeinträchtigen. Sie bleiben im Hintergrund verborgen und treten erst zutage, wenn jemand über das Installationsergebnis hinausschaut. Die Dienstkonfiguration ist einer dieser Bereiche. Ein Paket kann erfolgreich installiert werden und dennoch ein unnötiges Sicherheitsrisiko darstellen, weil ein Dienst im System registriert ist.
Eines der häufigsten Beispiele bezieht sich auf die Art und Weise, wie Windows Dienstpfade behandelt. Es handelt sich um ein kleines Konfigurationsdetail, das bei der Paketierung leicht übersehen werden kann, aber direkte Auswirkungen auf die Sicherheit hat. Hier kommen unquotierte Dienstpfade ins Spiel.
Wie Windows nicht zitierte Dienstpfade interpretiert
Wenn eine Anwendung auf einem Windows-System installiert wird und einen Dienst erstellt, speichert Windows einen Pfad, der auf die zum Starten dieses Dienstes verwendete ausführbare Datei oder DLL verweist. Dieser Wert wird in die Registrierung geschrieben und später vom Dienststeuerungsmanager verwendet, wenn der Dienst gestartet wird.

Wenn ein Dienstpfad Leerzeichen enthält, muss er in Anführungszeichen eingeschlossen werden. Wenn Anführungszeichen fehlen, behandelt Windows den Wert nicht als einen einzigen, exakten Pfad, sondern verarbeitet ihn möglicherweise schrittweise, indem es verschiedene Teile der Zeichenfolge als potenzielle ausführbare Speicherorte bewertet. Dieses Verhalten ist Teil der Art und Weise, wie Windows Pfade auflöst, und verursacht keine sichtbaren Fehler während der Installation oder des Starts von Diensten.

Anhand des obigen Beispiels kann der folgende Pfad auf verschiedene Weise interpretiert werden, je nachdem, wie die Zeichenfolge verarbeitet wird. Windows kann den Pfad beispielsweise so auswerten, als befände sich die ausführbare Datei unter:
C:\Program.exe Files\OpenVPN Connect\agent_ovpnconnect.exe
C:\Program Files\OpenVPN.exe Connect\agent_ovpnconnect.exe
C:\Program Files\OpenVPN Connect\agent_ovpnconnect.exeDas Problem ist hier nicht das unvorhersehbare Verhalten, sondern die Mehrdeutigkeit. Ohne Anführungszeichen verweist der Dienstpfad nicht mehr auf eine einzige, klar definierte ausführbare Datei.
Wenn eine bösartige ausführbare Datei an einem dieser Orte erscheint, kann Windows sie beim Start des Dienstes ausführen. Wenn der Dienst unter SYSTEM ausgeführt wird, erhält der ausgeführte Code die gleiche Zugriffsebene.
Ein Detail, das noch geprüft werden muss
Unquotierte Dienstpfade werden von Windows nicht automatisch korrigiert. Wenn ein Dienstpfad zweideutig ist, muss er in der Dienstkonfiguration korrekt definiert werden, um das Problem zu beheben.
Da unquotierte Dienstpfade die Installation nicht unterbrechen oder den Start von Diensten verhindern, sind sie leicht zu übersehen. Ein Dienst kann wie erwartet ausgeführt werden, obwohl er sich auf einen nicht eindeutigen Ausführungspfad verlässt.
Deshalb muss dieses Detail aktiv überprüft und im Auge behalten werden. Die Dienstwege sollten überprüft werden, um sicherzustellen, dass sie klar definiert und korrekt angegeben sind.
Wir berücksichtigen dies sowohl bei der Paketierung als auch beim Testen. Durch die Überprüfung der Dienstkonfiguration in diesen Phasen stellen wir sicher, dass die Anwendungspakete keine Konfigurationsprobleme aufweisen, die sich später zu unerwarteten Sicherheitsrisiken entwickeln können.
Probleme wie diese machen deutlich, warum eine sorgfältige Paketierung und Prüfung nicht nur für den Erfolg der Installation wichtig sind.