一、设计阶段
要根据业务,区分出角色、活动阶段。
明确各种角色在各种活动阶段, 有什么样的执行权限
活动的特点,容易在什么阶段、受到什么样的攻击
兜底策略应该有哪些
二、开发阶段
- 注重实施访问权限控制,按照最小特权原则
- 尽量使用现有、社区审核的库
- 多使用modifier修饰符
- 防范类型溢出,比如Number等数值
- 严格参数校验
- 紧急停止机制,比如暂停、冻结提款等
三、测试阶段
- 单元测试覆盖率100%
- 使用主网模拟、测试网做自动化集成测试
- 使用安全测试框架,比如Truffle,做property-checking, fuzzing, and formal verification
四、防范攻击
五、安全审计
- 使用文档生成工具以及高级设计解释来生成实时文档
- 使用安全测试框架,比如Truffle,做property-checking, fuzzing, and formal verification
- SAST工具进行代码分析
- 合约自动化检测工具(如Mythril、Slither等)进行静态分析
- 聘请专业的安全审计团队进行第三方审计
- 赏金计划,给社区发现bug的人提供奖励
五、发布部署
- 发布源码到etherscan,提升透明度
- 灰度?
六、监控
- 使用HackenProof来监控、运维
标签:智能,checking,checklist,安全,测试,使用,合约,fuzzing,formal From: https://www.cnblogs.com/johnchow/p/17972272