链圈的人应该对「电报群」(Telegram)不陌生,由于在国内被河蟹,因此有人做了一个「可以访问外国网站的Telegram」——BiYong,BiYong可以与Telegram全部数据互联,也可以一键加入各大主流区块链社群。
然而,这款号称要做「区块链领域的微信」的产品,最近被爆出了严重的隐私漏洞。
数字钱包是区块链生态交易中不可或缺的工具,无论是管理加密资产,还是转账都至关重要,在应用市场中也可以看到不少这类产品的身影,如Exodus或imToken等。与一般App不同的是,加密钱包类App需要面对更严格的安全审查,并拥有更高的隐私保护的标准。GDPR(EU General Data Protection Regulation,欧盟公众数据保护条例)更是出台了一系列的法规。
最近,区块链安全公司PeckShield(曾曝出多个ERC20漏洞)对多个移动App的钱包产品进行检测,发现了BiYong的安全漏洞。
这个拥有三百万月活用户,以社交为主打(连接用户、社区、媒体、加密资产、应用……),号称要成为区块链领域的微信的App,不仅支持用户与Telegram无缝接入,也支持转账和付款。然而,就是这样一款产品,在用户隐私信息的收集和管理上,似乎太大意了。
他们竟然将搜集到的用户在Telegram上的隐私信息(用户ID、用户名、电话号码、支付密码),明文上传到自己的服务器!这一做法实在令人大跌眼镜,不光是安全防范意识差,也违背了区块链技术的思想。
安全漏洞技术细节
首先,PeckShield的研究员(以下简称「研究员」)在主流Android应用商店下载了BiYong的App。参数如下:
在对App的代码进行反编译后,发现该App在用户登陆过程中会调用uploadUserInfo()参数,如论是否成功登陆,用户信息都会被上传。以下是搜集用户信息的代码片段。
如上面代码所示,uploadUserInfo()参数将搜集到的用户信息:Telegram ID/用户名、电话号码等,传给一个叫「v3」的变量,然后v3将这些信息上传给一个URL链接,即:UrlConfig.URL_USER_UPLOAD。
从下面这段代码可以看出,
UrlConfig.URL_USER_UPLOAD指向的地址是:
https://www.biyong.info/app/user/upload,
而这个地址正是属于BiYong的私有地址。
不仅如此,BiYong在RollOutActivity的过程中,还调用了sendOutToServer()参数。用户在对加密货币进行转账时,支付密码会以明文的方式存放在v3.trxPassword参数中,之后传递给:UrlConfig.URL_OUT_SUBMIT。
从下图可以看出,
UrlConfig.URL_OUT_SUBMIT的地址指向:
https://www.biyong.info/app/wallet/withdraw/create。
也是一个属于BiYong的私有地址。
后果可能比你想象的严重
由于泄露的密码是6位数,是一个很普遍的密码长度,很多人习惯在不同的平台用同一个密码,如支付宝、微信支付等。因此一旦这个密码和手机号码同时泄露,后果将不堪设想。
无论BiYong的这个漏洞是一时疏忽还是有意为之,这些漏洞都表明BiYong应该提高对于安全的认知,也应该加强安全等级,例如遵守GDPR的最新规范。
看来,区块链安全,任重而道远。