Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Code]: DAOSpace security #123

Open
3 tasks
jolestar opened this issue Sep 16, 2022 · 10 comments
Open
3 tasks

[Code]: DAOSpace security #123

jolestar opened this issue Sep 16, 2022 · 10 comments
Labels
enhancement New feature or request
Milestone

Comments

@jolestar
Copy link
Member

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

  • 插件升级可能带来的安全隐患。如果插件开发者是恶意开发者,或者开发者的账号被盗,插件升级后会给使用该插件的 DAO 带来安全问题。这个包括插件合约和插件前端。但由于合约无法同时保留多个版本,所以只是前端保留多个版本也意义不大。
  • 前端插件的风险:恶意的 js 注入到 DAOSpace 的界面中。
  • 插件申请的权限过大。
@jolestar jolestar added the enhancement New feature or request label Sep 16, 2022
@jolestar
Copy link
Member Author

jolestar commented Sep 16, 2022

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

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

@yubing744
Copy link
Collaborator

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

@yubing744
Copy link
Collaborator

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

@yubing744
Copy link
Collaborator

yubing744 commented Sep 16, 2022

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

@yubing744
Copy link
Collaborator

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

@jolestar
Copy link
Member Author

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

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

@jolestar
Copy link
Member Author

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

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

@pause125
Copy link
Collaborator

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

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

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

@pause125
Copy link
Collaborator

pause125 commented Sep 16, 2022

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

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

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

@jolestar jolestar added this to the v12 milestone Sep 16, 2022
@yubing744
Copy link
Collaborator

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

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

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

@jolestar jolestar modified the milestones: v12, v13 Nov 11, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants