Publication | Closed Access
The Seven Sins: Security Smells in Infrastructure as Code Scripts
188
Citations
46
References
2019
Year
Unknown Venue
EngineeringInformation SecuritySecurity SmellsSoftware EngineeringSource Code AnalysisInformation ForensicsSoftware AnalysisSecurity LinterSystem SecuritySeven SinsIac ScriptsSecure By DesignComputer ScienceLanguage-based SecuritySoftware DesignData SecuritySoftware SecurityProgram AnalysisSecuritySystem Software
Infrastructure as code scripts provision servers, but developers can unintentionally embed security smells—recurring patterns that signal potential breaches. This study aims to help practitioners avoid insecure IaC coding practices by empirically examining security smells. We qualitatively analyzed 1,726 IaC scripts to identify seven security smells, then built and validated the SLIC static‑analysis tool on 15,232 scripts from 293 open‑source repositories, and submitted bug reports for 1,000 randomly selected smell occurrences. The analysis uncovered 21,201 smell instances, including 1,326 hard‑coded passwords, and 148 of 212 bug‑report responses led to fixes, while some smells persisted up to 98 months with a median lifetime of 20 months.
Practitioners use infrastructure as code (IaC) scripts to provision servers and development environments. While developing IaC scripts, practitioners may inadvertently introduce security smells. Security smells are recurring coding patterns that are indicative of security weakness and can potentially lead to security breaches. The goal of this paper is to help practitioners avoid insecure coding practices while developing infrastructure as code (IaC) scripts through an empirical study of security smells in IaC scripts. We apply qualitative analysis on 1,726 IaC scripts to identify seven security smells. Next, we implement and validate a static analysis tool called Security Linter for Infrastructure as Code scripts (SLIC) to identify the occurrence of each smell in 15,232 IaC scripts collected from 293 open source repositories. We identify 21,201 occurrences of security smells that include 1,326 occurrences of hard-coded passwords. We submitted bug reports for 1,000 randomly-selected security smell occurrences. We obtain 212 responses to these bug reports, of which 148 occurrences were accepted by the development teams to be fixed. We observe security smells can have a long lifetime, e.g., a hard-coded secret can persist for as long as 98 months, with a median lifetime of 20 months.
| Year | Citations | |
|---|---|---|
Page 1
Page 1