Skip to content

Add fields required by Cyber Resiliency Act Annex II #137

@sjn

Description

@sjn

There are a couple EU laws coming, that require users to gather information of all their software dependencies in order to conduct cyber security assessments, and use this as part of managing their software security landscape. There's quite a bit more to this than this short summary can convey, so if you're interested in getting an idea the scope and relevance of these laws, I recommend checking out Bert Huber's articles on the CRA, as they give a good (and free of lawyerese language) overview of the issues.

A quick look at Annex II reveals a few new metadata fields will be required by EU businesses using Open Source software (numbers below correspond to numbers in Annex II):

  1. (1) Contact info for the "Manufacturer" - i.e. the module/component author;
    • This is already supported with the author field.
  2. (2) Single point of contact where information about cybersecurity vulnerabilities for the product/module can be reported and received.
    • Maybe a new security field? Re-using author is a bad idea since vulnerability reports need to be private, and an author address may be a public mailing list.
    • This may also be solved by adding a link (URL) to the project's security policy file. (e.g. to SECURITY.md for a human-readable text, or possibly security-insights.yml for a machine-readable version of the same)
  3. (3) Module name and version number
    • This is already supported with name and version
  4. (4) Intended purpose of the product
    • Probably only relevant for Manufacturers, though since some CPAN projects may become one, this is relevant to add.
    • May be partially covered by the description field for simple modules, but there are more requirements this may warrant a separate SECURITY CONSIDERATIONS POD section.
    • For complex purposes, we may want to add a new metadata field with an URL; e.g. security_docs
    • Complex docs can also be handled by referring to an "Project SBOM" (This is an addition to CISA's SBOM Types PDF in PDF) file that contains this information.
  5. (5) Possible misuses that can lead to significant cybersecurity risks.
    • An RFC-style "SECURITY CONSIDERATIONS" section in the POD may be sensible for this also.
    • For more complex situations, a security_docs field may be good here also.
  6.  (6) Link to a CE declaration of conformity.
    • This is only relevant for Manufacturers, though if a CPAN project wishes to become one, we'll need a way for this to be included.
    • This can possibly be solved by adding a link an included (release-specific) "Source SBOM" file, in the same manner the Python folks have decided (see PEP 770, and discussion) to do.
  7. (7) Technical security support offered by the Manufacturer and the end-date of the support period
    • This is relevant for Manufacturers (potential or real), so we may want to consider supporting this.
    • If the project isn't a Manufacturer, but intends for it's software (or a specific releases of it) to be used in a commercial environment, and has an Open Source Steward organization supporting it, then this may be relevant too.
    • Can probably be solved with a SUPPORT POD section, or a separate documentation link, either as a separate support field in the metadata, or via a link to a Project SBOM.
  8. (8) Link to details instructions on the handling different product lifecycle events (most likely relevant only for Manufacturers that are integrators)
    • (a) correct deployment ("commissioning");
    • (b) how changes may influence the security of related user data
    • (c) how to install security updates
    • (d) how to decommission the product, including secure removal of related user data
    • (e) how to disable automatic security updates
    • (f) instructions on how integrators may comply with essential cybersecurity requirements set out in Annex I and the documentation requirements set out in Annex VII.
    • Maybe best handled by either a link to separate lifecycle documentation, or a link to an SBOM file containing links to this, or a separate POD section?
  9. (9) Link to where the software bill of materials can be accessed
    • This may be a link to it's Release (Source) SBOM – e.g. an URL to either it's repository location for a given release, or a link to an SBOM hosted by the publishing platform (e.g. on MetaCPAN?)
    • …or a link to a Project SBOM – e.g. an URL to the SBOM hosted in the main repository branch.

(updated 2025-04-23)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions