Analysing Software Supply Chains of Infrastructure as Code: Extraction of Ansible Plugin Dependencies

Onderzoeksoutput: Conference paperResearch

Samenvatting

The digital infrastructures supporting modern software have grown too complex to manage by hand. Therefore, Infrastructure as Code (IaC) has become a widely adopted practice to programmatically automate deploying such infrastructures. As infrastructure code may rely on third-party libraries and packages, understanding the software supply chains generated by these deployment dependencies is crucial to ensure reproducibility and security of software deployments. Nonetheless, deployment software supply chains remain an understudied topic. This paper aims to bridge this gap by first investigating which types of third-party software IaC may depend upon, then building an automated mechanism to identify such dependencies from infrastructure implementations. We focus our investigation on Ansible, one of the most popular IaC tools, and its plugins, which implement the interactions with the deployment platforms under configuration. From a manual analysis of 266 documented third-party requirements of Ansible plugins, we construct a taxonomy of 7 types of third-party software dependencies and their properties. We also found that a plugin’s dependencies are typically only described informally in the plugin’s documentation, which may be unstructured, incorrect, or incomplete, which encumbers the automatic generation of Software Bills of Materials (SBOMs) for deployment code. Therefore, we design an automated Software Composition Analysis (SCA) that extracts these dependencies from an Ansible plugin’s implementation, leveraging 5 dependency implementation patterns identified in our manual analysis. This approach achieves a recall of 61%– 77% and a precision of 74%–95%. Finally, we apply the SCA in a large-scale quantitative experiment on 11,241 plugins, and find that 38% have third-party dependencies. The taxonomy presented in this paper can serve as a reference to design deployment SBOMs for these plugins, whereas our SCA forms a first step towards automatically generating such SBOMs.
Originele taal-2English
TitelProceedings - 2025 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER)
UitgeverijIEEE
Pagina's181-192
Aantal pagina's12
ISBN van elektronische versie979-8-3315-3510-0
DOI's
StatusPublished - mrt 2025
Evenement2025 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER 2025) - Polytechnique Montréal, Montréal, Canada
Duur: 4 mrt 20257 mrt 2025
Congresnummer: 2025
https://conf.researchr.org/home/saner-2025

Conference

Conference2025 IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER 2025)
Verkorte titelSANER
Land/RegioCanada
StadMontréal
Periode4/03/257/03/25
Internet adres

Citeer dit