Example Apache Tomcat SPDX - verified using online too - VALID


Dick Brooks
 

Hello Everyone,

 

During this week’s implementers call I suggested that we all try to create an SPDX SBOM from a common Apache Distribution.

 

I’ve attached a validated, SPDX V 2.2 SBOM for the Apache Tomcat distribution available here:

https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.71/bin/apache-tomcat-9.0.71-windows-x64.zip

 

This Tag/Value file has been validated using the online tool validator, here:

https://tools.spdx.org/app/validate/

 

Hopefully, use of one common distribution product package (Tomcat) from a well-known source (Apache Foundation) will provide us with a common target to compare implementation results, and best practices for SPDX.

 

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788

 


Anthony Harrison
 

Dick

Thanks for sharing.

From a quick scan, I noticed that all of the FileChecksums are the same which doesn't seem quite correct. 

There are many files in the ZIP file. Is there a reason why the filenames don't contain any directory information as there are multiple instances of the same filename (e.g. index.jsp) with the only difference being the SPDXID?

Running the SBOM through the ntia-conformance-checker throws up an issue with the DocumentNameSpace (the error message seems incorrect as it says it should not contain a # delimiter - it doesn't!) and the PackageVerificationCode not matching the correct format. 

The PackageVerificationCode appears to be expecting the checksum to be in lowercase which
looks very strange seeing as uppercase fileechecksums seem to be considered valid although reading rhe SPDX Spec seems to indicate that SHA1 checksums should be all in lowercase. I can't see why the lowercase format has been mandated rathyetr than just allowing any hexdecimal digit (upper or lowercase).

The issue is with DocumentNameSpace is in the Python library used by the ntia-conformance-checker so I have raised a PR (https://github.com/spdx/tools-python/issues/451

Regards

Anthony


Dick Brooks
 

Thanks for your analysis, Anthony.

 

DocumentNameSpace is not an NTIA minimum element, you are correct in stating that this is  a bug in the checker code.

 

The checksums at the file level inherit from the distribution file and do not represent the hash values of each file.

 

The “missing filepaths” are due to a content model mismatch with NIST NVD. Adding the file path produces false negatives because NVD doesn’t include the file path on the component names.

False negatives are very bad for risk awareness.

 

Thanks for taking the time to evaluate and provide feedback. This is precisely the type of discussion we need to be having among implementors.

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788

 

From: spdx-implementers@... <spdx-implementers@...> On Behalf Of Anthony Harrison
Sent: Saturday, January 28, 2023 11:11 AM
To: spdx-implementers@...
Subject: Re: [spdx-implementers] Example Apache Tomcat SPDX - verified using online too - VALID

 

Dick

 

Thanks for sharing.

 

From a quick scan, I noticed that all of the FileChecksums are the same which doesn't seem quite correct. 

 

There are many files in the ZIP file. Is there a reason why the filenames don't contain any directory information as there are multiple instances of the same filename (e.g. index.jsp) with the only difference being the SPDXID?

 

Running the SBOM through the ntia-conformance-checker throws up an issue with the DocumentNameSpace (the error message seems incorrect as it says it should not contain a # delimiter - it doesn't!) and the PackageVerificationCode not matching the correct format. 

 

The PackageVerificationCode appears to be expecting the checksum to be in lowercase which

looks very strange seeing as uppercase fileechecksums seem to be considered valid although reading rhe SPDX Spec seems to indicate that SHA1 checksums should be all in lowercase. I can't see why the lowercase format has been mandated rathyetr than just allowing any hexdecimal digit (upper or lowercase).

 

The issue is with DocumentNameSpace is in the Python library used by the ntia-conformance-checker so I have raised a PR (https://github.com/spdx/tools-python/issues/451

 

Regards

 

Anthony

 


Keith Zantow
 

Hi all,

I've also run Syft against this archive. A couple things of note:
* Syft's Java handling has some room for improvement we already have some issues for, one of which I was unaware of appears to result in not including relationships between the files scanned and packages found within said JARs
* The default behavior of Syft currently does not include SHA-1 hashes for files, so to get an optimal SPDX file the command used was: SYFT_FILE_METADATA_CATALOGER_ENABLED=true SYFT_FILE_METADATA_DIGESTS=sha1 syft apache-tomcat-9.0.71-windows-x64.zip -o spdx-tag-value > apache-tomcat-9.0.71-windows-x64.zip.spdx

That said, I've attached the Syft generated SPDX file for this archive, which also is valid against the online validator tools.

Again, thank you all for a great discussion this past meeting!

Cheers,
-Keith Zantow


On Fri, Jan 27, 2023 at 5:33 PM Dick Brooks <dick@...> wrote:

Hello Everyone,

 

During this week’s implementers call I suggested that we all try to create an SPDX SBOM from a common Apache Distribution.

 

I’ve attached a validated, SPDX V 2.2 SBOM for the Apache Tomcat distribution available here:

https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.71/bin/apache-tomcat-9.0.71-windows-x64.zip

 

This Tag/Value file has been validated using the online tool validator, here:

https://tools.spdx.org/app/validate/

 

Hopefully, use of one common distribution product package (Tomcat) from a well-known source (Apache Foundation) will provide us with a common target to compare implementation results, and best practices for SPDX.

 

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788

 


Dick Brooks
 

Keith,

 

This is fantastic. A couple of thoughts to consider:

 

In the NTIA domain, the first component “primary component” is the product.

 

The first component in the SBOM should be apache tomcat.

 

About to run this SPDX through a baseline VDR creation function.

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788

 

From: spdx-implementers@... <spdx-implementers@...> On Behalf Of Keith Zantow via lists.spdx.org
Sent: Saturday, January 28, 2023 12:38 PM
To: spdx-implementers@...
Subject: Re: [spdx-implementers] Example Apache Tomcat SPDX - verified using online too - VALID

 

Hi all,

 

I've also run Syft against this archive. A couple things of note:

* Syft's Java handling has some room for improvement we already have some issues for, one of which I was unaware of appears to result in not including relationships between the files scanned and packages found within said JARs

* The default behavior of Syft currently does not include SHA-1 hashes for files, so to get an optimal SPDX file the command used was: SYFT_FILE_METADATA_CATALOGER_ENABLED=true SYFT_FILE_METADATA_DIGESTS=sha1 syft apache-tomcat-9.0.71-windows-x64.zip -o spdx-tag-value > apache-tomcat-9.0.71-windows-x64.zip.spdx

 

That said, I've attached the Syft generated SPDX file for this archive, which also is valid against the online validator tools.

 

Again, thank you all for a great discussion this past meeting!

 

Cheers,

-Keith Zantow

 

On Fri, Jan 27, 2023 at 5:33 PM Dick Brooks <dick@...> wrote:

Hello Everyone,

 

During this week’s implementers call I suggested that we all try to create an SPDX SBOM from a common Apache Distribution.

 

I’ve attached a validated, SPDX V 2.2 SBOM for the Apache Tomcat distribution available here:

https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.71/bin/apache-tomcat-9.0.71-windows-x64.zip

 

This Tag/Value file has been validated using the online tool validator, here:

https://tools.spdx.org/app/validate/

 

Hopefully, use of one common distribution product package (Tomcat) from a well-known source (Apache Foundation) will provide us with a common target to compare implementation results, and best practices for SPDX.

 

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788

 


Keith Zantow
 

Hi Dick,

Yes, as noted this past meeting Syft is not currently outputting the root document element in a NTIA compliant way -- we've had some internal conversations about improving this and plan to do so before long, but for transparency I thought I'd send what we have today.

Cheers,
-Keith Zantow


On Sat, Jan 28, 2023 at 12:57 PM Dick Brooks <dick@...> wrote:

Keith,

 

This is fantastic. A couple of thoughts to consider:

 

In the NTIA domain, the first component “primary component” is the product.

 

The first component in the SBOM should be apache tomcat.

 

About to run this SPDX through a baseline VDR creation function.

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788

 

From: spdx-implementers@... <spdx-implementers@...> On Behalf Of Keith Zantow via lists.spdx.org
Sent: Saturday, January 28, 2023 12:38 PM
To: spdx-implementers@...
Subject: Re: [spdx-implementers] Example Apache Tomcat SPDX - verified using online too - VALID

 

Hi all,

 

I've also run Syft against this archive. A couple things of note:

* Syft's Java handling has some room for improvement we already have some issues for, one of which I was unaware of appears to result in not including relationships between the files scanned and packages found within said JARs

* The default behavior of Syft currently does not include SHA-1 hashes for files, so to get an optimal SPDX file the command used was: SYFT_FILE_METADATA_CATALOGER_ENABLED=true SYFT_FILE_METADATA_DIGESTS=sha1 syft apache-tomcat-9.0.71-windows-x64.zip -o spdx-tag-value > apache-tomcat-9.0.71-windows-x64.zip.spdx

 

That said, I've attached the Syft generated SPDX file for this archive, which also is valid against the online validator tools.

 

Again, thank you all for a great discussion this past meeting!

 

Cheers,

-Keith Zantow

 

On Fri, Jan 27, 2023 at 5:33 PM Dick Brooks <dick@...> wrote:

Hello Everyone,

 

During this week’s implementers call I suggested that we all try to create an SPDX SBOM from a common Apache Distribution.

 

I’ve attached a validated, SPDX V 2.2 SBOM for the Apache Tomcat distribution available here:

https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.71/bin/apache-tomcat-9.0.71-windows-x64.zip

 

This Tag/Value file has been validated using the online tool validator, here:

https://tools.spdx.org/app/validate/

 

Hopefully, use of one common distribution product package (Tomcat) from a well-known source (Apache Foundation) will provide us with a common target to compare implementation results, and best practices for SPDX.

 

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788

 


Dick Brooks
 

It’s all good Keith – we’re all just trying to get this working and your contribution is valuable – thanks for your contribution. We are all working to make SBOM better.

 

Keep up the great work.

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788

 

From: spdx-implementers@... <spdx-implementers@...> On Behalf Of Keith Zantow via lists.spdx.org
Sent: Saturday, January 28, 2023 1:24 PM
To: spdx-implementers@...
Subject: Re: [spdx-implementers] Example Apache Tomcat SPDX - verified using online too - VALID

 

Hi Dick,

 

Yes, as noted this past meeting Syft is not currently outputting the root document element in a NTIA compliant way -- we've had some internal conversations about improving this and plan to do so before long, but for transparency I thought I'd send what we have today.

 

Cheers,

-Keith Zantow

 

 

On Sat, Jan 28, 2023 at 12:57 PM Dick Brooks <dick@...> wrote:

Keith,

 

This is fantastic. A couple of thoughts to consider:

 

In the NTIA domain, the first component “primary component” is the product.

 

The first component in the SBOM should be apache tomcat.

 

About to run this SPDX through a baseline VDR creation function.

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788

 

From: spdx-implementers@... <spdx-implementers@...> On Behalf Of Keith Zantow via lists.spdx.org
Sent: Saturday, January 28, 2023 12:38 PM
To: spdx-implementers@...
Subject: Re: [spdx-implementers] Example Apache Tomcat SPDX - verified using online too - VALID

 

Hi all,

 

I've also run Syft against this archive. A couple things of note:

* Syft's Java handling has some room for improvement we already have some issues for, one of which I was unaware of appears to result in not including relationships between the files scanned and packages found within said JARs

* The default behavior of Syft currently does not include SHA-1 hashes for files, so to get an optimal SPDX file the command used was: SYFT_FILE_METADATA_CATALOGER_ENABLED=true SYFT_FILE_METADATA_DIGESTS=sha1 syft apache-tomcat-9.0.71-windows-x64.zip -o spdx-tag-value > apache-tomcat-9.0.71-windows-x64.zip.spdx

 

That said, I've attached the Syft generated SPDX file for this archive, which also is valid against the online validator tools.

 

Again, thank you all for a great discussion this past meeting!

 

Cheers,

-Keith Zantow

 

On Fri, Jan 27, 2023 at 5:33 PM Dick Brooks <dick@...> wrote:

Hello Everyone,

 

During this week’s implementers call I suggested that we all try to create an SPDX SBOM from a common Apache Distribution.

 

I’ve attached a validated, SPDX V 2.2 SBOM for the Apache Tomcat distribution available here:

https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.71/bin/apache-tomcat-9.0.71-windows-x64.zip

 

This Tag/Value file has been validated using the online tool validator, here:

https://tools.spdx.org/app/validate/

 

Hopefully, use of one common distribution product package (Tomcat) from a well-known source (Apache Foundation) will provide us with a common target to compare implementation results, and best practices for SPDX.

 

 

Thanks,

 

Dick Brooks

 

Active Member of the CISA Critical Manufacturing Sector,

Sector Coordinating Council – A Public-Private Partnership

 

Never trust software, always verify and report!

http://www.reliableenergyanalytics.com

Email: dick@...

Tel: +1 978-696-1788