[编辑:2013 年 6 月] ArXiv 上出现了一篇论文,更详细地描述了这个问题,并提出了一些解决方案: http ://arxiv.org/abs/1303.4808 。它将出现在 2013 年晚些时候的《统计软件杂志》上。
我的 Ubuntu 服务器上有一个 cronjob,可以从 CRAN 下载并安装每个源包。然而,在同一台服务器上,我开始注意到一些不规则的活动。它可能完全不相关,但它让我思考是否有可能某些 CRAN 包包含恶意代码。
创建和发布 cran 包的过程非常简单。也许有点太容易了。你将你的包上传到 FTP,Kurt 会做一个检查,然后发布它。随着每天上传的 R 包的数量,可以合理地假设没有对包进行广泛的审计。与大多数发行版软件包一样,也没有使用私钥对软件包进行签名。即使是描述中的电子邮件地址也很少得到验证。
现在,无论是在编译时还是在运行时,包含一些安装 rootkit 的代码都不会很困难。编译时间可能更容易受到攻击,因为我使用 sudo 安装我的包,我可能应该停止这样做。但在运行时也可以做很多事情。linux 内核最近出现了几个安全漏洞,我已经证实,在一个完全最新的系统上,通过提权漏洞获取 root 是非常容易的。由于 R 通常可以访问 Internet,因此恶意代码甚至不必包含在包中,只需使用 wget 或 download.file() 从某个地方下载即可。
也就是说,R 用户是否在考虑这一点?还是主要是您应该只从您信任的人那里下载软件包的理念?仍然没有签署不是很可靠的包。安装 cran 包更安全的方法是什么?我考虑过类似一台单独的机器来构建包,然后复制二进制文件,并始终在沙箱中运行 R。不过这有点麻烦。