Dependency Pinning
Was ist Dependency Pinning?
Dependency PinningDie Praxis, Software-Abhängigkeiten auf exakte Versionen festzuschreiben, häufig zusammen mit kryptografischen Hashes, damit Builds stets dieselben Artefakte verwenden und resilient gegen Lieferketten-Manipulation sind.
Dependency Pinning ersetzt unscharfe Bereiche ("^1.0.0") durch exakte Versionen und idealerweise kryptografische Digests in einer Lockfile (package-lock.json, poetry.lock, Pipfile.lock, Gemfile.lock, go.sum, Cargo.lock). Builds werden reproduzierbar und widerstandsfähig gegen stille Upgrades, Dependency Confusion, Typosquatting und kompromittierte Versionen. Moderne Praxis fixiert auch GitHub Actions und andere CI-Plugins auf Commit-SHAs statt mutable Tags. Pinning muss mit aktivem Schwachstellenmonitoring (SCA, Dependabot, Renovate) kombiniert werden, damit Patches weiter fließen - sonst veraltet die Anwendung. Hash-Pinning ist eine zentrale Kontrolle, die in SLSA, NIST SSDF, OWASP und Reproducible-Builds-Initiativen referenziert wird.
● Beispiele
- 01
Alle Drittanbieter-GitHub-Actions auf Commit-SHAs statt auf v3-Tags festschreiben.
- 02
Nutzung von pip --require-hashes mit vollständig gehashter requirements.txt in CI.
● Häufige Fragen
Was ist Dependency Pinning?
Die Praxis, Software-Abhängigkeiten auf exakte Versionen festzuschreiben, häufig zusammen mit kryptografischen Hashes, damit Builds stets dieselben Artefakte verwenden und resilient gegen Lieferketten-Manipulation sind. Es gehört zur Kategorie Anwendungssicherheit der Cybersicherheit.
Was bedeutet Dependency Pinning?
Die Praxis, Software-Abhängigkeiten auf exakte Versionen festzuschreiben, häufig zusammen mit kryptografischen Hashes, damit Builds stets dieselben Artefakte verwenden und resilient gegen Lieferketten-Manipulation sind.
Wie funktioniert Dependency Pinning?
Dependency Pinning ersetzt unscharfe Bereiche ("^1.0.0") durch exakte Versionen und idealerweise kryptografische Digests in einer Lockfile (package-lock.json, poetry.lock, Pipfile.lock, Gemfile.lock, go.sum, Cargo.lock). Builds werden reproduzierbar und widerstandsfähig gegen stille Upgrades, Dependency Confusion, Typosquatting und kompromittierte Versionen. Moderne Praxis fixiert auch GitHub Actions und andere CI-Plugins auf Commit-SHAs statt mutable Tags. Pinning muss mit aktivem Schwachstellenmonitoring (SCA, Dependabot, Renovate) kombiniert werden, damit Patches weiter fließen - sonst veraltet die Anwendung. Hash-Pinning ist eine zentrale Kontrolle, die in SLSA, NIST SSDF, OWASP und Reproducible-Builds-Initiativen referenziert wird.
Wie schützt man sich gegen Dependency Pinning?
Schutzmaßnahmen gegen Dependency Pinning kombinieren typischerweise technische Kontrollen und operative Praktiken, wie in der Definition oben beschrieben.
Welche anderen Bezeichnungen gibt es für Dependency Pinning?
Übliche alternative Bezeichnungen: Versions-Pinning, Hash-Pinning.
● Verwandte Begriffe
- appsec№ 1069
Software-Supply-Chain-Sicherheit
Disziplin zum Schutz jedes Glieds der Software-Produktion - Quellcode, Abhängigkeiten, Build, Signatur, Distribution und Deployment - gegen Manipulation, bösartigen Code und Integritätsverlust.
- appsec№ 304
Dependency-Confusion-Angriff
Supply-Chain-Angriff, bei dem ein Angreifer ein bösartiges Paket mit dem Namen einer internen Abhängigkeit in einer öffentlichen Registry veröffentlicht, sodass Build-Tools die öffentliche Version laden.
- appsec№ 971
SCA (Software Composition Analysis)
Automatisierte Analyse der Open-Source- und Drittanbieterkomponenten einer Anwendung, um bekannte Schwachstellen, Lizenzprobleme und veraltete oder riskante Abhängigkeiten zu erkennen.
- appsec№ 921
Reproduzierbare Builds
Build-Praktiken, die sicherstellen, dass das Übersetzen desselben Quellcodes mit denselben Anweisungen ein bitgleiches Artefakt erzeugt - unabhängig davon, wann und wo gebaut wird.
- appsec№ 166
CI/CD-Sicherheit
Kontrollen, die Continuous-Integration- und Continuous-Delivery-Pipelines vor Kompromittierung, Code-Injektion, Secret-Leakage und unautorisierten Deployments schützen.
- appsec№ 784
Paketsignatur
Anbringen einer kryptografischen Signatur an einem Softwarepaket, damit Konsumenten Veröffentlicher und Unversehrtheit des Artefakts überprüfen können.