Henrik Hauser
Master Thesis, Hochschule Wismar, September 2022
Autor: Henrik Hauser
Titel: Hardening the Software Supply Chain: Developing a System to Prevent Dependency Confusion Attacks in Cloud Based Continuous Integration and Deployment Processes
Abstrakt
Die Software-Lieferkette ist ein wichtiger Bestandteil der modernen Softwareentwick- lung und -distribution. Ähnlich “physischer” Lieferketten stellt eine Unterbrechung der Software-Lieferkette ein großes Risiko für Softwarehersteller und -verbraucher dar. Der “Dependency Confusion”-Angriff beschreibt einen Angriff auf die Software- Lieferkette über Software-Paketmanager auf der Ebene der ”Zulieferer”, wobei Soft- warepackages in öffentlichen Package-Registries verwendet werden, welche sich als privat genutzte Packages ausgeben und bösartige Nutzdaten enthalten. Vor allem in automatisierten Systemen haben sich die bestehenden statischen und dynamischen Analysetechniken als ineffektiv oder ineffizient erwiesen, um diesen Angriff zu ver- hindern. In dieser Thesis wird ein neuartiger Ansatz zur Identifizierung und Block- ierung dieser gefälschten Packages entwickelt, der auf Angriffsmerkmalen basiert, die auf der Grundlage einer Analyse des Angriffs entwickelt wurden. Der Ansatz nutzt Blockchain-Technologie, um ein System zur Katalogisierung und Überprüfung der Dateiintegritätsinformationen privater Packages bereitzustellen, um gefälschte Pack- ages zu erkennen und zu verhindern, dass diese das Build-System kontaminieren. Das System wird für die Integration und Verwendung mit der bestehenden CI/CD- Infrastruktur evaluiert, und es wird festgestellt, dass der “Dependency Confusion”- Angriff durch das System wirksam verhindert werden kann, während eine effiziente Nachrüstung in bestehende CI/CD-Systeme möglich ist.
Abstract
The software supply chain is a critical part of modern software development and distribution. Similar to physical supply chains, disruption in the software supply chain poses major risks to software manufacturers and consumers. The “Dependency Confusion” attack describes an attack on the software supply chain via software package managers at the “supplier” level, using software packages on public package registries impersonating privately used packages and containing malicious payloads. Especially within automated CI/CD systems, existing static and dynamic analysis techniques proved to be ineffective or inefficient to prevent this attack. This thesis proposes a novel approach to identify and block these impostor packages, based on attack characteristics developed based on an analysis of the attack. The proposed approach uses blockchain technology to provide a system to catalogue and verify file integrity information of private packages to recognize impostors, and prevent these malicious packages from contaminating the build system. The proposed system is evaluated for integration and use with existing CI/CD infrastructure, and is found to be effective at preventing the “Dependency Confusion” Attack, while being efficiently retrofittable to existing CI/CD systems.