| A large portion of my role at $DayJob is around improving supply chain security. Some examples of how we do it: - Devs can only use hardened (by us) Docker images hosted inside our infrastructure. Policies enforce this during CI and runtime on clusters. - All Maven/PIP/NodeJS/etc. dependencies are pulled through via proxy and scanned before first use. All future CI jobs pull from this internal cache. - Only a handful of CI runners have outbound connectivity to the public internet (via firewalls). These runners have specific tags for jobs needing connectivity. All other runners pull dependencies / push artefacts from within our network. - The CI Runners with Internet connectivity have domains whitelisted at the firewall level, and so far very few requests have been made to add new domains. - External assets, e.g an OpenJDK artefact, have their checksums validated during the build stage of our base images. This checksum is included in Docker image metadata should we wish to download the asset again and compare against the public one. |
What does the scanning process check for / which tools are used?