Skip to content

Commit 9023d70

Browse files
committed
Merge branch 'master' into echidna-0.8
2 parents 4bd470b + 0aa2581 commit 9023d70

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

64 files changed

+1200
-936
lines changed

.github/workflows/deploy.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
- name: Build artifacts
2929
run: mdbook build
3030
- name: Upload artifact
31-
uses: actions/upload-pages-artifact@v1
31+
uses: actions/upload-pages-artifact@v2
3232
with:
3333
path: ./book
3434
deploy:

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Bug reports and feature suggestions can be submitted to our issue tracker. For b
1010

1111
## Questions
1212

13-
Questions can be submitted to the issue tracker, but you may get a faster response if you ask in our [chat room](https://empireslacking.herokuapp.com/) (in the #ethereum channel).
13+
Questions can be submitted to the issue tracker, but you may get a faster response if you ask in our [chat room](https://slack.empirehacking.nyc/) (in the #ethereum channel).
1414

1515
## Code
1616

SUMMARY.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@
7272
- [How to filter functions](./program-analysis/echidna/basic/filtering-functions.md)
7373
- [How to test assertions](./program-analysis/echidna/basic/assertion-checking.md)
7474
- [How to write good properties step by step](./program-analysis/echidna/basic/property-creation.md)
75+
- [How to write properties that use ether](./program-analysis/echidna/basic/working-with-eth.md)
7576
- [Advanced](./program-analysis/echidna/advanced/README.md)
7677
- [How to collect a corpus](./program-analysis/echidna/advanced/collecting-a-corpus.md)
7778
- [How to use optimization mode](./program-analysis/echidna/advanced/optimization_mode.md)
@@ -82,6 +83,7 @@
8283
- [How to seed Echidna with unit tests](./program-analysis/echidna/advanced/end-to-end-testing.md)
8384
- [How to fuzz contracts with external libraries](./program-analysis/echidna/advanced/working-with-libraries.md)
8485
- [Understanding and using `multi-abi`](./program-analysis/echidna/advanced/using-multi-abi.md)
86+
- [Interacting with off-chain data via FFI cheatcode](./program-analysis/echidna/advanced/interacting-with-offchain-data-via-ffi.md)
8587
- [Fuzzing tips](./program-analysis/echidna/fuzzing_tips.md)
8688
- [Frequently Asked Questions](./program-analysis/echidna/frequently_asked_questions.md)
8789
- [Exercises](./program-analysis/echidna/exercises/README.md)

development-guidelines/README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
List of smart contract development best practices
1+
List of Best Practices for Smart Contract Development
22

3-
- [High-level best practices](./guidelines.md): High-level best-practices for all smart contracts
4-
- [Token integration checklist](./token_integration.md): What to check when interacting with arbitrary tokens
5-
- [Incident Response Recommendations](./incident_response.md): Guidelines on how to formulate an incident response plan
6-
- [Secure development workflow](./workflow.md): A rough, high-level process to follow while you write code
3+
- [High-Level Best Practices](./guidelines.md): Essential high-level best practices for all smart contracts
4+
- [Token Integration Checklist](./token_integration.md): Important aspects to consider when interacting with various tokens
5+
- [Incident Response Recommendations](./incident_response.md): Guidelines on establishing an effective incident response plan
6+
- [Secure Development Workflow](./workflow.md): A recommended high-level process to adhere to while writing code

development-guidelines/guidelines.md

Lines changed: 63 additions & 63 deletions
Large diffs are not rendered by default.
Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,30 @@
11
# Incident Response Recommendations
22

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.
44

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.
2222

2323
## Incident Response Plan Resources
2424

2525
- [How to Hack the Yield Protocol](https://docs.yieldprotocol.com/#/operations/how_to_hack)
2626
- [Emergency Steps – Yearn](https://github.com/yearn/yearn-devdocs/blob/master/docs/developers/v2/EMERGENCY.md)
2727

28-
## Well-handled IR Incidents
28+
## Examples of Well-Handled Incidents
2929

3030
- [Yield Protocol](https://medium.com/yield-protocol/post-mortem-of-incident-on-august-5th-2022-7bb70dbb9ada)

0 commit comments

Comments
 (0)