DEVCON2: Raine Revere 论关于安全性可视化

未知来源 阅读 36 2016-9-20 08:08
分享至
微信扫一扫,打开网页后点击屏幕右上角分享按钮

DEVCON2:   Raine Revere 论关于安全性可视化 (1)

记者:Lydia

之前参加专家小组讨论的专家Raine Revere做了关于安全性可视化的演讲主题。他是Dapp开发者,对工具有浓厚的兴趣,因为可以用来推进生态系统的演变。

我们有非常好的形式化验证例子,这是非常有必要的,可以提高安全性,我会谈论不同类型的开发者,从人文的角度看待安全问题。

如何发现智能合约的安全缺陷?

DEVCON2:   Raine Revere 论关于安全性可视化 (2)

可以通过创建工具实现缺陷安全的可视化,我们可以看到之前没有发现的缺陷,可以提升安全性。

重放攻击和外部调用会毁掉公共函数,因此不能依赖状态。

你会获得很大的数量,可改变余额。

这些攻击都有一些代码味道,这是一个指标,可能会有一些问题,即使不是专业术语,但是可以检测代码味道,防止错误出现。

静态分析法是根据既定的外生变量值求得内生变量的分析方法,是对已发生的经济活动成果,进行综合性的对比的一种分析方法。

可以根据静态分析得出观察结果,这是非常重要的。

pass源代码,获取抽象语法树,可以写代码、分析代码,这就是静态分析。

分开代码就可以获得抽象语法树。

今天我想分享我创建的代码库,我们是否能查出调用来源。

DEVCON2:   Raine Revere 论关于安全性可视化 (3)

我们可以用非常简单的合约实现可视化。

我们有一些函数可以取款,但是这样的函数是不安全的,外部的调用会产生问题,除非开发者仔细的分析,才能查到这些问题。

关注最重要的函数应该用Solgraph实现函数可视化,获得余额的函数是蓝色的,状态不会改变,取款的函数是红色的,和不可信的调用相连。用solgraph可以查看任何的潜在风险,如果DAO有这样的代码就可以知道DAO再重放攻击可能发生在哪,以非常低的成本就可以查看风险。

我们需要更加标准的单元模式,每个Solidity合约都有自己的合约测试,如访问控制,只能做一些不同的控制。这是技术部分

还有一些非技术,可以进行一些更有效的安全逃离

DEVCON2:   Raine Revere 论关于安全性可视化 (4)

网络开发者,用Java等语言,网络开发者看重简单实用型,其劣势是用的是高级语言,对系统和硬件虚拟相关的应用没有直观的感觉。很多基金会的人都在做系统相关的工作,系统工程师可以了解细节带来的影响,可能会低估C++的影响。

形式化验证用Y3这样文件的解决方案,证明应用的有效性,虽然对安全来说学术人士是最重要的贡献者,但是人数非常有限,但是我们不知道如何整合他们的意见。

DEVCON2:   Raine Revere 论关于安全性可视化 (5)

还有就是非开发者,如果要创建成功产品必须让他们参与,如推销者,他们需要依赖其他人的专业知识,他们需要信任工程师和学术人士,这些人会进行猜想,如DAO,如果网站如雅虎被攻击,因特网就完了,但是在区块链中一个合约不是整个以太坊网络,我们要有不同的角度,不同的人对安全有不同的看法,发现合约中的风险,动态攻击也非常重要,让不同的人参与进来进行多角度的安讨论。

作者:Lydia | 来源:Chainb

btcfans公众号

微信扫描关注公众号,及时掌握新动向

来自互联网
免责声明:
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
2.本文版权归属原作所有,仅代表作者本人观点,不代表比特范的观点或立场
上一篇:DEVCON2: 状态频道 :系统安全性考虑以及解决方案 下一篇:DEVCON2: Imandra合约:以太坊形式化验证

相关资讯