官方源是如何保证软件从开发者到用户的安全性的?

求助

(九天星) #1

例:某个开发者开发了一款软件,这款工具是如何从开发者手中通过源推送到用户手中的?过程中又是通过什么机制来保证这个开发者通过源推送的这款软件不是恶意的?


#2

debian的打包者会发现值得打包的软件,然后借助debian的一些工具并按照debian policy的规范将其制作成合格的软件包,然后通过debian开发者的检查上传到debian的仓库中。之后这个打包者要负责在该软件升级的时候制作升级的软件包,然后再通过这个过程进入debian仓库,当然这是简化的过程,debian内部还有许多组织来保证包的安全和质量,比如security组和qa团队,具体的可以参考
https://www.debian.org/doc/debian-policy/

https://mentors.debian.net/intro-maintainers


#3

关键是如何检查上传的包不含恶意代码?


(九天星) #4

谢谢!


#5

这个,据我所知没有针对这方面的特别的检查,但是打包者所选择的软件都是已经有一定数量的用户的,而且符合debian的自由软件指导方针(DSFG)因此在进入debian源之前就已经有很多只眼睛盯着代码安全性了。


#6

所以说 没有明确审查流程制度,只能依靠完全靠人的自觉性? 那么一个恶意打包者借着打包知名项目加入私料也是可能的?就像chrome的useragent知名扩展被用图片格式夹带隐藏代码,通过混淆js解析图片中的代码这种情况也可能发生?
换句话说 如何确保在由源码到入库这个过程中间不会被利用,源上万个包全靠人工审核?


(九天星) #7

同问


#8

首先,debian打包时要求对上游源代码的修改都必须以patch的形式存放在debian/patches目录下,其次,一个普通贡献者的所有上传都需要通过debian开发者或者某些有该包上传权限的维护者来上传,这些上传者会对这个包这次升级所做的工作进行检查。所以你说的夹带恶意代码这种事情可能性非常小。


#9

至于某个debian开发者偷偷给他维护的包加入恶意代码,这种事情发生的可能性也不是没有,但是你能保证linux内核源代码中没有恶意代码吗?你同样不能保证。道理是一样的。但是开源会将这种可能性降到最小。


(ivlioioilvi) #10

我觉得这个无法保证,打包人员也只是按照规范打包而已,是不可能去阅读源代码的,毕竟这是一项巨大的工程。

可以参考 bumblebee 这个软件当初由于开发人员不小心写错了脚本,结果会删除系统的 /usr 目录。

install script does rm -rf /usr for ubuntu


(亚特兰蒂斯的小乙哥) #11

linux的权限非常的严格的,就算有恶意代码,很多情况下,不能导致内核的崩溃,如果你有足够的知识和能力,你能够手工清楚恶意代码的进程的,呵呵!


(亚特兰蒂斯的小乙哥) #12

比如Xfce本身的主进程的优先级也不过是2,如果恶意代码导致Xfce崩溃,你只需要启动root账户,把恶意代码的进程干掉,重启X11,和Xfce,正常了就。win的毛病就在于,这种情况下要重启机器,重启后,恶意代码反客为主,替换了原来代码的控制权,所以win系统非常脆弱。


(亚特兰蒂斯的小乙哥) #13

linux的文件权限有7种好像,并且还有文件的拥有者,用户分4个等级,除了超级账户,其他同等级的账户是不能越权执行文件的,这个你应该清楚。