近一个月,比特币币值从1.8万美元到2万美元,涨势如虹。币圈传出消息:圣诞节前,比特币必将大涨一波。
昨日晚间,BTC就十分争气的冲上了23000的高位。
在比特币涨势带领下,币圈陷入疯狂,加密数字行情炙手可热,以太坊、瑞波币、莱特币等加密货币同样涨势喜人。
从昨日晚间到今日,币圈上演了一幕幕大型“真香”现场,市场的狂热投资者陆续进场“搏斗”。
相比于2017年的比特币狂欢,这次的涨势看起来可能更加的稳定。
2020年对于所有人来说都是特殊的一年,疫情爆发,币圈动荡。去中心化金融DeFi的出现和发展热潮使得区块链开始再次受到人们的关注。
当加密领域拥有的资产越来越庞大,来自于安全隐患方面的危机也显露无遗。
比特币大涨,你的钱包是否还安全?
近年来,数字钱包安全事件频发。
去年11月19日,Ars Technica报道称两个加密货币钱包数据遭泄露,220万账户信息被盗。安全研究员Troy Hunt证实,被盗数据来自加密货币钱包GateHub和RuneScape机器人提供商EpicBot的账户。
这已经不是Gatehub第一次遭遇数据泄露了。据报道,去年6月,黑客入侵了大约100 个XRP Ledger钱包,导致近1000万美元的资金被盗。
近一年来,CertiK技术团队对多个加密钱包进行了测试和研究,并在此分享针对基于软件不同类型的加密钱包进行安全评估的方法及流程。
加密钱包基础审计清单
- 应用程序如何生成私钥?
- 应用程序如何以及在何处存储原始信息和私钥?
- 钱包连接到的是否是值得信任的区块链节点?
- 应用程序允许用户配置自定义区块链节点吗?如果允许,恶意区块链节点会对应用程序造成什么影响?
- 应用程序是否连接了中心化服务器?如果是,客户端应用会向服务器发送哪些信息?
- 应用程序是否要求用户设置一个安全性高的密码?
- 当用户试图访问敏感信息或转账时,应用程序是否要求二次验证?
- 应用程序是否使用了存在漏洞且可被攻击的第三方库?
- 有没有秘密(比如:API密钥,AWS凭证)在源代码存储库中泄漏?
- 有没有明显的不良代码实现(例如对密码学的错误理解)在程序源代码中出现?
- 应用服务器是否强制TLS连接?
手机钱包
相比于笔记本电脑,手机等移动设备更容易丢失或被盗。
- 应用程序是否警告用户不要对敏感数据进行截屏——在显示敏感数据时,安卓应用是否会阻止用户截屏?iOS应用是否警告用户不要对敏感数据进行截屏?
- 应用程序是否在后台截图中泄漏敏感信息?
- 应用程序是否检测设备是否越狱/root?
- 应用程序是否锁定后台服务器的证书?
- 应用程序是否在程序的log中记录了敏感信息?
- 应用程序是否包含配置错误的deeplink和intent,它们可被利用吗?
- 应用程序包是否混淆代码?
- 应用程序是否实现了反调试功能?
- 应用程序是否检查应用程序重新打包?
- (iOS)储存在iOS Keychain中的数据是否具有足够安全的属性?
- 应用程序是否受到密钥链数据持久性的影响?
- 当用户输入敏感信息时,应用程序是否禁用自定义键盘?
- 应用程序是否安全使用“webview”来加载外部网站?
Web钱包
- 应用程序存在跨站点脚本XSS漏洞吗?
- 应用程序存在点击劫持漏洞吗?
- 应用程序有没有有效的Content Security Policy?
- 应用程序存在开放式重定向漏洞吗?
- 应用程序存在HTML注入漏洞吗?
现在网页钱包使用cookie的情况很少见,但如果有的话,应检查:
- 该应用程序是否包含除基本钱包功能之外的其他功能? 这些功能存在可被利用的漏洞吗?
- OWASP Top 10中未在上文提到的漏洞。
扩展钱包
扩展要求了哪些权限?
扩展应用如何决定哪个网站允许与扩展钱包进行交流?
扩展钱包如何与web页面交互?
恶意网站是否可以通过扩展中的漏洞来攻击扩展本身或浏览器中其他的页面?
恶意网站是否可以在未经用户同意的情况下读取或修改属于扩展的数据?
扩展钱包存在点击劫持漏洞吗?
扩展钱包(通常是background script)在处理消息之前是否已检查消息来源?
应用程序是否实现了有效的内容安全策略?
Electron桌面钱包
在以往测试过的桌面钱包中,大约80%的桌面钱包是基于Electron框架的。在测试基于Electron的桌面应用程序时,不仅要寻找web应用程序中可能存在的漏洞,还要检查Electron配置是否安全。
CertiK曾针对Electron的桌面应用程序漏洞进行了分析,你可以点击访问此文章了解详情。
以下是基于Electron的桌面钱包受评估时要增加检查的审计类目:
应用程序使用什么版本的Electron?
应用程序是否加载远程内容?
应用程序是否禁用“nodeIntegration”和“enableRemoteModule”?
应用程序是否启用了“contextisolation”, “sandbox” and “webSecurity”选项?
应用程序是否允许用户在同一窗口中从当前钱包页面跳转到任意的外部页面?
应用程序是否实现了有效的内容安全策略?
preload script是否包含可能被滥用的代码?
应用程序是否将用户输入直接传递到危险函数中(如“openExternal”)?
应用程序会使不安全的自定义协议吗?
服务器端漏洞检查列表
在我们测试过的加密钱包应用程序中,有一半以上是没有中心化服务器的,他们直接与区块链节点相连。
CertiK技术团队认为这是减少攻击面和保护用户隐私的方法。
但是,如果应用程序希望为客户提供除了帐户管理和令牌传输之外的更多功能,那么该应用程序可能需要一个带有数据库和服务器端代码的中心化服务器。
- 认证和授权
- KYC及其有效性
- 竞赛条件
- 云端服务器配置错误
- Web服务器配置错误
- 不安全的直接对象引用(IDOR)
- 服务端请求伪造(SSRF)
- 不安全的文件上传
- 任何类型的注入(SQL,命令,template)漏洞
- 任意文件读/写
- 业务逻辑错误
- 速率限制
- 拒绝服务
信息泄漏
总结
欢迎搜索微信【certikchina】关注CertiK官方微信公众号,点击公众号底部对话框,留言免费获取咨询及报价!