V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
jin5354
V2EX  ›  问与答

现在开发越来越依靠镜像站,这些站被投毒了怎么办?

  •  
  •   jin5354 · 2015-12-18 20:20:29 +08:00 · 5788 次点击
    这是一个创建于 3267 天前的主题,其中的信息可能已经有所发展或是发生改变。
    npm -> 淘宝 npm 镜像站
    gem -> 淘宝 gem 镜像站
    brew -> 清华 tuna 镜像站
    pip -> 清华、中科院镜像站
    等等。。

    有了上次的 xcodeghost 事件,让人开始担心这些镜像站的安全性,万一哪天被黑了,被挂马了,岂不是又要感染一大片?
    37 条回复    2015-12-20 08:42:52 +08:00
    vietor
        1
    vietor  
       2015-12-18 20:22:39 +08:00 via Android
    后果自负
    Halry
        2
    Halry  
       2015-12-18 20:24:42 +08:00 via Android
    pgp key 验证,除非你刚开始的 pgp key 就是毒的
    Kirscheis
        3
    Kirscheis  
       2015-12-18 20:29:58 +08:00
    包是会验证签名的啊。。。
    chemzqm
        4
    chemzqm  
       2015-12-18 20:39:29 +08:00
    brew 的 hash 是写在代码里的,想投毒貌似只能把你下到本地的 brew 代码也改了,应该不容易。
    brew 和 npm 一般是不需要 sudo 权限的,就算有恶意代码也干不了啥吧
    TakanashiAzusa
        5
    TakanashiAzusa  
       2015-12-18 20:42:30 +08:00
    npm 包都人考虑过投毒
    VmuTargh
        6
    VmuTargh  
       2015-12-18 20:46:01 +08:00
    科大源被攻击过
    loading
        7
    loading  
       2015-12-18 20:53:39 +08:00 via Android   ❤️ 1
    有 pgp key ,虽然很多人都不知道是什么,如何用,有些用了也不知道…

    为什么不去怀疑 windows 自带后门…
    wy315700
        8
    wy315700  
       2015-12-18 21:06:50 +08:00
    作为运营镜像站的人忍不住冒出来说一句,

    怀疑主动投毒的,想多了,

    怀疑被动投毒的,如果有人有能力黑一个仅开了 HTTP 服务的机器,他就不需要去黑镜像站了,能做的事情多了去了。
    kiritoalex
        9
    kiritoalex  
       2015-12-18 21:38:37 +08:00
    对的, USTC 的源曾经被攻击过,攻击后的服务器自动给每个文件的头加上了随机的数据
    被攻击是由于管理服务器的前 USTC 会长的 SSH 客户端( windows 下)被感染的 dll 所截取数据,服务器的恢复大概花费了一段时间,因为镜像做一次全新同步会给学校网络带来非常大的负担,于是这个镜像就暂时没有全部做同步,而是采取类似于增量覆盖的方式进行的替换
    wy315700
        10
    wy315700  
       2015-12-18 21:43:41 +08:00
    @kiritoalex

    这攻击也太 不小心了。。。
    wy315700
        11
    wy315700  
       2015-12-18 21:44:54 +08:00
    @kiritoalex 不过我想问一句,他们的服务器 SSH 难道没有禁止外网访问吗,,,
    jin5354
        12
    jin5354  
    OP
       2015-12-18 22:00:38 +08:00
    @Kirscheis 印象中 npm 和 gem 比较频繁请求 sudo 的,否则会报 permission denied

    @wy315700 说到主动投毒,我并不怀疑各位人品,但是我想,搭建开源镜像站的技术都是公开的,所以黑产是不是可以自己搭一个钓鱼镜像站散布出来,就像在闹市区放一个公开 wifi 抓密码一样
    jin5354
        13
    jin5354  
    OP
       2015-12-18 22:02:39 +08:00
    @loading 确实是新知道 pgp key ,赶紧去学习一发涨姿势
    chemzqm
        14
    chemzqm  
       2015-12-18 22:06:59 +08:00
    https://github.com/ChALkeR/notes/blob/master/Do-not-underestimate-credentials-leaks.md
    这里披露了一些泄露登录信息的 npm 包,确实存在投毒的可能性,尤其是 express ,太多公司在用了,而且负责关键的 http 接口
    BSD
        15
    BSD  
       2015-12-18 23:17:16 +08:00
    所以,我都是在 https 官网先找到 hash 后再到镜像站下载,官网没公布 hash 的,就能只能弃了。。。
    kiritoalex
        16
    kiritoalex  
       2015-12-18 23:39:03 +08:00
    @wy315700 可能是科大里的黑帽子做的。。。。。。
    mzer0
        17
    mzer0  
       2015-12-19 00:03:48 +08:00
    @wy315700 你维护的哪个镜像站?
    wy315700
        18
    wy315700  
       2015-12-19 00:07:14 +08:00
    @mzer0
    http://mirrors.opencas.cn/
    中科院镜像啊,
    mzer0
        19
    mzer0  
       2015-12-19 00:13:43 +08:00
    @wy315700 镜像站是怎么做的? 要联系母站吗?
    wy315700
        20
    wy315700  
       2015-12-19 00:15:19 +08:00
    @mzer0
    一般开源软件都有做镜像的方法的
    比如 centos 的 https://wiki.centos.org/HowTos/CreatePublicMirrors
    使用 rsync 同步以后,申请加入官方镜像
    一般是发邮件申请或者是加入到邮件列表
    Cu635
        21
    Cu635  
       2015-12-19 00:24:51 +08:00
    你列举的这些软件,做镜像的话是有 hash 值和 gpg 签名的,能够保证内容不被篡改。
    Cu635
        22
    Cu635  
       2015-12-19 00:28:02 +08:00   ❤️ 1
    @VmuTargh

    科大源是被攻击过,但是没有被投毒。

    有好几次 hashsum mismatch ,但是最后都发现要么是运营商的缓存问题,要么是源本身正在更新还没有更新完毕,不是被攻击的问题。
    Cu635
        23
    Cu635  
       2015-12-19 00:35:11 +08:00
    @kiritoalex
    不是“每个文件的头加上了随机的数据 ”,而是在关闭 socket 时选择硬盘的随机位置写入一个字节。
    cxbig
        24
    cxbig  
       2015-12-19 00:55:25 +08:00
    自己的开发环境,翻墙就好
    在某些不便于翻墙的国内服务器部署,先去翻墙抓到所有的包,放服务器直接安装。
    zonghua
        25
    zonghua  
       2015-12-19 00:59:34 +08:00 via iPhone
    用 maven 下载了半个互联网,用的是开源中国的镜像。发现同名的包会有不同的组织,而上传代码似乎是不用验证的?
    zsj950618
        26
    zsj950618  
       2015-12-19 01:39:33 +08:00
    不用 gpg 验证的包管理器不是好的包管理器。
    zsj950618
        27
    zsj950618  
       2015-12-19 01:43:13 +08:00
    另外没有一个软件镜像站是会对其提供的内容的正确性做任何担保的,数据的正确性的校验应该是使用者自己来负责。
    LINAICAI
        28
    LINAICAI  
       2015-12-19 02:02:40 +08:00
    我大 win 多年来镜像一样大把大把的人用~谁注意过了
    lightening
        29
    lightening  
       2015-12-19 02:37:33 +08:00
    @jin5354 我做 Rails 的三年里没有遇见过一个 gem 是需要 root 权限的……
    pynix
        30
    pynix  
       2015-12-19 09:04:12 +08:00
    @kiritoalex 醉了
    jin5354
        31
    jin5354  
    OP
       2015-12-19 09:54:58 +08:00
    @lightening 安装时会请求 sudo ,我不会 ruby ,只用 gem 安装过某些依赖...
    jasontse
        32
    jasontse  
       2015-12-19 10:12:15 +08:00 via iPad
    apt-key.....
    xiaket
        33
    xiaket  
       2015-12-19 11:47:19 +08:00
    @wy315700 "如果有人有能力黑一个仅开了 HTTP 服务的机器,他就不需要去黑镜像站了"

    这么说是不太清晰明确的, 实际上, 大多数镜像站开放的是静态站点, 要黑一个根本不在后台运行脚本(php/py 等)逻辑的站点, 是相当难的.
    wy315700
        34
    wy315700  
       2015-12-19 11:51:53 +08:00
    @xiaket
    就是这个意思,,,
    RqPS6rhmP3Nyn3Tm
        35
    RqPS6rhmP3Nyn3Tm  
       2015-12-19 16:17:11 +08:00 via iPad
    为什么没人做 bintray 镜像站呢
    lightening
        36
    lightening  
       2015-12-19 18:54:44 +08:00 via iPhone
    @jin5354 哦 我知道了,你用的是系统的 ruby 。一般做开发都会用个 rbenv 什么的,类似 virtualenv ,在用户空间管理 ruby 版本和 gem 。
    hqs123
        37
    hqs123  
       2015-12-20 08:42:52 +08:00
    开发镜像一般都是在大学教育机构那里,都有技术人员高手维护的,这个倒不用担心啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1207 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:18 · PVG 02:18 · LAX 10:18 · JFK 13:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.