Inhalt

Sicherheit bei der Installation von Python-Paketen

Was du bei der Installation von Paketen mit pip beachten musst

Du solltest immer an die Sicherheit denken. Vor allem, wenn du Code schreibst. Und doppelt so viel, wenn du den Code anderer Leute verwendest. Das spart eine Menge Zeit und Mühe. Aber es kann auch zu Problemen führen, vor allem, wenn du nicht wenigstens den gesunden Menschenverstand einsetzt.

Module

Beim Programmieren kannst du häufig verwendete Klassen, Objekte und Funktionen in Modulen speichern. Dies ist der offizielle Name für Dateien mit der Endung .py. Konventionell lässt sich ein Modul von einem normalen Python-Programm dadurch unterscheiden, dass das Programm dazu gedacht ist, ausgeführt zu werden, während das Modul dazu gedacht ist, häufig verwendete Konstrukte zu speichern und in andere Programme zu importieren.

Packages

Ein Paket in Python ist ein Verzeichnis, das andere Verzeichnisse und Module sowie spezielle Dateien enthält. Pakete werden verwendet, um einen Namensraum zu bilden, in dem verschiedene Module, die in der Regel durch ein gemeinsames Thema verbunden sind, verwendet werden können.

Repository

Das bekannteste Repository für solche Pakete ist der PyPI oder Python Package Index. Du kannst im PyPI Pakete zu fast jedem Thema finden und installieren. Im Jahr 2022 waren dort über 370.000 verschiedene Pakete enthalten.

Ich habe mich gefragt, welche Sicherheitsmaßnahmen andere Entwickler/innen ergreifen, um sicherzustellen, dass sie nichts Bösartiges von PyPI herunterladen. Schließlich kann jeder sein Paket dort hochladen, und bisher gibt es keine Sicherheitsüberprüfungen oder Präventivmaßnahmen von PyPi selbst.

Tips

Einige hilfreiche Tipps zu diesem Thema:

  1. Wenn du es verstehen kannst, sieh dir den Quellcode eines Pakets an, bevor du es installierst.
  2. Installiere nur Software von seriösen Entwicklern. Schau dir auf der Paketseite zumindest die GitHub-Statistiken an - die Anzahl der Sterne und Forks. Je mehr es sind, desto mehr Leute benutzen das Paket und desto geringer ist die Wahrscheinlichkeit, dass du bösen Code bekommst.
  3. Lies Python Security doc über Pakete und PyPi.
  4. Achte auf das Paket Safety. Es prüft deine installierten Pakete auf bekannte Sicherheitslücken.
  5. Verwenden Sie Safety DB - eine Datenbank mit bekannten Sicherheitslücken in Python-Paketen, um diese in installierten Paketen zu identifizieren.

Gute Nachrichten

Ende Dezember 2019 gab die Python Software Foundation bekannt, dass sie einen Zuschuss von Facebook erhalten hat und mit der Arbeit daran beginnen wird, den Python Package Index um “erweiterte Sicherheitsfunktionen” zu erweitern.

Zu den geplanten Funktionen gehören nachprüfbare kryptografische Signierung von Artefakten und automatische Erkennung von bösartigen Downloads.

Lass deinen Code und deine Module immer sicher sein! :)