├── specification
├── images
├── README.md
└── framework.md
├── governance
├── Charter.pdf
├── s2c2f-steering-committee.md
├── CS_Contributor_License_Agreement.md
├── Governance.md
└── Community_Specification_License_v1.md
├── images
├── Diagram-white-bkg.png
├── image_from_ios_720.jpg
├── secure-package-icon.png
├── 8-practices-white-bkg.png
└── maturity-level-white-bkg.png
├── Scope.md
├── Reference_implementation
├── README.md
├── GitLab.md
└── GitHub.md
├── LICENSE.md
├── .github
└── settings.yml
├── community
└── Roadmap.md
├── Notices.md
├── README.md
├── Contributing.md
├── Code of Conduct.md
├── FAQ.md
└── Minutes
└── 2022 -23 Meeting Notes.md
/specification/images:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/governance/Charter.pdf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ossf/s2c2f/HEAD/governance/Charter.pdf
--------------------------------------------------------------------------------
/images/Diagram-white-bkg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ossf/s2c2f/HEAD/images/Diagram-white-bkg.png
--------------------------------------------------------------------------------
/images/image_from_ios_720.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ossf/s2c2f/HEAD/images/image_from_ios_720.jpg
--------------------------------------------------------------------------------
/images/secure-package-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ossf/s2c2f/HEAD/images/secure-package-icon.png
--------------------------------------------------------------------------------
/images/8-practices-white-bkg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ossf/s2c2f/HEAD/images/8-practices-white-bkg.png
--------------------------------------------------------------------------------
/images/maturity-level-white-bkg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ossf/s2c2f/HEAD/images/maturity-level-white-bkg.png
--------------------------------------------------------------------------------
/Scope.md:
--------------------------------------------------------------------------------
1 | ## Scope
2 |
3 | This guide outlines and defines how to securely consume Open Source Software (OSS) dependencies into the developer's workflow.
4 |
--------------------------------------------------------------------------------
/Reference_implementation/README.md:
--------------------------------------------------------------------------------
1 | # Reference Implementations
2 |
3 | This section of the repo captures suggested ways to implement the Secure Supply Chain Consumption Framework (S2C2F) based on which CI/CD platform you are using. The suggested capabilities try leverage as much native features to the specific CI/CD environment as possible.
4 |
5 | We are looking for help to create pages to suggest reference implementations for the following platforms:
6 |
7 | 1. [GitHub](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/GitHub.md)
8 | 2. [GitLab](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/GitLab.md)
9 | 3. Jenkins
10 | 4. Circle CI
11 | 5. TeamCity
12 | 6. Travis CI
13 | 7. And more...
14 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # Licenses
2 |
3 | ## Specification License
4 |
5 | Specifications in the repository are subject to the **Community Specification License 1.0** available at [https://github.com/CommunitySpecification/1.0](https://github.com/CommunitySpecification/1.0).
6 |
7 | ## Source Code License
8 |
9 | If source code is included in this repository, or for sample or reference code included in the specification itself, that code is subject to the MIT license unless otherwise designated. In the case of any conflict or confusion within this specification repository between the Community Specification License and the MIT or other designated license, the terms of the Community Specification License shall apply.
10 |
11 | If source code is included in this repository, or for sample or reference code included in the specification itself, that code is subject to the MIT license unless otherwise marked.
12 |
13 | In the case of any conflict or confusion within this specification repository between the Community Specification License and the designated source code license, the terms of the Community Specification License shall apply.
14 |
--------------------------------------------------------------------------------
/governance/s2c2f-steering-committee.md:
--------------------------------------------------------------------------------
1 | # S2C2F Governance
2 |
3 | This repo contains documents that describe the governance practices for the Secure Supply Chain Consumption Framework Project.
4 |
5 | The S2C2F Project oversees development of the S2C2F materials in the [S2C2F GitHub org](https://github.com/ossf/s2c2f). Specifications developed by the S2C2F Project are developed in this repo, and are subject to the licensing and governance policies described in this repo.
6 |
7 | The S2C2F Governance process is based on the [Community Specification model and license](https://github.com/CommunitySpecification/1.0) from the [Joint Development Foundation](https://www.jointdevelopment.org).
8 |
9 | ## Steering committee
10 |
11 | Current steering committee members:
12 |
13 | - [Jay White](https://github.com/camaleon2016) - Microsoft
14 | - [Adrian Diglio](https://github.com/adriandiglio) - Microsoft
15 | - [David A. Wheeler](https://github.com/david-a-wheeler) - Linux Foundation
16 | - [Jonathan Meadows](https://github.com/) - Citi
17 | - [Christopher Robinson](https://github.com/CRob) - Intel
18 |
19 | To contact the steering committee:
20 |
21 | - On GitHub: `@ossf/s2c2f/governance/s2c2f-steering-committee`
22 |
--------------------------------------------------------------------------------
/.github/settings.yml:
--------------------------------------------------------------------------------
1 | repository:
2 | # See https://developer.github.com/v3/repos/#edit for all available settings.
3 |
4 | # The name of the repository. Changing this will rename the repository
5 | name: project-template
6 |
7 | # A short description of the repository that will show up on GitHub
8 | description: OpenSSF Project Template
9 |
10 | # A URL with more information about the repository
11 | homepage: https://openssf.org
12 |
13 | # Collaborators: give specific users access to this repository.
14 | # see /governance/roles.md for details on write access policy
15 | # note that the permissions below may provide wider access than needed for
16 | # a specific role, and we trust these individuals to act according to their
17 | # role. If there are questions, please contact one of the chairs.
18 | collaborators:
19 | # Chairs and Admin Help
20 | - username:
21 | permission: admin
22 |
23 | # Contributors
24 | # all permissions except admin
25 |
26 | - username:
27 | permission: push
28 |
29 | labels:
30 | - name: helpwanted
31 | color: ffff54
32 | - name: good first issue
33 | color: ff8c00
34 | - name: meeting
35 | color: 00ff00
36 |
37 | # additional colors in this palette:
38 | # 7f0000 , 1e90ff, ffdab9, ff69b4
39 |
--------------------------------------------------------------------------------
/governance/CS_Contributor_License_Agreement.md:
--------------------------------------------------------------------------------
1 | By making a Contribution to this repository, I agree to the terms of the following documents located at https://github.com/CommunitySpecification/1.0:
2 |
3 | (a) Community Specification License 1.0 (.0_Community_Specification_License-v1.md)
4 |
5 | (b) Community Specification Governance Policy 1.0 (5._Governance.md)
6 |
7 | (c) Community Specification Contribution Policy 1.0 (6._Contributing.md)
8 |
9 | (d) Community Specification Code of Conduct (8._Code_of_Conduct.md)
10 |
11 | In addition, for source code contributions, I certify that:
12 |
13 | (a) The contribution was created in whole or in part by me and I have the right to submit it under the open source license indicated in the file; or (b) The contribution is based upon previous work that, to the best of my knowledge, is covered under an appropriate open source license and I have the right under that license to submit that work with modifications, whether created in whole or in part by me, under the same open source license (unless I am permitted to submit under a different license), as indicated in the file; or (c) The contribution was provided directly to me by some other person who certified (a), (b) or (c) and I have not modified it. (d) I understand and agree that this working group and the contribution may be public and that a record of the contribution (including all personal information I submit with it, including my sign-off) is maintained indefinitely and may be redistributed consistent with this agreement or the open source license(s) involved.
14 |
15 | I represent that I am legally entitled to make the grants set forth in the documents above. If my employer(s) has rights to intellectual property that may be infringed by the materials developed by this Working Group, I represent that I have received permission to enter these agreements on behalf of that employer.
16 |
--------------------------------------------------------------------------------
/community/Roadmap.md:
--------------------------------------------------------------------------------
1 | ## S2C2F Roadmap
2 |
3 | ### Strategic Goals of S2C2F
4 |
5 | The S2C2F has a number of goals that we wish to accomplish together as a community:
6 | * **Awareness** of how to address the supply chain threats specific to open source, and understanding that the S2C2F is here to directly mitigate those issues
7 | * This is accomplished through collaboration with other areas of the OpenSSF, continued referencing of the S2C2F in publications
8 | * **Community Engagement** to keep the S2C2F relevant and up-to-date on the latest threats
9 | * **Adoption** by the industry to reduce open source supply chain risk
10 | * This is accomplished through industry recognition as a best practice. Adoption of the S2C2F into the OpenSSF was the first step on that journey. Pursuing international standardization is another
11 | * Develop attestations of conformance to S2C2F policies
12 | * **Drive Tooling Innovation** across the industry to help others implement the S2C2F requirements, as well as driving innovations related to generation of claims/attestations of compliance with the S2C2F maturity levels
13 | * The S2C2F SIG shouldn’t be working in a silo. There needs to be conscious efforts to leverage other initiatives across the OpenSSF where it makes sense for S2C2F to be involved.
14 | * Tooling to generate attestations of policy conformance
15 |
16 | ### S2C2F Initiatives Seeking Community Support
17 |
18 | These initiatives align with the strategic goals of S2C2F
19 | * Creating reference implementation guidance for different DevOps platforms [https://github.com/ossf/s2c2f/tree/main/Reference_implementation](https://github.com/ossf/s2c2f/tree/main/Reference_implementation)
20 | * Create Supplemental Material for deeper dives and clarification [https://github.com/ossf/s2c2f/issues/24](https://github.com/ossf/s2c2f/issues/24)
21 | * Translations of the framework to other languages
22 | * Pursue international standardization
23 | * Continuous improvement leveraging feedback from those that have implemented/implementing S2C2F
24 | * Contributing to the S2C2F attestation GitHub Action tool. Areas where we are open for contribution are listed in our tool’s Roadmap [https://github.com/ossf/S2C2F-attestation-schema-and-tool/blob/main/ROADMAP.md](https://github.com/ossf/S2C2F-attestation-schema-and-tool/blob/main/ROADMAP.md)
25 |
26 |
--------------------------------------------------------------------------------
/Notices.md:
--------------------------------------------------------------------------------
1 | # Notices
2 |
3 | ## Code of Conduct
4 |
5 | Contact for Code of Conduct issues or inquires:
6 | * Jay White (jaywhite@microsoft.com)
7 | * Adrian Diglio (adrian.diglio@microsoft.com)
8 |
9 |
10 | ## License Acceptance
11 |
12 | Per Community Specification License 1.0 Section 2.1.3.3, Licensees may indicate their acceptance of the Community Specification License by issuing a pull request to the Specification’s repository’s Notice.md file, including the Licensee’s name, authorized individuals' names, and repository system identifier (e.g. GitHub ID), and specification version.
13 |
14 | A Licensee may consent to accepting the current Community Specification License version or any future version of the Community Specification License by indicating "or later" after their specification version.
15 |
16 | ---------------------------------------------------------------------------------
17 |
18 | Licensee’s name:
19 |
20 | Authorized individual and system identifier:
21 |
22 | Specification version:
23 |
24 | ---------------------------------------------------------------------------------
25 |
26 | ## Withdrawals
27 |
28 | Name of party withdrawing:
29 |
30 | Date of withdrawal:
31 |
32 | ---------------------------------------------------------------------------------
33 |
34 | ## Exclusions
35 |
36 | This section includes any Exclusion Notices made against a Draft Deliverable or Approved Deliverable as set forth in the Community Specification Development License. Each Exclusion Notice must include the following information:
37 |
38 | - Name of party making the Exclusion Notice:
39 |
40 | - Name of patent owner:
41 |
42 | - Specification:
43 |
44 | - Version number:
45 |
46 | **For issued patents and published patent applications:**
47 |
48 | (i) patent number(s) or title and application number(s), as the case may be:
49 |
50 | (ii) identification of the specific part(s) of the Specification whose implementation makes the excluded claim a Necessary Claim.
51 |
52 | **For unpublished patent applications must provide either:**
53 |
54 | (i) the text of the filed application; or
55 |
56 | (ii) identification of the specific part(s) of the Specification whose implementation makes the excluded claim a Necessary Claim.
57 |
58 | -----------------------------------------------------------------------------------------
59 |
--------------------------------------------------------------------------------
/specification/README.md:
--------------------------------------------------------------------------------
1 | # Maintaining the S2C2F Specification
2 |
3 | > ⭐: **Click _[here](Secure_Supply_Chain_Consumption_Framework_(S2C2F).pdf)_ for the PDF of the specification**
4 | >
5 | > :atom:: **Click _[here](framework.md)_ to view the specification in markdown**
6 |
7 | ## Updates to the specification
8 |
9 | The S2C2F specification is intended to be a living document
10 | created and maintained for the community by its members.
11 |
12 | Updates to the whitepaper, suggestions for updates, or discussion for updates
13 | should initiate with an [issue](https://github.com/microsoft/oss-ssc-framework/issues)
14 | submitted to the repo and labeled with "discussion" and "specification".
15 |
16 | ### Markdown
17 |
18 | The living S2C2F is captured in [markdown](framework.md) and is where all updates will take place.
19 |
20 | ### Contributing updates
21 |
22 | All members of the community are welcome to contribute updates to the S2C2 Framework specification. We
23 | ask potential contributors to refer to the original design decisions, listed
24 | below, as guidance when determining the content of their updates.
25 |
26 | It is highly recommended that you seek peer review for your updates beyond that
27 | of the Technical Leads of the working group.
28 |
29 | After the issue has been triaged in the community call, and has been tagged with "Spec Change", the next step is to submit a PR to the [markdown](framework.md) with the proposed changes. Once the PR is submitted, please link the PR to the issue to request a review.
30 |
31 | ### Versioning and publishing
32 |
33 | It is expected that many minor updates will occur, corrections to grammar,
34 | spelling, clarification in language, translations, etc. When these occur they
35 | are considered minor changes to the overall content and will not warrant the
36 | regeneration of the PDF.
37 |
38 | When significant changes to the intent, content, or numerous minor changes
39 | occur, the S2C2F SIG will assess and determine if a new major version
40 | of the PDF needs to be published. When this decision is made, the markdown content
41 | will be converted to text document and sent to the S2C2F technical writers to
42 | create the PDF. The PDF will then be published back into the repository
43 | annotating the new version, updating the links in the README.md accordingly.
44 |
45 | Minor updates to the markdown shall receive a minor version bump indicated in
46 | the Metadata table of the document and recorded as WIP. When enough significant
47 | changes have been recorded, the markdown will be placed "In Review" (via PR) and
48 | solicited to the S2C2F SIG mailing list for review, at a
49 | minimum.
50 |
51 | Upon completion of review, the S2C2F technical writer shall provide final
52 | approval on the PR. At which point the markdown state will be changed to
53 | "Approved" and merged.
54 |
55 | ## Original design decisions
56 |
57 | The S2C2F creation occurred using the below general design decisions which
58 | should be considered when updating the content.
59 |
60 | * Consider if the content already exists elsewhere. Provide references to
61 | comprehensive information on a topic rather than re-writing the content. This
62 | not only allows us to provide summarization of complex topics, but also
63 | exposes the audience to other avenues of information for which they may be
64 | unaware.
65 | * Determine if the content is better suited as it's own document, such as a
66 | how-to, blog, or whitepaper of itself.
67 | * Determine if your suggestion belongs in the high-level solution-agnostic set of Practices - which can be used in any scenario - or if your suggestion is more of a detailed implementation-level requirement.
68 | * Identify if the proposed requirement is realistic or aspirational. Suggest a level of maturity that fits with the themes for each maturity level.
69 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Secure Supply Chain Consumption Framework (S2C2F) Project
2 |
3 |
4 |
5 | The S2C2F Project is a group working within the OpenSSF's Supply Chain Integrity Working Group formed to further develop and continuously improve the S2C2F guide which outlines and defines how to securely consume Open Source Software (OSS) dependencies into the developer’s workflow. This paper is split into two parts: a solution-agonistic set of practices and a maturity model-based implementation guide. The Framework is targeted toward organizations that do software development, that take a dependency on open source software, and that seek to improve the security of their software supply chain.
6 |
7 | ## Motivation
8 |
9 | OSS has become a critical aspect of any software supply chain. The S2C2F was designed based on known threats (i.e. tactics and techniques) used by adversaries to compromise OSS packages. By leveraging the framework, software development teams and organizations can securely consume OSS dependencies into the developer's workflow and enhance their OSS governance program to address threats specific to OSS consumption.
10 |
11 | ## Objective
12 |
13 | The objective for the S2C2F Project is to develop and continuously improve upon a guide that provides the following:
14 |
15 | * A high-level solution-agnostic set of practices
16 | * A detailed list of requirements
17 | * A list of real-world supply chain threats specific to OSS, and how our Framework requirements mitigates them
18 | * A maturity model-based implementation guide, with links to tools from across the industry
19 | * A process for assessing your organization’s maturity
20 | * A mapping of the Framework requirements to 6 other supply chain specifications
21 |
22 | ## View or Download the S2C2F Specification
23 |
24 | :atom:: **Click _[here](./specification/framework.md)_ to view the specification in markdown**
25 |
26 | To learn more, the S2C2F FAQ is available [here](./FAQ.md).
27 |
28 | ## Get Involved
29 |
30 | * Official communications occur on the [openssf-sig-s2c2f@lists.openssf.org](https://lists.openssf.org/g/openssf-sig-s2c2f). \
31 | [Manage your subscriptions to Open SSF mailing lists](https://lists.openssf.org/g/main/subgroups).
32 | * [S2C2F Project Slack](https://openssf.slack.com/archives/C03THTH3RSM)
33 | * [Supply Chain Integrity WG Slack](https://openssf.slack.com/archives/C01A1MA7A1K)
34 |
35 | ### Quick Start
36 |
37 | * File issues in the [Issues page](https://github.com/ossf/s2c2f/issues)
38 | * We are actively seeking contributions to our [Reference Implementations](./Reference_implementation)
39 |
40 | ### Meeting times
41 |
42 | * Every other Tuesday @ 12:00pm PST The invite is available on the [OpenSSF Community Calendar](https://calendar.google.com/calendar/u/0/r?cid=czYzdm9lZmhwNWk5cGZsdGI1cTY3bmdwZXNAZ3JvdXAuY2FsZW5kYXIuZ29vZ2xlLmNvbQ)
43 | * [Meeting Minutes](https://docs.google.com/document/d/10Q_VOvKsGaYJoK-5yJY4868mTkYZjEo-6xV6ghYS84k/edit)
44 |
45 | # Governance
46 |
47 | The [GOVERNANCE.md](https://github.com/ossf/s2c2f/blob/main/governance/Governance.md) outlines the scope and governance of our group activities.
48 |
49 | * Lead: Adrian Diglio (https://github.com/adriandiglio)
50 | * Co-Lead: Jay White (https://github.com/camaleon2016)
51 |
52 | ## Steering Committee
53 | - [Jay White, Microsoft](https://github.com/camaleon2016)
54 | - [Adrian Diglio, Microsoft](https://github.com/adriandiglio)
55 |
56 | ## Project Maintainers
57 | - [Jay White, Microsoft](https://github.com/camaleon2016)
58 | - [Adrian Diglio, Microsoft](https://github.com/adriandiglio)
59 | - [Jasmine Wang, Microsoft](https://github.com/jasminewang0)
60 | - [Tom Bedford, Bloomberg](https://github.com/tombedfordgit)
61 |
62 |
63 | ## Project Collaborators
64 | - [Christopher "CRob" Robinson, Intel](https://github.com/SecurityCRob)
65 | - [David A Wheeler, LF/OSSF](https://github.com/david-a-wheeler)
66 |
--------------------------------------------------------------------------------
/Reference_implementation/GitLab.md:
--------------------------------------------------------------------------------
1 | # Suggested Reference Implementation for GitLab open source projects
2 |
3 | The goal of this document is to show how far a GitLab project can get using as much native tooling as possible toward achieving up to maturity level 3 for the Secure Supply Chain Consumption Framework (S2C2F).
4 |
5 | The community helps maintain these suggested methods of implementing the requirements, and will be updated over time.
6 |
7 | | Requirement ID | Requirement Title | Maturity Level | Reference Implementation in GitLab |
8 | | --- | --- | --- | --- |
9 | | ING-1 | Use public package managers trusted by your organization | L1 | Ex. npmjs.org, DockerHub |
10 | | ING-2 | Use an OSS binary repository manager solution | L1 | GitLab [Package Registry](https://docs.gitlab.com/ee/user/packages/package_registry/index.html) or [Container Registry](https://docs.gitlab.com/ee/user/packages/container_registry/) |
11 | | ING-3 | Have a Deny List capability to block known malicious OSS from being consumed | L3 | Not Available |
12 | | ING-4 | Mirror a copy of all OSS source code to an internal location | L3 | N/A. This requirement is geared toward large development teams |
13 | | SCA-1 | Scan OSS for known vulnerabilities | L1 | GitLab [Dependency Scanning](https://docs.gitlab.com/ee/user/application_security/dependency_scanning/) and [Container Scanning](https://docs.gitlab.com/ee/user/application_security/container_scanning/index.html) |
14 | | SCA-2 | Scan OSS for licenses | L1 | GitLab [License compliance](https://docs.gitlab.com/ee/user/compliance/license_compliance/index.html) |
15 | | SCA-3 | Scan OSS to determine if its end-of-life | L2 | [OpenSSF Scorecard](https://github.com/ossf/scorecard) - actively maintained (inactivity for X years). Security Insights (Luigi) |
16 | | SCA-4 | Scan OSS for malware | L3 | [OpenSSF Package Analysis](https://github.com/ossf/package-analysis) |
17 | | SCA-5 | Perform proactive security review of OSS | L3 | Proactive security scans will be done out-of-band from a build. Usually it's an action that can be taken on cloned source |
18 | | INV-1 | Maintain an automated inventory of all OSS used in development | L1 | GitLab [Dependency list](https://docs.gitlab.com/ee/user/application_security/dependency_list/) |
19 | | INV-2 | Have an OSS Incident Response Plan | L2 | Write one - be focused on how to roll back versions of OSS |
20 | | UPD-1 | Update vulnerable OSS manually | L1 | |
21 | | UPD-2 | Enable automated OSS updates | L2 | [Renovate](https://github.com/renovatebot/renovate) |
22 | | UPD-3 | Display OSS vulnerabilities as comments in Pull Requests (PRs) | L2 | Leverage a [custom Scan Result Policy](https://docs.gitlab.com/ee/user/application_security/policies/scan-result-policies.html) that requires a reviewer to approve |
23 | | AUD-1 | Verify the provenance of your OSS | L3 | Repo it came from and commit hash from where it came. GitBOM? SBOM? |
24 | | AUD-2 | Audit that developers are consuming OSS through the approved ingestion method | L2 | An index methodology to identify the OSS code undeclared. Searching for Copyright and != your company name |
25 | | AUD-3 | Validate integrity of the OSS that you consume into your build | L2 | This is usually performed by the language package client |
26 | | AUD-4 | Validate SBOMs of OSS that you consume into your build | L4 | |
27 | | ENF-1 | Securely configure your package source files (i.e. nuget.config, .npmrc, pip.conf, pom.xml, etc.) | L2 | https://azure.microsoft.com/en-us/resources/3-ways-to-mitigate-risk-using-private-package-feeds/ |
28 | | ENF-2 | Enforce usage of a curated OSS feed that enhances the trust of your OSS | L3 | Enforce that “OpenSSF Package Analysis” was run via GitLab [Scan Execution Policies](https://docs.gitlab.com/ee/user/application_security/policies/scan-execution-policies.html) |
29 | | REB-1 | Rebuild the OSS in a trusted build environment, or validate that it is reproducibly built | L4 | Vet or validate tools that you use in your pipeline. This accounts for closed source scenarios as well. |
30 | | REB-2 | Digitally sign the OSS you rebuild | L4 | |
31 | | REB-3 | Generate SBOMs for OSS that you rebuild | L4 | |
32 | | REB-4 | Digitally sign the SBOMs you produce | L4 | |
33 | | FIX-1 | Implement a change in the code to address a zero-day vulnerability, rebuild, deploy to your organization, and confidentially contribute the fix to the upstream maintainer | L4 | |
34 |
35 |
36 |
37 |
--------------------------------------------------------------------------------
/Reference_implementation/GitHub.md:
--------------------------------------------------------------------------------
1 | # Suggested Reference Implementation for GitHub open source projects
2 |
3 | The goal of this document is to show how far a GitHub project can get using as much native tooling as possible toward achieving up to maturity level 3 for the Secure Supply Chain Consumption Framework (S2C2F).
4 |
5 | The community helps maintain these suggested methods of implementing the requirements, and will be updated over time.
6 |
7 | | Requirement ID | Requirement Title | Maturity Level | Reference Implementation in GitHub |
8 | | --- | --- | --- | --- |
9 | | ING-1 | Use public package managers trusted by your organization | L1 | Ex. npmjs.org, DockerHub |
10 | | ING-2 | Use an OSS binary repository manager solution | L1 | GitHub Packages |
11 | | ING-3 | Have a Deny List capability to block known malicious OSS from being consumed | L3 | a Deny list can be achieved through [Dependency Review action](https://josh-ops.com/posts/dependency-review-action/). You must create a branch protection rule for your default branch, and select "Require status checks to pass before merging" box. If a component has vulnerabilities, this part of the build will fail. And GitHub now auto-creates CVEs for malicious components, so this is in-effect your Deny List. |
12 | | ING-4 | Mirror a copy of all OSS source code to an internal location | L3 | [Duplicate a repository](https://docs.github.com/en/repositories/creating-and-managing-repositories/duplicating-a-repository) |
13 | | SCA-1 | Scan OSS for known vulnerabilities | L1 | Recommend using [GitHub dependency graph](https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph) for your repo for scanning vulns |
14 | | SCA-2 | Scan OSS for licenses | L1 | Recommend configuring [Dependency Review](https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/configuring-dependency-review#configuring-the-dependency-review-github-action) for license management |
15 | | SCA-3 | Scan OSS to determine if its end-of-life | L2 | [OpenSSF Scorecard](https://github.com/ossf/scorecard) - actively maintained (inactivity for X years). Security Insights (Luigi) |
16 | | SCA-4 | Scan OSS for malware | L3 | [OpenSSF Package Analysis](https://github.com/ossf/package-analysis) |
17 | | SCA-5 | Perform proactive security review of OSS | L3 | Proactive security scans will be done out-of-band from a build. Usually it's an action that can be taken on cloned source |
18 | | INV-1 | Maintain an automated inventory of all OSS used in development | L1 | [GitHub Dependency Graph](https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph) |
19 | | INV-2 | Have an OSS Incident Response Plan | L2 | Write one - be focused on how to roll back versions of OSS |
20 | | UPD-1 | Update vulnerable OSS manually | L1 | |
21 | | UPD-2 | Enable automated OSS updates | L2 | [Dependabot](https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts) |
22 | | UPD-3 | Display OSS vulnerabilities as comments in Pull Requests (PRs) | L2 | [Dependency Review](https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review) via [GHAS](https://docs.github.com/en/enterprise-server@3.4/get-started/learning-about-github/about-github-advanced-security) |
23 | | AUD-1 | Verify the provenance of your OSS | L3 | Repo it came from and commit hash from where it came. GitBOM? SBOM? |
24 | | AUD-2 | Audit that developers are consuming OSS through the approved ingestion method | L2 | An index methodology to identify the OSS code undeclared. Searching for Copyright and != your company name |
25 | | AUD-3 | Validate integrity of the OSS that you consume into your build | L2 | This is usually performed by the language package client |
26 | | AUD-4 | Validate SBOMs of OSS that you consume into your build | L4 | |
27 | | ENF-1 | Securely configure your package source files (i.e. nuget.config, .npmrc, pip.conf, pom.xml, etc.) | L2 | https://azure.microsoft.com/en-us/resources/3-ways-to-mitigate-risk-using-private-package-feeds/ |
28 | | ENF-2 | Enforce usage of a curated OSS feed that enhances the trust of your OSS | L3 | Enforce a [branch protection rule](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests) to enforce that “OpenSSF Package Analysis” was run |
29 | | REB-1 | Rebuild the OSS in a trusted build environment, or validate that it is reproducibly built | L4 | |
30 | | REB-2 | Digitally sign the OSS you rebuild | L4 | |
31 | | REB-3 | Generate SBOMs for OSS that you rebuild | L4 | |
32 | | REB-4 | Digitally sign the SBOMs you produce | L4 | |
33 | | FIX-1 | Implement a change in the code to address a zero-day vulnerability, rebuild, deploy to your organization, and confidentially contribute the fix to the upstream maintainer | L4 | |
34 |
--------------------------------------------------------------------------------
/Contributing.md:
--------------------------------------------------------------------------------
1 | # Community Specification Contribution Policy 1.0
2 |
3 | This document provides the contribution policy for specifications and other documents developed using the Community Specification process in a repository (each a “Working Group”). Additional or alternate contribution policies may be adopted and documented by the Working Group.
4 |
5 | ## 1. Contribution Guidelines.
6 |
7 | This Working Group accepts contributions via pull requests. The following section outlines the process for merging contributions to the specification
8 |
9 | **1.1. Issues.** Issues are used as the primary method for tracking anything to do with this specification Working Group.
10 |
11 | **1.1.1. Issue Types.** There are three types of issues (each with their own corresponding label):
12 |
13 | **1.1.1.1. Discussion.** These are support or functionality inquiries that we want to have a record of for future reference. Depending on the discussion, these can turn into "Spec Change" issues.
14 |
15 | **1.1.1.2. Proposal.** Used for items that propose a new ideas or functionality that require a larger discussion. This allows for feedback from others before a specification change is actually written. All issues that are proposals should both have a label and an issue title of "Proposal: [the rest of the title]." A proposal can become a "Spec Change" and does not require a milestone.
16 |
17 | **1.1.1.3. Spec Change:** These track specific spec changes and ideas until they are complete. They can evolve from "Proposal" and "Discussion" items, or can be submitted individually depending on the size. Each spec change should be placed into a milestone.
18 |
19 | ## 2. Issue Lifecycle.
20 |
21 | The issue lifecycle is mainly driven by the Maintainer. All issue types follow the same general lifecycle. Differences are noted below.
22 |
23 | **2.1. Issue Creation.**
24 |
25 | **2.2. Triage.**
26 |
27 | o The Editor in charge of triaging will apply the proper labels for the issue. This includes labels for priority, type, and metadata.
28 |
29 | o (If needed) Clean up the title to succinctly and clearly state the issue. Also ensure that proposals are prefaced with "Proposal".
30 |
31 | **2.3. Discussion.**
32 |
33 | o "Spec Change" issues should be connected to the pull request that resolves it.
34 |
35 | o Whoever is working on a "Spec Change" issue should either assign the issue to themselves or make a comment in the issue saying that they are taking it.
36 |
37 | o "Proposal" and "Discussion" issues should stay open until resolved.
38 |
39 | **2.4. Issue Closure.**
40 |
41 | ## 3. How to Contribute a Patch.
42 |
43 | The Working Group uses pull requests to track changes. To submit a change to the specification:
44 |
45 | **3.1 Fork the Repo, modify the Specification to Address the Issue.**
46 |
47 | **3.2. Submit a Pull Request.**
48 |
49 | ## 4. Pull Request Workflow.
50 |
51 | The next section contains more information on the workflow followed for Pull Requests.
52 |
53 | **4.1. Pull Request Creation.**
54 |
55 | o We welcome pull requests that are currently in progress. They are a great way to keep track of important work that is in-flight, but useful for others to see. If a pull request is a work in progress, it should be prefaced with "WIP: [title]". You should also add the wip label Once the pull request is ready for review, remove "WIP" from the title and label.
56 |
57 | o It is preferred, but not required, to have a pull request tied to a specific issue. There can be circumstances where if it is a quick fix then an issue might be overkill. The details provided in the pull request description would suffice in this case.
58 |
59 | **4.2. Triage**
60 |
61 | o The Editor in charge of triaging will apply the proper labels for the issue. This should include at least a size label, a milestone, and awaiting review once all labels are applied.
62 |
63 | **4.3. Reviewing/Discussion.**
64 |
65 | o All reviews will be completed using the review tool.
66 |
67 | o A "Comment" review should be used when there are questions about the spec that should be answered, but that don't involve spec changes. This type of review does not count as approval.
68 |
69 | o A "Changes Requested" review indicates that changes to the spec need to be made before they will be merged.
70 |
71 | o Reviewers should update labels as needed (such as needs rebase).
72 |
73 | o When a review is approved, the reviewer should add LGTM as a comment.
74 |
75 | o Final approval is required by a designated Editor. Merging is blocked without this final approval. Editors will factor reviews from all other reviewers into their approval process.
76 |
77 | **4.4. Responsive.** Pull request owner should try to be responsive to comments by answering questions or changing text. Once all comments have been addressed, the pull request is ready to be merged.
78 |
79 | **4.5. Merge or Close.**
80 |
81 | o A pull request should stay open until a Maintainer has marked the pull request as approved.
82 |
83 | o Pull requests can be closed by the author without merging.
84 |
85 | o Pull requests may be closed by a Maintainer if the decision is made that it is not going to be merged.
86 |
--------------------------------------------------------------------------------
/Code of Conduct.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | We as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
6 |
7 | We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community.
8 |
9 | ## Our Standards
10 |
11 | Examples of behavior that contributes to a positive environment for our community include:
12 |
13 | * Demonstrating empathy and kindness toward other people
14 | * Being respectful of differing opinions, viewpoints, and experiences
15 | * Giving and gracefully accepting constructive feedback
16 | * Accepting responsibility and apologizing to those affected by our mistakes, and learning from the experience
17 | * Focusing on what is best not just for us as individuals, but for the overall community
18 |
19 | Examples of unacceptable behavior include:
20 |
21 | * The use of sexualized language or imagery, and sexual attention or advances of any kind
22 | * Trolling, insulting or derogatory comments, and personal or political attacks
23 | * Public or private harassment
24 | * Publishing others' private information, such as a physical or email address, without their explicit permission
25 | * Other conduct which could reasonably be considered inappropriate in a professional setting
26 |
27 | ## Enforcement Responsibilities
28 |
29 | Community leaders are responsible for clarifying and enforcing our standards of acceptable behavior and will take appropriate and fair corrective action in response to any behavior that they deem inappropriate, threatening, offensive, or harmful.
30 |
31 | Community leaders have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, and will communicate reasons for moderation decisions when appropriate.
32 |
33 | ## Scope
34 |
35 | This Code of Conduct applies within all community spaces, and also applies when an individual is officially representing the community in public spaces. Examples of representing our community include using an official e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event.
36 |
37 | ## Enforcement
38 |
39 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders responsible for enforcement as set forth in the repository's Notices.md file. All complaints will be reviewed and investigated promptly and fairly.
40 |
41 | All community leaders are obligated to respect the privacy and security of the reporter of any incident.
42 |
43 | ## Enforcement Guidelines
44 |
45 | Community leaders will follow these Community Impact Guidelines in determining the consequences for any action they deem in violation of this Code of Conduct:
46 |
47 | ### 1. Correction
48 |
49 | **Community Impact**: Use of inappropriate language or other behavior deemed unprofessional or unwelcome in the community.
50 |
51 | **Consequence**: A private, written warning from community leaders, providing clarity around the nature of the violation and an explanation of why the behavior was inappropriate. A public apology may be requested.
52 |
53 | ### 2. Warning
54 |
55 | **Community Impact**: A violation through a single incident or series of actions.
56 |
57 | **Consequence**: A warning with consequences for continued behavior. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period of time. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban.
58 |
59 | ### 3. Temporary Ban
60 |
61 | **Community Impact**: A serious violation of community standards, including sustained inappropriate behavior.
62 |
63 | **Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period of time. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban.
64 |
65 | ### 4. Permanent Ban
66 |
67 | **Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behavior, harassment of an individual, or aggression toward or disparagement of classes of individuals.
68 |
69 | **Consequence**: A permanent ban from any sort of public interaction within the project community.
70 |
71 | ## Attribution
72 |
73 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 2.0,
74 | available at https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
75 |
76 | Community Impact Guidelines were inspired by [Mozilla's code of conduct enforcement ladder](https://github.com/mozilla/diversity).
77 |
78 | [homepage]: https://www.contributor-covenant.org
79 |
80 | For answers to common questions about this code of conduct, see the FAQ at
81 | https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/translations.
82 |
--------------------------------------------------------------------------------
/FAQ.md:
--------------------------------------------------------------------------------
1 | # Frequently Asked Questions
2 |
3 | Below are some frequently asked questions regarding the Framework. If you have further questions, feel free to start a discussion by opening an [Issue](https://github.com/ossf/s2c2f/issues).
4 |
5 | - [What is the Secure Supply Chain Consumption Framework (S2C2F)?](#what-is-the-secure-supply-chain-consumption-framework-s2c2f)
6 | - [What does this Framework focus on securing?](#what-does-this-framework-focus-on-securing)
7 | - [How do you define OSS?](#how-do-you-define-OSS)
8 | - [Why should I use the S2C2F?](#why-should-i-use-the-s2c2f)
9 | - [What is this Framework not?](#what-is-this-framework-not)
10 | - [Why is this Framework focused on open source?](#why-is-this-framework-focused-on-open-source)
11 | - [How does this Framework relate to other supply chain security specifications like SLSA?](#how-does-this-framework-relate-to-other-supply-chain-security-specifications-like-slsa)
12 | - [What is the difference between the SCA-5 and FIX-1 requirements?](#what-is-the-difference-between-the-SCA-5-and-FIX-1-requirements)
13 | - [Is the SCA-3 requirement only about the end of an open source project, or is it also about the end of support of a branch in the project used by a product?](#is-the-sca-3-requirement-only-about-the-end-of-an-open-source-project-or-is-it-also-about-the-end-of-support-of-a-branch-in-the-project-used-by-a-product)
14 | - [Is the UPD-3 requirement to add a reference to the known vulnerabilities in the pull requests intending to fix these vulnerabilities? What is the "Two-person PR reviews are enforced" prerequisite?](#is-the-upd-3-requirement-to-add-a-reference-to-the-known-vulnerabilities-in-the-pull-requests-intending-to-fix-these-vulnerabilities-what-is-the-two-person-pr-reviews-are-enforced-prerequisite)
15 | - [Is the ENF-1 requirement about properly configuring the allowed repositories into package managers?](#is-the-enf-1-requirement-about-properly-configuring-the-allowed-repositories-into-package-managers)
16 |
17 | ## About the framework
18 |
19 | ### What is the Secure Supply Chain Consumption Framework (S2C2F)?
20 | The S2C2F is a combination of processes and tools for any organization to adopt to help establish a secure OSS ingestion process to protect developers from OSS Supply Chain threats and to help establish a governance program to manage your organization’s use of OSS. The framework is based on three core concepts: control all artifact inputs, continuous process improvement, and scale.
21 |
22 | ### What does this Framework focus on securing?
23 | This framework focuses on securing OSS dependencies like PyPI, Maven, NuGet, npm, etc. The implementation guide does not apply to containers, but the 8 high level practices do. For further container guidance, please refer to the [Cloud Native Computing Foundation (CNCF) projects](https://www.cncf.io/projects/).
24 |
25 | ### How do you define OSS?
26 | Open Source Software, as adopted from [The Free Software Definition](https://en.wikipedia.org/wiki/The_Free_Software_Definition), is software that ensures that the end users have freedom in using, studying, sharing and modifying that software. For more details about the definition of Open Source Software (OSS), see [The Open Source Definition](https://opensource.org/osd/).
27 |
28 | ### Why should I use the S2C2F?
29 | Our framework provides the support and implementation guidance to protect your supply chains and prevent open source software threats from compromising your organization’s software and development environment. The framework includes solution-agonistic practices – suited for individuals like compliance/risk managers, security managers, engineering managers, and Chief Information Security Officers – plus an implementation guide with recommended tooling – suited for software developers, Continuous Integration and Continuous Development administrators, and security practitioners.
30 |
31 | ### What is this Framework not?
32 | The S2C2F does not provide guidance on how to secure your DevOps workflows, how to secure your build infrastructure, how to secure the code you author, or how to secure your containers.
33 |
34 | ### Why is this Framework focused on open source?
35 | Across the software industry today, developers are using and relying upon OSS components to expedite developer productivity and innovation – which makes OSS a critical piece of any software’s supply chain. However, cyberattacks that specifically target open source are growing at an exponential rate, as they are trying to abuse these package manager ecosystems to either distribute their own malicious components or to compromise existing OSS components.
36 |
37 | ### How does this Framework relate to other supply chain security specifications like SLSA?
38 | The S2C2F is focused on securely consuming OSS and makes an excellent bridge to other producer-focused supply chain security frameworks, such as SLSA.
39 |
40 | ## Requirements
41 |
42 | ### What is the difference between the SCA-5 and FIX-1 requirements?
43 | `SCA-5: Perform proactive security review of OSS - Identify zero-day vulnerabilities and confidentially contribute fixes back to the upstream maintainer.`
44 |
45 | SCA-5 requirement is simply that your organization is performing proactive security reviews of OSS and helping improve the security of the entire ecosystem by partnering with the upstream maintainer (confidentially - outside of public GitHub issues via [private security notifications](https://docs.github.com/en/code-security/security-advisories/guidance-on-reporting-and-writing/privately-reporting-a-security-vulnerability)) and suggesting a fix.
46 |
47 | `FIX-1: Implement a change in the code to address a zero-day vulnerability, rebuild, deploy to your organization, and confidentially contribute the fix to the upstream maintainer - To be used only in extreme circumstances when the risk is too great and to be used temporarily until the upstream maintainer issues a fix.`
48 |
49 | FIX-1 is when you come across a zero-day vulnerability that is so severe that your organization feels that they can't wait for the upstream maintainer to issue a public fix. The only other action would be to implement a private fix (just for your team/organization) while you continue trying to partner with the upstream maintainer on a public fix. A private fix should always be considered a temporary risk reduction measure for extreme circumstances, as your team/organization should plan to convert to the public fix once available.
50 |
51 | ### Is the SCA-3 requirement only about the end of an open source project, or is it also about the end of support of a branch in the project used by a product?
52 |
53 | Scanning for end of support entails scanning for all of the above to understand if anything consumed is no longer supported. Consumers of open source may want to know if a product is no longer supported or even if a specific version range is unsupported. The point is to identify if anything consumed is no longer supported. It is vital to know if any dependency is unsupported as this can create gaps in security since dependencies won't get patched and attackers can take advantage of the lack of support.
54 |
55 | ### Is the UPD-3 requirement to add a reference to the known vulnerabilities in the pull requests intending to fix these vulnerabilities? What is the "Two-person PR reviews are enforced" prerequisite?
56 |
57 | Including references to known vulnerabilities in pull requests prevents vulnerabilities from being unknowingly introduced earlier in the DevOps lifecycle. This requirement should be exercised when a developer adds new dependencies at pull request time. The prerequisite of "two-person PR reviews" means that manual pull request reviews are conducted by at least one reviewer separate from the person the developed the code so that they see and remediate the vulnerabilities prior to approving and merging the pull request.
58 |
59 | ### Is the ENF-1 requirement about properly configuring the allowed repositories into package managers?
60 |
61 | ENF-1 is about hardening package source file configuration to prevent mix-and-match attacks through dependencies being sourced from multiple registries or otherwise not using the expected version. How to do it varies by environment (OSS developer, indie, enterprise) and ecosystem (Python, npm, etc).
62 |
--------------------------------------------------------------------------------
/governance/Governance.md:
--------------------------------------------------------------------------------
1 | # Community Specification Governance Policy 1.0
2 |
3 | This document provides the governance policy for specifications and other documents developed using the Community Specification process in a repository (each a “Working Group”). Each Working Group and must adhere to the requirements in this document.
4 |
5 | ## 1. Roles.
6 |
7 | Each Working Group may include the following roles. Additional roles may be adopted and documented by the Working Group.
8 |
9 | **1.1. Maintainer.** "Maintainers" are responsible for organizing activities around developing, maintaining, and updating the specification(s) and other assets developed by the Project. Maintainers are also responsible for determining consensus and coordinating appeals. Examples of the responsibility of a Maintainer (directly or by delegation) include:
10 |
11 |
leading workstream meetings and tracking progress
12 | setting the agenda, scheduling meetings and keeping minutes
13 | actively engaging with the proposals process, both in GitHub issues and the slsa-proposals repo
14 | triaging and prioritizing issues
15 | contributing and reviewing pull requests
16 | manage the day-to-day planning, operation, organization, deliverables and alignment with other workstreams
17 | coordinating efforts with the Steering Committee, other workstreams and other external projects
18 | ensuring that the contents of their workstream's materials accurately reflect the decisions that have been made by the group, and that the specification adheres to formatting and content guidelines
19 |
20 | A Contributor may become a Maintainer with the Approval of the Steering Committee. A Maintainer may be removed with the Approval of the Steering Committee. A Steering Committee Member may not deliberate or vote on their own appointment or removal as a Maintainer.
21 |
22 | **1.2. Editor.** “Editors” are responsible for ensuring that the contents of the document accurately reflect the decisions that have been made by the group, and that the specification adheres to formatting and content guidelines. Each Working Group will designate an Editor for that Working Group. A Working Group may select a new Editor upon Approval of the Working Group Participants.
23 |
24 | **1.3. Participants.** “Participants” are those that have made Contributions to the Working Group subject to the Community Specification License.
25 |
26 | **1.4. Steering Committee Members.** The "Steering Committee" is the body that is responsible for overseeing the overall activities of the Project. The Steering Committee consists of up to 7 Participants (each, a "Steering Committee Member") and will initially consist of the Steering Committee Members so designated as of the date of initial adoption of this S2C2F Governance Policy. The Steering Committee will meet regularly as needed, but no less then once per quarter. Examples of the responsibilities of the Steering Committee include:
27 |
28 | enabling the smooth running of the Project
29 | coordinating activities between workstreams and Maintainers
30 | collectively reviewing and revising the roadmap on a biannual basis
31 | participating in strategic planning, such as coordinating face-to-face meetings or suggesting and approving changes to the governance model
32 | creating or restructuring workstreams
33 | responding to specific issues or concerns above and beyond the domain of the various workstreams
34 | making decisions when community consensus cannot be reached, pursuant to the appeal process documented below
35 |
36 | **1.5. Steering Committee Member Terms.** During the initial year, the Steering Committee Members will agree on grouping themselves into two groups, one to serve an initial two-year term, and the other for an initial one-year term. Thereafter, the Steering Committee Members will serve two year terms.
37 |
38 | At the expiration of a Steering Committee Member term, any Participant may submit a nomination to fill the seat. An individual may be nominated for and serve any number of successive terms.
39 |
40 | If a Steering Committee Member resigns or ceases to participate for a significant period of time prior to the end of their term, the remaining Steering Committee Members may choose to remove that Steering Committee Member. If so, the remaining Steering Committee Members will determine whether and when to fill the role.
41 |
42 | The Steering Committee may add additional Steering Committee Members as it deems necessary.
43 |
44 | After discussion with the nominees for a vacant seat, the Steering Committee will select the new Steering Committee Members from the group of nominees taking into account such things as the nominees’ willingness to take on the role, skills, and level of participation as well as the need to maintain a balanced perspective on the Steering Committee (e.g., no more than two people from the same group of related companies should be on the Steering Committee). A Steering Committee Member nominee may not deliberate or vote on their own appointment.
45 |
46 | ## 2. Decision Making.
47 |
48 | **2.1. Consensus-Based Decision Making.** Working Groups make decisions through a consensus process (“Approval” or “Approved”). While the agreement of all Participants is preferred, it is not required for consensus. Rather, the Maintainer will determine consensus based on their good faith consideration of a number of factors, including the dominant view of the Working Group Participants and nature of support and objections. The Maintainer will document evidence of consensus in accordance with these requirements.
49 |
50 | **2.2. Appeal Process.** Decisions may be appealed be via a pull request or an issue, and that appeal will be considered by the Maintainer in good faith, who will respond in writing within a reasonable time.
51 |
52 | **2.3. Steering Committee Appeal Process.** Decisions that have been appealed to the Maintainers may in extraordinary cases be appealed to the Steering Committee for reconsideration. An appeal to the Steering Committee must specify in detail (1) the specific decision that is being appealed; (2) the basis for contending that the decision was not aligned with the purposes, goals or scope of the Project; and (3) an explanation of why the decision is extraordinary enough to warrant an appeal to the Steering Committee. The appeal will be considered by the Steering Committee in good faith, who will respond in writing within a reasonable time. The Steering Committee may decline to consider appeals that are unexceptional, unfounded or excessive, including because of their repetitive character.
53 |
54 | **2.4. Amendments to Governance Documents.** The documents in this Governance repository may be amended by a two-thirds vote of the entire Steering Committee and are subject to approval by The Linux Foundation. However, entries may be added to the Notices file in this Governance repository as described therein.
55 |
56 | ## 3. Ways of Working.
57 |
58 | Inspired by [ANSI’s Essential Requirements for Due Process](https://share.ansi.org/Shared%20Documents/Standards%20Activities/American%20National%20Standards/Procedures,%20Guides,%20and%20Forms/2020_ANSI_Essential_Requirements.pdf), Community Specification Working Groups must adhere to consensus-based due process requirements. These requirements apply to activities related to the development of consensus for approval, revision, reaffirmation, and withdrawal of Community Specifications. Due process means that any person (organization, company, government agency, individual, etc.) with a direct and material interest has a right to participate by: a) expressing a position and its basis, b) having that position considered, and c) having the right to appeal. Due process allows for equity and fair play. The following constitute the minimum acceptable due process requirements for the development of consensus.
59 |
60 | **3.1. Openness.** Participation shall be open to all persons who are directly and materially affected by the activity in question. There shall be no undue financial barriers to participation. Voting membership on the consensus body shall not be conditional upon membership in any organization, nor unreasonably restricted on the basis of technical qualifications or other such requirements. Membership in a Working Group’s parent organization, if any, may be required.
61 |
62 | **3.2. Lack of Dominance.** The development process shall not be dominated by any single interest category, individual or organization. Dominance means a position or exercise of dominant authority, leadership, or influence by reason of superior leverage, strength, or representation to the exclusion of fair and equitable consideration of other viewpoints.
63 |
64 | **3.3. Balance.** The development process should have a balance of interests. Participants from diverse interest categories shall be sought with the objective of achieving balance.
65 |
66 | **3.4. Coordination and Harmonization.** Good faith efforts shall be made to resolve potential conflicts between and among deliverables developed under this Working Group and existing industry standards.
67 |
68 | **3.5. Consideration of Views and Objections.** Prompt consideration shall be given to the written views and objections of all Participants.
69 |
70 | **3.6. Written procedures.** This governance document and other materials documenting the Community Specification development process shall be available to any interested person.
71 |
72 | ## 4. Specification Development Process.
73 |
74 | **4.1. Draft.** During the specification development process, Participants may submit issues and pull requests to a S2C2F specification repository. Pull requests will be merged upon Approval of the applicable Maintainers. Each updated version of the specification following the merging of a pull request will be considered a "Draft Specification".
75 |
76 | **4.2. Project Approval.** Upon the determination by the applicable workstream that it has achieved the objectives for its specification as described in the Scope, the applicable Maintainers will Approve that Draft Specification as a candidate for "Approved Specification" status. The following process will then be used:
77 |
78 | The Maintainers will distribute that version of the Draft Specification to the Project's primary mailing list.
79 | The Maintainers will state in the distribution that the Draft Specification is a candidate for "Approved Specification" status, and will announce the start of a two-week review period (the "Review Period").
80 | During the Review Period, Participants may raise any issues regarding the Draft Specification. Such issues will be considered and resolved in the ordinary course.
81 | The Maintainers may, in their discretion, extend the Review Period for a longer period of time, but will not shorten it to be less than the initial two-week period.
82 | After the completion of the Review Period and upon the Approval of the Project (which may include the absence of, or resolution in the ordinary course of, any issues raised during the Review Period), the Draft Specification will be progressed to be an "Approved Specification".
83 |
84 | **4.3. Publication and Submission.** Upon the designation of a Draft Specification as an Approved Specification, the Maintainers will publish the Approved Specification in a manner agreed upon by the Project Participants (i.e., Project Participant only location, publicly available location, Project maintained website, Project member website, etc.). The publication of an Approved Specification in a publicly accessible manner must include the terms under which the Approved Specification is being made available.
85 |
86 | **4.4. Submissions to Standards Bodies.** No Draft Specification or Approved Specification may be submitted to another standards development organization without Project Approval. Upon reaching Approval, the Maintainers will coordinate the submission of the applicable Draft Specification or Approved Specification to another standards development organization. The Project Participants that developed that Draft Specification or Approved Specification agree to grant the copyright rights necessary to make those submissions.
87 |
88 | ## 5. Non-Confidential, Restricted Disclosure.
89 |
90 | Information disclosed in connection with any Working Group activity, including but not limited to meetings, Contributions, and submissions, is not confidential, regardless of any markings or statements to the contrary. Notwithstanding the foregoing, if the Working Group is collaborating via a private repository, the Participants will not make any public disclosures of that information contained in that private repository without the Approval of the Working Group.
91 |
--------------------------------------------------------------------------------
/governance/Community_Specification_License_v1.md:
--------------------------------------------------------------------------------
1 | # Community Specification License 1.0
2 |
3 | **The Purpose of this License.** This License sets forth the terms under which 1) Contributor will participate in and contribute to the development of specifications, standards, best practices, guidelines, and other similar materials under this Working Group, and 2) how the materials developed under this License may be used. It is not intended for source code. Capitalized terms are defined in the License’s last section.
4 |
5 | **1. Copyright.**
6 |
7 | **1.1. Copyright License.** Contributor grants everyone a non-sublicensable, perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as expressly stated in this License) copyright license, without any obligation for accounting, to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute any materials it submits to the full extent of its copyright interest in those materials. Contributor also acknowledges that the Working Group may exercise copyright rights in the Specification, including the rights to submit the Specification to another standards organization.
8 |
9 | **1.2. Copyright Attribution.** As a condition, anyone exercising this copyright license must include attribution to the Working Group in any derivative work based on materials developed by the Working Group. That attribution must include, at minimum, the material’s name, version number, and source from where the materials were retrieved. Attribution is not required for implementations of the Specification.
10 |
11 | **2. Patents.**
12 |
13 | **2.1. Patent License.**
14 |
15 | **2.1.1. As a Result of Contributions.**
16 |
17 | **2.1.1.1. As a Result of Contributions to Draft Specifications.** Contributor grants Licensee a non-sublicensable, perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as expressly stated in this License) license to its Necessary Claims in 1) Contributor’s Contributions and 2) to the Draft Specification that is within Scope as of the date of that Contribution, in both cases for Licensee’s Implementation of the Draft Specification, except for those patent claims excluded by Contributor under Section 3.
18 |
19 | **2.1.1.2. For Approved Specifications.** Contributor grants Licensee a non-sublicensable, perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as expressly stated in this License) license to its Necessary Claims included the Approved Specification that are within Scope for Licensee’s Implementation of the Approved Specification, except for those patent claims excluded by Contributor under Section 3.
20 |
21 | **2.1.2. Patent Grant from Licensee.** Licensee grants each other Licensee a non-sublicensable, perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as expressly stated in this License) license to its Necessary Claims for its Implementation, except for those patent claims excluded under Section 3.
22 |
23 | **2.1.3. Licensee Acceptance.** The patent grants set forth in Section 2.1 extend only to Licensees that have indicated their agreement to this License as follows:
24 |
25 | **2.1.3.1. Source Code Distributions.** For distribution in source code, by including this License in the root directory of the source code with the Implementation;
26 |
27 | **2.1.3.2. Non-Source Code Distributions.** For distribution in any form other than source code, by including this License in the documentation, legal notices, via notice in the software, and/or other written materials provided with the Implementation; or
28 |
29 | **2.1.3.3. Via Notices.md.** By issuing pull request or commit to the Specification’s repository’s Notices.md file by the Implementer’s authorized representative, including the Implementer’s name, authorized individual and system identifier, and Specification version.
30 |
31 | **2.1.4. Defensive Termination.** If any Licensee files or maintains a claim in a court asserting that a Necessary Claim is infringed by an Implementation, any licenses granted under this License to the Licensee are immediately terminated unless 1) that claim is directly in response to a claim against Licensee regarding an Implementation, or 2) that claim was brought to enforce the terms of this License, including intervention in a third-party action by a Licensee.
32 |
33 | **2.1.5. Additional Conditions.** This License is not an assurance (i) that any of Contributor’s copyrights or issued patent claims cover an Implementation of the Specification or are enforceable or (ii) that an Implementation of the Specification would not infringe intellectual property rights of any third party.
34 |
35 | **2.2. Patent Licensing Commitment.** In addition to the rights granted in Section 2.1, Contributor agrees to grant everyone a no charge, royalty-free license on reasonable and non-discriminatory terms to Contributor’s Necessary Claims that are within Scope for:
36 | 1) Implementations of a Draft Specification, where such license applies only to those Necessary Claims infringed by implementing Contributor's Contribution(s) included in that Draft Specification, and
37 | 2) Implementations of the Approved Specification.
38 |
39 | This patent licensing commitment does not apply to those claims subject to Contributor’s Exclusion Notice under Section 3.
40 |
41 | **2.3. Effect of Withdrawal.** Contributor may withdraw from the Working Group by issuing a pull request or commit providing notice of withdrawal to the Working Group repository’s Notices.md file. All of Contributor’s existing commitments and obligations with respect to the Working Group up to the date of that withdrawal notice will remain in effect, but no new obligations will be incurred.
42 |
43 | **2.4. Binding Encumbrance.** This License is binding on any future owner, assignee, or party who has been given the right to enforce any Necessary Claims against third parties.
44 |
45 | **3. Patent Exclusion.**
46 |
47 | **3.1. As a Result of Contributions.** Contributor may exclude Necessary Claims from its licensing commitments incurred under Section 2.1.1 by issuing an Exclusion Notice within 45 days of the date of that Contribution. Contributor may not issue an Exclusion Notice for any material that has been included in a Draft Deliverable for more than 45 days prior to the date of that Contribution.
48 |
49 | **3.2. As a Result of a Draft Specification Becoming an Approved Specification.** Prior to the adoption of a Draft Specification as an Approved Specification, Contributor may exclude Necessary Claims from its licensing commitments under this Agreement by issuing an Exclusion Notice. Contributor may not issue an Exclusion Notice for patents that were eligible to have been excluded pursuant to Section 3.1.
50 |
51 | **4. Source Code License.** Any source code developed by the Working Group is solely subject the source code license included in the Working Group’s repository for that code. If no source code license is included, the source code will be subject to the MIT License.
52 |
53 | **5. No Other Rights.** Except as specifically set forth in this License, no other express or implied patent, trademark, copyright, or other rights are granted under this License, including by implication, waiver, or estoppel.
54 |
55 | **6. Antitrust Compliance.** Contributor acknowledge that it may compete with other participants in various lines of business and that it is therefore imperative that they and their respective representatives act in a manner that does not violate any applicable antitrust laws and regulations. This License does not restrict any Contributor from engaging in similar specification development projects. Each Contributor may design, develop, manufacture, acquire or market competitive deliverables, products, and services, and conduct its business, in whatever way it chooses. No Contributor is obligated to announce or market any products or services. Without limiting the generality of the foregoing, the Contributors agree not to have any discussion relating to any product pricing, methods or channels of product distribution, division of markets, allocation of customers or any other topic that should not be discussed among competitors under the auspices of the Working Group.
56 |
57 | **7. Non-Circumvention.** Contributor agrees that it will not intentionally take or willfully assist any third party to take any action for the purpose of circumventing any obligations under this License.
58 |
59 | **8. Representations, Warranties and Disclaimers.**
60 |
61 | **8.1. Representations, Warranties and Disclaimers.** Contributor and Licensee represents and warrants that 1) it is legally entitled to grant the rights set forth in this License and 2) it will not intentionally include any third party materials in any Contribution unless those materials are available under terms that do not conflict with this License. IN ALL OTHER RESPECTS ITS CONTRIBUTIONS ARE PROVIDED "AS IS." The entire risk as to implementing or otherwise using the Contribution or the Specification is assumed by the implementer and user. Except as stated herein, CONTRIBUTOR AND LICENSEE EXPRESSLY DISCLAIM ANY WARRANTIES (EXPRESS, IMPLIED, OR OTHERWISE), INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY, NON-INFRINGEMENT, FITNESS FOR A PARTICULAR PURPOSE, CONDITIONS OF QUALITY, OR TITLE, RELATED TO THE CONTRIBUTION OR THE SPECIFICATION. IN NO EVENT WILL ANY PARTY BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Any obligations regarding the transfer, successors in interest, or assignment of Necessary Claims will be satisfied if Contributor or Licensee notifies the transferee or assignee of any patent that it knows contains Necessary Claims or necessary claims under this License. Nothing in this License requires Contributor to undertake a patent search. If Contributor is 1) employed by or acting on behalf of an employer, 2) is making a Contribution under the direction or control of a third party, or 3) is making the Contribution as a consultant, contractor, or under another similar relationship with a third party, Contributor represents that they have been authorized by that party to enter into this License on its behalf.
62 |
63 | **8.2. Distribution Disclaimer.** Any distributions of technical information to third parties must include a notice materially similar to the following: “THESE MATERIALS ARE PROVIDED “AS IS.” The Contributors and Licensees expressly disclaim any warranties (express, implied, or otherwise), including implied warranties of merchantability, non-infringement, fitness for a particular purpose, or title, related to the materials. The entire risk as to implementing or otherwise using the materials is assumed by the implementer and user. IN NO EVENT WILL THE CONTRIBUTORS OR LICENSEES BE LIABLE TO ANY OTHER PARTY FOR LOST PROFITS OR ANY FORM OF INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER FROM ANY CAUSES OF ACTION OF ANY KIND WITH RESPECT TO THIS DELIVERABLE OR ITS GOVERNING AGREEMENT, WHETHER BASED ON BREACH OF CONTRACT, TORT (INCLUDING NEGLIGENCE), OR OTHERWISE, AND WHETHER OR NOT THE OTHER MEMBER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.”
64 |
65 | **9. Definitions.**
66 |
67 | **9.1. Affiliate.** “Affiliate” means an entity that directly or indirectly Controls, is Controlled by, or is under common Control of that party.
68 |
69 | **9.2. Approved Specification.** “Approved Specification” means the final version and contents of any Draft Specification designated as an Approved Specification as set forth in the accompanying Governance.md file.
70 |
71 | **9.3. Contribution.** “Contribution” means any original work of authorship, including any modifications or additions to an existing work, that Contributor submits for inclusion in a Draft Specification, which is included in a Draft Specification or Approved Specification.
72 |
73 | **9.4. Contributor.** “Contributor” means any person or entity that has indicated its acceptance of the License 1) by making a Contribution to the Specification, or 2) by entering into the Community Specification Contributor License Agreement for the Specification. Contributor includes its Affiliates, assigns, agents, and successors in interest.
74 |
75 | **9.5. Control.** “Control” means direct or indirect control of more than 50% of the voting power to elect directors of that corporation, or for any other entity, the power to direct management of such entity.
76 |
77 | **9.6. Draft Specification.** “Draft Specification” means all versions of the material (except an Approved Specification) developed by this Working Group for the purpose of creating, commenting on, revising, updating, modifying, or adding to any document that is to be considered for inclusion in the Approved Specification.
78 |
79 | **9.7. Exclusion Notice.** “Exclusion Notice” means a written notice made by making a pull request or commit to the repository’s Notices.md file that identifies patents that Contributor is excluding from its patent licensing commitments under this License. The Exclusion Notice for issued patents and published applications must include the Draft Specification’s name, patent number(s) or title and application number(s), as the case may be, for each of the issued patent(s) or pending patent application(s) that the Contributor is excluding from the royalty-free licensing commitment set forth in this License. If an issued patent or pending patent application that may contain Necessary Claims is not set forth in the Exclusion Notice, those Necessary Claims shall continue to be subject to the licensing commitments under this License. The Exclusion Notice for unpublished patent applications must provide either: (i) the text of the filed application; or (ii) identification of the specific part(s) of the Draft Specification whose implementation makes the excluded claim a Necessary Claim. If (ii) is chosen, the effect of the exclusion will be limited to the identified part(s) of the Draft Specification.
80 |
81 | **9.8. Implementation.** “Implementation” means making, using, selling, offering for sale, importing or distributing any implementation of the Specification 1) only to the extent it implements the Specification and 2) so long as all required portions of the Specification are implemented.
82 |
83 | **9.9. License.** “License” means this Community Specification License.
84 |
85 | **9.10. Licensee.** “Licensee” means any person or entity that has indicated its acceptance of the License as set forth in Section 2.1.3. Licensee includes its Affiliates, assigns, agents, and successors in interest.
86 |
87 | **9.11. Necessary Claims.** “Necessary Claims” are those patent claims, if any, that a party owns or controls, including those claims later acquired, that are necessary to implement the required portions (including the required elements of optional portions) of the Specification that are described in detail and not merely referenced in the Specification.
88 |
89 | **9.12. Specification.** “Specification” means a Draft Specification or Approved Specification included in the Working Group’s repository subject to this License, and the version of the Specification implemented by the Licensee.
90 |
91 | **9.13. Scope.** “Scope” has the meaning as set forth in the accompanying Scope.md file included in this Specification’s repository. Changes to Scope do not apply retroactively. If no Scope is provided, each Contributor’s Necessary Claims are limited to that Contributor’s Contributions.
92 |
93 | **9.14. Working Group.** “Working Group” means this project to develop specifications, standards, best practices, guidelines, and other similar materials under this License.
94 |
95 |
96 |
97 | *The text of this Community Specification License is Copyright 2020 Joint Development Foundation and is licensed under the Creative Commons Attribution 4.0 International License available at https://creativecommons.org/licenses/by/4.0/.*
98 |
99 | SPDX-License-Identifier: CC-BY-4.0
100 |
--------------------------------------------------------------------------------
/specification/framework.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | # Secure Supply Chain Consumption Framework (S2C2F) Simplified Requirements
4 |
5 | This document is provided "as-is." Information and views expressed in this document, including URL and other Internet Web site references, may change without notice. You bear the risk of using it.
6 |
7 | Some examples depicted herein are provided for illustration only and are fictitious. No real association or connection is intended or should be inferred.
8 |
9 | This document does not provide you with any legal rights to any intellectual property in any Microsoft product. You may copy and use this document for your internal, reference purposes.
10 |
11 | Licensed under [Community Specification License 1.0](https://github.com/CommunitySpecification/1.0)
12 |
13 | # Table of Contents
14 |
15 | - [Secure Supply Chain Consumption Framework (S2C2F) Simplified Requirements](#secure-supply-chain-consumption-framework-s2c2f-simplified-requirements)
16 | - [Table of Contents](#table-of-contents)
17 | - [Document Change Record](#document-change-record)
18 | - [Introduction](#introduction)
19 | - [About the Secure Supply Chain Consumption Framework](#about-the-secure-supply-chain-consumption-framework)
20 | - [What is the Secure Supply Chain Consumption Framework?](#what-is-the-secure-supply-chain-consumption-framework)
21 | - [Common OSS Supply Chain Threats](#common-oss-supply-chain-threats)
22 | - [Secure Supply Chain Consumption Framework Practices](#secure-supply-chain-consumption-framework-practices)
23 | - [Target Audience](#target-audience)
24 | - [Secure Supply Chain Consumption Framework Practices](#secure-supply-chain-consumption-framework-practices-1)
25 | - [_Practice 1: Ingest It_](#practice-1-ingest-it)
26 | - [_Practice 2: Scan It_](#practice-2-scan-it)
27 | - [_Practice 3: Inventory It_](#practice-3-inventory-it)
28 | - [_Practice 4: Update It_](#practice-4-update-it)
29 | - [_Practice 5: Audit It_](#practice-5-audit-it)
30 | - [_Practice 6: Enforce It_](#practice-6-enforce-it)
31 | - [_Practice 7: Rebuild It_](#practice-7-rebuild-it)
32 | - [_Practice 8: Fix It + Upstream_](#practice-8-fix-it--upstream)
33 | - [The Secure Supply Chain Consumption Framework Implementation Guide](#the-secure-supply-chain-consumption-framework-implementation-guide)
34 | - [Target Audience](#target-audience-1)
35 | - [Secure Supply Chain Consumption Framework Levels of Maturity](#secure-supply-chain-consumption-framework-levels-of-maturity)
36 | - [How to Assess Where Your Organization is in the Maturity Model?](#how-to-assess-where-your-organization-is-in-the-maturity-model)
37 | - [Secure Supply Chain Consumption Framework Requirements](#secure-supply-chain-consumption-framework-requirements)
38 | - [Secure Supply Chain Consumption Framework Tooling Availability](#secure-supply-chain-consumption-framework-tooling-availability)
39 | - [Implementing the Secure Supply Chain Consumption Framework by Level](#implementing-the-secure-supply-chain-consumption-framework-by-level)
40 | - [Conclusion](#conclusion)
41 | - [Appendix: Relation to SCITT](#appendix-relation-to-scitt)
42 | - [Appendix: Mapping Secure Supply Chain Consumption Framework Requirements to Other Specifications](#appendix-mapping-secure-supply-chain-consumption-framework-requirements-to-other-specifications)
43 | - [Appendix: References](#appendix-references)
44 |
45 | # Document Change Record
46 |
47 | | Date | Author | Version | Change Reference |
48 | | --- | --- | --- | --- |
49 | | 8/1/2022 | Adrian Diglio (Microsoft) | 1.0 | Initial release |
50 | | 10/19/2022 | Jasmine Wang (Microsoft) | 1.1 | Resolving issues [#5](https://github.com/microsoft/oss-ssc-framework/issues/5), [#6](https://github.com/microsoft/oss-ssc-framework/issues/6), [#7](https://github.com/microsoft/oss-ssc-framework/issues/7), [#9](https://github.com/microsoft/oss-ssc-framework/issues/9), [#1](https://github.com/ossf/s2c2f/issues/1). Replaced references to "Microsoft OSS SSC Framework" with "Secure Supply Chain Consumption Framework." |
51 |
52 | # Introduction
53 |
54 | The purpose of this paper is to illustrate the core concepts of the Secure Supply Chain Consumption Framework (S2C2F) to outline and define how to securely consume OSS dependencies, such as NuGet and NPM, into the developer's workflow. Open Source Software, as adopted from [The Free Software Definition](https://en.wikipedia.org/wiki/The_Free_Software_Definition), is software that ensures that the end users have freedom in using, studying, sharing and modifying that software. For more details about the definition of Open Source Software (OSS), see [The Open Source Definition](https://opensource.org/osd). This framework is applicable to OSS dependencies consumed into the developer's workflow, such as any source code, language package, module, component, container, library, or binary. This guide provides a dedicated framework to enhance any organization's OSS governance program to address supply chain threats specific to OSS consumption.
55 |
56 | OSS has become a critical aspect of any software supply chain. Across the software industry, developers are using and relying upon OSS components to expedite developer productivity and innovation. However, attackers are trying to abuse these package manager ecosystems to either distribute their own malicious components, or to compromise existing OSS components.
57 |
58 | This paper is split into two parts: a solution-agonistic set of practices and a maturity model-based implementation guide. The practices section should be utilized by individuals like Chief Information Security Officers (CISOs) and security, engineering, compliance/risk managers while the implementation guide should be utilized by software developers and other security practitioners.
59 |
60 | This paper presents:
61 |
62 | - An overview of the Secure Supply Chain Consumption Framework (S2C2F) Practices.
63 | - Common supply chain threats with examples and how the S2C2F can help.
64 | - An overview of the S2C2F Implementation Guide and Maturity Model.
65 | - A process for assessing your organization's maturity.
66 | - Detailed walkthrough of the S2C2F implementation requirements and tools.
67 | - A mapping of the S2C2F requirements to other specifications.
68 |
69 | The guidance provided in this paper is targeted toward organizations that do software development, that take a dependency on open source software, and that seek to improve the security of their software supply chain.
70 |
71 | # About the Secure Supply Chain Consumption Framework
72 |
73 | The Secure Supply Chain Consumption Framework (S2C2F) is a security assurance and risk reduction process that is focused on securing how developers consume open source software. As an initiative widely used across Microsoft since 2019, the S2C2F provides security guidance and tools throughout the developer inner-loop and outer-loop processes that have played a critical role in defending and preventing supply chain attacks through consumption of open source software. Using a threat-based risk-reduction approach, the goals of the S2C2F are to:
74 |
75 | 1. Provide a strong OSS governance program
76 | 2. Improve the Mean Time To Remediate (MTTR) for resolving known vulnerabilities in OSS
77 | 3. Prevent the consumption of compromised and malicious OSS packages
78 |
79 | The S2C2F (described later in this document) is modeled after three core concepts—_control all artifact inputs, continuous process improvement, and scale._
80 |
81 |
82 |
83 |
84 |
85 | - _Control All Artifact Inputs_: There are a myriad of ways that developers consume OSS today: git clone, wget, copy & pasted source, checking-in the binary into the repo, direct from public package managers, repackaging the OSS into a .zip, curl, apt-get, git submodule, and more. Securing the OSS supply chain in any organization is going to be near impossible if developer teams don't follow a uniform process for consuming OSS. Enforcing an effective secure OSS supply chain strategy necessitates standardizing your OSS consumption process across the various developer teams throughout your organization, so all developers consume OSS using governed workflows.
86 | - _Continuous Process Improvement_: To help guide organizations through continuous process improvement, we have organized the S2C2F into a maturity model. This helps organizations prioritize which requirements they should implement first. Since security risk is dynamic and new threats can emerge at any time, the S2C2F places heavy emphasis on understanding the new threats to the OSS supply chain and _requires_ regular evaluation of S2C2F controls and introduction of changes in response to new technology advancements or new threats.
87 | - _Scale_:The S2C2F tools were designed with scale in mind. Some organizations may attempt to secure their OSS ingestion process through a central internal registry that all developers within the organization are supposed to pull from. However, what if one developer chooses to pull straight from pypi.org or npmjs.com? Is there anything preventing them from doing so? A central internal registry also has the problem of requiring a team to manage the process and workflow, which is extra overhead. As such, the S2C2F tools were developed to secure how they consume OSS today at scale without requiring a central internal registry or central governance body.
88 |
89 | # What is the Secure Supply Chain Consumption Framework?
90 |
91 | The S2C2F Framework is a combination of requirements and tools for any organization to adopt. The Framework includes a capability maturity roadmap to help establish a secure OSS ingestion process to protect developers from OSS supply chain threats and to establish a strong governance program to manage your organization's use of OSS.
92 |
93 | # Common OSS Supply Chain Threats
94 |
95 | The S2C2F was designed based on known threats (i.e. tactics and techniques) used by adversaries to compromise OSS packages. The table below is a comprehensive compilation of OSS supply chain threats with links to real examples. It also identifies which S2C2F requirements mitigate the threat. To see the full list of requirements and their benefits, please see the [Secure Supply Chain Consumption Framework Requirements](#secure-supply-chain-consumption-framework-requirements) later in this document.
96 |
97 | For other sources of OSS threats, please see the following links:
98 |
99 | - [Threats, Risks, and Mitigations in the Open Source Ecosystem](https://github.com/ossf/wg-identifying-security-threats/blob/main/publications/threats-risks-mitigations/v1.1/Threats%2C%20Risks%2C%20and%20Mitigations%20in%20the%20Open%20Source%20Ecosystem%20-%20v1.1.pdf)
100 | - [Taxonomy of Attacks on Open-Source Software Supply Chains](https://arxiv.org/pdf/2204.04008.pdf)
101 | - [Software Supply Chain Threats](https://cloud.google.com/software-supply-chain-security/docs/attack-vectors)
102 |
103 | | **OSS Supply Chain Threat** | **Real Example** | **Mitigation via S2C2F Requirement** | **Mitigation via S2C2F Maturity Level** |
104 | | --- | --- | --- | --- |
105 | | Accidental vulnerabilities in OSS code or Containers that we inherit | [SaltStack](https://www.helpnetsecurity.com/2020/05/04/saltstack-salt-vulnerabilities/) | UPD-2
UPD-3 | L2 |
106 | | Intentional vulnerabilities/backdoors added to an OSS code base | [colors v1.4.1](https://snyk.io/blog/open-source-npm-packages-colors-faker/) | SCA-5 | L3 |
107 | | A malicious actor compromises a distribution mirror of a package | [phpMyAdmin](https://arstechnica.com/information-technology/2012/09/questions-abound-as-malicious-phpmyadmin-backdoor-found-on-sourceforge-site/) | AUD-3 | L2 |
108 | | A malicious actor compromises a known good OSS component and adds malicious code into the repo | [ESLint incident](https://eslint.org/blog/2018/07/postmortem-for-malicious-package-publishes) | ING-3
ENF-2
SCA-4 | L3 |
109 | | A malicious actor creates a malicious package that is similar in name to a popular OSS component to trick developers into downloading it | [Typosquatting](https://www.securityweek.com/checkmarx-finds-threat-actor-fully-automating-npm-supply-chain-attacks) | AUD-1
ENF-2
SCA-4 | L3 |
110 | | A malicious actor compromises the compiler used by the OSS during build, adding backdoors | [CCleaner](https://blog.morphisec.com/morphisec-discovers-ccleaner-backdoor) | REB-1 | L4 |
111 | | Dependency confusion, package substitution attacks | [Dependency Confusion](https://www.bleepingcomputer.com/news/security/copycats-imitate-novel-supply-chain-attack-that-hit-tech-giants/) | ENF-1
ENF-2 | L3 |
112 | | An OSS component adds new dependencies that are malicious | [Event-Stream incident](https://blog.npmjs.org/post/180565383195/details-about-the-event-stream-incident) | SCA-4
ENF-2 | L3 |
113 | | The integrity of an OSS package is tampered after build, but before consumption | [How to tamper with Electron apps](https://github.com/jonmest/How-To-Tamper-With-Any-Electron-Application) | AUD-3
AUD-4 | L4 |
114 | | Upstream source can be removed or taken down which can then break builds that depend on that OSS component or container | [left-pad](https://www.theregister.com/2016/03/23/npm_left_pad_chaos/) | ING-2
ING-4 | L3 |
115 | | OSS components reach end-of-support/end-of-life and therefore don't patch vulnerabilities | [log4net](https://github.com/apache/logging-log4net/) and [CVE-2018-1285](https://nvd.nist.gov/vuln/detail/CVE-2018-1285) | SCA-3 | L2 |
116 | | Vulnerability not fixed by upstream maintainer in desired timeframe | [Prototype Pollution in Lodash](https://hackerone.com/reports/712065) | FIX-1 | L4 |
117 | | Bad actor compromises a package manager account (e.g. npm) with no change to the corresponding open source repo and uploads a new malicious version of a package | [Ua-parser-js](https://www.truesec.com/hub/blog/uaparser-js-npm-package-supply-chain-attack-impact-and-response) | AUD-1
ENF-2
SCA-4 | L3 |
118 | | Upstream source code re-licensed which may pose legal risk or prevent practical upgrade paths when licenses are incompatible | [node-ipc license change to DBAD](https://snyk.io/blog/peacenotwar-malicious-npm-node-ipc-package-vulnerability/) | SCA-2 | L1 |
119 |
120 | # Secure Supply Chain Consumption Framework Practices
121 |
122 | ## Target Audience
123 |
124 | This section is a solution-agonistic description of what should be implemented to secure your organization's OSS supply chain. The guidance is useful to compliance/risk managers, security managers, engineering managers, and Chief Information Security Officers (CISOs).
125 |
126 | ## Secure Supply Chain Consumption Framework Practices
127 |
128 | ### _Practice 1: Ingest It_
129 |
130 | _I can ship any existing asset if external OSS sources are compromised or unavailable._
131 |
132 | **Sample threat scenarios addressed by this job:**
133 |
134 | - The Docker Hub repository becomes compromised
135 | - A team might be targeted by a dependency confusion attack
136 | - Cloud service itself is unavailable and we need access to OSS assets to restore it
137 | - A package becomes permanently unavailable (i.e. left-pad is removed)
138 |
139 | The first step towards securing a software supply chain is ensuring you control all the artifact inputs. To satisfy this practice, there are two ingestion mechanisms: one for packaged artifacts and one for source code artifacts.
140 |
141 | For **packaged artifacts**, we require ingestion into an artifact stores – Linux package repositories, artifact stores, OCI registries – to fully support _upstream sources_, which transparently proxy from the artifact store to an external source and save a copy of everything used from that source. When using a mix of internal and external packaged artifacts, it is important to secure your package source file configuration to protect yourself from dependency confusion attacks ([CVE-2021-24105](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-24105)).
142 |
143 | For **source code artifacts**, we require mirroring external source code repositories to an internal location. Mirroring the source in addition to caching packages locally is also useful for many reasons:
144 |
145 | - Business Continuity and Disaster Recovery (BCDR) purposes, so that your organization can take ownership of code if a critical dependency is removed from the upstream
146 | - Enables proactive security scans to look for backdoors and zero-day vulnerabilities
147 | - Enables your organization to contribute fixes back upstream
148 | - Enables your organization to perform fixes if needed (in extreme circumstances)
149 |
150 | ### _Practice 2: Scan It_
151 |
152 | _I know if any OSS artifact in my pipeline has vulnerabilities or malware._
153 |
154 | **Sample threat scenarios addressed by this job:**
155 |
156 | - A team tries to use an OSS package with a known vulnerability
157 | - A team is already using an OSS package believed to be secure, but a new vulnerability in that package is later publicly disclosed
158 | - A team tries to use an OSS package that is known to steal bitcoins (i.e. the _event-stream_ scenario)
159 | - A team tries to use an OSS package with a backdoor
160 |
161 | Once we control all artifact inputs, we must scan all inputs to trust them. This trust is built using scanners that look for vulnerabilities, malware, malicious or anomalous behavior, extraneous code, end-of-life notices, and other known or previously undiscovered issues (i.e. zero-day vulnerabilities).
162 |
163 | ### _Practice 3: Inventory It_
164 |
165 | _I know where OSS artifacts are deployed in production._
166 |
167 | **Sample threat scenarios addressed by this job:**
168 |
169 | - A critical vulnerability is discovered in log4j, and the incident response team wants to know all the production services using log4j so they can appropriately staff and coordinate a response effort
170 |
171 | Once we have ingested and scanned the artifacts entering the software supply chain, we must ensure that we have an inventory where each artifact is used, by knowing in which services it is deployed and in which products it was released. This is required for incident response scenarios so that teams affected by a compromised package can be contacted so the appropriate actions can be taken to remove the affected package.
172 |
173 | ### _Practice 4: Update It_
174 |
175 | _I can deploy updated external artifacts soon after an update becomes publicly available._
176 |
177 | **Sample threat scenarios addressed by this job:**
178 |
179 | - A team is currently using three different vulnerable NuGet packages and upgrading each package will be a substantial amount of work for the team. The team chooses to start by upgrading the most widely deployed package.
180 |
181 | Once we have ingested, scanned, and inventoried where each artifact is used, we can enable developers to _fix_ issues with artifacts that have already been used by knowing the supply chain processes that released the product/service that needs the fix.
182 |
183 | Given the [SaltStack incident](https://www.helpnetsecurity.com/2020/05/04/saltstack-salt-vulnerabilities/), where a vulnerability was exploited within 3 days after announcement, every organization should aspire to patch vulnerable OSS packages in under 72 hours so that you patch faster than the adversary can operate. Using tools such as Dependabot to auto-generate Pull Requests (PRs) to update vulnerable OSS become critical capabilities for securing your supply chain.
184 |
185 | ### _Practice 5: Audit It_
186 |
187 | _I can prove that every OSS artifact in production has a full chain-of-custody from the original artifact source and is consumed through the official supply chain._
188 |
189 | **Sample threat scenarios addressed by this job:**
190 |
191 | - A well-meaning but misguided developer bypasses the official engineering pipeline to update an OSS package directly in a release; however, this new version contains a known vulnerability
192 | - An attacker with network access intentionally bypasses the official engineering pipeline to deploy malware to a service
193 |
194 | Now that we have ingested, scanned, inventoried, and provided the ability to update any artifact that has come through the software supply chain properly, you must have the ability within your organization to audit OSS consumption to see if it's coming through the standardized consumption tools (such as a package repository solution) established by your organization.
195 |
196 | ### _Practice 6: Enforce It_
197 |
198 | _I can rely on secure and trusted OSS consumption within my organization._
199 |
200 | **Sample threat scenarios addressed by this job:**
201 |
202 | - A developer bypasses the official engineering pipeline to consume an OSS package with a known vulnerability
203 |
204 | All OSS artifacts must be consumed from organization-defined approved sources and through the official OSS consumption channels. The next step is to enable enforcement of the supply chain so that all artifacts that in any way impact a production service/release must come through the full supply chain. An example of enforcement is to reroute DNS traffic or configure builds to break if they try to consume OSS from untrusted sources.
205 |
206 | ### _Practice 7: Rebuild It_
207 |
208 | _I can rebuild from source code every OSS artifact I'm deploying._
209 |
210 | **Sample threat scenarios addressed by this job:**
211 |
212 | - A team uses a malicious OSS package with a hidden backdoor (which could happen via traditional exploitation, political influence, blackmail or even threats of violence); as a result, the package's binaries do not match its source code.
213 | - An attacker gains access to build infrastructure and modifies generated binaries during the build process; as a result, illicit changes can be injected in a manner that is essentially invisible to its original authors and users alike.
214 |
215 | Until now, we have assumed that we took our inputs at the beginning of the supply chain _as-is_: as the package, container, or other delivery vehicle provided by the author. For key artifacts that are business-critical and for all artifacts that are inputs to High Value Assets, this assumption may not be sufficient. Hence, the next step to secure the supply chain is creating a chain of custody _from the original source code_ for every artifact used to create a production service/release.
216 |
217 | The baseline REBUILD IT requirement is to enable developers who have a critical dependence on certain OSS components to ingest source code (including discovering the source code, which is not always linked to the built artifact), rebuild it (possibly developing build scripts along the way, if they're not part of the source code), make any post-build modifications (e.g. signing), cache the rebuilt artifact, and advertise the internally-rebuilt version's existence to other teams in the organization. One other potential method is the use of multiple third parties to build and come to consensus on a 'correct' artifact (e.g. [Reproducible Builds](https://reproducible-builds.org/)).
218 |
219 | ### _Practice 8: Fix It + Upstream_
220 |
221 | _I can privately patch, build, and deploy any external artifact within 3 days of harm notification and confidentially contribute the fix to the upstream maintainer._
222 |
223 | **Sample threat scenarios addressed by this job:**
224 |
225 | - A team has taken a dependency on a package; the package is later discovered to have a critical vulnerability and the maintainer needs help/more time to fix the issue
226 |
227 | **When To Use This:** _This is intended to be used only in extreme scenarios and for temporary risk mitigation. It should only be used when the upstream maintainer is unable to provide a public fix within an acceptable time for your Organization's risk tolerance. The first action any organization should take is to confidentially report the vulnerability to the upstream maintainer AND help suggest a fix_.
228 |
229 | Once we can rebuild any artifact used in the software supply chain, the final step is to be able to privately fix it while confidentially disclosing the vulnerability to the upstream maintainer. Assuming that the team that ingested the source and rebuilt the artifact has allowed PRs to their forked copy of the source and set up CI builds appropriately, then anyone needing to private fix a component can use the normal PR workflow. The only additional work needed is the ability to distribute the private fix as widely within the organization as is needed.
230 |
231 | Related to the note below, the implemented fix should be confidentially contributed to the upstream maintainer to give back to the community.
232 |
233 |
234 | > **📝 Important Note**
235 | >
236 | > The Fix It + Upstream practice should not be perceived as being at odds with supporting communities and projects. If an organization chooses to take a dependency on open source, they should also find ways to give back to the community. Microsoft suggests a number of different ways to contribute:
237 | > - Financial support and participating in foundations or even individual projects: [GitHub Sponsors](https://github.com/sponsors), [OpenCollective](https://opencollective.com/become-a-sponsor), etc.
238 | > - Bounty programs (such as [SOS Rewards](https://sos.dev/)) and sharing best practices and tools with projects around security
239 | > - Being present and participating in key open source projects to share fixes or expertise
240 | > - See Microsoft's approach toward contributing to open source for more ideas [Microsoft's Open Source Program | Microsoft Open Source](https://opensource.microsoft.com/program#program-contributing)
241 |
242 | # The Secure Supply Chain Consumption Framework Implementation Guide
243 |
244 | ## Target Audience
245 |
246 | This section details a maturity model, which splits the practices in the previous section into 4 levels to achieve. There is also a list of tools your organization can implement to meet each security level in the framework. The guidance is useful to software developers, Continuous Integration and Continuous Development (CI/CD) administrators, and security practitioners.
247 |
248 | ## Secure Supply Chain Consumption Framework Levels of Maturity
249 |
250 | When the S2C2F was first developed, the strategy to secure our OSS supply chain was comprised of 8 practices.
251 |
252 |
253 |
254 |
255 |
256 | Since all 8 practices cannot be reasonably implemented at the same time, the following maturity model organizes the requirements from each of the 8 practices into 4 different levels. It allows an organization to make incremental progress from their existing set of security capabilities toward a more secure defensive posture. Additionally, the maturity model considers different threats and themes at each Maturity Level.
257 |
258 | Depending on the projects and their criteria, you may have a mix of framework levels implemented across projects. Additionally, Level 4 of the Maturity Model has a high estimated cost to implement compared to the risk/reward, and therefore should be considered as an aspirational north star vision for your organization. While it is difficult to implement Level 4 at scale across your organization, it is feasible to implement Level 4 on your most critical dependencies for your most critical projects.
259 |
260 |
261 |
262 |
263 |
264 | **Level 1** – Using a package caching solution, performing an OSS inventory, plus scanning and updating OSS represents the most common set of OSS security capabilities across the software industry today.
265 |
266 | **Level 2** – This maturity level focuses on shifting security further left by improving ingestion configuration security, decreasing MTTR to patch OSS vulnerabilities, and responding to incidents. The SaltStack vulnerability in 2020 showed us that adversaries were able to start exploiting CVE-2020-11651 within 3 days of it being announced. Even though a patch was available, organizations were not able to patch their systems fast enough. Thus, a key component of this level leverages automation to help developers keep their OSS hygiene healthy and updated. The ideal goal is for organizations to be able to patch faster than attackers can operate.
267 |
268 | **Level 3** – Proactively performing security analysis on your organization's most used OSS components and reducing risk to consume malicious packages are the themes of this maturity level. Scanning for malware in OSS before the package is downloaded is key toward preventing compromise. Then, to perform proactive security analysis of OSS requires that an organization can clone the source code to an internal location. Proactive security analysis helps you look for not-yet-discovered vulnerabilities, as well as identifying other threat categories such as detecting backdoors.
269 |
270 | **Level 4** – This level is considered aspirational in most cases as it is difficult to implement at scale. Rebuilding OSS on trusted build infrastructure is a defensive step to ensure that the OSS was not compromised at build time. Build time attacks are performed by the most sophisticated adversaries and may not occur very frequently. Thus, this level of maturity is what's required to defend against the most sophisticated adversaries. Additionally, rebuilding OSS has many subtle technical challenges such as what to name the package to prevent collisions with upstream? How to make sure all developers use the internal package instead of the external? Rebuilding also enables you to implement fixes (if needed) and deploy them at scale across your organization.
271 |
272 | ## How to Assess Where Your Organization is in the Maturity Model?
273 |
274 | Any maturity assessment should be done at the Organization level, so that it assesses multiple different OSS consumption processes from across different development teams. Some teams may have more mature processes than others, even within a single organization, so it's best to perform a company-wide assessment to determine OSS consumption practices across a diverse set of software development teams. The steps to perform a Maturity Assessment are below:
275 |
276 | 1. **Prepare for Assessment**. The first step is to understand the concepts behind the S2C2F so you feel comfortable engaging with developers and engineers to inquire about their existing tools, capabilities, and workflows. Next, identify a good sample size of diverse development teams from across the company to interview.
277 | 2. **Perform the Assessment**. This is where you assess the organization's degree of maturity in software developer OSS management, security, and consumption processes. Here are a set of example questions that you can ask:
278 | 1. What tools do you use to evaluate the criticality of an open source project? (e.g. [criticality score](https://github.com/ossf/criticality_score))
279 | 2. What type of OSS do you consume in your project?(e.g. native C/C++, NuGet, PyPI, npm, etc.)
280 | 3. How are you consuming your OSS into your project? (e.g. Using a Package Cache solution such as Azure Artifacts, commands such as curl or git clone, checking in the OSS into the repo, etc.)
281 | 4. Where do you consume your OSS from? (e.g. NuGet.org, npmjs.com, pypi.org, etc.)
282 | 5. Do you use a mix of internal-only packages and external packages? (_This can make you susceptible to Dependency Confusion attacks_)
283 | 6. Does your package source file (e.g. nuget.config, pom.xml, pip.conf, etc.) contain multiple feeds in its configuration? (_This can make you susceptible to Dependency Confusion attacks_)
284 | 7. Do you do anything custom with how you consume OSS? (e.g. consuming private forks of projects, putting Golang components into a NuGet, etc.)
285 | 8. Does your project use package lock files? (e.g. [packages.lock.json](https://devblogs.microsoft.com/nuget/enable-repeatable-package-restores-using-a-lock-file/) for NuGet, [package-lock.json](https://docs.npmjs.com/cli/v7/configuring-npm/package-lock-json) for NPM, etc.)
286 | 9. How does your team inventory the use of OSS within your project? What tools are used?
287 | 10. How is your team made aware when a vulnerability exists in an OSS component? What tool is used?
288 | 11. At what point in the Software Development Lifecycle (SDLC) are OSS vulnerabilities surfaced? (e.g. after release? During build? As comments in PRs?)
289 | 12. How fast is OSS updated to address known vulnerabilities? (e.g. what is the Mean Time To Remediate)
290 | 13. Is updating OSS a manual or automated process? (e.g. using Dependabot)
291 | 14. Do you perform integration tests of how your software interfaces with the dependencies you have to validate that there are no breaking changes?
292 | 15. Do you scan OSS for malware prior to use?
293 | 16. Is your team able to block ingestion of a known-bad/malicious package?
294 | 17. Does your team clone open source code internally?
295 | 18. Does your team perform any sort of security reviews or scans of OSS before using?
296 | 19. Does your team contribute bug fixes back to the upstream OSS maintainer?
297 | 20. Do you rebuild any of the open source internally?
298 | 21. Do you have an incident response plan or playbook for reacting to an incident of consuming a malicious OSS component?
299 |
300 | 3. **Plan for Improvements.** Based on the interviews and answers you received from across your organization, you should be able to determine where you fall within the S2C2F Maturity Levels. It's possible that some teams may be ahead of others, so your focus should be on elevating all development teams to a specific Maturity Level. It's suggested that you accomplish this by driving standardization in both process and tooling across your software development teams for consuming OSS.
301 |
302 | The S2C2F categorizes its requirements into maturity levels to better help you prioritize investments in improvements. Additionally, the S2C2F recommends tooling with specific capabilities that mitigates against the known supply chain threats, but you probably should make business decisions about which set of tools are right for your business and your security goals.
303 |
304 | ## Secure Supply Chain Consumption Framework Requirements
305 |
306 | Below is a table of the requirements mapped to the 8 different practices. Two of the requirements have prerequisites identified that are outside the scope of this document to list as requirements.
307 |
308 | | **Practice** | **Requirement ID** | **Maturity Level** | **Requirement Title** | **Benefit** |
309 | | --- | --- | --- | --- | --- |
310 | | *Ingest it* | ING-1 | L1 | Use public package managers trusted by your organization (i.e. NuGet.org, npmjs.com, PyPi.org, etc.) | Your organization benefits from the inherent security provided by the package manager |
311 | | | ING-2 | L1 | Use an OSS binary repository manager solution (i.e. JFrog Artifactory, Azure Artifacts, etc.) | Caches a local copy of the OSS artifact and protects against [left-pad](https://www.theregister.com/2016/03/23/npm_left_pad_chaos/) incidents, enabling developers to continue to build even if upstream resources are unavailable |
312 | | | ING-3 | L3 | Have a Deny List capability to block known malicious OSS from being consumed | Prevents ingestion of known malware by blocking ingestion as soon as a critically vulnerable OSS component is identified, such as [colors v 1.4.1](https://security.snyk.io/vuln/SNYK-JS-COLORS-2331906), or if an OSS component is deemed malicious |
313 | | | ING-4 | L3 | Mirror a copy of all OSS source code to an internal location | Business Continuity and Disaster Recovery (BCDR) scenarios. Also enables proactive security scanning, fix it scenarios, and ability to rebuild OSS in a trusted build environment. |
314 | | *Scan It* | SCA-1 | L1 | Scan OSS for known vulnerabilities (i.e. CVEs, GitHub Advisories, etc.) | Able to update OSS to reduce risks |
315 | | | SCA-2 | L1 | Scan OSS for licenses | Ensure your organization remains in compliance with the software license |
316 | | | SCA-3 | L2 | Scan OSS to determine if its end-of-life | For security purposes, no organization should take a dependency on software that is no longer receiving updates |
317 | | | SCA-4 | L3 | Scan OSS for malware | Able to prevent ingestion of malware into your CI/CD environment |
318 | | | SCA-5 | L3 | Perform proactive security analysis of OSS | Identify zero-day vulnerabilities and other threat categories (i.e. backdoors) and responsibly disclose them to the upstream OSS project |
319 | | *Inventory It* | INV-1 | L1 | Maintain an automated inventory of all OSS used in development | Able to respond to incidents by knowing who is using what OSS where. This can also be accomplished by generating SBOMs for your software. |
320 | | | INV-2 | L2 | Have an OSS Incident Response Plan | This is a defined, repeatable process that enables your organization to quickly respond to reported OSS incidents |
321 | | *Update It* | UPD-1 | L1 | Update vulnerable OSS manually | Ability to resolve vulnerabilities |
322 | | | UPD-2 | L2 | Enable automated OSS updates | Improve MTTR to patch faster than adversaries can operate |
323 | | | UPD-3 | L2 | Display OSS vulnerabilities in developer contribution flow (i.e. Pull Requests).
**Prerequisite**: Two-person PR reviews are enforced. | PR reviewer doesn't want to approve knowing that there are unaddressed vulnerabilities. |
324 | | *Audit It* | AUD-1 | L3 | Verify the provenance of your OSS | Able to track that a given OSS package traces back to a repo |
325 | | | AUD-2 | L2 | Audit that developers are consuming OSS through the approved ingestion method | Detect when developers consume OSS that isn't detected by your inventory or scan tools |
326 | | | AUD-3 | L2 | Validate integrity of the OSS that you consume into your build | Validate digital signature or hash match for each component |
327 | | | AUD-4 | L4 | Validate SBOMs of OSS that you consume into your build | Validate SBOM for provenance data, dependencies, and its digital signature for SBOM integrity |
328 | | *Enforce It* | ENF-1 | L2 | Securely configure your package source files (i.e. nuget.config, .npmrc, pip.conf, pom.xml, etc.) | By using NuGet package source mapping, or a single upstream feed, or using version pinning and lock files, you can protect yourself from race conditions and Dependency Confusion attacks |
329 | | | ENF-2 | L3 | Enforce usage of a curated OSS feed that enhances the trust of your OSS | Curated OSS feeds can be systems that scan OSS for malware, validate claims-metadata about the component, or systems that enforce an allow/deny list. Developers should not be allowed to consume OSS outside of the curated OSS feed |
330 | | *Rebuild It* | REB-1 | L4 | Rebuild the OSS in a trusted build environment, or validate that it is reproducibly built.
**Prerequisite**: Sufficient build integrity measures are in place to establish a trusted build environment. | Mitigates against build-time attacks such as those seen on CCleaner and SolarWinds. Open Source developers could introduce scripts or code that aren't present in the repository into the build process or be building in a compromised environment. |
331 | | | REB-2 | L4 | Digitally sign the OSS you rebuild | Protect the integrity of the OSS you use. |
332 | | | REB-3 | L4 | Generate SBOMs for OSS that you rebuild | Captures the supply chain information for each package to enable you to better maintain your dependencies, auditability, and blast radius assessments |
333 | | | REB-4 | L4 | Digitally sign the SBOMs you produce | Ensures that consumers of your SBOMs can trust that the contents have not been tampered with |
334 | | *Fix It + Upstream* | FIX-1 | L4 | Implement a change in the code to address a zero-day vulnerability, rebuild, deploy to your organization, and confidentially contribute the fix to the upstream maintainer | To be used only in extreme circumstances when the risk is too great and to be used temporarily until the upstream maintainer issues a fix. |
335 |
336 | ## Secure Supply Chain Consumption Framework Tooling Availability
337 |
338 | **Tooling referenced within the S2C2F:**
339 |
340 | The implementation guidance and tooling in this document are a combination of paid and free tools across the industry. It is not a comprehensive list, but is included to provide examples of the type of solutions that help address the S2C2F requirements. Before jumping to any solutions, you should first understand the needs of your team/organization (such as what languages they use) and then assess multiple tool's capabilities from across the industry against your needs (such as ensuring the solution supports your top-used languages).
341 |
342 |
343 | ## Implementing the Secure Supply Chain Consumption Framework by Level
344 |
345 | Below is a table of the S2C2F requirements with example tools from across the industry or detailed instructions to implement them, sorted by maturity level. Many of the tools referenced below are freely available and are listed as such. Some tools that are individually listed are available through a bundled offering, such as [GitHub Advanced Security](https://docs.github.com/en/enterprise-server@3.4/get-started/learning-about-github/about-github-advanced-security) (GHAS). We aren't specifically endorsing any tool or service, as they each have different strengths or weaknesses. We recommend performing a thorough evaluation before deciding on a specific solution, including tools not referenced in this document.
346 |
347 | This table maps each Framework requirement to corresponding level and Framework practice. To see the full list of requirements and their benefits, please see the [Secure Supply Chain Consumption Framework Requirements](#Secure-Supply-Chain-Consumption-Framework-Requirements) earlier in this document.
348 |
349 | | **Practice name** | **L1** | **L2** | **L3** | **L4** |
350 | | --- | --- | --- | --- | --- |
351 | | **Ingest it** – save a local copy of artifacts and source code | [**ING-1**] Use package managers trusted by your organization
[**ING-2**] Saving a local copy of the OSS artifact can be done by adopting an integrated package caching solution into your CI/CD infrastructure. All developers across your organization should standardize their consumption methods (using governed workflows) so that security policy can be enforced.
**Free Tools:** [VCPKG for C/C++ OSS](https://github.com/Microsoft/vcpkg), [Pulp](https://pulpproject.org/)
**Paid Tools:** [Artifacts](https://docs.microsoft.com/en-us/azure/devops/artifacts/start-using-azure-artifacts?view=azure-devops), [GitHub Packages](https://github.com/features/packages), [Azure Container Registry](https://docs.microsoft.com/en-us/azure/container-registry/container-registry-get-started-portal), [PackageCloud](https://packagecloud.io/) | | [**ING-3**] Having a Deny List capability to block ingestion of vulnerable and malicious OSS components is a required defensive tool in incident response situations. Having an incident response team that can rapidly respond and update the deny list is also critical.
**Paid Tool:** [Nexus Firewall](https://www.sonatype.com/products/firewall)
[**ING-4**] Saving a local copy of the OSS source code
**Free Tool:** [Duplicating a repo](https://docs.github.com/en/repositories/creating-and-managing-repositories/duplicating-a-repository) | |
352 | | **Scan It -** for vulnerabilities and malware | [**SCA-1**] It is required to scan for known vulnerabilities of your dependencies. Choosing a tool that gets vulnerabilities from more places than just CVEs is important to ensure that you are being informed from across multiple vulnerability sources.
**Free Tool:** [GitHub Dependency Graph](https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-the-dependency-graph)
**Paid Tool:** [Snyk Open Source](https://snyk.io/product/open-source-security-management/), [Mend SCA](https://www.mend.io/sca/)
[**SCA-2**] In addition to scanning for vulnerabilities, OSS should be scanned for software licenses.
**Free Tool:** [ScanCode](https://github.com/nexB/scancode-toolkit) | [**SCA-3**] Scanning OSS to determine if it is end of life is crucial to ensure that you are not taking dependencies on OSS that is no longer updated.
**Free Tool**: [OpenSSF Scorecard](https://github.com/ossf/scorecard) | [**SCA-4**] Given the rise in malicious OSS packages over the years, it is critical that OSS be scanned for malware prior to consumption.
**Free Tool:** [Mend Supply Chain Defender](https://www.mend.io/mend-supply-chain-defender/), [OpenSSF Package Analysis](https://github.com/ossf/package-analysis)
**Paid Tool:** [Nexus Firewall](https://www.sonatype.com/products/firewall), [Checkmarx SCA](https://checkmarx.com/resource/documents/en/34965-19105-preventing-supply-chain-attacks.html)
[**SCA-5**] Without doing proactive security analysis to look for zero-day vulnerabilities, there would be entire threat categories that would go unmitigated, such as back-doors.
**Free Tools:** [OSSGadget](https://github.com/microsoft/OSSGadget), [DevSkim](https://github.com/microsoft/DevSkim), [Attack Surface Analyzer](https://github.com/microsoft/AttackSurfaceAnalyzer), [Application Inspector](https://github.com/microsoft/ApplicationInspector), [CodeQL](https://codeql.github.com/), [OneFuzz](https://github.com/microsoft/onefuzz), [RESTler](https://github.com/microsoft/restler-fuzzer)
**Paid Tool:** [Semgrep](https://semgrep.dev/) | |
353 | | **Inventory It -** OSS usage and deployment | [**INV-1**] Establishing an inventory of all developer OSS dependencies is critical when responding to an incident as an ingested malicious component would need to be deleted from the developer's desktop, the package caching solution, and the software/service that in production that consumed the package. Knowing which projects are using which OSS components and their versions across your enterprise is vital toward supporting rapid Incident Response.
**Free Tool**: [Component Detection](https://github.com/microsoft/component-detection), [SBOM Generator for 1st party code](https://github.com/microsoft/sbom-tool), [Syft](https://github.com/anchore/syft), [Tern](https://github.com/tern-tools/tern), [SCA tooling](https://github.com/bureado/awesome-software-supply-chain-security#sca-and-sbom)
**Paid Tool**: [Dependency Graph w/ Insights](https://docs.github.com/en/organizations/collaborating-with-groups-in-organizations/viewing-insights-for-your-organization#viewing-organization-dependency-insights) via [GHAS](https://docs.github.com/en/enterprise-server@3.4/get-started/learning-about-github/about-github-advanced-security) | [**INV-2**] Have an incident response plan that leverages your inventory and your deny list.
**Free Tool:** [Incident Response Reference Guide](https://www.microsoft.com/en-us/download/details.aspx?id=103148) | | |
354 | | **Update It** | [**UPD-1**] Update vulnerable OSS manually. | [**UPD-2**] Automating patching OSS dependencies to address known vulnerabilities in a timely manner.
**Free Tool**: [Dependabot](https://docs.github.com/en/code-security/dependabot/dependabot-alerts/about-dependabot-alerts), [Renovate](https://github.com/renovatebot/renovate)
[**UPD-3**] Display OSS vulnerabilities in developer contribution flow (i.e. Pull Requests).
**Paid Tool**: [Dependency Review](https://docs.github.com/en/code-security/supply-chain-security/understanding-your-software-supply-chain/about-dependency-review) via [GHAS](https://docs.github.com/en/enterprise-server@3.4/get-started/learning-about-github/about-github-advanced-security) | | |
355 | | **Audit It -** provenance and consumption workflows | | [**AUD-2**] Audit that developers are consuming OSS through the approved ingestion method. You can search for binaries that are checked into the repo.
**Free Guide**: [Searching Code](https://docs.github.com/en/search-github/searching-on-github/searching-code)
[**AUD-3**] Validate integrity of the OSS that you consume into your build.
**Free Tool**: [NuGet CLI verify command](https://docs.microsoft.com/en-us/nuget/reference/cli-reference/cli-ref-verify), | [**AUD-1**] Verify the provenance of all OSS components to ensure they come through the official supply chain.
**Paid Tool**: [Nexus Firewall](https://www.sonatype.com/products/firewall) | [**AUD-4**] Validate the SBOMs of OSS that you consume into your build.
**Free Tool**: [Community Attestation Service](https://cas.codenotary.com/) |
356 | | **Enforce It -** OSS consumption meets security policy | | [**ENF-1**] Securing the configuration of how build pipelines consume OSS components.
**Free Tools:** [NuGet Package Source Mapping](https://docs.microsoft.com/en-us/nuget/consume-packages/package-source-mapping), [Version pinning and Lock Files](https://azure.microsoft.com/mediahandler/files/resourcefiles/3-ways-to-mitigate-risk-using-private-package-feeds/3%20Ways%20to%20Mitigate%20Risk%20When%20Using%20Private%20Package%20Feeds%20-%20v1.0.pdf) | [**ENF-2**] Enforcing teams to only consume packages from a curated feed is the goal of this Framework.
**Paid Tool**: [Nexus Firewall](https://www.sonatype.com/products/firewall) | |
357 | | **Rebuild It -** from source | | | | [**REB-1**] Rebuilding from source in a trusted build environment removes the risk of consuming a package that may have been victim to a CCleaner/SolarWinds style build-time attack.
**Free Tools:** [Oryx](https://github.com/microsoft/oryx), [DotNet.ReproducibleBuilds](https://www.nuget.org/packages/DotNet.ReproducibleBuilds/), [Reproducible-Builds.org](https://reproducible-builds.org/), [OSS Reproducible](https://github.com/microsoft/OSSGadget/tree/main/src/oss-reproducible), [rebuilderd](https://github.com/kpcyrd/rebuilderd)
[**REB-2**] Digitally sign the OSS you rebuild.
**Tool:** [Notary](http://notaryproject.dev/), [SigStore](https://www.sigstore.dev/)
[**REB-3**] If you are rebuilding the OSS yourself, you can automate Software Bill of Material (SBOM) generation at build time. This helps capture the supply chain information for each package to enable you to better maintain auditability and blast radius assessments.
**Free Tool:** [SBOM Generator](https://github.com/microsoft/sbom-tool) on rebuilt 3rd party code
[**REB-4**] Digitally sign the SBOMs you produce.
**Free Tool:** [Notary](notaryproject.dev) |
358 | | **Fix It + Upstream** | | | | [**FIX-1**] In extreme cases, when a newly discovered vulnerability is so severe and you cannot wait for an upstream maintainer to implement a fix, you should implement a change in the code to address a zero-day vulnerability, rebuild, deploy to your organization, and confidentially contribute the fix to the upstream maintainer.
**Free Tool**: [Follow confidential disclosure guidelines](https://docs.github.com/en/code-security/security-advisories/about-coordinated-disclosure-of-security-vulnerabilities) |
359 |
360 | # Conclusion
361 |
362 | The goal of this paper is to provide a _simple_ framework for the pragmatic inclusion of secure OSS consumption practices in the software development process. It outlines a series of discrete, non-proprietary security development activities that when joined with effective process automation and maturation levels represent the steps necessary for an organization to objectively claim compliance with the S2C2F as defined by the requirements identified in Level 3 of the S2C2F Maturity Model.
363 |
364 | # Appendix: Relation to SCITT
365 | The [Supply Chain Integrity, Transparency, and Trust](https://github.com/ietf-scitt) initiative, or SCITT, is a set of proposed industry standards for managing the compliance of goods and services across end-to-end supply chains. In the future, we expect teams to output "attestations of conformance" to the S2C2F requirements and store it in SCITT. The format of such attestations is to be determined.
366 |
367 | # Appendix: Mapping Secure Supply Chain Consumption Framework Requirements to Other Specifications
368 |
369 | There are many other security frameworks, guides, and controls. This section maps the S2C2F Framework requirements to other relevant specifications including NIST SP 800-161, NIST SP 800-218, CIS Software Supply Chain Security Guide, OWASP Software Component Verification Standard, SLSA, and the CNCF Software Supply Chain Best Practices.
370 |
371 | | **Requirement ID** | **Requirement Title** | **References** |
372 | | --- | --- | --- |
373 | | ING-1 | Use package managers trusted by your organization | **CIS SSC SG** : 3.1.5
**OWASP SCVS:** 1.2
**CNCF SSC:** Define and prioritize trusted package managers and repositories |
374 | | ING-2 | Use an OSS binary repository manager solution | **OWASP SCVS:** 4.1
**CNCF SSC:** Define and prioritize trusted package managers and repositories |
375 | | ING-3 | Have a Deny List capability to block known malicious OSS from being consumed | |
376 | | ING-4 | Mirror a copy of all OSS source code to an internal location | **CNCF SSC:** Build libraries based upon source code |
377 | | SCA-1 | Scan OSS for known vulnerabilities | **SP800218** : RV.1.1
**SP800161** : SA-10, SR-3, SR-4
**CIS SSC SG** : 1.5.5, 3.2.2
**OWASP SCVS:** 5.4
**CNCF SSC:** Verify third party artefacts and open source libraries, Scan software for vulnerabilities, Run software composition analysis on ingested software |
378 | | SCA-2 | Scan OSS for licenses | **CIS SSC SG** : 1.5.6, 3.2.3
**OWASP SCVS:** 5.12
**CNCF SSC:** Scan software for license implications |
379 | | SCA-3 | Scan OSS to determine if its end-of-life | **SP800218** : PW.4.1
**SP800161** : SA-4, SA-5, SA-8(3), SA-10(6), SR-3, SR-4
**OWASP SCVS:** 5.8 |
380 | | SCA-4 | Scan OSS for malware | |
381 | | SCA-5 | Perform proactive security analysis of OSS | **SP800218** : PW.4.4
**SP800161** : SA-4, SA-8, SA-9, SA-9(3), SR-3, SR-4, SR-4(3), SR-4(4)
**OWASP SCVS:** 5.2, 5.3, |
382 | | INV-1 | Maintain an automated inventory of all OSS used in development | **OWASP SCVS:** 1.1, 1.3, 1.8, 5.11
**CNCF SSC:** Track dependencies between open source components |
383 | | INV-2 | Have an OSS Incident Response Plan | **SP800218** : RV.2.2
**SP800161** : SA-5, SA-8, SA-10, SA-11, SA-15(7) |
384 | | UPD-1 | Update vulnerable OSS manually | |
385 | | UPD-2 | Enable automated OSS updates | |
386 | | UPD-3 | Display OSS vulnerabilities in developer contribution flow (i.e. Pull Requests) | |
387 | | AUD-1 | Verify the provenance of your OSS | **CIS SSC SG** : 3.2.4
**OWASP SCVS:** 1.10, 6.1
**SLSA v1.0:** Producing artifacts – Distribute provenance |
388 | | AUD-2 | Audit that developers are consuming OSS through the approved ingestion method | **CIS SSC SG** : 4.3.3 |
389 | | AUD-3 | Validate integrity of the OSS that you consume into your build | **CIS SSC SG** : 2.4.3
**OWASP SCVS:** 4.12
**CNCF SSC:** Verify third party artefacts and open source libraries |
390 | | AUD-4 | Validate SBOMs of OSS that you consume into your build | **CNCF SSC:** Require SBOM from third party supplier |
391 | | ENF-1 | Securely configure your package source files (i.e. nuget.config, .npmrc, pip.conf, pom.xml, etc.) | **SP800218** : PO.5.2
**CIS SSC SG** : 2.4.2, 3.1.7, 4.3.4, 4.4.2 |
392 | | ENF-2 | Enforce usage of a curated OSS feed that enhances the trust of your OSS | **SP800218** : PO.5.2
**CIS SSC SG** : 2.4.3, 3.1.1, 3.1.3 |
393 | | REB-1 | Rebuild the OSS in a trusted build environment, or validate that it is reproducibly built | **CIS SSC SG** : 2.4.4 |
394 | | REB-2 | Digitally sign the OSS you rebuild | **SP800218** : PS.2.1 |
395 | | REB-3 | Generate SBOMs for OSS that you rebuild | **SP800218** : PS.3.2
**SP800161** : SA-8, SR-3, SR-4
**CIS SSC SG** : 2.4.5
**OWASP SCVS:** 1.4, 1.7
**CNCF SSC:** Generate an immutable SBOM of the code |
396 | | REB-4 | Digitally sign the SBOMs you produce | **CIS SSC SG** : 2.4.6 |
397 | | FIX-1 | Implement a change in the code to address a zero-day vulnerability, rebuild, deploy to your organization, and confidentially contribute the fix to the upstream maintainer | |
398 |
399 | # Appendix: References
400 |
401 | Here is a list of hyperlinks for documents mentioned within this paper:
402 |
403 | - [The Free Software Definition](https://en.wikipedia.org/wiki/The_Free_Software_Definition)
404 | - [The Open Source Definition](https://opensource.org/osd)
405 | - [Supply Chain Risk Management Practices for Federal Information Systems and Organizations (nist.gov)](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-161.pdf)
406 | - [Secure Software Development Framework (SSDF) Version 1.1: Recommendations for Mitigating the Risk of Software Vulnerabilities (nist.gov)](https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-218.pdf)
407 | - [CIS WorkBench / Benchmarks (cisecurity.org)](https://workbench.cisecurity.org/benchmarks/7555)
408 | - [OWASP Software Component Verification Standard | OWASP Foundation](https://owasp.org/www-project-software-component-verification-standard/)
409 | - [SLSA • Supply-chain Levels for Software Artifacts](https://slsa.dev/)
410 | - [tag-security/CNCF\_SSCP\_v1.pdf at main · cncf/tag-security (github.com)](https://github.com/cncf/tag-security/blob/main/supply-chain-security/supply-chain-security-paper/CNCF_SSCP_v1.pdf)
411 |
--------------------------------------------------------------------------------
/Minutes/2022 -23 Meeting Notes.md:
--------------------------------------------------------------------------------
1 |
2 | S2C2F SIG Meeting
3 |
4 |
5 | “Meeting Notes” Document
6 |
7 |
8 | Please use the [2024 Meeting Notes](https://docs.google.com/document/d/1oPfzqdPb1ey5eGggU2DOwfwY0vzEAa9kWm3FieiYT90/edit?usp=sharing)
9 |
10 | [Code of Conduct](https://github.com/ossf/s2c2f/blob/main/Code%20of%20Conduct.md)
11 |
12 | Note: For OpenSSF, see the Linux Foundation [Antitrust policy](https://www.linuxfoundation.org/antitrust-policy/)
13 |
14 |
15 | ---
16 |
17 |
18 |
58 |
59 |
60 |
61 | ---
62 |
63 | Document conventions & history
64 |
65 |
66 |
67 |
68 | * Template for each meeting: [Link to copy meeting notes template](https://docs.google.com/document/d/1zJHmgJDguJy0lmLv89RwkiUwv_qucqe8cSyccnd6Ryk/edit#heading=h.xuyh3ba3raf4)
69 | * Facilitators: Adrian Diglio, Jay White
70 | * Notes are in reverse chronological order. Most recent meeting at the top.
71 |
72 |
73 | [Planned Meetings](#heading=h.q3539ohya47f)
74 |
75 |
76 | **Instructions on adding agenda items to planned meetings:**
77 |
78 |
79 |
80 | * If you’d like to present during a Monthly meeting:
81 | * Submit an agenda item to [S2C2F Issues](https://github.com/ossf/s2c2f/issues)
82 | * If you’d like to add a topic of discussion for working sessions (usually ~5mins intro discussion without screen share)
83 | * Add your topic to the agenda only to WORKING SESSIONS
84 | * Contact a facilitator to inform them of the agenda item, so they can provide feedback if necessary
85 |
86 |
87 |
88 | |
89 | Date
90 | |
91 | Details
92 | |
93 |
94 |
95 | | 8/16/2022 - Community Meeting
96 | |
97 |
98 |
99 |
100 | - Introductions
101 |
102 |
- Overview of the OSS SSC Framework
103 |
104 |
105 | |
106 |
107 |
108 | | 8/29/2022 - Technical Meeting
109 | |
110 |
111 |
112 |
113 | - First start at a reference implementation for a GitHub project
114 |
115 |
116 | |
117 |
118 |
119 | | 9/20/2022 - Community Meeting
120 | |
121 |
122 |
123 |
124 | - Review and triage Issues
125 |
126 |
127 | |
128 |
129 |
130 | | 9/26/2022 - Technical Meeting
131 | |
132 |
133 |
134 |
135 | - GitLab recommended implementation
136 |
137 |
138 | |
139 |
140 |
141 | | 10/18/2022
142 | |
143 |
144 |
145 |
146 | - Initial S2C2F SIG Meeting
147 |
148 |
149 | |
150 |
151 |
152 | | 11/1/2022
153 | |
154 |
155 |
156 |
157 | - Blog post
158 |
159 |
- Positioning with SLSA, FRSCA, GUAC, Supply Chain Mat. Mod., etc.
160 |
161 |
- Specification meeting breakout
162 |
163 |
- Repo updates
164 |
165 |
166 | |
167 |
168 |
169 | | 11/15/2022
170 | |
171 |
172 |
173 |
174 | - Review of Upcoming Blog Post
175 |
176 |
- Share update to reference implementation directory
177 |
178 |
179 | |
180 |
181 |
182 | | 12/13/2022
183 | |
184 |
185 |
186 |
187 | - Review Strategy for S2C2F within the OpenSSF
188 |
189 |
- Request for a S2C2F Goose icon that looks like R2D2
190 |
191 |
192 | |
193 |
194 |
195 | | 1/31/2023
196 | |
197 | RSA Presentation on S2C2Fon Strategy for S2C2F
198 |
199 |
200 |
201 | | 2/14/2023
202 | |
203 |
204 | - Looking for contributors!
205 | |
206 |
207 |
208 | | 2/28/2023
209 | |
210 |
211 | Sharing S2C2F was discussed in the opensourcesecurity podcast Episode 363 – Joylynn Kirui from Microsoft on DevSecOps – Open Source Security
212 |
213 |
214 | - Inclusion of S2C2F in the SKF??
215 |
216 |
217 | - Inclusion of S2C2F OSS patching tools into the Security Tooling WG Guide (Sarah Evans)
218 | |
219 |
220 |
221 | | 3/14/2023
222 | |
223 |
224 | - Sharing draft SKF Course Outline for S2C2F
225 | |
226 |
227 |
228 | | 3/28/2023
229 | |
230 |
231 | - Approval to add a new category of tools to the Guide to Security Tools. Just need to submit PR
232 |
233 |
234 | - RSA slides complete
235 | |
236 |
237 |
238 | | 4/11/2023
239 | |
240 |
241 | - Review Issues, discuss potential new requirement
242 |
243 |
244 | - Explanatory report
245 | |
246 |
247 |
248 | | 5/9/2023
249 | |
250 |
251 | - Looking for contributors for other CI/CD environments! s2c2f/Reference_implementation at main · ossf/s2c2f · GitHub
252 | |
253 |
254 |
255 | | 6/6/2023
256 | |
257 |
258 | - Melba Lopez (IBM) provided feedback on the S2C2F guide
259 | |
260 |
261 |
262 | | 6/20/2023
263 | |
264 |
265 | - Crosswalk with SLSA · Issue #14 · ossf/s2c2f (github.com)
266 |
267 |
268 | - Creation of an FAQ section in the repo?
269 |
270 |
271 | - Best way to keep repo organized when adding addendums or supplemental materials (such as a C/C++ specific guide)?
272 | |
273 |
274 |
275 | | 7/18/2023
276 | |
277 |
278 | - Addressing Issues in the Repo
279 | |
280 |
281 |
282 | | 8/1/2023
283 | |
284 |
285 | - Upcoming Hackathon project to develop an OSCAL schema and possibly a tool
286 | |
287 |
288 |
289 | | 8/15/2023
290 | |
291 |
292 | - Address questions about SCA-3, UPD-3, and ENF-1 from Gergely
293 |
294 |
295 | - OSCAL overview for Hackathon
296 |
297 |
298 | - Review JFrog article on new attack types seen on NuGet, and assess against our list of mitigations today · Issue #17 · ossf/s2c2f (github.com)
299 |
300 |
301 | - Popular NuGet Package “Moq” Silently Exfiltrates User Data to Cloud Service | by Jossef Harush Kadouri | checkmarx-security | Aug, 2023 | Medium
302 | |
303 |
304 |
305 | | 8/29/2023
306 | |
307 |
308 | - Upcoming Hackathon - Apache license
309 |
310 |
311 | - FAQ updated per last conversation
312 |
313 |
314 | - Review JFrog article on new attack types seen on NuGet, and assess against our list of mitigations today · Issue #17 · ossf/s2c2f (github.com)
315 |
316 |
317 | - Popular NuGet Package “Moq” Silently Exfiltrates User Data to Cloud Service | by Jossef Harush Kadouri | checkmarx-security | Aug, 2023 | Medium
318 | |
319 |
320 |
321 | | 9/12/2023
322 | |
323 |
324 | - Update of S2C2F OSCAL hackathon progress
325 | |
326 |
327 |
328 | | 9/26/2023
329 | |
330 |
331 | - Review JFrog article on new attack types seen on NuGet, and assess against our list of mitigations today · Issue #17 · ossf/s2c2f (github.com)
332 |
333 |
334 | - Popular NuGet Package “Moq” Silently Exfiltrates User Data to Cloud Service | by Jossef Harush Kadouri | checkmarx-security | Aug, 2023 | Medium
335 | |
336 |
337 |
338 | | 10/10/2023
339 | |
340 |
341 | - Security Toolbelt presentation
342 |
343 |
344 | - Security Tooling working group, and tools for S2C2F
345 | |
346 |
347 |
348 | | 10/24/2023
349 | |
350 |
351 | - Anything to talk about S2C2F and MITRE ATT&CK?
352 | |
353 |
354 |
355 | | 11/7/2023
356 | |
357 |
358 | -Spreading awareness: Cloudsmith
359 |
360 |
361 | -GitHub Issues
362 |
363 |
364 | -From Sarah: S2C2F and MITRE ATT&CK
365 | |
366 |
367 |
368 | | 12/5/2023
369 | |
370 |
371 | -S2C2F PAS update
372 |
373 |
374 | -webinar and CloudSmith blog
375 | |
376 |
377 |
378 |
379 |
380 | Proposed Topics for Future Meetings
381 |
382 |
383 | Proposed Agenda Items (anyone can propose one here for small-ish items or to discuss with the group when to schedule, and we’ll add to meetings on-the-fly as time permits)
384 |
385 | [Link to copy meeting notes template (instead of scrolling to the bottom)](https://docs.google.com/document/d/1zJHmgJDguJy0lmLv89RwkiUwv_qucqe8cSyccnd6Ryk/edit#heading=h.xuyh3ba3raf4)
386 |
387 | Facilitator intro script (to be recited at the beginning of each meeting):
388 |
389 | _“ Hello everyone, just a reminder that this meeting is being recorded, and we hope to post to YouTube in the near future. Your participation in these meetings is an agreement to abide by the Code of Conduct, which can be found in the repo. I need at least one person to volunteer as scribe to ensure all actions and primary content discussed is recorded in the written notes and may be referred to later. Who is willing? Please remember to include your organization/company along with the update.”_
390 |
391 | **2024-1-16 S2C2F SIG Meeting**
392 |
393 |
394 | Attendance
395 |
396 |
397 |
398 |
399 |
400 | | Present?
401 | |
402 | Name
403 | |
404 | Organization
405 | |
406 |
407 |
408 | |
409 | |
410 | Jay White
411 | |
412 | Microsoft
413 | |
414 |
415 |
416 | |
417 | |
418 | Adrian Diglio
419 | |
420 | Microsoft
421 | |
422 |
423 |
424 | |
425 | |
426 | Victor Lu
427 | |
428 | independent
429 | |
430 |
431 |
432 | |
433 | |
434 | Patricia Tarro
435 | |
436 | Dell
437 | |
438 |
439 |
440 | |
441 | |
442 | Brian Crooks
443 | |
444 | Datalytica
445 | |
446 |
447 |
448 |
449 |
450 | Regrets:
451 |
452 |
453 |
454 | * Amanda Martin (30+min late)
455 |
456 | Facilitator(s):
457 |
458 |
459 |
460 | * Adrian Diglio
461 | * Jay White
462 |
463 | Scribe(s):
464 |
465 |
466 |
467 | *
468 | *
469 |
470 | Want to contribute to the S2C2 Framework?
471 |
472 |
473 |
474 | *
475 |
476 | Agenda:
477 |
478 |
479 |
480 | * Charter to switch to [Project Status](https://docs.google.com/document/d/1tXOhQ0GJGnh2hbioOFgMs2Fkk-2d5VTNAM_fPJssvwY/edit) - Please check and comment to change blue highlight as that was filled in by Amanda and was just a guess, and knows it is not good.
481 | * Vote to Approve all yellow and white words
482 | * Vote to Approve with modifications via listed in comments of doc. This might (or might not) require another vote here at a later date after LF legal reviews the comments.
483 | * Vote to Deny the Charter
484 | * Other topics?
485 |
486 | **2024-01-02 S2C2F SIG Meeting**
487 |
488 |
489 | Attendance
490 |
491 |
492 |
493 |
494 |
495 | | Present?
496 | |
497 | Name
498 | |
499 | Organization
500 | |
501 |
502 |
503 | | Yes
504 | |
505 | Jay White
506 | |
507 | Microsoft
508 | |
509 |
510 |
511 | |
512 | |
513 | Adrian Diglio
514 | |
515 | Microsoft
516 | |
517 |
518 |
519 | |
520 | |
521 | Victor Lu
522 | |
523 | independent
524 | |
525 |
526 |
527 | | Yes
528 | |
529 | Patricia Tarro
530 | |
531 | Dell
532 | |
533 |
534 |
535 | |
536 | |
537 | Brian Crooks
538 | |
539 | Datalytica
540 | |
541 |
542 |
543 | | Yes
544 | |
545 | Tom Bedford
546 | |
547 | Bloomberg
548 | |
549 |
550 |
551 |
552 |
553 | Regrets:
554 |
555 |
556 |
557 | *
558 |
559 | Facilitator(s):
560 |
561 |
562 |
563 | *
564 |
565 | Scribe(s):
566 |
567 |
568 |
569 | *
570 | *
571 |
572 | Want to contribute to the S2C2 Framework?
573 |
574 |
575 |
576 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
577 | * Also looking for tool contributions to [ossf/S2C2F-attestation-schema-and-tool: Secure Supply Chain Consumption Framework (S2C2F) OSCAL Catalog and tool (github.com)](https://github.com/ossf/S2C2F-attestation-schema-and-tool)
578 |
579 | Agenda:
580 |
581 |
582 |
583 | *
584 |
585 | **2023-12-5 S2C2F SIG Meeting**
586 |
587 |
588 | Attendance
589 |
590 |
591 |
592 |
593 |
594 | | Present?
595 | |
596 | Name
597 | |
598 | Organization
599 | |
600 |
601 |
602 | | X
603 | |
604 | Jay White
605 | |
606 | Microsoft
607 | |
608 |
609 |
610 | | x
611 | |
612 | Adrian Diglio
613 | |
614 | Microsoft
615 | |
616 |
617 |
618 | | X
619 | |
620 | Victor Lu
621 | |
622 | independent
623 | |
624 |
625 |
626 | | X
627 | |
628 | Patricia Tarro
629 | |
630 | Dell
631 | |
632 |
633 |
634 | | X
635 | |
636 | Brian Crooks
637 | |
638 | Datalytica
639 | |
640 |
641 |
642 |
643 |
644 | Regrets:
645 |
646 |
647 |
648 | *
649 |
650 | Facilitator(s):
651 |
652 |
653 |
654 | * Adrian Diglio
655 | * Jay White
656 |
657 | Scribe(s):
658 |
659 |
660 |
661 | * Adrian Diglio
662 | *
663 |
664 | Want to contribute to the S2C2 Framework?
665 |
666 |
667 |
668 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
669 | * Also looking for tool contributions to [ossf/S2C2F-attestation-schema-and-tool: Secure Supply Chain Consumption Framework (S2C2F) OSCAL Catalog and tool (github.com)](https://github.com/ossf/S2C2F-attestation-schema-and-tool)
670 |
671 | Agenda:
672 |
673 |
674 |
675 | * Update on S2C2F Publicly Available Specification (PAS) process
676 | * Looking into ISO Standardization
677 | * Potential paths: leveraging Linux Foundation’s JDF. Another avenue is through the Oasis Open
678 | * Doing an Explanatory Report to enter the PAS process
679 | * Feedback: For Europe, international standardization is important
680 | * Feedback: From Gov perspective, choosing software usually comes with requirements associated around meeting a certain Standard, so standardizing this is a great step forward
681 | * Others in the industry spreading S2C2F awareness [Mastering Open Source Security: Your Guide to S2C2F | Cloudsmith](https://cloudsmith.com/blog/mastering-open-source-security-your-guide-to-s2c2f)
682 | * NSA Enduring Security Framework (ESF) update [Enduring Security Framework ESF (nsa.gov)](https://www.nsa.gov/About/Cybersecurity-Collaboration-Center/Enduring-Security-Framework/)
683 | * Potential to publish S2C2F in spanish
684 | * Victor: speak Mandarin/Chinese, and willing to translate
685 | * CFP for Linux Foundation Open Source Summit, April 16-18 in Seattle, WA
686 | * [Call For Proposals (CFP) | LF Events (linuxfoundation.org)](https://events.linuxfoundation.org/open-source-summit-north-america/program/cfp/?utm_campaign=Open%20Source%20Summit%20North%20America%202024&utm_medium=email&_hsmi=285211074&_hsenc=p2ANqtz-8lTdPxZSK0GPAJ5eFnpxcmTzoaDspYmiZvCLlaxJ6_Y5THqMW-DU-zLM_UBlIiVcMzTsCFUd0m9jZbjxONLvhMFyv47g&utm_content=285211074&utm_source=hs_email)
687 | * Other topics?
688 | * OpenSSF Minimum Viable Product? Possible overlap with S2C2F? Ensure that S2C2F is included in this. Requires follow up with Dana Wang. This is a brand new effort.
689 |
690 | **2023-11-7 S2C2F SIG Meeting**
691 |
692 |
693 | Attendance
694 |
695 |
696 |
697 |
698 |
699 | | Present?
700 | |
701 | Name
702 | |
703 | Organization
704 | |
705 |
706 |
707 | | X
708 | |
709 | Jay White
710 | |
711 | Microsoft
712 | |
713 |
714 |
715 | | X
716 | |
717 | Jasmine Wang
718 | |
719 | Microsoft
720 | |
721 |
722 |
723 | | X
724 | |
725 | Tom Bedford
726 | |
727 | Bloomberg LP
728 | |
729 |
730 |
731 | | x
732 | |
733 | Adrian Diglio
734 | |
735 | Microsoft
736 | |
737 |
738 |
739 | | X
740 | |
741 | Sarah Evans
742 | |
743 | Dell
744 | |
745 |
746 |
747 |
748 |
749 | Regrets:
750 |
751 |
752 |
753 | *
754 |
755 | Facilitator(s):
756 |
757 |
758 |
759 | * Adrian Diglio
760 | * Jay White
761 |
762 | Scribe(s):
763 |
764 |
765 |
766 | * Adrian Diglio
767 | *
768 |
769 | Want to contribute to the S2C2 Framework?
770 |
771 |
772 |
773 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
774 | * Also looking for tool contributions to [ossf/S2C2F-attestation-schema-and-tool: Secure Supply Chain Consumption Framework (S2C2F) OSCAL Catalog and tool (github.com)](https://github.com/ossf/S2C2F-attestation-schema-and-tool)
775 |
776 | Agenda:
777 |
778 |
779 |
780 | * Tom Bedford (Bloomberg) shared that they are evaluating many different frameworks for internal adoption, and S2C2F is one of the big ones
781 | * Mostly in Financial services industry, lot of regulations globally. Good record of managing financial regulations that come in quite frequently. Trend they are seeing is they are starting to be more technically versed. Software supply chain is what’s on their mind.
782 | * Digital Operations Resilience Act (DORA) in Europe (won’t be final till June 2024, and won’t be implemented till Jan 2025). [https://www.digital-operational-resilience-act.com](https://www.digital-operational-resilience-act.com)
783 | * Was concern that DORA might end up like CRA, but they did make this more clear. Originally CRA described all software as software (to include open source) and they are listening to feedback and making changes.
784 | * SSDF from NIST to provide products and services to Federal agencies
785 | * Goal: want to adopt frameworks that map to the regulations.
786 | * Sent out a Call to Action to various Risk Management teams of Framework’s they’ve observed of what would help their requirements.
787 | * SLSA helps provide measuring maturity
788 | * FFIEC have IT handbooks (one for architecture and operations, specifically for Financial Institutions). How to identify security issues, how to remediate them, etc.
789 | * Most granular, and least ambiguous, is S2C2F, which provides real life examples. Love the maturity levels, so they can establish a baseline and build on it over time. S2C2F has so far been one of the more useful frameworks that they can adopt at scale everywhere.
790 | * It helps describe things in a consistent way to non-technical folks, and has proven extremely useful.
791 | * “The existence of S2C2F has made what would have been a headache for my role, much simpler”
792 | * Spreading awareness: Cloudsmith [The Dangers Lurking in Open Source Software (cloudsmith.com)](https://cloudsmith.com/blog/the-dangers-lurking-in-open-source-software/)
793 | * Question: Anything to talk about S2C2F and MITRE ATT&CK?
794 | * Question is inspired in the Security Toolbelt working group. Can we look for tooling to close gaps. Wanted to align the Security Toolbelt with how Enterprise talk about security. Talked about OSPO mapping??? And NIST SP 800-53. As soon as you talk to people outside of product/application security, they are focused on network security, identity and access management, encryption, etc.
795 | * Can S2C2F map to a broader security topic? Is this an opportunity to help participate?
796 | * S2C2F is great at talking through all the different scenarios, but the missing piece is connecting it to a Security Persona.
797 | * Don’t need to map to MITRE ATT&CK.
798 | * Idea: Anyone that’s an expert in a specific area (e.g. Identity), they should lend their expertise toward securing Open Source (similar to how PyPI adopted MFA). Need a way to tell this story
799 | * How can we make security easier? Where are the gaps? And can we do it in a respectable way to Open Source maintainers. Can we incentivize things?
800 | * GitHub Issues [Issues · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues)
801 | *
802 |
803 | **2023-10-10 S2C2F SIG Meeting**
804 |
805 |
806 | Attendance
807 |
808 |
809 |
810 |
811 |
812 | | Present?
813 | |
814 | Name
815 | |
816 | Organization
817 | |
818 |
819 |
820 | | X
821 | |
822 | Jay White
823 | |
824 | Microsoft
825 | |
826 |
827 |
828 | | x
829 | |
830 | Mike Lieberman
831 | |
832 | Kusari
833 | |
834 |
835 |
836 | | x
837 | |
838 | Adrian Diglio
839 | |
840 | Microsoft
841 | |
842 |
843 |
844 | | x
845 | |
846 | Sarah Evans
847 | |
848 | Dell
849 | |
850 |
851 |
852 | | X
853 | |
854 | Patricia Tarro
855 | |
856 | Dell
857 | |
858 |
859 |
860 |
861 |
862 | Regrets:
863 |
864 |
865 |
866 | *
867 |
868 | Facilitator(s):
869 |
870 |
871 |
872 | * Adrian Diglio
873 | * Jay White
874 |
875 | Scribe(s):
876 |
877 |
878 |
879 | * Adrian Diglio
880 | *
881 |
882 | Want to contribute to the S2C2 Framework?
883 |
884 |
885 |
886 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
887 |
888 | Agenda:
889 |
890 |
891 |
892 | * Security Toolbelt Presentation
893 | * [daniel:// stenberg://: "The next #curl release will sh…" - Mastodon](https://mastodon.social/@bagder/111167662713737288) CURL vulnerability announced 9 days before a patch is available. This violates the confidential disclosure procedures.
894 | * Also the [https://www.sonatype.com/hubfs/9th-Annual-SSSC-Report.pdf](https://www.sonatype.com/hubfs/9th-Annual-SSSC-Report.pdf) report came out, with 245,000 malicious OSS discovered last year.
895 | * Question: Anything to talk about S2C2F and MITRE ATT&CK?
896 |
897 | **2023-09-12 S2C2F SIG Meeting**
898 |
899 |
900 | Attendance
901 |
902 |
903 |
904 |
905 |
906 | | Present?
907 | |
908 | Name
909 | |
910 | Organization
911 | |
912 |
913 |
914 | | X
915 | |
916 | Jay White
917 | |
918 | Microsoft
919 | |
920 |
921 |
922 | | x
923 | |
924 | Mike Lieberman
925 | |
926 | Kusari
927 | |
928 |
929 |
930 | | X
931 | |
932 | Adrian Diglio
933 | |
934 | Microsoft
935 | |
936 |
937 |
938 | | X
939 | |
940 | Patricia Tarro
941 | |
942 | Dell
943 | |
944 |
945 |
946 |
947 |
948 | Regrets:
949 |
950 |
951 |
952 | *
953 |
954 | Facilitator(s):
955 |
956 |
957 |
958 | * Adrian Diglio
959 | * Jay White
960 |
961 | Scribe(s):
962 |
963 |
964 |
965 | * Adrian Diglio
966 |
967 | Want to contribute to the S2C2 Framework?
968 |
969 |
970 |
971 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
972 |
973 | Agenda:
974 |
975 |
976 |
977 | * Completed creating S2C2F requirements as an OSCAL Catalog in JSON [S2C2F-attestation-schema-and-tool/oscal_json/s2c2f_oscal_catalog_1.6.json at main · ossf/S2C2F-attestation-schema-and-tool (github.com)](https://github.com/ossf/S2C2F-attestation-schema-and-tool/blob/main/oscal_json/s2c2f_oscal_catalog_1.6.json)
978 | * - [Review JFrog article on new attack types seen on NuGet, and assess against our list of mitigations today · Issue #17 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues/17)
979 | * - [Popular NuGet Package “Moq” Silently Exfiltrates User Data to Cloud Service | by Jossef Harush Kadouri | checkmarx-security | Aug, 2023 | Medium](https://medium.com/checkmarx-security/popular-nuget-package-moq-silently-exfiltrates-user-data-to-cloud-service-d1888867406d)
980 | * [Lazarus Group Launches First Open Source Supply Chain Attacks Targeting Crypto Sector | by Yehuda Gelb | checkmarx-security | Aug, 2023 | Medium](https://medium.com/checkmarx-security/lazarus-group-launches-first-open-source-supply-chain-attacks-targeting-crypto-sector-cabc626e404e)
981 |
982 | **2023-09-12 S2C2F SIG Meeting**
983 |
984 |
985 | Attendance
986 |
987 |
988 |
989 |
990 |
991 | | Present?
992 | |
993 | Name
994 | |
995 | Organization
996 | |
997 |
998 |
999 | | x
1000 | |
1001 | Jay White
1002 | |
1003 | Microsoft
1004 | |
1005 |
1006 |
1007 | | x
1008 | |
1009 | Mike Lieberman
1010 | |
1011 | Kusari
1012 | |
1013 |
1014 |
1015 | | x
1016 | |
1017 | Tom Bedford
1018 | |
1019 | Bloomberg LP
1020 | |
1021 |
1022 |
1023 | | x
1024 | |
1025 | Adrian Diglio
1026 | |
1027 | Microsoft
1028 | |
1029 |
1030 |
1031 | | x
1032 | |
1033 | Nisha Kumar
1034 | |
1035 | Oracle
1036 | |
1037 |
1038 |
1039 | | x
1040 | |
1041 | Andres Orbe
1042 | |
1043 | independent
1044 | |
1045 |
1046 |
1047 |
1048 |
1049 | Regrets:
1050 |
1051 |
1052 |
1053 | *
1054 |
1055 | Facilitator(s):
1056 |
1057 |
1058 |
1059 | * Adrian Diglio
1060 | * Jay White
1061 |
1062 | Scribe(s):
1063 |
1064 |
1065 |
1066 | * Adrian Diglio
1067 | *
1068 |
1069 | Want to contribute to the S2C2 Framework?
1070 |
1071 |
1072 |
1073 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1074 |
1075 | Agenda:
1076 |
1077 |
1078 |
1079 | * Hackathon update [https://github.com/ossf/S2C2F-attestation-schema-and-tool/tree/main](https://github.com/ossf/S2C2F-attestation-schema-and-tool/tree/main)
1080 | * MIT License used
1081 | * GUAC
1082 |
1083 | **2023-08-29 S2C2F SIG Meeting**
1084 |
1085 |
1086 | Attendance
1087 |
1088 |
1089 |
1090 |
1091 |
1092 | | Present?
1093 | |
1094 | Name
1095 | |
1096 | Organization
1097 | |
1098 |
1099 |
1100 | | X
1101 | |
1102 | Jay White
1103 | |
1104 | Microsoft
1105 | |
1106 |
1107 |
1108 | | X
1109 | |
1110 | Jasmine Wang
1111 | |
1112 | Microsoft
1113 | |
1114 |
1115 |
1116 | | X
1117 | |
1118 | Mike Lieberman
1119 | |
1120 | Kusari
1121 | |
1122 |
1123 |
1124 | | X
1125 | |
1126 | Tom Bedford
1127 | |
1128 | Bloomberg LP
1129 | |
1130 |
1131 |
1132 | | X
1133 | |
1134 | Adrian Diglio
1135 | |
1136 | Microsoft
1137 | |
1138 |
1139 |
1140 | | X
1141 | |
1142 | Sarah Evans
1143 | |
1144 | Dell
1145 | |
1146 |
1147 |
1148 | | X
1149 | |
1150 | Victor Lu
1151 | |
1152 | independent
1153 | |
1154 |
1155 |
1156 | | X
1157 | |
1158 | Tabatha DiDomenico
1159 | |
1160 | G-Research
1161 | |
1162 |
1163 |
1164 | | X
1165 | |
1166 | Aeva Black
1167 | |
1168 | CISA
1169 | |
1170 |
1171 |
1172 | | X
1173 | |
1174 | Eddie Knight
1175 | |
1176 | Sonatype
1177 | |
1178 |
1179 |
1180 | | X
1181 | |
1182 | Colin Griffin
1183 | |
1184 | Krumware
1185 | |
1186 |
1187 |
1188 |
1189 |
1190 | Regrets:
1191 |
1192 |
1193 |
1194 | *
1195 |
1196 | Facilitator(s):
1197 |
1198 |
1199 |
1200 | * Adrian Diglio
1201 | * Jay White
1202 |
1203 | Scribe(s):
1204 |
1205 |
1206 |
1207 | * Adrian Diglio
1208 | *
1209 |
1210 | Want to contribute to the S2C2 Framework?
1211 |
1212 |
1213 |
1214 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1215 |
1216 | Agenda:
1217 |
1218 |
1219 |
1220 | * FAQ Updated: [New FAQs from 2023-08-15 by jasminewang0 · Pull Request #29 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/pull/29)
1221 | * Is there a standard way to flag that there are gaps in tooling, there are WIP in tooling, or that we are putting forward suggestions in tooling?
1222 | * More info about participating in Hackathon: [ossf/S2C2F-attestation-schema-and-tool: Secure Supply Chain Consumption Framework (S2C2F) attestation schema and tool (github.com)](https://github.com/ossf/S2C2F-attestation-schema-and-tool) repo has Apache license
1223 | * Issue re-review: [Review JFrog article on new attack types seen on NuGet, and assess against our list of mitigations today · Issue #17 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues/17)
1224 | * The threat here is “maintainer-squatting”
1225 | * Discussed the sustainability of adding new requirements… it would cause lots of scope creep over time
1226 | * Suggest a way to establish trust helps with scope creep. Helps make security stronger for an enterprise.
1227 | * Not all were concerned about scope creep, but do believe that this is a high bar, and not many organizations will be able to meet it. Large development groups such as LF, Eclipse Foundation, and others meet that bar.
1228 | * Is there a way to call out “Nice to Haves” within the S2C2F?
1229 | * Maintainer squatting, or hypocrite commits. Can potentially correlate that identity across multiple projects/repos.
1230 | * github.com/mitre/hipcheck - helps with known-compromise key correlation
1231 | * When receiving packages from someone you trust, developers sometimes default to expecting that the package is free of malice and free of defects.
1232 | * Sometimes packages will swap hands, maintainers swap over. And when this happens, sometimes not a whole lot of due diligence is done, and the new maintainer may have malicious intent, and abuse their new role as maintainer of this well established package. What are the indicators that are important to look at that are indicators of explicit trust?
1233 | * What is my risk appetite? If I pull something from RedHat, I have more trust that RedHat won’t do anything malicious.
1234 | * What logic the package performs also lends to its criticality, and what level of scrutiny you put on packages.
1235 | * New threat review: [Popular NuGet Package “Moq” Silently Exfiltrates User Data to Cloud Service | by Jossef Harush Kadouri | checkmarx-security | Aug, 2023 | Medium](https://medium.com/checkmarx-security/popular-nuget-package-moq-silently-exfiltrates-user-data-to-cloud-service-d1888867406d)
1236 |
1237 | **2023-08-15 S2C2F SIG Meeting**
1238 |
1239 |
1240 | Attendance
1241 |
1242 |
1243 |
1244 |
1245 |
1246 | | Present?
1247 | |
1248 | Name
1249 | |
1250 | Organization
1251 | |
1252 |
1253 |
1254 | | X
1255 | |
1256 | Jay White
1257 | |
1258 | Microsoft
1259 | |
1260 |
1261 |
1262 | | X
1263 | |
1264 | Tom Bedford
1265 | |
1266 | Bloomberg LP
1267 | |
1268 |
1269 |
1270 | | X
1271 | |
1272 | Adrian Diglio
1273 | |
1274 | Microsoft
1275 | |
1276 |
1277 |
1278 | | X
1279 | |
1280 | Sarah Evans
1281 | |
1282 | Dell
1283 | |
1284 |
1285 |
1286 | | X
1287 | |
1288 | Nisha Kumar
1289 | |
1290 | Oracle
1291 | |
1292 |
1293 |
1294 |
1295 |
1296 | Regrets:
1297 |
1298 |
1299 |
1300 | *
1301 |
1302 | Facilitator(s):
1303 |
1304 |
1305 |
1306 | * Adrian Diglio
1307 | * Jay White
1308 |
1309 | Scribe(s):
1310 |
1311 |
1312 |
1313 | * Adrian Diglio
1314 | *
1315 |
1316 | Want to contribute to the S2C2 Framework?
1317 |
1318 |
1319 |
1320 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1321 |
1322 | Agenda:
1323 |
1324 |
1325 |
1326 | * Questions about S2C2F controls from Gergely Csatari:
1327 | * Is [SCA-3](https://github.com/ossf/s2c2f/blob/main/specification/framework.md?plain=1#L315) only about the end of life of an open source project or it is also about the end of support of a branch in the project used by a product?
1328 | * [UPD-3](https://github.com/ossf/s2c2f/blob/main/specification/framework.md?plain=1#L322) is not really clear. Is the requirement to add a reference to the known vulnerabilities in the PR-s intending to fix these vulnerabilities? I do not think that the pre-requisite is valid. Even if there is only one review-er of the pr, they can have concerns about vulnerabilities.
1329 | * [ENF-1](https://github.com/ossf/s2c2f/blob/main/specification/framework.md?plain=1#L327) would need some more generic example, than a NuGet one. Is this about properly configuring the allowed repos into package managers?
1330 | * **ACTION ITEM**: Update FAQ with answers to these 3 questions, and try to update the requirement text appropriately to ensure readers understand the intent of the requirement
1331 | * Example Text from Sarah for UPD-3: Prevents vulnerabilities from being unknowingly introduced earlier in the DevOps lifecycle through education/hygiene and peer review when developers are introducing new dependencies at pull request time
1332 | * Example text from Sarah for ENF-1: By using either a single upstream feed, or a package source mapping (e.g. Nuget)…...
1333 | *
1334 | * Issue re-review: [Review JFrog article on new attack types seen on NuGet, and assess against our list of mitigations today · Issue #17 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues/17)
1335 | * New threat review: [Popular NuGet Package “Moq” Silently Exfiltrates User Data to Cloud Service | by Jossef Harush Kadouri | checkmarx-security | Aug, 2023 | Medium](https://medium.com/checkmarx-security/popular-nuget-package-moq-silently-exfiltrates-user-data-to-cloud-service-d1888867406d)
1336 |
1337 | **2023-08-1 S2C2F SIG Meeting**
1338 |
1339 |
1340 | Attendance
1341 |
1342 |
1343 |
1344 |
1345 |
1346 | | Present?
1347 | |
1348 | Name
1349 | |
1350 | Organization
1351 | |
1352 |
1353 |
1354 | | X
1355 | |
1356 | Jay White
1357 | |
1358 | Microsoft
1359 | |
1360 |
1361 |
1362 | | X
1363 | |
1364 | Jasmine Wang
1365 | |
1366 | Microsoft
1367 | |
1368 |
1369 |
1370 | | X
1371 | |
1372 | David A. Wheeler
1373 | |
1374 | Linux Foundation
1375 | |
1376 |
1377 |
1378 | | X
1379 | |
1380 | Mike Lieberman
1381 | |
1382 | Kusari
1383 | |
1384 |
1385 |
1386 | | X
1387 | |
1388 | Tom Bedford
1389 | |
1390 | Bloomberg LP
1391 | |
1392 |
1393 |
1394 | | X
1395 | |
1396 | Adrian Diglio
1397 | |
1398 | Microsoft
1399 | |
1400 |
1401 |
1402 | | X
1403 | |
1404 | Sarah Evans
1405 | |
1406 | Dell
1407 | |
1408 |
1409 |
1410 | | X
1411 | |
1412 | Victor Lu
1413 | |
1414 | independent
1415 | |
1416 |
1417 |
1418 |
1419 |
1420 | Regrets:
1421 |
1422 |
1423 |
1424 | *
1425 |
1426 | Facilitator(s):
1427 |
1428 |
1429 |
1430 | * Adrian Diglio
1431 | * Jasmine Wang
1432 |
1433 | Scribe(s):
1434 |
1435 |
1436 |
1437 | * Adrian Diglio
1438 | *
1439 |
1440 | Want to contribute to the S2C2 Framework?
1441 |
1442 |
1443 |
1444 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1445 |
1446 | Agenda:
1447 |
1448 |
1449 |
1450 | * New attendees
1451 | * Hackathon project Week of Sept 11 to develop a schema in OSCAL to generate an attestation file and potentially a tool that can output them
1452 | * This aligns with S2C2F Strategy [Strategy for S2C2F within the OpenSSF - Google Docs](https://docs.google.com/document/d/1Cp7TOVx7hWwxKGebWWPn4sGVIIbYSwR0-mWdwBO45po/edit#heading=h.y37mdlsrg0tq) of Driving Tooling Innovation, and would also help us achieve Adoption, by giving us a way to potentially measure adoption in the future.
1453 | * OSCAL format is from NIST and used by the Government
1454 | * Was first introduced to us by a community member prior to S2C2F being contributed to OpenSSF [OSCAL Support · Issue #8 · microsoft/oss-ssc-framework (github.com)](https://github.com/microsoft/oss-ssc-framework/issues/8)
1455 | * Will create a new OpenSSF repo, so this POC/prototype will be created within the OpenSSF, and will be OpenSSF IP from the start
1456 | * Discussion of building a tool as part of a Corporation and contributing it to the OpenSSF vs. having a OpenSSF repo (where’s the motivation to contribute?)
1457 | * Idea: Should have a place to recognize Corporations that have contributed
1458 | * This Hackathon is a great opportunity to go present to the End Users WG. Also get devs from GUAC to provide input into how GUAC could better ingest an S2C2F attestation
1459 | * Write a Guest Blog: Call for people that might be interested in this Hackathon.
1460 | * [Blog Guidelines - Open Source Security Foundation (openssf.org)](https://openssf.org/community/blog-guidelines/)
1461 |
1462 | **2023-07-18 S2C2F SIG Meeting**
1463 |
1464 |
1465 | Attendance
1466 |
1467 |
1468 |
1469 |
1470 |
1471 | | Present?
1472 | |
1473 | Name
1474 | |
1475 | Organization
1476 | |
1477 |
1478 |
1479 | | X
1480 | |
1481 | Jasmine Wang
1482 | |
1483 | Microsoft
1484 | |
1485 |
1486 |
1487 | | X
1488 | |
1489 | David A. Wheeler
1490 | |
1491 | Linux Foundation
1492 | |
1493 |
1494 |
1495 | | X
1496 | |
1497 | Melba-Lopez
1498 | |
1499 | IBM
1500 | |
1501 |
1502 |
1503 | | X
1504 | |
1505 | Mike Lieberman
1506 | |
1507 | Kusari
1508 | |
1509 |
1510 |
1511 | | X
1512 | |
1513 | Tom Bedford
1514 | |
1515 | Bloomberg LP
1516 | |
1517 |
1518 |
1519 | | X
1520 | |
1521 | Adrian Diglio
1522 | |
1523 | Microsoft
1524 | |
1525 |
1526 |
1527 | | X
1528 | |
1529 | Sarah Evans
1530 | |
1531 | Dell
1532 | |
1533 |
1534 |
1535 | | X
1536 | |
1537 | Josh Clements
1538 | |
1539 | ADI
1540 | |
1541 |
1542 |
1543 |
1544 |
1545 | Regrets:
1546 |
1547 |
1548 |
1549 | *
1550 |
1551 | Facilitator(s):
1552 |
1553 |
1554 |
1555 | * Adrian Diglio
1556 | * Jasmine Wang
1557 |
1558 | Scribe(s):
1559 |
1560 |
1561 |
1562 | * Adrian Diglio
1563 | *
1564 |
1565 | Want to contribute to the S2C2 Framework?
1566 |
1567 |
1568 |
1569 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1570 |
1571 | Agenda:
1572 |
1573 |
1574 |
1575 | * Addressing repo Issues
1576 | * [What is the difference between SCA-5 and FIX-1? · Issue #12 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues/12)
1577 | * [Crosswalk with SLSA · Issue #14 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues/14)
1578 | * [Crosswalk with "Taxonomy of Attacks on OSS Supply Chains" by Ladisa et al · Issue #15 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues/15)
1579 | * [The phpMyAdmin example seems misclassified. · Issue #16 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues/16)
1580 | * [Review marked-up review from Melba Lopez · Issue #22 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues/22)
1581 | * Review crosswalk of threats with Taxonomy
1582 | * Sterling Toolbelt (Security toolbox) - diagramming different OSS projects
1583 | * S2C2F is there under Secure Ingestion
1584 | * Going to do a threat model around OSS. End Users working group has already started this, but there’s an opportunity to plug into the threat model
1585 | * Across the OpenSSF, there are teams working on some sort of supply chain topic, and would be great for us to tie them together
1586 | * End of Life/ Out of Support - GitHub can mark a repo as Archived. But this doesn’t handle the case for 1.X is out of Support, but 1.9 isn’t
1587 | * TUF
1588 | * In-Toto - structured signed attestations. Could they produce an attestation that something is end-of-life
1589 | * GUAC would love to support S2C2F to ingest the metadata needed.
1590 | * Trying to come up with an overall merge-set of use cases across all OpenSSF, and come back to identify what projects are working
1591 |
1592 | **2023-06-20 S2C2F SIG Meeting**
1593 |
1594 |
1595 | Attendance
1596 |
1597 |
1598 |
1599 |
1600 |
1601 | | Present?
1602 | |
1603 | Name
1604 | |
1605 | Organization
1606 | |
1607 |
1608 |
1609 | | X
1610 | |
1611 | Jay White
1612 | |
1613 | Microsoft
1614 | |
1615 |
1616 |
1617 | | X
1618 | |
1619 | Jasmine Wang
1620 | |
1621 | Microsoft
1622 | |
1623 |
1624 |
1625 | | X
1626 | |
1627 | David A. Wheeler
1628 | |
1629 | Linux Foundation
1630 | |
1631 |
1632 |
1633 | | X
1634 | |
1635 | Melba-Lopez
1636 | |
1637 | IBM
1638 | |
1639 |
1640 |
1641 | | X
1642 | |
1643 | Tom Bedford
1644 | |
1645 | Bloomberg LP
1646 | |
1647 |
1648 |
1649 | | X
1650 | |
1651 | Adrian Diglio
1652 | |
1653 |
1654 | |
1655 |
1656 |
1657 |
1658 |
1659 | Regrets:
1660 |
1661 |
1662 |
1663 | *
1664 |
1665 | Facilitator(s):
1666 |
1667 |
1668 |
1669 | * Adrian Diglio
1670 | * Jay White
1671 |
1672 | Scribe(s):
1673 |
1674 |
1675 |
1676 | * Adrian Diglio
1677 | *
1678 |
1679 | Want to contribute to the S2C2 Framework?
1680 |
1681 |
1682 |
1683 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1684 |
1685 | Agenda:
1686 |
1687 |
1688 |
1689 | * New Friends!
1690 | * Chris Hughes & Alan Friedmann included `7 pages about S2C2F in their book!
1691 | * [https://www.wiley.com/en-us/Software+Transparency%3A+Supply+Chain+Security+in+an+Era+of+a+Software+Driven+Society-p-9781394158492](https://www.wiley.com/en-us/Software+Transparency%3A+Supply+Chain+Security+in+an+Era+of+a+Software+Driven+Society-p-9781394158492) - in chapter 7, “existing and emerging commercial guidance”
1692 | * - [Crosswalk with SLSA · Issue #14 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues/14)
1693 | * Great touch-point of SLSA 1.0 requiring people to generate and distribute provenance, and S2C2F AUD-1 requirement asking to validate OSS provenance.
1694 | * Remarkably, the 2 overlaps in SLSA have been removed in SLSA verison 1.0. There appears to be no direct overlaps. We probably should look for ways to S2C2F to ingest information from SLSA.
1695 | * - Creation of an FAQ section in the repo?
1696 | * Problem is there are so many ways it can be done, we could spend forever analyzing the options
1697 | * If creating a simple markdown page that does the job, let’s stick with simple
1698 | * Proposed the “Simplest Possible Process” (SPP) to TAC: [https://github.com/ossf/tac/issues/176](https://github.com/ossf/tac/issues/176)
1699 | * Best Practices WG is using SPP, the question is whether or not we want to emulate that elsewhere. Example: [https://best.openssf.org/Concise-Guide-for-Developing-More-Secure-Software](https://best.openssf.org/Concise-Guide-for-Developing-More-Secure-Software)
1700 | * Example to replicate if we like it: [Concise Guide for Developing More Secure Software | OpenSSF Best Practices Working Group](https://best.openssf.org/Concise-Guide-for-Developing-More-Secure-Software)
1701 | * - Best way to keep repo organized when adding addendums or supplemental materials (such as a C/C++ specific guide)?
1702 | * Is there an example where you’re stuck in S2C2F with C/C++?
1703 | * pURLs could be used, but you have to use its options for general URLs
1704 | * There are probably nuances here.
1705 | * You could identify with a cryptographic hash
1706 | * They use VCPKG tool for consuming C/C++. They maintain a list of recipes on how to build those components. Every time you use the tool, it grabs the source you need & brings that into your system. Need to cache the software locally. With hjhjkVCPKG they could point to their internal clone.
1707 | * Left-pad was literally removed. Npm has changed their policy, after X days they won’t delete (unless legally required), which reduces the risks from “loss of package”
1708 | * Best to BOTH reduce likelihood of problems upstream AND for larger organizations to have local caches to prevent loss of access
1709 | * Melba presentation
1710 | * Issue: Tampered “after build but before consumption” - maybe there’s a small overlap with SLSA? There’s a small gap between SLSA & S2C2F, need to make sure there’s a “handshake”
1711 | * Fun Fact: S2C2F has a 6-7 page review in [Software Transparency: Supply Chain Security in an Era of a Software-Driven Society | Wiley](https://www.wiley.com/en-us/Software+Transparency%3A+Supply+Chain+Security+in+an+Era+of+a+Software+Driven+Society-p-9781394158492)
1712 | * *if we have time* S2C2F Feedback part 2 (melba)
1713 |
1714 | **2023-06-06 S2C2F SIG Meeting**
1715 |
1716 |
1717 | Attendance
1718 |
1719 |
1720 | _Include org_
1721 |
1722 |
1723 |
1724 | * Adrian Diglio (Microsoft)
1725 | * Jay White (Microsoft)
1726 | * David A. Wheeler (Linux Foundation)
1727 | * Victor Lu (Independent)
1728 | * Yoad Fekete (BlindSpot Security)
1729 | * Melba Lopez (IBM)
1730 |
1731 | Regrets:
1732 |
1733 |
1734 |
1735 | *
1736 |
1737 | Facilitator(s):
1738 |
1739 |
1740 |
1741 | * Adrian Diglio
1742 | * Jay White
1743 |
1744 | Scribe(s):
1745 |
1746 |
1747 |
1748 | * David A. Wheeler (please help!)
1749 |
1750 | Want to contribute to the S2C2 Framework?
1751 |
1752 |
1753 |
1754 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1755 |
1756 | Agenda:
1757 |
1758 |
1759 |
1760 | * New Friends!
1761 | * Worked out binary patch issue [https://github.com/ossf/s2c2f/issues/13](https://github.com/ossf/s2c2f/issues/13)
1762 | * Problem: binary diffs might produce different result than “full” download. This risks mysterious failures/problems.
1763 | * One solution: Run a test to verify that you can reconstitute the full version. Not all clients need to do it, you just need to test it.
1764 | * Melba read out (Redlined everything)
1765 | * Need a “handshake” between SLSA & S2C2F
1766 | * What if package stops being available?
1767 | * Some repos have a policy of not allowing packages to be removed after some time (e.g., npm, to prevent a recurrence of the left-pad problem). Could prefer using repos with such policies, could encourage repo systems to implement such policies
1768 | * End-of-life: It’s important that this be *mechanically* detectable. Perhaps encourage projects to follow some process. E.g., GitHub has “archived” mechanism, I think GitLab does too.
1769 | * “2-line packages” are really common in npm/JavaScript.Around half of all npm packages have 0 or 1 function. That’s unique to npm, other ecosystems aren’t like that.
1770 | * What should we do with less common packages?
1771 | * When a security fix sent, project may reject or not reply
1772 | * Trying to fork it all seems inappropriate
1773 | * Need to find a better way
1774 | * It’ll take time to go through it all.
1775 | * “Don’t ignore security vulnerability fixes!!” - we see this often as a big problem. Often crickets or won’t implement it.
1776 | * One solution: Fork the non-responsive project.
1777 | * Another solution: Get major users (dependors) to switch
1778 | * Vulnerability not fixed by upstream maintainer in desired timeframe
1779 | * Admin of repo have huge number of powers. You can uncheck box to change processes, etc.
1780 | * How do you check if admins are making process exceptions?
1781 | * Can’t catch without logging.
1782 | * Issue: is admin trusted or not? What’s the trust model? Untrusted user vs. subverted account vs. trusted
1783 | * David: Let’s separate “subverted admin account” from “admin account user does bad things”. The former (subverted account) has a VERY strong countermeasure: MFAs. Let’s require MFA for trusted situations, that’s the most likely problem. The latter is a challenge to deal with, we don’t have to solve that today (indeed, maybe you just shouldn’t use that project in that case).
1784 | * Adnan: We might want to consider insider threats outside of scope of this model, those are hard, perhaps should be their own thing.
1785 | * How do we estimate trust?
1786 | * In many ways, “what do others say about it” and “past behavior”. If it’s done well & nothing significant has changed, it’s probably lower risk than others.
1787 | * Microsoft doesn’t have a centralized repo where it gets all OSS, and there’s no org that identifies “pre-approved” OSS. We do recommend that they store artifacts, e.g., in JFrog registration, to mitigate against left-pad attacks.
1788 | * You can clone to internal
1789 | * C/C++ registries: VCPKG & Conan. You can clone to internal location
1790 | * There’s a big advantage of having a copy, stays available.
1791 | * Note: We want this to be a universal document! C, C++, others. Local repo or not. Etc,
1792 | * Can you share this redlined version?
1793 | * Will upload PDF as-is to Slack.
1794 | * David: I’ll create an issue that adds this PDF, so we can continue walking. Issue created here: https://github.com/ossf/s2c2f/issues/22
1795 |
1796 | **2023-05-23 S2C2F SIG Meeting**
1797 |
1798 |
1799 | Attendance
1800 |
1801 |
1802 | _Include org_
1803 |
1804 |
1805 |
1806 | * Jay White (Microsoft)
1807 | * Mike Lieberman (Kusari)
1808 | * David A. Wheeler (Linux Foundation)
1809 | * Tom Bedford (Bloomberg LP) - this seems to speak to our needs for a consumer-oriented framework
1810 | * Victor Lu (Independent)
1811 |
1812 | Regrets:
1813 |
1814 |
1815 |
1816 | * Adrian (at Microsoft Build conference)
1817 |
1818 | Facilitator(s):
1819 |
1820 |
1821 |
1822 | * Adrian Diglio
1823 | * Jay White
1824 |
1825 | Scribe(s):
1826 |
1827 |
1828 |
1829 | * David A. Wheeler (please help!)
1830 |
1831 | Want to contribute to the S2C2 Framework?
1832 |
1833 |
1834 |
1835 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1836 |
1837 | Agenda:
1838 |
1839 |
1840 |
1841 | * New Friends!
1842 | * Victor Lu
1843 | * Tom Bedford
1844 | * Post OSSNA summary
1845 | * We received some questions about the threat matrix. Are they highlighted enough?
1846 | * Had questions about S2C2F & SLSA. “S2C2F is a security framework - if that’s not clear, need to make it clear”
1847 | * David: Now that we have SLSA 1.0, how can we do the crosswalk to ensure no conflict (none expected) & address unnecessary differences. Perhaps where there’s overlap, make in clear that “this S2C2F requirement Y is met by SLSA 1.0 requirement X” or something like that. This is being tracked by issue 14: [https://github.com/ossf/s2c2f/issues/14](https://github.com/ossf/s2c2f/issues/14)
1848 | * In the future, do we want to discuss other issues, e.g., [https://github.com/ossf/s2c2f/issues](https://github.com/ossf/s2c2f/issues)
1849 | * Issue 16 - [https://github.com/ossf/s2c2f/issues/16](https://github.com/ossf/s2c2f/issues/16) - commenter is concerned the mitigation doesn’t seem to counter the claimed problem
1850 |
1851 | **2023-05-09 S2C2F SIG Meeting**
1852 |
1853 |
1854 | Attendance
1855 |
1856 |
1857 | _Include org_
1858 |
1859 |
1860 |
1861 | * Adrian Diglio (Microsoft)
1862 | * Jay White (Microsoft)
1863 | * Jasmine Wang (Microsoft)
1864 | *
1865 |
1866 | Regrets:
1867 |
1868 |
1869 |
1870 | *
1871 |
1872 | Facilitator(s):
1873 |
1874 |
1875 |
1876 | * Adrian Diglio
1877 | * Jay White
1878 |
1879 | Scribe(s):
1880 |
1881 |
1882 |
1883 | * Adrian Diglio
1884 | *
1885 |
1886 | Want to contribute to the S2C2 Framework?
1887 |
1888 |
1889 |
1890 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1891 |
1892 | Agenda:
1893 |
1894 |
1895 |
1896 | * Post RSA summary
1897 | * Slides:
1898 | * Submitted PR to Guide to Security Tools
1899 | * [Update guide.md by adriandiglio · Pull Request #52 · ossf/wg-security-tooling (github.com)](https://github.com/ossf/wg-security-tooling/pull/52)
1900 | * Submitted PR to add new requirement to address author impersonation [Attackers are starting to target .NET developers with malicious-code NuGet packages | JFrog](https://jfrog.com/blog/attackers-are-starting-to-target-net-developers-with-malicious-code-nuget-packages/)
1901 | * [Update framework.md by adriandiglio · Pull Request #20 · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/pull/20)
1902 |
1903 | **2023-04-11 S2C2F SIG Meeting**
1904 |
1905 |
1906 | Attendance
1907 |
1908 |
1909 | _Include org_
1910 |
1911 |
1912 |
1913 | * Jay White (Microsoft)
1914 | * David A. Wheeler (Linux Foundation)
1915 | * Jasmine Wang (Microsoft)
1916 | * Adrian Diglio (Microsoft)
1917 |
1918 | Regrets:
1919 |
1920 |
1921 |
1922 | *
1923 |
1924 | Facilitator(s):
1925 |
1926 |
1927 |
1928 | * Adrian Diglio
1929 | * Jay White
1930 |
1931 | Scribe(s):
1932 |
1933 |
1934 |
1935 | * Adrian Diglio
1936 | *
1937 |
1938 | Want to contribute to the S2C2 Framework?
1939 |
1940 |
1941 |
1942 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
1943 |
1944 | Agenda:
1945 |
1946 |
1947 |
1948 | * Positioning meeting this morning - things are wrapping up with first sprint of SLSA
1949 | * FYI: SLSA version 1.0 is about to be released (expected April 19, build track only levels 1-3). This will make it easier to coordinate SLSA & S2C2F, since we’ll have a 1.0 version to compare to.
1950 | * Have agreed on a shift to S2C2F, so those people will shift over to S2C2F for a bit to get this moving along.
1951 | * S2C2F Explanatory Report, ISO submission
1952 | * In full swing. Will have some working meetings.
1953 | * We have a very early draft, rough, thanks to Jasmine for getting that started. Let’s slide it over to a Google doc.
1954 | * [S2C2F Explanatory Report ISO Submission - Google Docs](https://docs.google.com/document/d/10zaReabMvX_Zw90hOW2TIXrOGEkBvLzniPAT3VUalcg/edit)
1955 | * RSA - very close
1956 | * Canceling S2C2F SIG meeting on April 25th
1957 | * Also Microsoft Build in May - sharing S2C2F
1958 | * Also, Open Summit North America
1959 | * [Issues · ossf/s2c2f (github.com)](https://github.com/ossf/s2c2f/issues)
1960 | * JFrog: [https://github.com/ossf/s2c2f/issues/17](https://github.com/ossf/s2c2f/issues/17) , JFrog article on new attack types seen on NuGet, and assess against our list of mitigations today
1961 | * After discussion, this should be a SEPARATE requirement (at least for audit). Using “and” in a requirement is generally bad practice per Adrian & David A. Wheeler - if it’s important, it’s easy to forget checking the “and”
1962 | * Counter name confusion of origin (author and/or organization)
1963 | * Could be an “audit” entry check.
1964 | * How do we do that check?
1965 | * Start with the “safe” version, then verify that the “others” are the same. E.g., go to the website of the author/organization first where you know it’s the right one. Otherwise the “others” can fool people by looking the same.
1966 | * How do we scale? David: I think this is one-short per added dependency.
1967 | *
1968 | * Also: Training stuff - governing board is reviewing training proposal funding (Stream 1 of mobilization plan) - not clear if that has anything S2C2F specific, but related
1969 | * S2C2F training
1970 | * Can embed in existing material (SKF/Foundations) or create own. If it’s small, consider embedding in existing.
1971 | * LF Training & Certification can do things, you don’t *have* to use them but it often helps.
1972 | * Training probably after formal release
1973 | * Rough draft outline for putting together a S2C2F training course on SKF https://docs.google.com/document/d/1TftXxcDenkTeAdvBbCgTNF3NXP0VNyAT0c3vG8JZ7qU/edit#heading=h.v71dl8nz8wi4
1974 | *
1975 |
1976 | **2023-03-28 S2C2F SIG Meeting**
1977 |
1978 |
1979 | Attendance
1980 |
1981 |
1982 | _Include org_
1983 |
1984 |
1985 |
1986 | * Jay White (Microsoft)
1987 |
1988 | Regrets:
1989 |
1990 |
1991 |
1992 | *
1993 |
1994 | Facilitator(s):
1995 |
1996 |
1997 |
1998 | * Adrian Diglio
1999 | * Jay White
2000 |
2001 | Scribe(s):
2002 |
2003 |
2004 |
2005 | * Adrian Diglio
2006 | *
2007 |
2008 | Want to contribute to the S2C2 Framework?
2009 |
2010 |
2011 |
2012 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2013 |
2014 | Agenda:
2015 |
2016 |
2017 |
2018 | * Explanatory Report
2019 | * RSA
2020 | * OS Summit
2021 |
2022 | **2023-03-28 S2C2F SIG Meeting**
2023 |
2024 |
2025 | Attendance
2026 |
2027 |
2028 | _Include org_
2029 |
2030 |
2031 |
2032 | * Adrian Diglio (Microsoft)
2033 | * Jay White (Microsoft)
2034 | * Tim Pepper (VMware)
2035 | * John Kjell (VMware)
2036 | * Sanket Naik (Palosade)
2037 | * Jasmine Wang (Microsoft)
2038 |
2039 | Regrets:
2040 |
2041 |
2042 |
2043 | *
2044 |
2045 | Facilitator(s):
2046 |
2047 |
2048 |
2049 | * Adrian Diglio
2050 | * Jay White
2051 |
2052 | Scribe(s):
2053 |
2054 |
2055 |
2056 | * Adrian Diglio
2057 |
2058 | Want to contribute to the S2C2 Framework?
2059 |
2060 |
2061 |
2062 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2063 |
2064 | Agenda:
2065 |
2066 |
2067 |
2068 | * Security Tools WG approved request to add a new category of tool to the Guide for Security Tools [Suggestion: Add a new section to the "Guide to Security Tools" to cover tools that improve MTTR for OSS vulnerabilities · Issue #48 · ossf/wg-security-tooling (github.com)](https://github.com/ossf/wg-security-tooling/issues/48)
2069 | * RSA slides are final today
2070 | * Have positive reviewer feedback
2071 | * Conf is Mon, Apr 24, 2023 – Thu, Apr 27, 2023
2072 | * Issue triage:
2073 | * New [https://github.com/ossf/s2c2f/issues/16](https://github.com/ossf/s2c2f/issues/16)
2074 | * Recent article [https://medium.com/checkmarx-security/new-attack-vector-observed-targeting-net-developers-in-a-software-supply-chain-attack-c28bfe4decd2](https://medium.com/checkmarx-security/new-attack-vector-observed-targeting-net-developers-in-a-software-supply-chain-attack-c28bfe4decd2) highlights a new-ish type of threat, which might not be fully addressed in s2c2f. Instead of typo-squating a project or package, they’re typo-squating a human maintainer. New [issue](https://github.com/ossf/s2c2f/issues/17) to track.
2075 |
2076 | **2023-03-14 S2C2F SIG Meeting**
2077 |
2078 |
2079 | Attendance
2080 |
2081 |
2082 | _Include org_
2083 |
2084 |
2085 |
2086 | * Jay White (Microsoft)
2087 | * Randall T. Vasquez (SKF/Gentoo)
2088 | * Glenn ten Cate (SKF)
2089 | * Jasmine Wang (Microsoft)
2090 | * David A. Wheeler (Linux Foundation)
2091 | * Kris K (Google)
2092 | * Jonathan Leitschuh
2093 |
2094 | Regrets:
2095 |
2096 |
2097 |
2098 | *
2099 |
2100 | Facilitator(s):
2101 |
2102 |
2103 |
2104 | * Adrian Diglio
2105 | * Jay White
2106 |
2107 | Scribe(s):
2108 |
2109 |
2110 |
2111 | * Adrian Diglio
2112 |
2113 | Want to contribute to the S2C2 Framework?
2114 |
2115 |
2116 |
2117 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2118 |
2119 | Agenda:
2120 |
2121 |
2122 |
2123 | * S2C2F Course Outline for SKF [S2C2F Course Outline for SKF - Google Docs](https://docs.google.com/document/d/1TftXxcDenkTeAdvBbCgTNF3NXP0VNyAT0c3vG8JZ7qU/edit#)
2124 | * We now have a folder on the OpenSSF Google Drive [S2C2F Sig - Google Drive](https://drive.google.com/drive/folders/1asz0ZlUPnp7lMXjxO4v5dDBSTJr0IQtI)
2125 | * Outstanding Issues [https://github.com/ossf/s2c2f/issues](https://github.com/ossf/s2c2f/issues)
2126 |
2127 | **2023-02-28 S2C2F SIG Meeting**
2128 |
2129 |
2130 | Attendance
2131 |
2132 |
2133 | _Include org_
2134 |
2135 |
2136 |
2137 | * Jay White (Microsoft)
2138 | * David A. Wheeler (Linux Foundation)
2139 |
2140 | Regrets:
2141 |
2142 |
2143 |
2144 | * Adrian Diglio
2145 |
2146 | Facilitator(s):
2147 |
2148 |
2149 |
2150 | * Adrian Diglio
2151 | * Jay White
2152 |
2153 | Scribe(s):
2154 |
2155 |
2156 |
2157 | *
2158 | *
2159 |
2160 | Want to contribute to the S2C2 Framework?
2161 |
2162 |
2163 |
2164 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2165 |
2166 | Agenda:
2167 |
2168 |
2169 |
2170 | * New spec format - Propose funding for ISO format edits
2171 | * Should double-check that the format is (or similar to) ISO format
2172 | * Could ask for funding from TAC/GB
2173 | * SCI Positioning SIG - Formerly SLSA Positioning to include S2C2F and FRSCA
2174 | * Broadening, how they’re working together.
2175 | * Sharing S2C2F was discussed in the opensourcesecurity podcast [Episode 363 – Joylynn Kirui from Microsoft on DevSecOps – Open Source Security](https://opensourcesecurity.io/2023/02/19/episode-363-joylynn-kirui-from-microsoft-on-devsecops/)
2176 | * - Inclusion of S2C2F in the SKF??
2177 | * Discussing creating training modules for S2C2F. Maybe 8 hours? Talked with Tim S.
2178 | * David: Let’s cross-compare with SLSA first (build part levels 1-3 draft 1.0 out)
2179 | * - Inclusion of S2C2F OSS patching tools into the Security Tooling WG Guide (Sarah Evans)
2180 | * Maybe get time around OpenSSF Day. Perhaps 8 hour training time.
2181 |
2182 | **2023-02-14 S2C2F SIG Meeting**
2183 |
2184 |
2185 | Attendance
2186 |
2187 |
2188 | _Include org_
2189 |
2190 |
2191 |
2192 | * Adrian Diglio (Microsoft)
2193 | * Jay White (Microsoft)
2194 | * Arnaud J Le Hors (IBM)
2195 | * Jasmine Wang (Microsoft)
2196 | * Eric Tice (Wipro)
2197 | * Avishay Balter (Microsoft)
2198 | * David A. Wheeler (Linux Foundation)
2199 |
2200 | Regrets:
2201 |
2202 |
2203 |
2204 | *
2205 |
2206 | Facilitator(s):
2207 |
2208 |
2209 |
2210 | * Adrian Diglio
2211 | * Jay White
2212 |
2213 | Scribe(s):
2214 |
2215 |
2216 |
2217 | * Adrian Diglio
2218 | *
2219 |
2220 | Want to contribute to the S2C2 Framework?
2221 |
2222 |
2223 |
2224 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2225 |
2226 | Agenda:
2227 |
2228 |
2229 |
2230 | * New spec format
2231 | * Making it adopt a proper format for eventual industry standard adoption
2232 | * ISO format, to make ISO happy
2233 | * It’s harder to do from one to another.
2234 | * Current plan: Want to merge inside the GitHub repo. We’ll try to create any issues, etc., in markdown. If it’s too hard, then we’ll have to start maintaining in parallel. We want to maximize the opportunity to discuss & propose changes to it.
2235 | * The ISO specification needs to not include names of specific tools, etc. The ISO spec needs to be “side by side”. Maybe have 2 documents?
2236 | * David: Try to avoid parallel maintenance. If you must, it works if if it is JUST formatting, don’t have CONTENT difference. Different content can go into a different appendix or different document.
2237 | * Arnaud: One must win.
2238 | * Basically, the typical result is an “ISO formatted” specification and another spec that has exactly the same contents. This was done by SPDX, Ada programming language, Common Criteria, etc.
2239 | * For now, we’re going to move to making the Google docs version the official version.
2240 | * [S2C2F - Google Docs](https://docs.google.com/document/d/1AxY5e9kNRwFYbxT3969gO8BYjXBLJWGOLqGlP3LUEn4/edit) - this is where we’ll work on it for now. We’ll need to take steps to make it look more like an ISO document. Need to ensure there are ties/bridges to other things, e.g., OpenSSF.
2241 | * Terms & definitions: They need to be uniform across OpenSSF & really common in industry. Let’s discuss things when definitions disagree. One language (where we can).
2242 | * David: Let’s move stuff that doesn’t belong in an ISO spec but DOES belong into an appendix. Then the information isn’t lost.
2243 | * Adrian to follow up with Jennifer Bly ([jbly@linuxfoundation.org](mailto:jbly@linuxfoundation.org)) to get OpenSSF branding/logos to include in RSA talk
2244 | * Panel Discussion at upcoming conference with SLSA, S2C2F
2245 | * OpenSSF Day and Town Hall is coming up. We can submit a CFP
2246 | * Opportunity to highlight what we’re doing across the entire Supply Chain Integrity WG.
2247 | * Looking for adopters!
2248 | * Eric is at Wipro (a consultant company), and would be mostly recommending these to their clients and internal development teams to help improve our products and solutions security posture.
2249 | * David: We need to do a cross-comparison with SLSA. I’ve asked someone else (Jordan Harband) to try to do that. It’s okay if one says something that the other doesn’t, but if there’s a _conflict_ we should know & discuss.
2250 | * Can/Should OpenSSF host a landing page for “Supply Chain Security” all-up, so that it shows how SLSA, S2C2F, and FRSCA fit together?
2251 |
2252 | **2023-01-31 S2C2F SIG Meeting**
2253 |
2254 | Type: Working Session
2255 |
2256 |
2257 | Join:[https://zoom.us/j/99498377871](https://zoom.us/j/99498377871)
2258 |
2259 |
2260 | : [S2C2F SIG Meeting](https://zoom.us/j/99498377871)
2261 |
2262 | Materials: [https://github.com/ossf/s2c2f](https://github.com/ossf/s2c2f)
2263 |
2264 | General Notes
2265 |
2266 |
2267 |
2268 |
2269 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
2270 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
2271 | * E.g. Jane Doe.
2272 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
2273 | * E.g. John Doe (no update).
2274 |
2275 | Attendance
2276 |
2277 |
2278 | _Include org_
2279 |
2280 |
2281 |
2282 | * Adrian Diglio (Microsoft)
2283 | * Jay White (Microsoft)
2284 | * Alexandre Nicastro (Nikas)
2285 | * Rusydy Muhiddin (KoinworksSoftware engineer)
2286 | * Jasmine Wang (Microsoft)
2287 |
2288 | Regrets:
2289 |
2290 |
2291 |
2292 | *
2293 |
2294 | Facilitator(s):
2295 |
2296 |
2297 |
2298 | * Adrian Diglio
2299 | * Jay White
2300 |
2301 | Scribe(s):
2302 |
2303 |
2304 |
2305 | * Adrian Diglio
2306 |
2307 | Want to contribute to the S2C2 Framework?
2308 |
2309 |
2310 |
2311 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2312 |
2313 | Agenda:
2314 |
2315 |
2316 |
2317 | * Announcing RSA session in April to share the S2C2F
2318 | * April 26th at 8:30 am. 50 minute session.
2319 | * Checking with RSA liaison about changing the title of the S2C2F session
2320 | * Great opportunity for us to spread awareness about how the S2C2F can be adopted by any team or organization to secure how they consume dependencies into the development workflow
2321 | * Review Strategy for S2C2F within the OpenSSF
2322 | *
2323 | * Spec reformatting
2324 | * Did initial formatting in MS Word. Will convert over to Markdown.
2325 | * Will show up as an Issue and Pull Request in the near future
2326 | * CISA primer
2327 | * 10 minute presentation, takes place before RSA session
2328 | * They are looking for potential things to adopt
2329 | * Government visibility
2330 | * Engaged and working with NSA Enduring Security Framework
2331 | * [Enduring Security Framework ESF (nsa.gov)](https://www.nsa.gov/About/Cybersecurity-Collaboration-Center/Cybersecurity-Partnerships/ESF/) Will eventually be available here
2332 | * Open Topics?
2333 |
2334 | **2022-12-13 S2C2F SIG Meeting**
2335 |
2336 | Type: Working Session
2337 |
2338 |
2339 | Join:[https://zoom.us/j/99498377871](https://zoom.us/j/99498377871)
2340 |
2341 |
2342 | : [S2C2F SIG Meeting](https://zoom.us/j/99498377871)
2343 |
2344 | Materials: [https://github.com/ossf/s2c2f](https://github.com/ossf/s2c2f)
2345 |
2346 | General Notes
2347 |
2348 |
2349 |
2350 |
2351 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
2352 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
2353 | * E.g. Jane Doe.
2354 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
2355 | * E.g. John Doe (no update).
2356 |
2357 | Attendance
2358 |
2359 |
2360 | _Include org_
2361 |
2362 |
2363 |
2364 | * Adrian Diglio (Microsoft)
2365 | * Jay White (Microsoft)
2366 | * Jeff (Sonatype)
2367 | * Issac Hepworth (Google)
2368 | * Jay White (Microsoft)
2369 | * William (Bill) Tworek (IBM)
2370 | * Brian Fox (Sonatype, GB)
2371 |
2372 | Regrets:
2373 |
2374 |
2375 |
2376 | *
2377 |
2378 | Facilitator(s):
2379 |
2380 |
2381 |
2382 | * Adrian Diglio
2383 | * Jay White
2384 |
2385 | Scribe(s):
2386 |
2387 |
2388 |
2389 | * Adrian Diglio
2390 | *
2391 |
2392 | Want to contribute to the S2C2 Framework?
2393 |
2394 |
2395 |
2396 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2397 |
2398 | Agenda:
2399 |
2400 |
2401 |
2402 | * Review Strategy for S2C2F within the OpenSSF
2403 | *
2404 | * Request for a S2C2F Goose icon that looks like R2D2
2405 | * Open Topics?
2406 |
2407 | **2022-11-29 S2C2F SIG Meeting**
2408 |
2409 | Type: Working Session
2410 |
2411 |
2412 | Join:[https://zoom.us/j/99498377871](https://zoom.us/j/99498377871)
2413 |
2414 |
2415 | : [S2C2F SIG Meeting](https://zoom.us/j/99498377871)
2416 |
2417 | Materials: [https://github.com/ossf/s2c2f](https://github.com/ossf/s2c2f)
2418 |
2419 | General Notes
2420 |
2421 |
2422 |
2423 |
2424 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
2425 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
2426 | * E.g. Jane Doe.
2427 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
2428 | * E.g. John Doe (no update).
2429 |
2430 | Attendance
2431 |
2432 |
2433 | _Include org_
2434 |
2435 |
2436 |
2437 | * X
2438 | * Y
2439 |
2440 | Regrets:
2441 |
2442 |
2443 |
2444 | *
2445 |
2446 | Facilitator(s):
2447 |
2448 |
2449 |
2450 | * Adrian Diglio
2451 | * Jay White
2452 |
2453 | Scribe(s):
2454 |
2455 |
2456 |
2457 | * Adrian Diglio
2458 | *
2459 |
2460 | Want to contribute to the S2C2 Framework?
2461 |
2462 |
2463 |
2464 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2465 |
2466 | Agenda:
2467 |
2468 |
2469 |
2470 | * Blog Post went on Nov 16, as planned
2471 | * [https://openssf.org/blog/2022/11/16/openssf-expands-supply-chain-integrity-efforts-with-s2c2f/](https://openssf.org/blog/2022/11/16/openssf-expands-supply-chain-integrity-efforts-with-s2c2f/)
2472 | *
2473 |
2474 | **2022-11-15 S2C2F SIG Meeting**
2475 |
2476 | Type: Working Session
2477 |
2478 |
2479 | Join:[https://zoom.us/j/99498377871](https://zoom.us/j/99498377871)
2480 |
2481 |
2482 | : [S2C2F SIG Meeting](https://zoom.us/j/99498377871)
2483 |
2484 | Materials: [https://github.com/ossf/s2c2f](https://github.com/ossf/s2c2f)
2485 |
2486 | General Notes
2487 |
2488 |
2489 |
2490 |
2491 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
2492 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
2493 | * E.g. Jane Doe.
2494 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
2495 | * E.g. John Doe (no update).
2496 |
2497 | Attendance
2498 |
2499 |
2500 | _Include org_
2501 |
2502 |
2503 |
2504 | * Adrian Diglio (Microsoft) - leads secure software supply chain team, main contributors to this framework that we’ve published that we use to secure ourselves
2505 | * David A. Wheeler (Linux Foundation)
2506 | * Brian Fox (Sonatype)
2507 | * Avishay Balter (Microsoft)
2508 | * Randall
2509 | * Michael Scovetta (Microsoft)
2510 | * Isaac Hepworth (Google)
2511 | * Alfred Tom (Lumian/SunSpec)
2512 |
2513 | Regrets:
2514 |
2515 |
2516 |
2517 | *
2518 |
2519 | Facilitator(s):
2520 |
2521 |
2522 |
2523 | * Adrian Diglio
2524 | * Jay White
2525 |
2526 | Scribe(s):
2527 |
2528 |
2529 |
2530 | * Adrian Diglio
2531 | *
2532 |
2533 | Want to contribute to the S2C2 Framework?
2534 |
2535 |
2536 |
2537 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2538 |
2539 | Agenda
2540 |
2541 |
2542 | Agenda:
2543 |
2544 |
2545 |
2546 | * Blog Post - alignment on timing (Nov 16)
2547 | * David: Jay needs to approve the final draft blog post. I think it’s ready for release tomorrow!
2548 | * Goal is to let people know about S2C2F, which may add more participants too.
2549 | * We walked through the blog post & resolves all changes.
2550 | * There were some small governance tweaks, etc.
2551 | * Added reference implementations [s2c2f/README.md at main · ossf/s2c2f · GitHub](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2552 | * [PDF vs. Markdown?](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2553 | * [Currently the PDF isn’t auto-generated, so it goes out of date](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2554 | * [Currently we update the markdown, and eventually update the PDF](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2555 | * [Randall: Some groups create PDFs as “releases”. I do know how to generate PDFs from markdown using GitHub Actions. I’ll fork and play around.](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2556 | * [David: It’s not an OpenSSF project requirement, but OpenSSF Scorecards encourages the use of protected branches. Can we enable protected branches in ](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2557 | * [All agreed & gave David permission to do it](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2558 | * [David implemented it - now it has protected branches](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2559 | * [Operational issues? Email: operations@openssf.org](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2560 | * [Randall: I know it’s premature, but what about distributing this with the rest of our educational materials?](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2561 | * [Large markdown files are difficult to ingest if some sections are really large with no subsections](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2562 | * [Create many named sections/subsections with names](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2563 | * [David: If page doesn’t have a section name, consider adding one. That helps create signposts so readers “know where they are” in a complicated technical document.](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2564 | * [David: Generally we modify educational materials after they reach “1.0” - that way people can refine, update, etc.](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2565 | * [SKF, Fundamentals](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2566 | * [What about conectino to “Guide to Evaluating OSS” https://github.com/ossf/wg-best-practices-os-developers/blob/main/docs/Concise-Guide-for-Evaluating-Open-Source-Software.md#readme](https://github.com/ossf/s2c2f/blob/main/Reference_implementation/README.md)
2567 |
2568 | **2022-11-01 S2C2F SIG Meeting**
2569 |
2570 | Type: Working Session
2571 |
2572 |
2573 | Join:[https://zoom.us/j/99498377871](https://zoom.us/j/99498377871)
2574 |
2575 | : [S2C2F SIG Meeting](https://zoom.us/j/99498377871)
2576 |
2577 | Materials: [https://github.com/ossf/s2c2f](https://github.com/ossf/s2c2f)
2578 |
2579 | General Notes
2580 |
2581 |
2582 |
2583 |
2584 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
2585 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
2586 | * E.g. Jane Doe.
2587 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
2588 | * E.g. John Doe (no update).
2589 |
2590 | Attendance
2591 |
2592 |
2593 | _Include org_
2594 |
2595 |
2596 |
2597 | * Adrian Diglio (Microsoft) - leads secure software supply chain team, main contributors to this framework that we’ve published that we use to secure ourselves
2598 | * Jay White (Microsoft)
2599 | * Isaac Hepworth (Google)
2600 | * Randall T. Vasquez (Gentoo)
2601 | * Avishay Balterr (Microsoft)
2602 | * Alasdair Nottingham (IBM)
2603 | * David A. Wheeler (Linux Foundation)
2604 |
2605 | Regrets:
2606 |
2607 |
2608 |
2609 | *
2610 |
2611 | Facilitator(s):
2612 |
2613 |
2614 |
2615 | * Adrian Diglio
2616 | * Jay White
2617 |
2618 | Scribe(s):
2619 |
2620 |
2621 |
2622 | * Adrian Diglio
2623 | * David A. Wheeler
2624 |
2625 | Want to contribute to the S2C2 Framework?
2626 |
2627 |
2628 |
2629 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2630 |
2631 | Agenda
2632 |
2633 |
2634 | Agenda:
2635 |
2636 |
2637 |
2638 | * Blog Post - alignment on timing (Nov 16)
2639 | * David: I suggest talking with Jennifer Bly [jbly@linuxfoundation.org](mailto:jbly@linuxfoundation.org). We need a final draft we can send to at least the TAC before release so they can respond if there’s an issue. (They typically don’t object to proposed posts, since we try to give them good stuff to start with, but we need to make sure that they can review & have an opportunity to raise an issue.)
2640 | * Jay: Will do, with planned release date of Nov 16.
2641 | * Specification meeting breakout
2642 | * David: We might want to discuss positioning more first, to address that & then it’ll be easier to specify
2643 | * Jay: We’ve been interacting with the SLSA Positioning WG, so we’ve already had good meetings & made progress.
2644 | * Jay: There are other things we’ll need to do, e.g., review licensing to make sure we’re going the right way. I can see focusing meetings on one and then the other.
2645 | * David: Should I try to have someone give a presentation on the LF processes for creating standards?
2646 | * Jay: We’re already talking with Jory Burson (VP Standards), it might be good to have a presentation but we’re already working together on this.
2647 | * E.g., there are some cleanup activities we need to do to work out the Community Specification work.
2648 | * Repo updates
2649 | * Spec review
2650 | * Jay: I know some people have reviewed it.
2651 | * David: I reviewed, I could send individually, but if I send them as issues then people can comment
2652 | * Jay: Issues sound great.
2653 | * David: Okay, I’ll send my comments as GitHub issues.
2654 |
2655 | **2022-10-18 S2C2F SIG Meeting**
2656 |
2657 | Type: Working Session
2658 |
2659 |
2660 | Join:[https://zoom.us/j/99498377871](https://zoom.us/j/99498377871)
2661 |
2662 |
2663 | : [S2C2F SIG Meeting](https://zoom.us/j/99498377871)
2664 |
2665 | Materials: [https://github.com/ossf/s2c2f](https://github.com/ossf/s2c2f)
2666 |
2667 | General Notes
2668 |
2669 |
2670 |
2671 |
2672 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
2673 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
2674 | * E.g. Jane Doe.
2675 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
2676 | * E.g. John Doe (no update).
2677 |
2678 | Attendance
2679 |
2680 |
2681 | _Include org_
2682 |
2683 |
2684 |
2685 | * Adrian Diglio (Microsoft) - leads secure software supply chain team, main contributors to this framework that we’ve published that we use to secure ourselves
2686 | * Jay White (Microsoft)
2687 | * Jasmine Wang (Microsoft)
2688 | * Isaac Hepworth (Google)
2689 | * Jason Lutz (Chainguard)
2690 | * Michael Scovetta (Microsoft)
2691 | * Avishay Balter (Microsoft)
2692 | * B. Ganti (Microsoft)
2693 | * Azeem ()
2694 | * David Tesar (Microsoft)
2695 | * Avishay Balter (Microsoft)
2696 | * Aeva Black (Microsoft)
2697 | * Toddy (Microsoft)
2698 | *
2699 |
2700 | Regrets:
2701 |
2702 |
2703 |
2704 | *
2705 |
2706 | Facilitator(s):
2707 |
2708 |
2709 |
2710 | * Adrian Diglio
2711 | * Jay White
2712 |
2713 | Scribe(s):
2714 |
2715 |
2716 |
2717 | * Adrian Diglio
2718 | *
2719 |
2720 | Want to contribute to the S2C2 Framework?
2721 |
2722 |
2723 |
2724 | * See [Maintaining the S2C2F Specification](https://github.com/ossf/s2c2f/blob/main/specification/README.md)
2725 |
2726 | Agenda
2727 |
2728 |
2729 | Agenda:
2730 |
2731 |
2732 |
2733 | * Secure Supply Chain Consumption Framework (S2C2F) SIG Initiation
2734 | * Meeting cadence (proposing 2x / month)
2735 | * Agreed on doing bi-weekly on Tuesdays at 12:00 Pacific
2736 | * Blog announcement
2737 | * SLSA and S2C2F within OpenSSF
2738 | * Working on bridging the two frameworks while they serve their clear intended purposes
2739 | * Vision: Have a -1, -2, and -3 single ISO standard for securing the supply chain
2740 | * What to name this conjoined framework? Let’s have a discussion with the larger conglomerate (not within this meeting)
2741 | * Suggestion: Have SLSA Positioning meeting be renamed and up-leveled to be Supply Chain Integrity/Security Positioning meeting.
2742 | * Pursuing ISO Standardization
2743 | * Maintaining the most current version of the specification within OpenSSF
2744 | * There will be another name/number under ISO
2745 | * Another parallel/example is SPDX. There is a path to get approval to make this available as a Standard
2746 | * Having conversations with the precursor to pursue ISO standardization
2747 | * Changes merged to address multiple previous Issues
2748 | * Issue #11
2749 | * No objections, moving forward with making the change.
2750 | * Need to reach out to OpenSSF Ops on logistics of moving the repo into OpenSSF
2751 | * Other topics?
2752 |
2753 | **2022-09-26 OSS SSC Framework Technical Meeting**
2754 |
2755 | Type: Working Session
2756 |
2757 |
2758 | Join: [https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09](https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09)
2759 |
2760 |
2761 | : [OSS SSC Framework Community Meeting](https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09)
2762 |
2763 | Materials: [https://github.com/microsoft/oss-ssc-framework](https://github.com/microsoft/oss-ssc-framework)
2764 |
2765 | General Notes
2766 |
2767 |
2768 |
2769 |
2770 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
2771 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
2772 | * E.g. Jane Doe.
2773 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
2774 | * E.g. John Doe (no update).
2775 |
2776 | Attendance
2777 |
2778 |
2779 | _Include org_
2780 |
2781 |
2782 |
2783 | * Adrian Diglio (Microsoft) - leads secure software supply chain team, main contributors to this framework that we’ve published that we use to secure ourselves
2784 | * Jay White (Microsoft)
2785 | * Mike Lieberman (Kusari)
2786 | * David Tesar (Microsoft)
2787 | * Randall T. Vasquez (Gentoo)
2788 | * Roy Williams (Microsoft)
2789 | * Jasmine Wang (Microsoft)
2790 |
2791 | Regrets:
2792 |
2793 |
2794 |
2795 | *
2796 |
2797 | Facilitator(s):
2798 |
2799 |
2800 |
2801 | * Adrian Diglio
2802 | * Jay White
2803 |
2804 | Scribe(s):
2805 |
2806 |
2807 |
2808 | * Adrian Diglio
2809 | *
2810 |
2811 | Want to contribute to the OSS SSC Framework?
2812 |
2813 |
2814 |
2815 | * See [Maintaining the OSS SSC Framework Specification](https://github.com/microsoft/oss-ssc-framework/blob/main/specification/README.md)
2816 |
2817 | Agenda
2818 |
2819 |
2820 | Agenda:
2821 |
2822 |
2823 |
2824 | * Look at the GitLab Recommended Implementation Guide
2825 | * Discussed the nuances of language packages vs. Linux system packages vs. containers
2826 | *
2827 |
2828 | **2022-09-20 OSS SSC Framework Community Meeting**
2829 |
2830 | Type: Working Session
2831 |
2832 |
2833 | Join: [https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09](https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09)
2834 |
2835 |
2836 | : [OSS SSC Framework Community Meeting](https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09)
2837 |
2838 | Materials: [https://github.com/microsoft/oss-ssc-framework](https://github.com/microsoft/oss-ssc-framework)
2839 |
2840 | General Notes
2841 |
2842 |
2843 |
2844 |
2845 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
2846 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
2847 | * E.g. Jane Doe.
2848 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
2849 | * E.g. John Doe (no update).
2850 |
2851 | Attendance
2852 |
2853 |
2854 | _Include org_
2855 |
2856 |
2857 |
2858 | * Adrian Diglio (Microsoft) - leads secure software supply chain team, main contributors to this framework that we’ve published that we use to secure ourselves
2859 | * Jay White (Microsoft)
2860 | * Avishay Balter (Microsoft)
2861 | * B. Ganti (Microsoft)
2862 | * Aaron Bacchi (Verizon)
2863 | * Michael Scovetta (Microsoft)
2864 | * Jasmine Wang (Microsoft)
2865 | * David Tesar (Microsoft)
2866 | * Isaac Hepworth (Google)
2867 | * Alasdair Nottingham (IBM)
2868 | * David A. Wheeler (Linux Foundation)
2869 | * Joe Bussell (Microsoft)
2870 |
2871 | Regrets:
2872 |
2873 |
2874 |
2875 | * Crob (Intel)
2876 |
2877 | Facilitator(s):
2878 |
2879 |
2880 |
2881 | * Adrian Diglio
2882 | * Jay White
2883 |
2884 | Scribe(s):
2885 |
2886 |
2887 |
2888 | * Adrian Diglio
2889 | *
2890 |
2891 | Want to contribute to the OSS SSC Framework?
2892 |
2893 |
2894 |
2895 | * See [Maintaining the OSS SSC Framework Specification](https://github.com/microsoft/oss-ssc-framework/blob/main/specification/README.md)
2896 |
2897 | Agenda
2898 |
2899 |
2900 | Agenda:
2901 |
2902 |
2903 |
2904 | * Opening Statements by Jay about potential/upcoming contribution to OpenSSF
2905 | * Where in the OpenSSF shall this go? We have presented this to Best Practices WG, Supply Chain Integrity WG, and End Users WG.
2906 | * TAC can adjudicate things, but would like us to first work through it on our own, and only escalate if there is an issue.
2907 | * David: Suggests the Supply Chain Integrity WG, keeps it with SLSA & that might help ensure they integrate together better.
2908 | * Idea of an “enterprise” WG? Does any WG have other activities that align with this customer base? Restructure of WG is being discussed in the TAC, but we shouldn’t delay the OSS SSC Framework’s contribution here.
2909 | * Vote within meeting: majority believed SSC should first propose to be part of the Supply Chain Integrity WG. That said, End Users is quite plausible, & there’s an argument for Best Practices
2910 | * “I think it will thrive wherever it ends up”
2911 | * Access Control of Google Doc - provide a comment link (instead of edit link). Create a group and add people to group
2912 | * Proposal: Ensure that it’s clear that not all projects will want to be the top level & you may want a mix of levels (e.g., level 2 for some criteria, 3 for others). Potentially add more clarification around Level 4 being aspirational in most cases
2913 | * [https://github.com/microsoft/oss-ssc-framework/issues/9](https://github.com/microsoft/oss-ssc-framework/issues/9)
2914 | * Review and Triage Issues: [Issues · microsoft/oss-ssc-framework (github.com)](https://github.com/microsoft/oss-ssc-framework/issues)
2915 | * OSCAL - note relationship with SLSA too: [https://github.com/slsa-framework/slsa/issues/478](https://github.com/slsa-framework/slsa/issues/478)
2916 | * Currently they edit in markdown & then occasionally generate PDF
2917 | * They could auto-generated
2918 | * Feedback from NIST NCCoE presentation was to map it to [Software Security Framework | BSIMM](https://www.bsimm.com/framework.html)
2919 | * Would the OSS SSC Framework create example “attestations” of conformance?
2920 | * Let’s look into OSCAL, and request OSCAL member to come present
2921 | * Other topics?
2922 |
2923 | **2022-08-29 OSS SSC Framework Technical Meeting**
2924 |
2925 | Type: Working Session
2926 |
2927 |
2928 | Join: [https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09](https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09)
2929 |
2930 |
2931 | : [OSS SSC Framework Community Meeting](https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09)
2932 |
2933 | Materials: [https://github.com/microsoft/oss-ssc-framework](https://github.com/microsoft/oss-ssc-framework)
2934 |
2935 | General Notes
2936 |
2937 |
2938 |
2939 |
2940 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
2941 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
2942 | * E.g. Jane Doe.
2943 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
2944 | * E.g. John Doe (no update).
2945 |
2946 | Attendance
2947 |
2948 |
2949 | _Include org_
2950 |
2951 |
2952 |
2953 | * Adrian Diglio (Microsoft) - leads secure software supply chain team, main contributors to this framework that we’ve published that we use to secure ourselves
2954 | * Crob (Intel)
2955 | * Joe Bussell (Microsoft) - Lead in Windows Engineering System
2956 | * Jasmine Wang (Microsoft)
2957 | * Michael Scovetta (Microsoft)
2958 | * B. Ganti -
2959 | * Toddy
2960 |
2961 | Regrets:
2962 |
2963 |
2964 |
2965 | *
2966 |
2967 | Facilitator(s):
2968 |
2969 |
2970 |
2971 | * Adrian Diglio
2972 | * Jay White
2973 |
2974 | Scribe(s):
2975 |
2976 |
2977 |
2978 | *
2979 | *
2980 |
2981 | Want to contribute to the OSS SSC Framework?
2982 |
2983 |
2984 |
2985 | * See [Maintaining the OSS SSC Framework Specification](https://github.com/microsoft/oss-ssc-framework/blob/main/specification/README.md)
2986 |
2987 | Agenda
2988 |
2989 |
2990 | Agenda:
2991 |
2992 |
2993 |
2994 | * First pass at a Reference implementation on GitHub [Reference Implementation of OSS SSC Framework - Google Docs](https://docs.google.com/document/d/1De8elgq5EC1bG8DIIbISnCv12zrPDyPcBudurvCbjOI/edit#)
2995 |
2996 | **2022-08-16 OSS SSC Framework Community Meeting**
2997 |
2998 | Type: Working Session
2999 |
3000 |
3001 | Join: [https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09](https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09)
3002 |
3003 | : [OSS SSC Framework Community Meeting](https://zoom.us/j/98482103886?pwd=cENwUmxGcWJOY0VMTTc4NUlHVDlXdz09)
3004 |
3005 | Materials: [https://github.com/microsoft/oss-ssc-framework](https://github.com/microsoft/oss-ssc-framework)
3006 |
3007 | General Notes
3008 |
3009 |
3010 |
3011 |
3012 | * **Please add yourself to the attendance list (below) if you plan to attend, or have just joined the meeting.**
3013 | * If you’re a new member or if you have an update, please just provide your name. The facilitator will invite you to speak during the check-in phase of the meeting.
3014 | * E.g. Jane Doe.
3015 | * If you do not wish to be called on during the check-in, please put “(no update)”, minus the quotes, to the right of your name.
3016 | * E.g. John Doe (no update).
3017 |
3018 | Attendance
3019 |
3020 |
3021 | _Include org_
3022 |
3023 |
3024 |
3025 | * Adrian Diglio (Microsoft) - leads secure software supply chain team, main contributors to this framework that we’ve published that we use to secure ourselves
3026 | * Jay White (Microsoft) - working to bring this into the open.
3027 | * VM (Vicky) Brasseur (Wipro) - Director of Open Source Strategy at Wipro.
3028 | * Randall T. Vasquez (Gentoo/Homebrew)
3029 | * CRob (Intel, OpenSSF TAC, OpenSSF Best Practices WG co-lead)
3030 | * Sarah Novotny (Microsoft, LF Board Member, leads OSS strategy for Microsoft)
3031 | * Steven Murawski (Microsoft) - Cloud Native advocacy team, in OpenSSF best practices WG
3032 | * David A. Wheeler (Linux Foundation) - Director of Open Source Supply Chain Security
3033 | * Aeva Black (Microsoft, OpenSSF TAC)
3034 | * Peter Singh (“Fuzzy”) (AstroTech)
3035 | * B. Ganti (Microsoft - CISO representative securing Azure / Azure DevOps)
3036 | * David Tesar (Microsoft - Product Manager OSS - Secure supply chain)
3037 | * Toddy Mladenov (Microsoft - secure supply chain for Containers for 1P services)
3038 | * Varun Badhwar - Founder of Endor Labs
3039 | * Johnson Shi - (Microsoft Azure Container Registry - Secure Supply Chain for Containers)
3040 | * Michael Scovetta (Microsoft - OpenSSF)
3041 | * Jasmine Wang (Microsoft - Secure Supply Chain Team)
3042 | * Isaac Hepworth (Google) - software supply chain and OpenSSF
3043 |
3044 | Regrets:
3045 |
3046 |
3047 |
3048 | *
3049 |
3050 | Facilitator(s):
3051 |
3052 |
3053 |
3054 | * Adrian Diglio
3055 | * Jay White
3056 |
3057 | Scribe(s):
3058 |
3059 |
3060 |
3061 | *
3062 | *
3063 |
3064 | Want to contribute to the OSS SSC Framework?
3065 |
3066 |
3067 |
3068 | * See [Maintaining the OSS SSC Framework Specification](https://github.com/microsoft/oss-ssc-framework/blob/main/specification/README.md)
3069 |
3070 | Agenda
3071 |
3072 |
3073 | Agenda:
3074 |
3075 |
3076 |
3077 | * First meeting, intros + welcome!
3078 | * Overview
3079 | * The current spec is available in Markdown format
3080 | * Overall: [https://github.com/microsoft/oss-ssc-framework](https://github.com/microsoft/oss-ssc-framework)
3081 | * Markdown - [https://github.com/microsoft/oss-ssc-framework/blob/main/specification/framework.md](https://github.com/microsoft/oss-ssc-framework/blob/main/specification/framework.md)
3082 | *
3083 | * Bookkeeping
3084 | * Meeting Cadence (monthly)
3085 | * Community meeting is to provide a forum to share news and listen to feedback from the community about the spec
3086 | * Technical meetings are to discuss inclusion of recommended tools and technical nature of the spec
3087 | * Is this meeting open?
3088 | * **Yes, open to all**
3089 | * Technical Vision for the OSS SSC Framework
3090 | * What is the best home for this? Encourage us to present to the best practices working group in a single meeting with multiple stakeholders from different OpenSSF working groups
3091 | * Vicky is responsible for a working group on end-user-focused consumption of open source. There is prior art in CNCF and OpenStack
3092 | * CRob will help setup 1 meeting to present framework to multiple WGs
3093 | * Send spec and RFR to Best Practices WG for their review
3094 |
--------------------------------------------------------------------------------