EVM机制及智能合约安全漏洞检测
2021.01.1
智能合约
智能合约是一种特殊协议,旨在提供、验证及执行合约。具体来说,智能合约是区块链被称之为“去中心化的”重要原因,它允许我们在不需要第三方的情况下,执行可追溯、不可逆转和安全的交易。
Solidity
Solidity 是一门面向合约的、为实现智能合约而创建的高级编程语言。这门语言受到了 C++,Python 和 Javascript 语言的影响,设计的目的是能在以太坊虚拟机(EVM)上运行。
以太坊虚拟机EVM
以太坊虚拟机 EVM 是智能合约的运行环境。它不仅是沙盒封装的,而且是完全隔离的,也就是说在 EVM 中运行代码是无法访问网络、文件系统和其他进程的。甚至智能合约之间的访问也是受限的。
常见智能合约漏洞
- Reentrancy - 重入
- Access Control - 访问控制
- Arithmetic Issues - 算术问题(整数上下溢出)
- Unchecked Return Values For Low Level Calls - 未严格判断不安全函数调用返回值
- Denial of Service - 拒绝服务
- Bad Randomness - 可预测的随机处理
- Front Running – 超前运行
- Time manipulation – 时间戳依赖
- Short Address Attack - 短地址攻击
- Unknown Unknowns - 其他未知
智能合约代码漏洞检测技术
- 模糊测试
- 特征代码匹配
- 基于形式化验证的自动化审计
- 基于符号执行、符号抽象的自动化审计
- RASP
本次组会内容下载链接