|
1 | 1 | # Incident Response Recommendations |
2 | 2 |
|
3 | | -Here, we provide recommendations around the formulation of an incident response plan. |
| 3 | +In this section, we provide recommendations for formulating a robust incident response plan. |
4 | 4 |
|
5 | | -- [ ] **Identify who (either specific people or roles) is responsible for carrying out the mitigations (deploying smart contracts, pausing contracts, upgrading the front end, etc.).** |
6 | | - - Specifying these roles will strengthen the incident response plan and ease the execution of mitigating actions when necessary. |
7 | | -- [ ] **Document internal processes for situations in which a deployed remediation does not work or introduces a new bug.** |
8 | | - - Consider adding a fallback scenario that describes an action plan in the event of a failed remediation. |
9 | | -- [ ] **Clearly describe the intended process of contract deployment.** |
10 | | -- [ ] **Consider whether and under what circumstances your company will make affected users whole after certain issues occur.** |
11 | | - - Some scenarios to consider include an individual or aggregate loss, a loss resulting from user error, a contract flaw, and a third-party contract flaw. |
12 | | -- [ ] **Document how you plan to keep up to date on new issues, both to inform future development and to secure the deployment toolchain and the external on-chain and off-chain services that the system relies on.** |
13 | | - - For each language and component, describe the noteworthy sources for vulnerability news. Subscribe to updates for each source. Consider creating a special private Discord/Slack channel with a bot that will post the latest vulnerability news; this will help the team keep track of updates all in one place. Also consider assigning specific team members to keep track of the vulnerability news of a specific component of the system. |
14 | | -- [ ] **Consider scenarios involving issues that would indirectly affect the system.** |
15 | | -- [ ] **Determine when and how the team would reach out to and onboard external parties (auditors, affected users, other protocol developers, etc.).** |
16 | | - - Some issues may require collaboration with external parties to efficiently remediate them. |
17 | | -- [ ] **Define contract behavior that is considered abnormal for off-chain monitoring.** |
18 | | - - Consider adding more resilient solutions for detection and mitigation, especially in terms of specific alternate endpoints and queries for different data as well as status pages and support contacts for affected services. |
19 | | -- [ ] **Combine issues and determine whether new detection and mitigation scenarios are needed.** |
20 | | -- [ ] **Perform periodic dry runs of specific scenarios in the incident response plan to find gaps and opportunities for improvement and to develop muscle memory.** |
21 | | - - Document the intervals at which the team should perform dry runs of the various scenarios. For scenarios that are more likely to happen, perform dry runs more regularly. Create a template to be filled in after a dry run to describe the improvements that need to be made to the incident response. |
| 5 | +- [ ] **Identify specific individuals or roles responsible for carrying out the mitigations (deploying smart contracts, pausing contracts, upgrading the front end, etc.).** |
| 6 | + - Defining these roles will enhance the incident response plan and facilitate the execution of mitigation actions when necessary. |
| 7 | +- [ ] **Document internal processes in cases where deployed remediation fails or introduces new bugs.** |
| 8 | + - Consider developing a fallback plan that outlines an action strategy for failed remediation attempts. |
| 9 | +- [ ] **Provide a clear description of the intended contract deployment process.** |
| 10 | +- [ ] **Consider whether and under what circumstances your company will compensate affected users in the event of certain issues.** |
| 11 | + - Some situations to consider include individual or aggregate losses, losses resulting from user error, contract flaws, and third-party contract flaws. |
| 12 | +- [ ] **Outline a plan for staying informed about new issues, so as to inform future development and enhance the security of the deployment toolchain and the external on-chain and off-chain services your system depends on.** |
| 13 | + - For each language and component, identify reputable sources of vulnerability news. Subscribe to updates for each source. Consider creating a private Discord or Slack channel with a bot that posts the latest vulnerability news to help your team stay informed in a centralized location. Additionally, consider assigning specific team members to track vulnerability news for particular system components. |
| 14 | +- [ ] **Examine scenarios involving issues that would indirectly affect the system.** |
| 15 | +- [ ] **Decide when and how the team should seek assistance from or collaborate with external parties (auditors, affected users, other protocol developers, etc.).** |
| 16 | + - Some problems may necessitate cooperation with external parties for efficient resolution. |
| 17 | +- [ ] **Define abnormal contract behavior for off-chain monitoring purposes.** |
| 18 | + - Consider implementing more robust detection and mitigation solutions, including specific alternate endpoints, queries for diverse data, status pages, and support contacts for impacted services. |
| 19 | +- [ ] **Combine issues to evaluate whether new detection and mitigation scenarios are necessary.** |
| 20 | +- [ ] **Conduct periodic dry runs of specific scenarios in the incident response plan to identify gaps and improvement opportunities, and build muscle memory.** |
| 21 | + - Establish intervals for performing dry runs for each scenario. Conduct more frequent dry runs for scenarios with higher likelihoods of occurrence. Create a template to document improvements required after each dry run for the incident response plan. |
22 | 22 |
|
23 | 23 | ## Incident Response Plan Resources |
24 | 24 |
|
25 | 25 | - [How to Hack the Yield Protocol](https://docs.yieldprotocol.com/#/operations/how_to_hack) |
26 | 26 | - [Emergency Steps – Yearn](https://github.com/yearn/yearn-devdocs/blob/master/docs/developers/v2/EMERGENCY.md) |
27 | 27 |
|
28 | | -## Well-handled IR Incidents |
| 28 | +## Examples of Well-Handled Incidents |
29 | 29 |
|
30 | 30 | - [Yield Protocol](https://medium.com/yield-protocol/post-mortem-of-incident-on-august-5th-2022-7bb70dbb9ada) |
0 commit comments