比如类似 keepass 这样的 app,releases 的程序文件是另外有后门的源码编译后上传的,不是其公开在 code 部分的“干净”源码编译的?有没有这种可能??

1 Cyrusss Jul 1, 2021 via Android 代码放出来就是开源,而二进制文件没关系。 |
2 Cyrusss Jul 1, 2021 via Android 你说的「不干净」编译是存在的,比如微软提供的 VS Code,它的「干净」版是 VSCodium 。 |
3 vk42 Jul 1, 2021 那除了 Gentoo 以外的各 Linux 发行版也算“伪开源“了? 我觉得关键在于项目开源的代码是不是能完整构建可用成品,之前有些所谓开源放点代码出来但实际啥都编译不出来,只能用他们自己的二进制 |
4 AkideLiu Jul 1, 2021 via iPhone release 的时候人家放 executable 只是方便你用...既然都开源了你不信任作者编译的可以自己编译啊。 说实话哈就算源代码里面嵌入点乱七八糟的,自己编译也不会每行代码都看吧。 所以可以相对信任 |
5 neteroster Jul 1, 2021 via Android 有可能。 信不过自己编译。 |
6 msg7086 Jul 1, 2021 是有可能的。不放心可以从头来。 |
7 lesteryu Jul 1, 2021 via iPhone Software supply chain attacks… |
8 expy Jul 1, 2021 一样的代码保证编译出一样的程序。 https://en.wikipedia.org/wiki/Reproducible_builds 或者用 GitHub Action 来编译发布,公开配置文件就行了,不过需要信任 GitHub 。 https://github.com/marketplace/actions/github-action-publish-binaries |
9 jorneyr Jul 1, 2021 楼主是不是有误会: 放在 Github 管理的东西都是开源的? |
10 cominghome Jul 1, 2021 有可能,你可以自己编译源码 |
12 Rocketer Jul 1, 2021 via iPhone 一样的代码用不同的编译器,编出来并不完全一样。RedHat 就是这么玩的,你拿着他的源码编译出来就是不如他。 |
14 cathedrel OP @jorneyr 你这段话我本来就懂,我的问题就是:某些自称是开源的项目它们的可运行软件包是否真的是用“公开的干净的“源码编译出来的??有没有办法鉴别??有没有办法防范开源幌子下的后门和暗桩?? |
15 no1xsyzy Jul 1, 2021 「开源」描述源代码的授权方式和(暗示地描述)与社区之间交互模式,提供二进制与「开源」与否无关。 比如 ries 你甚至找不到现成的可执行文件。 至于放 Github 且不开源的,我知道的就有 Mega Sync 的客户端,是 Code Review License,属于「源代码可获取许可」,应当还有 MongoDB 这种 Server Side Public License 当然,根据 Github ToS,合法版权持有者上传到 Github 的代码具有最低程度的可获取性。 |
16 no1xsyzy Jul 1, 2021 |
17 j0hnj Jul 1, 2021 via iPhone release 文件是作者可以随便上传的,跟库本身的代码没有强关联 |
18 agagega Jul 1, 2021 via iPhone 是的。但作者可以提供一组编译参数,让你拿它的代码以同样的参数编译出来,然后比较两个可执行文件的 hash |
19 yfugibr Jul 1, 2021 via Android 你去看看 v2*n, 源码只能编译得到很久以前的版本 |
20 icyalala Jul 1, 2021 开源说得关键一点就是开放了源码, "伪开源" 一般是指责那些看上去是开源的项目,但是部分或者全部源码都没公开,而是只提供 binary 的行为。 至于那些有全部源码,也提供构建后二进制的项目,无论如何都算不上伪开源。 在 binary 加入后门或者私有内容,是安全问题。 |
21 freevioce Jul 1, 2021 提点题外话 1. 偏商业用的开源工具版本不会是最新的 而且会编译 2. 不存在绝对的安全 还有黑客恶意修改源码 只要用了无论编译不编译都会中招 |
22 shangsharon Jul 1, 2021 @agagega 相同参数编译出的文件 hash 不一定是一样的吧 |
23 coolcoffee Jul 1, 2021 印象中能做大做强的开源项目,基本上都采用了 Circleci 、Github Action 自动化构建,人工去维护 release 的成本是非常高且容易出错的。投毒的可能性很低很低,至少收益上划不来。 但是整合没开源的私有功能是非常可能的,很多开源软件也都是这么玩的,但是这样会降低社区参与度。 |
24 icyalala Jul 1, 2021 |
25 3dwelcome Jul 1, 2021 V2 不就有人放 Github 不开源,其实也没什么。 要说二进制文件有后门,全球网站下载安全系数里,github 上应该是很安全的。 |
26 skys215 Jul 1, 2021 开源=开放源代码,他开放了源代码,那就等于开源了。 但开源也有部分开源和全部开源。也有见过在 github 上只放编译好的文件,不放源代码的。 |
27 xinJang &nsp; Jul 1, 2021 引申一下,目前我们用的操作系统都是 win 或 mac 吧。 这...放了啥后门咱也不知道吧,所以重点是不想被放后门还是不爽被 github 里这个作者放了后门? |
28 lithiumii Jul 1, 2021 我感觉楼上骂你的没看懂你的意思。 release 里的编译好的文件技术上可以是假的,可以跟仓库里的代码相比有加料,甚至完全无关,都可以做到。有些仓库甚至没有源码,只有 release,就是用 github 来分发而已 所以真正在乎的人都会自己编译 |
29 jim9606 Jul 1, 2021 Release 里的 Artifacts 是作者自己上传的,确实有这个可能。 最安全的方法肯定是自己编译,不过你没法重现作者的签名。如果你非常需要作者签名,退而求其次的方法是自行审查 CI 脚本,从可信的在线 CI 获取 Artifacts,例如 Github Actions 之类的。 |
30 AlexDec Jul 1, 2021 不能排除,但可能性很小。一旦被发现了,开发者或组织,那不全球玩完了吗? |
31 ikas Jul 1, 2021 当然有可能有私货...所以你看 fdroid 都是自己编译 apk..但是如果真的多想一步..那么开源软件用的 lib,是不是也要全部引入源码编译.... |
32 muzuiget Jul 1, 2021 谁告诉你 github 上一定要开源的,私有项目也完全可以只放一个 README 文件,然后 release 页放二进制文件。 本来直接用 release 页的二进制文件就是基于对作者的信任,毕竟自己编译也麻烦。 |
33 Tink PRO 肯定有可能啊 |
34 Jirajine Jul 1, 2021 via Android reproducible build 或者通过 GitHub action 发布。 各种发行版和 fdroid 这种自行编译打包,才能确保二进制与源码对应。 |
35 solider245 Jul 1, 2021 印象中好像是有过类似的事情的。 理论上,代码开源之后,软件都应该你自己在本地直接编译。但是开发者打包好了,你要使用直接下载就可以了。 那么,在开发者打包和你下载这个环节确实就存在漏洞,有可能会被利用。 所以,具体还是要看你的安全性来考虑。如果你要绝对安全,那么你查看源码,然后本地编译是最安全的。 如果你要求便捷性,那就直接安装开发者提供的包就可以了 |
36 Felldeadbird Jul 1, 2021 你可以自己编译,然后和 release 里面的做对比。人家加料,和伪开源不相关。 |
37 coosir Jul 1, 2021 当然是有可能的,毕竟无法保证 release 的内容就是对应源码编译出来的 如果不在乎自己的声誉,甚至连源码里也放暗桩,很多使用者并不会细看代码 |
38 billlee Jul 1, 2021 我想起了某个反对 fdroid 的 android 代理软件 |
39 pmispig Jul 1, 2021 这个种情况是肯定存在的,还不少 |
40 zerofancy Jul 1, 2021 有。 1. Typora 本身并不开源,只是用来收集 issue,但仍然有很多人认为 Typora 是开源的。 2. tox 的某个客户端实现 Tok ( https://github.com/InsightIM/Tok-Android )基于 c-toxcore ( GPLv3 )开发,其在 github 发布了 v1.0 的代码,而后来添加的功能在应用商店(以开源自由等说法宣传)发布版本,但并未更新 github 代码。 |
41 cctv6 Jul 1, 2021 是有可能的,不光是 release 部分,直接 git push 上去的代码也是可以包含二进制文件的,如果代码下载下来不自己过一遍,直接打包,也是有可能发现不了的。 |
42 Trim21 Jul 1, 2021 via Android 完全有可能,release 里面的 exe 放什么都有可能。 |
46 jfdnet Jul 2, 2021 源代码都有。你信不过可以自己编译。 |
47 kingfalse Jul 2, 2021 via Android 源码是开源的,但是安装包啥的放上面就是图个方便,不然给你贴个百度网盘链接让你去下? |
48 zhuweiyou Jul 2, 2021 你可以自己编译源码, 但是源码投毒你也不知道, 不会一行一行看代码吧... 既然用了 就信任了. |
49 ShionMashmallow Jul 2, 2021 via Android 这种情况是有的,不开源但是 release 也会有说明吧( 比如说 Clash 两个内核 |