Chainge技术沙龙(0414)-区块链技术的安全隐患

火币CTO程显峰分享《区块链的那些坑爹事》

分叉与回滚

  • 区块的不同副本并不一定都是一致的
  • 比特币的各节点选择具有最多累计工作量证明的链条(即最长链)
  • 收敛到全局最长链
  • 节点本身并不具备区分多个最长链的功能
  • 主动分叉和主动回滚 具有中心化风险
  • 基于POS的自我修正加密账本
  • ADA和TEZOS

交易确认与区块浏览器

  • 交易确认参数例如出块时长和确认区块数影响充值提现效率
  • 成功出块不能意味着一笔交易的完全确认
  • 确认区块数指的是较大概率下该交易不会被回滚的区块数量
  • 范围较大的区块回滚会导致这些参数失效
  • 浏览器的平稳运行

P2P节点维护

  • 交易所需要同步区块链的全网状态来知晓一笔充值交易的信息与状态
  • 节点不存在不稳定的状态
  • 节点本身的某个rpc服务突然变得不能访问
  • 节点对于内存管理不当导致节点停止服务
  • 错误的同步节点选择策略
  • 日食攻击

签名安全

  • 离线签名
  • WOTS签名算法
  • 多次签名
  • 模仿签名攻击

虚拟机设计

  • 智能合约操作依赖于虚拟机实现
  • 智能合约的图灵完备性
  • 以以太坊的ERC20标准为例
  • 虚拟机执行数据与区块链数据的隔离
  • 合约的嵌套调用

零钱整理

  • UTXO用作支付模型
  • 地址集里的余额总和实际上并不能作为真实的有效余额总和来记入账本
  • 一笔交易包含:输入UTXO,手续费,找零
  • 用户发起一笔1BTC的装账交易,钱包程序可能找出0.1,0.5,0.2,0.3四个UTXO,一共1.1BTC,如果此时的网络手续费0.01BTC那么用户有0.09BTC的找零
  • 频繁交易导致零钱变多
  • 比特币的交易手续费由交易大小决定,而交易大小又与输入UTXO的数量直接相关

慢雾安全团队分享《以太坊黑色情人节事件》

慢雾科技介绍

  • 安全审计
  • 安全顾问
  • 防御部署
  • 地下黑客风向标追踪

01| The Dao事件
以太坊第一个安全大事件
智能合约的取款
新建一个Bank,存入一部分钱,用Dao框架不停取钱。
取款-判断余额-取款操作框架-转空该账户下的所有钱。
简单的例子就是,你的银行卡有余额100万,你需要买一个10块钱的饮料,但是支付的过程有漏洞,所以你银行卡的所有钱都被转走。

一、外部调用

  • 尽量不使用外部调用
    二、转账
  • someAddress.call.value()()不安全
    三、Fallback触发条件
  • 没有匹配到函数签名
  • 调用没有带任何数据被调用
  • send()函数

02| 以太坊黑色情人节
起源:第一转账时间是2.14

ETH节点统计
客户端、客户端版本、OS系统。整个系统的庞杂

蜜罐检测(部署陷阱能检测出黑客的点来)

net_version
判断是主网还是测试网,只攻击主网
3000+主网节点完全暴露

eth_accounts
获取钱包账号,涉及钱包账号

eth_getBanlance
获取有多少钱,被盗46000+ETH

why?
unlockAccount 函数介绍
该函数将使用密码从本地的keystore 里提取private key 并存储在内存中,函数第三个参数duration 表示解密后private key 在内存中保存默认是300 秒; 如果设置为0,则表的时间,示永久存留在内存,直至Geth/Parity 退出。
详见:
https://github.com/ethereumgethereum/wiki/Management-APIs#personal_unlockaccount

节点存用户的keystore信息(严重危险)

eth_getBlockByNumber
墨子扫描引擎,扫描有问题的节点,慢雾的以太坊安全事件的披露
被盗ETH,市值,被盗钱包数
具体内容可以查看慢雾发布的以太坊黑色情人节专题

生态相关
ETH:矿池、钱包、web3、smart contract、dapp
BTC:矿池、钱包、Lightning Network

BTC RPC
防御建议

  • 1.更改默认的RPC API 端口,配置方法如:--rpcport 8377 或--wsport 8378
  • 2.更改RPC API 监听地址为内网,配置方法如:--rpcaddr 192.168.0.100 或--wsaddr 192.168.0.100
  • 3.配置iptables 限制对RPC API 端口的访问,举例: 只允许192.168.0.101访问8545 端口:
    iptables-A INPUT-S 192.168.0.101-p TCP--dport 8545-j ACCE PT
    iptables-A INPUT-p TCP--dport 8545-j DROP
  • 4.账户信息(keystore) 不要存放在节点上(因为账户不在节点上,所以就不会用到unlockAccount 了)
  • 5.任何转账均用web3 的sendTransaction 和sendRawTransaction发送私钥签名过的transaction
  • 6.私钥物理隔离(如冷钱包、手工抄写) 或者高强度加密存储并保障密钥的安全

比特派COO王超分享《钱包 安全与开发》

管理数十万用户安全的接近百万的比特币

华人世界唯一被bitcoin.org网站展示的钱包

比特派多种区块链资产(BTC、ETH、Token、分叉)
冷热结合,确保安全
比特派-热钱包
比特护盾-冷钱包/硬件钱包

区块链安全事件

  • Android 手机随机数问题
  • Firefox 浏览器随机数问题
  • Blockchain.info 前后三次随机数问题
  • Parity 的两次多重签名漏洞
  • 慢雾团队披露的以太坊账户漏洞

私钥决定了区块链资产的所有权,丢了私钥也就相当于丢了一切。私钥就是一个随机数,这个随机数的概率空间很大(256 位,即2^256)

钱包=生态入口
需要在安全的同时做到尽可能的开放

玩法的开放,技术的开放,通用的技术接口,生态的开放,把自己的资源进行导入。合作伙伴计划:技术咨询、区块链技术支持、开放平台、入口支持、生态支持、海外市场合作。帮助伙伴实现区块链转型或区块链项目孵化,安全、便捷实现真正落地的区块链应用场景。

联系方式B@bitpie.com

imToken 首席安全官Blue分享《如何帮助用户做风险控制》

用户风控系统,数百万的数字货币用户。
最大可能保持我们的数字资产

骗子故事:抢数字货币份额,钱没到账,冒充官方,交出助记词

恶意钱包地址库
诈骗钱包、黑客钱包、羊毛党钱包

恶意网站库
钓鱼网站、空投网站、交易所、众筹

风险合约库
重名币、空格币、风险合约

安全事件库
历史安全事件提醒
最新事件提醒

盗币风险监控

  • 新设备提醒
  • 可疑行为提醒

安全意识教育

  • 评测
  • 答题
  • 社区分享

可能出现被盗的情况

  • 密钥存储在备忘录里,开启了iCloud同步,
  • 使用云笔记工具记录助记词,被盗;
  • 助记词截图保存在相册里,被盗;
  • 在网站上输入密钥或助记词,被盗;
  • 淘宝购买Apple ID,被盗;
  • 邮件传输密钥,被盗;
  • 跟朋友喝酒,炫耀自己的币,被盗;
  • 未做备份,丢币
  • 手机遗失,丢币;

如何起作用

  • 警告(风险合约提示,被举报钓鱼,请谨慎对待)
  • 禁止(确定是骗子钱包地址禁止转账)
  • 可疑行为提醒(夜间交易)
  • 安全事件推送(安全事件和案例披露)
  • 平台/社区公告(平台风险提示)

共建安全生态

  • 数据共享
  • 与安全机构合作
  • 行业漏洞监控~> 分析-> 分享
  • 漏洞奖励计划

币派CEO胡园泉分享《比卖安全产品更重要的事》

游戏即资产,稀缺资源,成为游戏运营者。最后大BOSS死于暴露了自己的密钥。
通过社工(社会工程学)【欺骗的艺术】黑客攻击手法,虚拟景象做出错误判断让自己陷入危机。

人始终是系统中最薄弱的环节,币安背锅的黑客事件。大客户泄露自己的账户,调用API接口,自动交易。虽然没丢币但是黑客在期货市场盈利。

关于安全钱包的帖子(来自小白愤怒控诉,实际没有理解整个机制):
1、我没私钥和交易密码,东西都在你们那我不知道安全在哪里
2、密语算个毛,你告诉我拿着你们的密语能做什么。

汽车和自行车事件,出了问题之后,弱势的一方被原谅。负责的是更大的一方。平台替没有安全意识的用户背锅。

对于大部分用户来说,交易所的安全性比普通用户自己管理的安全性要高,用户的安全意识没有提高,交给交易所帮助、协助你来管理你的钱包提示很多风险操作。

为什么要随机生成256位的密钥,为什么不能用户自己去设置,如果自己设置会处于一个集中的区域,随机值不够,私钥生成时就处于危险的状态。

自己的安全认识不够,所以自己造成的损失,先怼交易所先怼钱包。先想到得是你们的问题和漏洞造成的,不是我的操作失误和密钥泄露造成的。

币派做的是大神和小白的交流之间的翻译,做画漫画,写段子的逗比。

币小宝防骗指南漫画,贡献题材和内容。

推荐阅读更多精彩内容