Die Entwickler des Texteditors Notepad++ haben gerade die Version 7.6.2 der portablen Version bereitgestellt. Bereits bei der installierbaren Notepad++ Version 7.6.1 gab es den Plugins Admin. Mal ein kurzer Blick auf die möglicherweise bedenkliche Entwicklungen in Sachen Plugins und Sicherheit.
Anzeige
Heute mal ein kleiner Sammelbeitrag zum Windows Texteditor Notepad++ mit zwei Informationen.
Notepad++ 7.6.2 portable mit Plugins Admin Modul
Die Kollegen bei deskmodder.de weisen in diesem Beitrag darauf hin, dass der Entwickler eine neue Version 7.6.2 des Notepad++ Portable veröffentlicht habe. Die Neuerung: In der portablen Version von Notepad++ 7.6.2 ist jetzt ein Plugins Admin-Modul enthalten.
Dieses Modul war ein Wunsch der Community. Plugins Admin zeigt die Liste der verfügbaren Plugins an, ermöglicht es Benutzern, neue Plugins zu installieren und installierte Plugins zu aktualisieren/entfernen. Zudem wurden folgende Fehler in der neuen Version behoben:
Anzeige
- Fix Plugins Admin unzip (0 lengh) bug.
- Add generation of SHA-256 hash feature.
- Add Plugins Admin module into portable version (zipped package).
- Add new feature: double click splitter resets panes to equal size.
- Fix the plugin crash issue due to the inexistent plugin conf path.
Der Download ist auf dieser Webseite möglich, die Projektseite gibt es hier.
Wie steht das mit der Sicherheit?
Der Plugin Admin klingt erst einmal nach einer guten Idee. Aber Blog-Leser Martin Feuerstein wies mich bereits im Dezember 2018 auf einige Aspekte hin. Martin schrieb mir mit Verweis auf die Notepad++ 7.6.1-Ankündigung und diese Diskussion in der Community:
In Version 7.6.1.0 soll das Verhalten des Plugin-Moduls geändert werden. Zuvor wurden laut Blogbeitrag aus %localappdata% (ich meine aber es war %appdata%!) Plugins geladen sowie aus dem Ordner in %programfiles%. Mit dem neuen Pluginmanager sollen nun die Plugins aus %Programdata%\Notepad++\plugins geladen werden. In vorherigen Versionen konnte per vorhandener (bzw. nicht-vorhandener) XML-Datei noch gesteuert werden, ob Plugins aus dem Benutzerverzeichnis geladen werden sollen.
In %Programdata% können nun aber standardmäßig alle Benutzer Dateien schreiben, der „Ersteller-Besitzer" erhält standardmäßig Vollzugriff. Heißt also: alle Benutzer können Plugins installieren, die allen anderen Benutzern des Computers aufgezwungen werden. Dabei können nur die „Ersteller-Besitzer" die Plugins aktualisieren oder deinstallieren (oder auch Benutzer der Administratoren-Gruppe). Ob es eine Anpassung der NTFS-Berechtigungen für %programdata%\Notepad++ gibt, geht aus dem Beitrag nicht hervor (und ich habe es auch noch nicht getestet).
Heißt für Martin Feuerstein und für mich: Ein Sicherheits-Totalschaden, solange Nutzer ohne besondere Berechtigung ausführbare Dateien schreiben können – insbesondere dann, wenn auch andere Nutzer den Code ausführen können/müssen. Oder wie seht ihr das so?
Anzeige
Ach deswegen kommen immer SRP Meldungen beim Start von Notepad++
Doof gelöst
Nun, solange es nur meine Kiste ist, ist das Verhalten akzeptabel, wobei dann das Roamingprofil meiner Ansicht nach die bessere Lösung für Plugins sein dürfte.
Für eine Mehrnutzer Kiste würde ich eine per Userprofile überschreibbare Lösung vorziehen. Also Basis in %programdata% inklusive Plugins, die via Settings vom User deaktiviert oder überschrieben (oder neue hinzugefügt) werden können.
Ich sehe das etwas differenzierter. Bisher war der Standardweg für Plugins der Ordner %Programfiles% (bzw. x86). Hier darf im Normalfall keiner schreiben, d.h. bei Verwendung von Nicht-Admin-Konten ist eine Plugininstallation nahezu unmöglich. Das finde ich mindestens genauso schlimm.
Aber ich gebe Ihnen allen Recht, es ist jetzt etwas besser, aber hätte durchaus noch besser gelöst werden können. Vielleicht kommt das Überschreiben per User ja noch in einem zukünftigen Release.
Ich bin in die aktuelle Umstrukturierung des Plugin-Handlings in Notepad++ insofern involviert, als dass ich mich über das Community-Forum an Tests beteilige, Fehler melde und meine Meinung zu geplanten Änderungen beisteuere. Ich bin dabei recht aktiv und verfolge die derzeitige Entwicklung mit Sorge.
Ein Grundproblem des Notepad++ Projekts ist, dass es kein Community-Projekt im eigentlichen Sinne ist sondern eigentlich eine Ein-Mann-Show. Der Hauptentwickler entscheidet wo es lang geht und welche Änderungen/Verbesserungen in ein neues Release aufgenommen werden und welche nicht. Er versucht, den Wartungsaufwand für den Code von Notepad++ zu verringern, indem er Features wie das Installieren von Plugins ins Benutzerprofil streicht. Er bezeichnet das als KISS (Keep It Simple, Stupid), ich finde, dass er da etwas falsch verstanden hat.
Der Grund für den Wechsel des Plugin-Verzeichnisses nach %ProgramData% ist übrigens, dass er für die Zukunft plant eine "Windows Store App"-Variante von Notepad++ zu veröffentlichen. Laut seiner Aussage darf dazu der Inhalt des Installationsverzeichnisses von Notepad++ nach der Installation nicht mehr verändert werden, was bei einem Pluigin-Update jedoch der Fall wäre. Deshalb musste das Plugins-Verzeichnis verlagert werden.
Seit Version 7.6 versucht er, ein von ihm entworfenes und geschriebenes Plugin-Verwaltungssystem zu etablieren. Das kommt jedoch nur schlecht voran, da er alleine daran entwickelt, so gut wie nicht testet und Fehlermeldungen im Community-Forum (um die er selbst bittet) oftmals ignoriert. Ich nehme an, dass er das nicht aus Faulheit tut, sondern weil er mit dem Projekt zeitlich überfordert ist und die vielen an ihn gerichteten Forenkommentare nicht alle lesen kann.
Eigentlich war für Version 7.6.2 geplant, dass der Notepad++-Installer die NTFS-Zugriffsrechte für das Plugins-Verzeichnis unter %ProgramData% so setzt, dass normale Benutzer kein Schreibrecht mehr auf dieses Verzeichnis haben. Aufgrund ignorierter Ratschläge, nicht durchgeführter Tests und einer ignorierten Fehlermeldung eines Users, mit dem der Hauptentwickler über das Forum direkt kommuniziert hat, wurde das Setzen der Zugriffsrechte jedoch falsch implementiert und ist somit wirkungslos.
Zur Zeit kann man jedem nur abraten, ein Update auf eine Version höher als 7.5.9 auszuführen (selbst diese Version hat einen Fehler, der beim Verarbeiten von großen Dateien unter Verwendung von Code Folding, automatischem Umbruch langer Zeilen oder dem Ausblenden von Zeilen zu Hängern führt). Ich selbst benutze v7.5.6.
Der alte Plugin Manager, der ca. 10 Jahre der Community gute Dienste geleistet hat, ist durch die diversen Änderungen seit v7.6 nutzlos geworden, da das Verzeichnis, in das er die Plugins installiert, von Notepad++ nicht mehr benutzt wird – auch ein ärgerlicher Nebeneffekt.
Danke für die interessante Rückmeldung.
Version: 7.6.3 (Release Date: 2019-01-27)
Due to the security reason, from this version Notepad++ will load plugins only from \plugins\. In the case of installer, Notepad++ is installed in %ProgramFiles%\Notepad++\ – plugins are loaded from %ProgramFiles%\Notepad++\plugins\ instead of %ProgramData%\Notepad++\plugins\ in the previous version. This change has no impact on current loading behaviour of portable version. Sorry for the inconvenience regarding this change – I believe there's no more modification concerning the plugins location in the future.