@@ -279,6 +279,68 @@ Zeile 4:
279279 `Searching across multiple indexes
280280 <https://docs.astral.sh/uv/concepts/indexes/#searching-across-multiple-indexes> `_
281281
282+ Überprüft Package Attestations
283+ ------------------------------
284+
285+ :term: `PyPI ` :ref: `Package Attestations <package-attestations >` liefern mithilfe
286+ von `Sigstore <https://www.sigstore.dev >`_ einen kryptografischen Nachweis über
287+ die Herkunft eines Pakets gemäß :pep: `740 `. Seit `gh-action-pypi-publish v1.11.0
288+ <https://github.com/pypa/gh-action-pypi-publish/discussions/281> `_ werden
289+ die Bescheinigungen auch automatisch generiert. Bis Ende 2025 nutzten mehr als
290+ 50-Tsd. Projekte *Trusted Publishing *, und 17 % der Uploads enthielten
291+ Attestations. *Trusted Publishing * wurde zudem auf Organisationen und
292+ selbstverwaltete GitLab-Instanzen ausgeweitet.
293+
294+ .. seealso ::
295+ * `PyPI in 2025: A Year in Review
296+ <https://blog.pypi.org/posts/2025-12-31-pypi-2025-in-review/> `_
297+ * `Are we PEP 740 yet? 🔏
298+ <https://trailofbits.github.io/are-we-pep740-yet/> `_
299+
300+ :pep: `740 ` definiert neben *Package Attestations * auch :abbr: `SLSA ( Supply-chain
301+ Levels for Software Artifacts ) `-Provenance-AttestationsFür Anwendungsfälle
302+ außerhalb von :term: `PyPI ` kann `actions/attest
303+ <https://github.com/actions/attest> `_ SLSA-Provenienz- und
304+ :doc: `SBOM <sbom >`-Bescheinigungen für jedes Artefakt generieren.
305+
306+ Im Fall des Angriffs auf :ref: `Ultralytics <ultralytics >` hätte mit den
307+ Attestations erkannt werden können, welche Versionen aus einem kompromittierten
308+ Workflow stammten und welche legitim waren – ganz ohne manuelle forensische
309+ Analyse. Die Transparency-Logs von Sigstore bieten einen unabhängigen Prüfpfad
310+ mit exakten Zeitstempeln und Angaben zur Herkunft jedes veröffentlichten
311+ Artefakts.
312+
313+ Fügt zeitbasierte Abwehrmaßnahmen hinzu
314+ ---------------------------------------
315+
316+ Wenn ein bösartiges Paket auf :term: `PyPI ` veröffentlicht wird, ist es sofort
317+ weltweit verfügbar. Die Erkennungszeiten variieren – manche Angriffe werden
318+ innerhalb weniger Stunden entdeckt, während andere wochen- oder monatelang
319+ unbemerkt bleiben. 2025 gab es über 2.000 Malware-Meldungen, wovon 66 %
320+ innerhalb von vier Stunden bearbeitet wurden.
321+
322+ Mit dem Abwarten vor der Verwendung neu veröffentlichter Pakete erhaltet ihr
323+ zwar keine Garantie, aber das Risiko wird vermindert, dass die Community
324+ offensichtliche Bedrohungen aufzudeckt.
325+
326+ Moderne Paketmanager unterstützen zeitbasierte Filterung. :term: `uv ` verfügt
327+ über die Option ``--exclude-newer ``, und pip ≥ v26 hat die Option
328+ ``--uploaded-prior-to `` mit demselben Zweck eingeführt wobei beide sich gemäß
329+ :pep: `700 ` auf Metadaten zur Upload-Zeit stützen.
330+
331+ Verwendet interne Paket-Repositories in euren Organisationen
332+ ------------------------------------------------------------
333+
334+ In kleineren Organisationen kann ein einfacher Spiegel des :term: `PyPI `, der
335+ Pakete um eine Woche verzögert bereitstellt, bereits das Sicherheitsrisiko für
336+ die Organisation vermindern. Ihr solltet dann jedoch darauf achten, dass ihr für
337+ kritische Sicherheitspatches die Verzögerung aufheben könnt. Sofern ihr in eurer
338+ Organisation interne Paket-Repositories verwendet, könnt ihr darüberhinaus noch
339+ weitere Sicherheitsmaßnahmen treffen:
340+
341+ #. Automatisierte Security-Scans der Pakete
342+ #. Automatisiertes Bauen der Pakete mit *Trusted Publishing * und SLSA-Provenienz
343+
282344----
283345
284346Im folgenden schauen wir uns nun an, wie die Abhängigkeiten in unseren
0 commit comments