Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create TI-Gives+Gets.md #226

Merged
merged 22 commits into from
Dec 11, 2023
Merged

Create TI-Gives+Gets.md #226

merged 22 commits into from
Dec 11, 2023

Conversation

SecurityCRob
Copy link
Contributor

first draft for debate to determine requirements of and benefits for TIs.

first draft for debate to determine requirements of and benefits for TIs.

Signed-off-by: CRob <[email protected]>
@SecurityCRob SecurityCRob requested a review from a team November 27, 2023 13:58
typos

Signed-off-by: CRob <[email protected]>
more typos

Signed-off-by: CRob <[email protected]>
last typo?

Signed-off-by: CRob <[email protected]>
@@ -0,0 +1,52 @@
# "Gives and Gets" for OpenSSF Technical Initiatives (TI)
The OpenSSF has a large community of contributors and efforts that span the broad spectrum of open source security interests. The Technical Initiatives (TIs) of the foundation are where our members collaborate and help craft unique solutions to addressing improving the security of the open source ecosystem.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to also highlight that his gives and gets is a bit vague on details and how someone should approach understanding more?

May post project updates and tutorials to the OpenSSF blog.

How many? How often?

I know we don't have an answer to that but we might want to highlight that this is access to these benefits but the details will depend on time, scope, staffing, etc.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would suggest to make the guidance as broad as possible. I'm not sure telling someone they can post 4 blogs a year really adds anything. If folks have work output to share that adds value, they should get it shared; if they don't or on working on a long-running project, that's ok too. But that's just my opinion.

lined 2nd table up better-ish

Signed-off-by: CRob <[email protected]>
more lining

Signed-off-by: CRob <[email protected]>
Copy link
Contributor

@lehors lehors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking a crack at this and getting the ball rolling @SecurityCRob !

process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
SecurityCRob and others added 2 commits November 27, 2023 12:04
Co-authored-by: Arnaud J Le Hors <[email protected]>
Signed-off-by: CRob <[email protected]>
Co-authored-by: Arnaud J Le Hors <[email protected]>
Signed-off-by: CRob <[email protected]>
| | Projects may use the OpenSSF logo to promote their project (in accordance with the trademark guidelines). Projects may be referred to as an "OpenSSF Project" or "OpenSSF $ProjectName." |
| | May request considered for Grants |
| | May request consideration to get Contract Developers |
| | Requests for one time funding needs to include: Tech writer, Graphic designer, Security audit, Event support, Outreach, Dashboard/reports, Recognition awards, Infrastructure support for software projects (like special build, QA) (will have ongoing operational expense), Cloud hosting (will have ongoing operational expense) |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A lot of this feels like it should be under incubating. If the goal of graduation from OpenSSF end is to have a well structured, well governed, well written, well documented project some of these projects are coming to OpenSSF to support there. I think things like security audits and documentation in particular should be things that OpenSSF helps provide to take a project from incubating to graduation.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

sounds fine to me, do you want to suggest how/where to move the text?

@lehors
Copy link
Contributor

lehors commented Nov 28, 2023

So, I played a bit with the layout to see what I could suggest and here is what I've got:

If we want to stick to a table layout with two columns I think it should look something like this:
Screenshot 2023-11-28 at 3 43 30 PM
The problem is that because markdown doesn't support lists within tables this requires switching to encoding the whole table in html instead. Not a big deal but not as convenient to maintain as pure markdown.

I think we should let go of the table layout and adopt a simple list based layout which can be easily maintained in pure markdown:
Screenshot 2023-11-28 at 3 45 41 PM

In any case, once we have agreement on one way or the other I'll be happy to push a commit accordingly.

@torgo
Copy link
Contributor

torgo commented Nov 28, 2023

I think we should let go of the table layout and adopt a simple list based layout which can be easily maintained in pure markdown

Agree - I think this will make it easier to link directly to these subsections of the document.

@SecurityCRob
Copy link
Contributor Author

SecurityCRob commented Nov 28, 2023 via email

Signed-off-by: Arnaud J Le Hors <[email protected]>
@lehors
Copy link
Contributor

lehors commented Nov 28, 2023

Ok, I just pushed a commit changing the layout from tables to lists. I compared the 2 side by side to check so I'm pretty confident I didn't screw up anything while doing so. :-)

Signed-off-by: Arnaud J Le Hors <[email protected]>
Signed-off-by: Arnaud J Le Hors <[email protected]>
@SecurityCRob
Copy link
Contributor Author

thanks @lehors . I like the way you arranged it better. +1

Copy link
Contributor

@lehors lehors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm done for now. I think @mlieberman85 raised a couple of points that we should try to address.

Copy link
Contributor Author

@SecurityCRob SecurityCRob left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

Copy link

@lumjjb lumjjb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for putting this together!

process/TI-Gives+Gets.md Show resolved Hide resolved
### Gets/Benefits

TI eligible to receive all Gets from Sandbox plus:
* Receives infrastructure support
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

qq: is infrastructure support in the sense of cloud hosting, etc. I think there is a similar point in both sandbox and graduated, is the infrastructure support different? E.g. up to $X per project?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The idea was limited hosting (GH repo basically for Sandbox) and as a project matures they could request more (website, cloud credits, etc.). We'll adjust to be more explicit. TY.

process/TI-Gives+Gets.md Show resolved Hide resolved
process/TI-Gives+Gets.md Show resolved Hide resolved
* Implements, practices, and refines mature software development and release practices, such as adherence to semantic versioning, and having a declared policy for stable releases and backported fixes.
* Projects must have documented project governance and be able to demonstrate that governance in action.
* When applicable, projects must have completed a security audit through a third party and addressed audit findings and recommendations.
* When applicable, Projects should achieve **BLAH** level of SLSA
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SLSA Level 3?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, that's also what I had in mind but I am wondering whether we need to say SLSA Build Level 3 until more is defined.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like I commented above, very specific security requirements tend not to age well. As it stands, there are multiple interpretations of "prevent secret material used to sign the provenance from being accessible to the user-defined build steps" which is part of SLSA v1.0 Build Level 3.

... but I don't have a great suggestion here. Maybe leave this off? Or say something like "Projects should harden their build systems in accordance with the SLSA Framework"?

process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Show resolved Hide resolved
* Maintains a point of contact for vulnerability reports in the security.md
* Implements, practices, and refines mature software development and release practices such as following a version schema.
* TI Follows security best practices (as recommended by the OpenSSF and others), including passing the OpenSSF Best Practices criteria
* Project should be integrating with Scorecards
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does "should" mean that these requirements are recommended but optional?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This covers all TIs, so yes, it is optional for things that are not code in my opinion.

* TI Follows security best practices (as recommended by the OpenSSF and others), including passing the OpenSSF Best Practices criteria
* Project should be integrating with Scorecards
* Begins to establish the appropriate governance that enables its sustainment for potential graduation.
* Projects should be Securing Code Repository -> Managing Contributions Commit Signing , Secret Scanning, Code Scanning (OSFUZZ at a minimum) + Self-assessment Should OpenSSF require these if the SCM supports it, especially using Sigstore?
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm always hesitant when I see very prescriptive security requirements, as best practices change over time. What if we struck this line and add "... including secret scanning and code scanning" to "TI Follows security best practices..." above?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks a good suggestion, do you want to propose that wording change?

* Implements, practices, and refines mature software development and release practices, such as adherence to semantic versioning, and having a declared policy for stable releases and backported fixes.
* Projects must have documented project governance and be able to demonstrate that governance in action.
* When applicable, projects must have completed a security audit through a third party and addressed audit findings and recommendations.
* When applicable, Projects should achieve **BLAH** level of SLSA
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Like I commented above, very specific security requirements tend not to age well. As it stands, there are multiple interpretations of "prevent secret material used to sign the provenance from being accessible to the user-defined build steps" which is part of SLSA v1.0 Build Level 3.

... but I don't have a great suggestion here. Maybe leave this off? Or say something like "Projects should harden their build systems in accordance with the SLSA Framework"?

Co-authored-by: Zach Steindler <[email protected]>
Signed-off-by: CRob <[email protected]>
added booth space to graduated

Signed-off-by: CRob <[email protected]>
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
SecurityCRob and others added 4 commits December 5, 2023 14:59
Co-authored-by: Zach Steindler <[email protected]>
Signed-off-by: CRob <[email protected]>
Co-authored-by: Zach Steindler <[email protected]>
Signed-off-by: CRob <[email protected]>
Co-authored-by: Zach Steindler <[email protected]>
Signed-off-by: CRob <[email protected]>
Co-authored-by: Zach Steindler <[email protected]>
Signed-off-by: CRob <[email protected]>
Copy link
Member

@steiza steiza left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

All my feedback has been addressed - looks good to me!

process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
Co-authored-by: Arnaud J Le Hors <[email protected]>
Signed-off-by: CRob <[email protected]>
Copy link
Contributor

@lehors lehors left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested expansion of the infrastructure support benefits at the different levels.

process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
process/TI-Gives+Gets.md Outdated Show resolved Hide resolved
SecurityCRob and others added 4 commits December 6, 2023 12:28
Co-authored-by: Arnaud J Le Hors <[email protected]>
Signed-off-by: CRob <[email protected]>
Co-authored-by: Arnaud J Le Hors <[email protected]>
Signed-off-by: CRob <[email protected]>
Co-authored-by: Arnaud J Le Hors <[email protected]>
Signed-off-by: CRob <[email protected]>
added version/approval date at head of doc

Signed-off-by: CRob <[email protected]>
Copy link
Contributor

@mlieberman85 mlieberman85 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is good for a v1. As we've discussed prior we want to remain flexible because I think once we push the gives/gets in earnest we'll iterate.

@SecurityCRob
Copy link
Contributor Author

we have 4 of 7 needed approvals in with at least 2 more in-flight for today/tomorrow. I'm going to merge this 1.0 draft for people to see, and we can manage updates via PRs going forward.

@SecurityCRob SecurityCRob merged commit f140c8b into main Dec 11, 2023
6 of 7 checks passed
@SecurityCRob SecurityCRob deleted the SecurityCRob-patch-3 branch December 11, 2023 17:40
Copy link
Contributor

@bobcallaway bobcallaway left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Copy link
Contributor

@torgo torgo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants