Design-bedingt erlaubt der „Package Installer for Python", kurz pip, das automatische Ausführen beliebigen Codes im Zuge der „install“-Funktion. Das Security-Unternehmen Checkmarx warnt nun davor, sich alternativ auf die vermeintlich unkritische „download“-Option zu verlassen.
Enthält ein Python-Paket nur eine tar.gz-Datei, so resultiert selbst der simple „pip download“-Befehl in automatisierter Code-Ausführung.
(Bild: Checkmarx / pypi.org)
Bei der Installation eines Python-Pakets versucht der Python-Paketmanager pip, die Metadaten dieses Pakets zu sammeln und zu verarbeiten. Er fragt beispielsweise Version und Abhängigkeiten ab, die das Paket benötigt, um richtig zu funktionieren. Dieser Prozess läuft automatisch im Hintergrund ab, indem pip das Hauptskript setup.py ausführt, das Teil der Paketstruktur ist.
Der Zweck von setup.py ist es, dem Paketmanager eine Datenstruktur zur Verfügung zu stellen, damit er versteht, wie das Paket zu behandeln ist. Die Datei setup.py ist jedoch immer noch ein normales Python-Skript, das jeden beliebigen Code enthalten kann. Ein Angreifer könne durchaus bösartigen Code in die Datei setup.py einschleusen, der dann während der Installation des Pakets automatisch ausgeführt wird, warnt Checkmarx.
„Tatsächlich enthalten viele der von uns entdeckten bösartigen Pakete bösartigen Code in der Datei setup.py", schreibt Sicherheitsforscher Yehuda Gelb im Unternehmensblog. Wer nun meint, sicherheitshalber einfach nur die schlichte Download-Funktion von pip nutzen zu können, für den hat Yehuda schlechte Nachrichten: Auch der Befehl …
pip download <Paketname>
… führe die Datei setup.py sowie jeden darin enthaltenen potenziell bösartigen Code aus. Dieses Verhalten sei kein Fehler, sondern eine bekannte, aber bereits 2014 bemängelte Funktion im Pip-Design.
Eine vorbeugende Sicherheitsmaßnahmen besteht laut Gelb darin, den Inhalt der Paketdateien unter https://pypi.org/project/<Paket>/#files zu überprüfen. Denn mit neuen pip-Versionen gebaute Pakete enthielten eine Wheels-Datei, die gegenüber der veralteten tar.gz/setup.py-Kombination bevorzugt wird. Der User könne dann sicher sein, dass er die .whl-Datei erhalte, die keinen Code auf seinem Rechner ausführt. Ist nur eine tar.gz-Datei vorhanden, so solle der Benutzer eine sichere, externe Download-Methode verwenden, z. B. einen direkten Aufruf der „simple“-Web-API von PyPi:
https://pypi.org/simple/<Paketname>
(ID:48552067)
Stand vom 30.10.2020
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von redaktionellen Newslettern nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://support.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung, Abschnitt Redaktionelle Newsletter.