-
Notifications
You must be signed in to change notification settings - Fork 28
Add draft of security team charter. #56
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
base: main
Are you sure you want to change the base?
Changes from all commits
7ca2ea0
383c526
bf7b85b
ede2826
e0f4d41
23bd59d
10b0e29
e8bd0df
4ac0094
83df6f7
e25a1c5
183e6eb
a079f84
32c797a
9c1f116
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,131 @@ | ||
| # Security Team | ||
|
|
||
| The Security Team is the group of people who respond to security reports for the Django framework. | ||
|
|
||
| ## Scope of responsibilities | ||
|
|
||
| The Security Team is responsible for [Django’s security policies](https://docs.djangoproject.com/en/dev/internals/security/). This includes: | ||
|
|
||
| - Reviewing security reports | ||
| - Evaluating and developing fixes for confirmed security issues | ||
| - Applying and backporting those fixes in coordination with Mergers and Releasers | ||
| - Communicating with reporters | ||
| - Communicating with the public about security releases | ||
| - Maintaining a list of organizations to receive pre-notifications about security releases, and making these pre-notifications | ||
| - Maintaining the DSF's status as a CVE Numbering Authority (CNA) and casting votes (or abstaining) in CNA elections | ||
| - Issue CVEs for Django and projects under the Django organization | ||
|
|
||
| ## Membership | ||
|
tim-schilling marked this conversation as resolved.
|
||
|
|
||
| - Chair: Natalia Bidart | ||
| - Co-Chair: Jacob Walls | ||
| - Report triagers: | ||
| - Steering Council Liaison (must be an active Steering Council member; may be the same as Chair/Co-Chair): Frank Wiles | ||
| - Other members: | ||
| - Adam Johnson | ||
| - Jake Howard | ||
| - Mariusz Felisiak | ||
| - Markus Holtermann | ||
| - Michael Manfre | ||
| - Natalia Bidart | ||
| - Paul McMillan | ||
| - Sarah Boyce | ||
| - Shai Berger | ||
| - Simon Charette | ||
|
Comment on lines
+24
to
+34
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thought: As part of formalizing the charter, should we pre-seed the triagers role with those interested? Currently it looks like the team is incredibly understaffed despite that (probably) not being the case.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I agree we should fill this but I don't think it's a requirement for merging (as we need to keep the list up-to-date anyway) |
||
|
|
||
| Note: The DSF Board President has access to the designated reporting channels for governance oversight and legal accountability. This is a longstanding practice, noted here for transparency. | ||
|
|
||
| Every member of the team is encouraged to participate in all aspects of the team, including reviewing security reports, developing fixes and communicating with reporters. The expectations for all team members are as follows: | ||
|
|
||
| - Participate in the process for at least one security report a year | ||
|
|
||
| ### Role definitions | ||
|
|
||
| There are specific roles that have a higher level of expectations: | ||
|
|
||
| - **Chair / Co-Chair:** Responsible for coordinating the group, scheduling meetings, renewing the group’s membership, and ensuring that the group’s activities align with its scope and responsibilities. The Chair and Co-Chair roles should be re-elected annually by the team. The details of the election procedure are left to the team. | ||
| - **Report Triagers:** Acknowledge and triage initial reports and communicate with reporters. | ||
|
|
||
| #### Report Triager | ||
|
tim-schilling marked this conversation as resolved.
|
||
|
|
||
| These team members are responsible for acknowledging and triaging reports initially to determine likelihood of security concern and severity. As this is a volunteer role, the Fellows will support the triagers and when necessary, handle the initial triaging. | ||
|
|
||
| Every member can adopt and step back as a Report Triager as their schedule allows. | ||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Thought: Should there be some kind of expected tenure for the Report Triager role? My thinking being that if people are free to rotate "as schedule allows", it may not be explicit when they do, so the entire team could step back assuming the rest of the team can pick things up.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Although I like the idea, I don't think we need to define a process here as Fellows would fill this role if we ever had a whole team step back |
||
|
|
||
| The responsibilities of a Report Triager are as follows: | ||
|
tim-schilling marked this conversation as resolved.
|
||
|
|
||
| - Acknowledge report received | ||
| - Initial assessment | ||
| - Request help from team/experts if necessary | ||
| - For invalid reports, communicate with reporter | ||
| - Optionally for valid reports, progress to resolution (e.g. create a PR to resolve the issue) | ||
|
|
||
| At a minimum, a Report Triager is expected to: | ||
| - Triage 1 report a month | ||
| - Join 1 team meeting in a 6 months period | ||
|
|
||
| ## Future membership | ||
|
|
||
| Any DSF member may submit a nomination, including a self-nomination, to the team's mailing list (security@djangoproject.com). | ||
| If the team needs to make a call for volunteers, it will be posted on the [djangoproject.com blog](https://www.djangoproject.com/weblog/) and the [Django Forum](https://forum.djangoproject.com). | ||
|
|
||
| Nominations are approved/rejected during the team meeting. | ||
| Team members are encouraged to share their position via the mailing list before the meeting. | ||
| A nomination is approved when at least one existing Security Team member votes in favor and no member objects. | ||
| Note that there is no upper limit to the team size | ||
|
|
||
| New members, including new Fellows, complete a 3-month onboarding period during which all external communications (with reporters, vendors, or distributors) must be reviewed by an existing member before sending. | ||
| This ensures each report is handled consistently and no valid reports are inadvertently dismissed. | ||
|
|
||
| As Django Fellows are contracted to deal with security reports, all Django Fellows are automatically added to the Security Team. | ||
|
|
||
| ## Membership management | ||
|
|
||
| Each year, every non-Fellow member will need to reaffirm their membership with the team | ||
| A non-Fellow member can leave for any reason at any time | ||
|
|
||
| ### Reasons members can be removed from the team | ||
|
|
||
| #### Inactivity | ||
|
|
||
| If a member is inactive per this document’s definition, they should be removed from the team with a note of thanks and an open invitation to return. | ||
|
|
||
| #### Security or malicious concerns | ||
|
|
||
| If there is a credible security or malicious concern, a team member can report this in a private email to all other members. | ||
| If at least 2 members (including the reporter) share this concern, the team must temporarily suspend access during an investigation, notifying the individual. | ||
| A final decision (e.g., permanent removal) requires a vote from the DSF Board. | ||
|
|
||
| #### Code of Conduct disqualification | ||
|
|
||
| As an official Django space, the security team abides by the Code of Conduct. | ||
| As per the [Code of Conduct Enforcement Ladder](https://github.com/django/code-of-conduct/blob/main/enforcement-ladder.md), members may be temporarily suspended or permanently banned from the security team following a Code of Conduct report. | ||
|
|
||
| ### Membership requirements | ||
|
|
||
| Members should possess some knowledge in most of the following topics: | ||
|
|
||
| - Building Django applications | ||
| - Contributing to Django | ||
| - Web applications | ||
| - Web security | ||
| - Software security | ||
|
tim-schilling marked this conversation as resolved.
|
||
| - Software performance | ||
|
|
||
| ## Budget | ||
|
|
||
| No budget is required at this time. This will be reviewed at least annually. | ||
| Any changes to the budget may be requested from the board. | ||
|
|
||
| ## Comms | ||
|
|
||
| The team has discussions in the following places: | ||
|
|
||
| 1. Formal and sensitive discussions on the mailing list: security@djangoproject.com | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. It's OK to start off with this but we have very very recently agreeing to leave the mailing list purely to receive reports and that team-internal conversation would happen in a report-centralized place which will likely be GH.
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I subscribe to the later suggestion above, that we shouldn't include our tools for accepting reports in the charter.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @shaib this is more describing how the team communicates with each other, less on how reporters communicate with the team. Teams and working groups that have an email list have listed them in this section of their charters. |
||
| 2. Informal and team discussions on the DSF Slack in the private channel `#security-private` | ||
| 3. Monthly video-conference meetings | ||
| 4. A private Github repository where patches are prepared | ||
|
|
||
|
tim-schilling marked this conversation as resolved.
tim-schilling marked this conversation as resolved.
|
||
| ## Reporting | ||
|
|
||
| An annual report is shared with the Steering Council and the DSF Board summarizing the team's activity, areas of concern, considerations for the future and any other relevant topics. | ||
Uh oh!
There was an error while loading. Please reload this page.