-
-
Notifications
You must be signed in to change notification settings - Fork 102
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Investigate improving security of Ansible get_url download using GPG signature verification #2233
Comments
Starting with the UNIX playbook, I will document the validation method of the downloaded packages
|
The more of these we can validate the better, so adding |
An issue has been raised with Ansible already about their support for gpg signature validation on downloads using their |
Related: #2553 |
for those using "get_url" if can be replaced by using "apt" "yum"or "package" module, we replace them. check is by default enabled in these modules. |
But only if the artifact it's supplied in one of those formats. This should cover source tarball downloads etc. too. |
sure! for the others like tarball, which cannot use module, we still need gpg to verify |
Closing as #2881 is merged |
As part of improving the security of the supply chain and reproducible builds (adoptium/temurin-build#2522), I have investigated some of the Ansible playbooks which download dependencies using get_url from the internet. The risk of such downloads are:
These equally apply to manually downloaded and stored Ansible content as well.
Currently get_url task for most(but not all) of the downloads uses a checksum. This is reasonable, assuming the accuracy of the checksum is assured? for example was the content manually downloaded actually tampered prior to checksum creation? We can't be sure it is from the origin, especially in man-in-the-middle, which could even tamper with checksum files when downloaded, to match tampered content.
Using GPG signatures is far more safe.
Currently Ansible does not provide a builtin way of using GPG sigs. So we would need to provide our own extension?
The text was updated successfully, but these errors were encountered: