> This is still cool 'in practice', of course - but I don't think we
should _expect_ projects to go back and update SBOMs for
already-released versions.

I think eventually and in theory - yes. And one of my favourite sayings "In
theory, practice is the same as theory, but in practice, it's not" :) . I
am not sure if we reached that point yet that theory == practice :).

I will definitely be keeping an eye on it from the Python/Airflow/CDXGen
point of view. Every time I produce new SBOM "snapshot" I do a quick
comparison to see what changed  - since the time I generated it last time
(and every time I did it so far, I see new/corrected things with newer
cdxgen, and I even asked the cdxgen author (and got it done) to introduce a
few fixes.

J.



On Tue, Oct 22, 2024 at 1:22 PM Arnout Engelen <enge...@apache.org> wrote:

> On Tue, Oct 22, 2024 at 12:33 PM Jarek Potiuk <ja...@potiuk.com> wrote:
> > > For the real deal, would we publish SBOMs next to the JARs, for
> example in
> > https://dist.apache.org/repos/dist/release/commons/io/binaries/ ? With
> > files names that have a version or not?
> >
> > I think it's a good idea, eventually when SBOM generation is "popular" in
> > ASF and when tooling to produce SBOM will be tested and easy to apply by
> > all our projects, I think we should likely propose a change to the
> release
> > process to not only have packages, signatures and checksums but also
> > (ideally signed) SBOMs.
> >
> > But there is one watchout before we do it (and how we do it) - and we
> have
> > to learn it over time. Essentially our "release" repo is
> "write-once-only"
> > (or so I think about it). Once we publish something as a package,
> > signature, checksum file - should never change,
> >
> > The whole SBOM generation is relatively new, and the tools that generate
> it
> > change, also SBOM standards will evolve. There is a big difference
> between
> > .tar.gz source package and .sbom - because essentially, SBOM might not be
> > treated (at least currently I think) as "immutable". Not because we will
> > change sources for example, but because tools to generate SBOMS will be
> > better over time. SBOMS contain a lot of information - for example
> > information about licences. And some of that information is wrong today
> > (due to imperfectness of the tools) - but this might (And will) change in
> > the future.
>
> I much agree the tooling around SBOMs is still immature and we have a
> lot to learn collectively. That said, I do think SBOMs should be
> immutable 'in principle' (and definitely be tied to a particular
> version/artifact). If there's bugs in the SBOM, like with bugs in the
> code, we can fix those in the new version :).
>
> > A good example - initial SBOMS generated by Airflow had like 50% of
> licence
> > information for all Python dependencies, but when I generate them now -
> > they are 100% and pretty correct. Other stuff in SBOMS (who are the
> > authors, what's the organisation owning it etc.) - this all might change
> > without changing the software that was used to generate the SBOM with
> (not
> > even single package version changed - simply metadata and tooling used to
> > produce SBOMS might change).
> >
> > For example - I have tooling that allows to regenerate and re-publish
> > Airflow SBOMS for all historical versions - and publish them via our web
> > page:
> > https://airflow.apache.org/docs/apache-airflow/stable/security/sbom.html
> .
> > And this and next week I am planning to regenerate and re-publish all of
> > them with the latest version of cdxgen (that's the tool we use to
> generate
> > our CycloneDX SBOMS).
>
> This is still cool 'in practice', of course - but I don't think we
> should _expect_ projects to go back and update SBOMs for
> already-released versions.
>
> > So before we propose where and how to store it, I think we need to decide
> > how we approach the lifecycle of SBOMS, and then find the right place for
> > them.
>
> Everything is still very much in flux (not just within Apache but
> generally), so I think all those different aspects will have to evolve
> in tandem - we can't really postpone figuring out how to build SBOMs
> until we have a final decision on how to distribute or use them - or
> vice-versa - as learnings from each of these will influence each
> other.
>
>
> Kind regards,
>
> Arnout
>
> > On Tue, Oct 22, 2024 at 12:06 PM Gary Gregory <garydgreg...@gmail.com>
> > wrote:
> >
> > > Hi all,
> > >
> > > For the real deal, would we publish SBOMs next to the JARs, for
> example in
> > > https://dist.apache.org/repos/dist/release/commons/io/binaries/ ? With
> > > files names that have a version or not?
> > >
> > > Gary
> > >
> > > On Tue, Oct 22, 2024, 5:10 AM Piotr P. Karwasz <
> piotr.karw...@gmail.com>
> > > wrote:
> > >
> > > > Hi Arnout,
> > > >
> > > > On Mon, 21 Oct 2024 at 15:34, Arnout Engelen <enge...@apache.org>
> wrote:
> > > > > During a recent discussion elsewhere we figured it might be nice to
> > > > collect
> > > > > the SBOMs currently published by Apache projects in a single place
> to
> > > > > facilitate experimentation. I've put those at
> > > > > https://github.com/apache/security-site/tree/sboms/sboms for now.
> As
> > > you
> > > > > can see there's already a fair number of ASF projects publishing
> SBOMs,
> > > > and
> > > > > I'm sure I've missed some - LMK.
> > > >
> > > > Nice job!
> > > >
> > > > What kind of SBOMs should we upload to the repo and how should we
> > > > structure the folders?
> > > >
> > > > In Log4j (and probably other library Java projects), we have two
> kinds
> > > > of SBOMs, depending on the CycloneDX Maven Plugin goal we use[1]:
> > > >
> > > > * "normal" source SBOMs: these are generated for each binary
> component
> > > > (e.g. `log4j-api` or `log4j-core`) and list all the dependencies of
> > > > those components.
> > > > * "aggregate" SBOMs: these are basically a composition of all the
> > > > "normal" source SBOMs that are released together. The "dependencies"
> > > > of the main component in the aggregate SBOM are the different Maven
> > > > modules of a multi-module Maven build.
> > > >
> > > > I think that the second kind is what we want, since they give all the
> > > > information in one place. Each PMC could structure its folders
> > > > according to the structure adopted on `downloads.apache.org`. E.g.
> for
> > > > Logging services I could upload the SBOMs as:
> > > >
> > > > * logging/log4j/2.24.1/apache-log4j-2.24.1-cyclonedx.xml
> > > > * logging/log4j-scala/13.1.0/apache-log4j-scala-13.1.0-cyclonedx.xml
> > > > * etc.
> > > >
> > > > What do you think?
> > > >
> > > > Piotr
> > > >
> > > > [1]
> > > >
> > >
> https://github.com/CycloneDX/cyclonedx-maven-plugin?tab=readme-ov-file#goals
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail:
> > > security-discuss-unsubscr...@community.apache.org
> > > > For additional commands, e-mail:
> > > > security-discuss-h...@community.apache.org
> > > >
> > > >
> > >
>
>
>
> --
> Arnout Engelen
> ASF Security Response
> Apache Pekko PMC member, ASF Member
> NixOS Committer
> Independent Open Source consultant
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: security-discuss-unsubscr...@community.apache.org
> For additional commands, e-mail:
> security-discuss-h...@community.apache.org
>
>

Reply via email to