User Stories
This page is not normative
This page is not considered a core part of the Vultron Protocol as proposed in the main documentation. Although within the page we might provide guidance in terms of SHOULD, MUST, etc., the content here is not normative.
The Vultron Protocol is designed to support a variety of use cases. The following user stories are intended to capture the requirements of these use cases. While the protocol is designed to support these use cases, it is not required that all use cases be supported by the protocol.
Where appropriate, we intend to provide a reference implementation for each applicable user story.
Original User Stories from 2022 CERT/CC Whitepaper
Stories numbered from 2022_001
through 2022_102
originated in
the Coordinated Vulnerability Disclosure User Stories
whitepaper.
These user stories reflect internal discussions with the CERT/Coordination Center (CC) based on our own experiences in developing and using the VINCE platform as well as our ongoing CVD practices. The user stories are expected to be utilized by the CVD team to better understand, create, and implement a CVD Protocol. In addition, the CERT/CC believes that these user cases will be useful for any enterprise designing or implementing its own CVD policies, processes, and procedures.
The remaining stories have been added since that whitepaper was published.
Support Levels
Each story page indicates a categorization according to the level of support provided by the originally published Vultron Protocol (version 0.4.0):
- Provided - Stories in this category are directly supported by the Vultron Protocol v0.4.0.
- Allowed - Stories in this category are indirectly supported by the Vultron Protocol v0.4.0.
- Unsupported - Stories in this category are not supported by the Vultron Protocol v0.4.0.
- Out-of-scope - Stories in this category are out of scope for the Vultron Protocol v0.4.0.
In the future, we expect these categories will change toward simply Supported, Unsupported and Out-of-scope. We also anticipate that as we learn more about ActivityPub and make progress on the protocol development, some of the stories in the Unsupported category could move to Supported.
User Stories Table
Legend
- - Allowed
- - Provided
- - Unsupported
- - Out-of-scope
ID | Title | Status |
---|---|---|
2022_001 | As a Finder I want to discover how to report a vulnerability so that I can notify the affected vendors and start CVD | |
2022_002 | As a Participant I want to receive vulnerability reports that I have submitted through a platform so that I can participate and track coordination efforts | |
2022_003 | As a Participant I want to Discover others' policies | |
2022_004 | As a Participant I want to parse/evaluate others' policies | |
2022_005 | As a Participant I want to optimize all of the policies involved | |
2022_006 | As a Participant I want to decide if I will/can engage | |
2022_007 | As a Participant I want to throw a flag if policy trouble detected | |
2022_008 | As a Participant I want to warn Participants and need to invoke other channels/humans. | |
2022_009 | As a Participant I want to want to post/publish/advertise my policy | |
2022_010 | As a Participant I want to Publish/share/advertise embargo dates, have hard and absolute limits, have a default/starting point, be able to extend, and propose and accept, stop when all accepts • have a default/starting point • be able to extend • propose and accept • stop when all accepts | |
2022_011 | As a Participant, I want to provide information about my bug bounty program to entice reporters to use it | |
2022_012 | As a Participant, I want to report a (new) vulnerability | |
2022_013 | As a Participant I want to Add a Participant? (de-duplicate) | |
2022_014 | As a Participant, I want to negotiate embargo/disclosure schedules, modify/renegotiate them, and know when others have published | |
2022_015 | As a Participant, I want to notify others of my intent (date) to publish | |
2022_016 | As a Participant, I want limited/ACK of vulnerability/and have full/proper advisory | |
2022_017 | As a Participant, I want to share my draft publication with others | |
2022_018 | As a Participant, I become aware of the existence of of public exploit (e.g. PoC) and want to tell others | |
2022_019 | As a Participant, I become aware of exploitation in the wild and want to tell others | |
2022_020 | As a Participant, I want to publish a vulnerability (external to protocol) | |
2022_021 | As a Participant, I want to advertise the locale (language, location, geo-scope, area of authority), aspects of my policy | |
2022_022 | As a Participant, I want to advertise the scope (e.g., products, version ranges, sites/domains) of my CVD capability | |
2022_023 | As a Participant, I want to constrain whom I communicate with because I want to enforce an embargo and communicate only with those who have a need to know. | |
2022_024 | As a Finder/Reporter, I want to constrain whom I communicate with because I want to maintain my anonymity. | |
2022_025 | As a Vendor/Deployer, I want to constrain whom I communicate with until a patch or mitigation has been published and released. | |
2022_026 | As a Coordinator, I want to constrain whom I communicate with to work within an embargo and communicate only with those who have a need to know. | |
2022_027 | As a Participant, I want to Address Participants constraints, e.g., entity lists | |
2022_028 | As a vendor or coordinator, I want others to find my information and reporting intake (duplicate of X) | |
2022_029 | As a Vendor, Deployer, and Other, I want to assign my own ID to a case | |
2022_030 | As a Participant , I want to discover and use/map to a global/shared case ID (Might just be a GUID assigned at first notification, CVE is a partial example, vxref) | |
2022_031 | As a Finder, Reporter, Vendor, Coordinator, Other, I want to get from another Participant a list of cases I am involved in with them | |
2022_032 | As a Reporter, Vendor, Coordinator, Other, I want to ask Participant A if Participant D is in a case. Operator may decide/policy, may be based on whether C and D are in the same case. "A" may or may not answer, that is their policy. Participant may decide/policy, may be based on whether C and D are in the same case. | |
2022_033 | As a Finder, Reporter, Vendor, Coordinator, Other, I want to request/state that I do not want others to know I am in a case. Participant still gets to decide their policy. Covers researcher asking for anonymity. Vendor can ask not to be listed and operator can disagree/still list. | |
2022_034 | As a Participant I want to use my global/federated user ID to interact with other Participants | |
2022_035 | As a Participant I want to have confidence in the identity and group membership of others (and be willing and able to use others' groups) | |
2022_036 | As a non-vendor Participant I want to determine how integrated authentication/authorization is in the CVD protocol | |
2022_037 | As a vendor I want to publish vulnerability advisories | |
2022_038 | As a vendor or coordinator, I want to receive vulnerability reports | |
2022_039 | As a Participant I want to ask questions/generally communicate with another case Participant | |
2022_040 | As a Participant I want to ask questions/generally communicate with another case Participant unicast/point-to-point | |
2022_041 | As a Participant I want to ask questions/generally communicate with all the Participants in a case (broadcast) | |
2022_042 | As a Participant I want to ask questions/generally communicate with a subset of case Participants | |
2022_043 | As a Participant, I want to communicate in a common case channel | |
2022_044 | As a Participant I want to communicate with selected case Participants | |
2022_045 | As a Participant, I want to produce a shared verified public record of case activity | |
2022_046 | As a Participant, I want the case to have a leader (global case owner, CVD leader) | |
2022_047 | As a Participant, I want to propose a case leader, possibly myself | |
2022_048 | As a Participant, I want to vote/accept a proposed case leader | |
2022_049 | As a Participant I want to announce the case leader to all Participants | |
2022_050 | As a Participant I want to transfer case leadership to a different Participant | |
2022_051 | As a Participant, I want to depose (or vote down?) a case leader, possibly myself (step down), possibly requiring a suggestion of a replacement | |
2022_052 | As a Participant I want to add (declare and notify others) new Participants to a case | |
2022_053 | As a Participant, I want to propose new Participants to a case | |
2022_054 | As a Participant I want to vote/accept new Participants to a case | |
2022_055 | As a Participant, I want to state that I paid or received a bounty | |
2022_056 | As a Participant, I want to ask if another Participant paid a reporter | |
2022_057 | As a Participant, I want to ask a reporter if they were paid | |
2022_058 | As a Participant I want to share a draft advisory with others | |
2022_059 | As a Participant I want to share a draft advisory with others and request feedback (including status) | |
2022_060 | As a Participant I want to request advisory (draft) from a Participant | |
2022_061 | As a Participant, I want to request someone else’s (vendor) status so I can note changes in others status | |
2022_062 | As a Participant, I want to state my status so others are aware of it. | |
2022_063 | As a Participant, I want to include a non-vendor role Participant in a case | |
2022_064 | As a Participant, I want to include the Government (some/any part, could include regulator) so that they may participate in the case. | |
2022_065 | As a Participant, I want to include the Industry/trade group so that they may participate in the case. | |
2022_066 | As a Participant, I want to stop participating in the case. | |
2022_067 | As a Participant, I want to stop participating in the case and inform others that I am no longer participating. | |
2022_068 | As a Participant, I want to stop participating in the case and no longer will receive or reply to forwarded queries. | |
2022_069 | As a Participant, I want to tell others that I published so that they can know about the vulnerability and the mitigation or remediation. | |
2022_070 | As a Participant, I want to convey how information I provide can be used so that others can apply the mitigation or remediation correctly. | |
2022_071 | As a Participant, I want to convey how information I provide can be used while obeying the TLP restrictions so that others can apply the mitigation or remediation correctly. | |
2022_072 | As a Participant, I want to convey what restricted information or degree of restriction I will accept so that I won't be accused of mishandling restricted information. | |
2022_073 | As a Participant, I want to convey what TLP restricted information or degree of restriction I will accept so that I won't be accused of mishandling TLP restricted information. | |
2022_074 | As a Participant, I want to keep track of events and timelines so that I have a complete report and don't miss a deadline. | |
2022_075 | As a Participant, I want to see response times/states of other Participants so that I can be prepared for the next state in the CVD process. | |
2022_076 | As a VDP operator, I want the CVD protocol to also support VDP | |
2022_077 | As a Participant, I want to be able to ask further questions about a report, to ensure I fully understand the vulnerability and mitigation or remediation options. | |
2022_078 | As a coordinator, I want to drive better (shorter?) embargo timelines, to ensure they are feasible. | |
2022_079 | As a coordinator, I want to collect and optimize embargo timelines of all Participants (probably duplicate of 103) to ensure the timelines are feasible. | |
2022_080 | As a Participant, I want to publicly disclose sooner than others but minimize their (the others) exposure/risk | |
2022_081 | As a Participant I want to communicate important public state change message/information with all Participants. | |
2022_082 | As a non-vendor Participant I want to be informed of CVD in order to perform activities like risk assessment, mitigation, verify mitigation, not be surprised, prepare messaging, etc. | |
2022_083 | As a Participant, I want to contribute to the creation, modification and publication of an advisory. | |
2022_084 | As a vendor I want to reward the reporter by paying a bounty. | |
2022_085 | As a reporter I want to be rewarded with a bounty. | |
2022_086 | As a Participant I will prioritize my response to requests for information or action so that I contribute to a risk-minimizing CVD process and outcome | |
2022_087 | As a Participant I want to share and receive information I can use to prioritize my work regarding the vulnerability report. | |
2022_088 | As a Participant, I want to avoid missteps by maintaining knowledge of the state of case and what options are available. | |
2022_089 | As a Participant I want a mechanism which with assure me of the authentication and verify integrity of messages. | |
2022_090 | As a Participant we need a mechanism which will ensure the appropriate level of authentication of all Participants | |
2022_091 | As a Participant we need a mechanism which will ensure the confidential transport and storage of information. | |
2022_092 | As a Participant, I want to know who else is participating in a case to ensure I don't void an embargo. | |
2022_093 | As a Participant, in an effort to ensure the Participant list is complete I want to know who else is participating. | |
2022_094 | As a Participant, I want to assess reputation of others so that I can decide to engage again | |
2022_095 | As a Participant, I want to provide evidence of/document my reputation to others so they can decide to engage with me | |
2022_096 | As a Participant, I want to record/log my trust in/reputation of others so I can decide to engage again | |
2022_097 | As a Participant I want to organize (create, define) my own groups of other Participants so that I can communicate successfully, participate fully and understand their requirements. | |
2022_098 | As a Participant I want to communicate with all Participants associated with this case. | |
2022_099 | As a Participant I want to communicate with non-vendor Participants, primarily other defenders, providers, CSIRTs, regulators, etc., important information. | |
2022_100 | As a vendor, coordinator or other I want to be included on a distribution list for advisories which must be clearly identified as public or non-public | |
2022_101 | As a Coordinator I want to validate the report received from Reporter or Finder before deciding CERT's active involvement for the potential Case | |
2022_102 | As a Coordinator I want to collect artifacts such as PoC Proof-of-Concept exploit, code control flow analysis (static or dynamic) that can enabled our validation of the security flaw being reported | |
2022_103 | As a Participant, I want to give the Finder/Reporter an opportunity to confirm that the fix addresses the vulnerability prior to publication. | |
2022_104 | As a Participant, I want to address multiple related vulnerabilities across multiple vendors simultaneously. | |
2022_105 | As a Vendor, I want to address the same vulnerability in multiple products but on different timelines so that I can avoid delaying the delivery of a ready fix to a subset of my user base. | |
2022_106 | As a Participant, I want the coordination process to be decentralized so that it is robust against individual Participant actions. | |
2022_107 | As a Vendor, I want to convey the vulnerability status of my component(s), product(s), or service(s) to other Participants. | |
2022_108 | As a Vendor, I want to convey the vulnerability status of my component(s), product(s), or service(s) to Users / the Public | |
2022_109 | As a Vendor, I want to convey the reason my component is not affected by a vulnerability to other Participants | |
2022_110 | As a Vendor, I want to convey the reason my component is not affected by a vulnerability to Users / the Public | |
2022_111 | As a Vendor, I need to know which of my products, components, or services are affected by a vulnerability report so that I know what to fix. |