Show HN: Minimal – Open-Source Community driven Hardened Container Images

(github.com)

79 points by ritvikarya98 10 hours ago

26 comments

I would like to share Minimal - Its a open source collection of hardened container images build using Apko, Melange and Wolfi packages. The images are build daily, checked for updates and resolved as soon as fix is available in upstream source and Wolfi package. It utilizes the power of available open source solutions and contains commercially available images for free. Minimal demonstrates that it is possible to build and maintain hardened container images by ourselves. Minimal will add more images support, and goal is to be community driven to add images as required and fully customizable.

lmeyerov 4 hours ago

I have been curious on secure base images for the AI ecosystem, where we need to ship with cuda 11.8/12.8/13.1 for stability reasons, and in our case, a bit of the torch ecosystem and Nvidia rapids ecosystem. That ends up being... A lot. Extra fun: going all the way to FIPS..

debarshri 9 hours ago

This is great. I have been talking to quite some vendors in the space. I have looked in docker hardened images too. They have made it free too.

I think the problem in general is hardened image market is keeping up with CVEs and making sure the catalog is vast so that it covers all the images and nuances.

Responding and patchibg CVEs with an SLA is the KPI of the vendors. As much as I would like cheer for you, doing it as an opensource initiate with a guaranteed SLA is going to be painful for you as maintainer without profit as a motive.

  • ritvikarya98 9 hours ago

    Thanks for looking into this! I agree with you and hence I'm also relying on Wolfi packages, which will ensure they are updated as soon as upstream is available so I'm piggy backing on that. Github Actions run daily/weekly based on the cadence and once the pipeline is setup do not require a significant effort imo. And I want it to be community driven so we can add images as and when people want it and build it accordingly. Chainguard tools surely help with this! I aim to show that companies can try and build internal pipelines like this for all images in their repository

    • hobofan 7 hours ago

      Isn't this mostly the same thing that Chainguard already provides themselves? E.g. the "Free" images on their page [0] have a big overlap with the toolchains from your repo.

      [0]: https://images.chainguard.dev

      • ritvikarya98 7 hours ago

        Some images do overlap yes, but they are some of the most popular ones used and I wanted to demonstrate how they can be build as well. Half of them are only available through paid versions. I will be adding new images on regular basis, based on usage and impact.

  • [removed] 9 hours ago
    [deleted]
euph0ria 4 hours ago

What is the process to trust the usage of this?

How can we learn the identity of the contributors? How are the contributors vetted? How are we notified if a significant change in leadership happens?

It's just a general problem when relying on GitHub accounts for important code.

For some reason I trust the big vendors to have better safe-guards against things like the questions above. Such as aws linux containers etc..

Would love to hear how other people think around this.

adriand 8 hours ago

Dumb question but how would these work in practice? I use kamal to deploy containerized applications. Would I on a regular basis update the versions of the underlying images to match the latest hardened container and then redeploy? I assume this is automatable?

  • ritvikarya98 6 hours ago

    Hi thanks for looking - I would preferably more info on your setup, but this is similar to using any container image. Currently all the tags are latest and if you have that setup you would pick that up from this repo and pretty sure this can be automated.

dgrove 4 hours ago

I'm not sure what problem this is solving. This seems like chainguard but being built in "your ci" (github) vs "their ci". Images may be a bit smaller, but this is already a feature set that wolfi already allows for. Besides that chainguard is not full-source bootstrapped.

  • theoo21 4 hours ago

    From reading the project readme, I think this demonstrates creating any image you want using Chainguard's tools including commercial ones.

Dayshine 7 hours ago

Why does this not use chisel? I assume you at least drop the bin dir? Although the presence of ncurses is super weird

I don't understand why one would go halfway and leave packages which are unneeded for services. The only executable in a hardened container image should be your application.

  • ritvikarya98 6 hours ago

    Thanks! but these are builder images, not the final runtime. Chisel only really makes sense after the binary is built and you know what it needs at runtime. Before that you are pulling in whole packages, which is why things like ncurses might show up, similar to chainguard's image. For a builder, it is just SBOM noise and not something the app ever executes. Its hard to identify what you need before running the application, and you can always find a library you don't need. The “only your app should be executable” idea works for fully static binaries, but once you use glibc or CGO you already have other executables.

anukritisingh 9 hours ago

Looks very useful, we should definitely build up on this!!!

  • Joel_Mckay 8 hours ago

    Hard pass...

    In general, a public security policy is pointless. It is the one layer you want people to trip over when breaking a system. =3

    • tigerinthe 8 hours ago

      Why do you say so?

      • Joel_Mckay 8 hours ago

        Best to look at security policy using ecological predator-prey models. If you don't, than you fall victim to the assumption a "puzzle" you can't break is unbreakable in general.

        Nuisance users don't publish CVE, and a zero trust model shows you something important. =3

humayuuun 8 hours ago

Need more information on how I can integrate this in my pipeline but this looks promising

[removed] 9 hours ago
[deleted]