starcoinorg / starcoin-framework

The Starcoin Move framework
Apache License 2.0
50 stars 27 forks source link

[Code]: DAOSpace security #123

Open jolestar opened 2 years ago

jolestar commented 2 years ago

DAOSpace 的设计上有一些安全方面的难题暂时没有好的方案,或者方案太复杂会影响使用体验。所以先列举在这里,可以逐步改进:

jolestar commented 2 years ago

插件升级带来的问题的有一个可能的解决方案:

  1. 安装插件的时候记录插件的版本号(这个版本号需要和账号下的 Package Version 对应)。
  2. 执行的时候,如果发现 DAO 安装的插件版本号和插件最新的版本号不一致,则直接报错,或者作为一个设置,是否自动升级插件版本。
  3. 前端插件的版本要和插件地址下的 Package Version 关联,即便是只升级前端,也需要走一次链上交易更新版本。
  4. 如果使用插件的 DAO 设置为不自动升级,则插件每发一个版本,该 DAO 需要走一次重新安装的流程。
yubing744 commented 2 years ago

DAO里面锁定有资产,插件如果没有经过投票评审就自动升级,真的很危险,如果是我我真的不敢使用这样的插件。

yubing744 commented 2 years ago

这个安全问题不解决,DAOSpace不建议上线,强制上线感觉是去找骂

yubing744 commented 2 years ago

我觉得服务可以共享,插件不应该共享,我们平时使用的软件里的插件,感觉都是独立下载安装的

yubing744 commented 2 years ago

@jolestar 我们晚上再约个会讨论出一个方案再开发?

jolestar commented 2 years ago

我觉得服务可以共享,插件不应该共享,我们平时使用的软件里的插件,感觉都是独立下载安装的

插件只是个称呼而已,可以理解成 SaaS 服务式的插件。比如 Confluence 中的插件,肯定不会让用户保留多个版本。如果觉得插件的独立安装的概念太强,改个名字也行。

jolestar commented 2 years ago

@jolestar 我们晚上再约个会讨论出一个方案再开发?

我觉得可以先简化把那个 PR 合并了再讨论改进方案。先让大家能用,再考虑安全问题。如果最后实在觉得风险大,可以暂时不开放插件市场。

pause125 commented 2 years ago

我觉得服务可以共享,插件不应该共享,我们平时使用的软件里的插件,感觉都是独立下载安装的

插件只是个称呼而已,可以理解成 SaaS 服务式的插件。比如 Confluence 中的插件,肯定不会让用户保留多个版本。如果觉得插件的独立安装的概念太强,改个名字也行。

可以统一一下术语,把服务型插件和工具型插件分开来讲。从 Saas 服务的角度去说,好理解一些。

pause125 commented 2 years ago

DAO里面锁定有资产,插件如果没有经过投票评审就自动升级,真的很危险,如果是我我真的不敢使用这样的插件。

合约升级的事情应该是没法解决的,除非提供方自己将合约设置成不可升级或者两阶段升级,否则都是随时可以升级合约的。插件的安全性应该由提供方自己背书:要么你是大机构,要么你就把合约设置成不可升级。

平台方做好风险提示就好了,比如增加显式的徽章,监控合约升级的 event 并通知用户等等

yubing744 commented 2 years ago

@jolestar 我们晚上再约个会讨论出一个方案再开发?

我觉得可以先简化把那个 PR 合并了再讨论改进方案。先让大家能用,再考虑安全问题。如果最后实在觉得风险大,可以暂时不开放插件市场。

好的,我今天尽快把PR按周会讨论的结果修改好