V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lhx888
V2EX  ›  程序员

npm 用淘宝源替换官方源,会不会有资安问题啊?

  •  1
     
  •   lhx888 · 306 天前 · 6644 次点击
    这是一个创建于 306 天前的主题,其中的信息可能已经有所发展或是发生改变。

    因为你懂得的原因,官方源速度太慢,扶墙流量又要花钱,能省就省吧:-)

    换成淘宝源倒是很快,就是怕源里出来的东西“夹带私货“。有没有这个可能啊?

    70 条回复    2023-05-29 16:03:10 +08:00
    dlsflh
        1
    dlsflh  
       306 天前 via Android   ❤️ 3
    都用资安了当然有。
    wudicgi
        2
    wudicgi  
       306 天前   ❤️ 16
    不懂就问,“资安问题”是台湾地区常用的说法吗?
    搜了半天出来的结果没啥简体中文的, Google 翻译出来是 Information security issues
    iqoo
        3
    iqoo  
       306 天前
    这点流量能省多少,普通的富强流量 1TB 十块钱都不到。
    dfkjgklfdjg
        4
    dfkjgklfdjg  
       306 天前
    为什么要 “夹带私货” ?
    需要考虑的问题是镜像里面的数据可能有延迟,版本对不上之类的。
    tyzandhr
        5
    tyzandhr  
       306 天前 via Android   ❤️ 2
    你不会查 md5 吗?
    lhx888
        6
    lhx888  
    OP
       306 天前
    @wudicgi 您这一提,资安是台湾的说法,经常看相关资讯,不自觉的用上了。。 。。。
    lhx888
        7
    lhx888  
    OP
       306 天前   ❤️ 1
    @dlsflh 别闹啊大哥,很严肃的在问。也有可能不会有资安问题。如果它像 debian 的 apt 一样,无论从哪里下载的包,都要在本地来签名验证,就不存在第三方镜像和官方镜像不一样的问题。因为修改后会验证不通过进而不安装。

    最多是版本落后于官方,但一定是从官方原版镜像的。因为作了个修改,本地验证就不可能通过。因为本地验证用的证书是官方的。

    其实,我觉得大概率 npm 也是这种验证机制。但不完全确定,就问问啊。
    lhx888
        8
    lhx888  
    OP
       306 天前
    @iqoo 这是自建的吧,我用的机场的。。。 。。。真的挻贵的。自建我也有,被封了套 cdn 呢,那速度。。。 。。。
    lhx888
        9
    lhx888  
    OP
       306 天前
    @dfkjgklfdjg 关于为什么要夹带私货,因为搜集信息是有价值的,你看看安卓上那些国产毒瘤,因为安卓版本迭代限制越来越严现在是好一些了,以前简直丧心病狂。虽然我这也没什么怕他注意的,但是本身有些抵触这样的行为 。
    RRRSSS
        10
    RRRSSS  
       306 天前
    镜像源不放心的话,应该只能自己对比 md5 签名

    我觉得,与其担心镜像源「带毒」,不如担心使用的 npm 包本身是否安全,这几年出了不少事情了。
    lhx888
        11
    lhx888  
    OP
       306 天前
    @t
    @RRRSSS 明白了,谢谢您的回复。
    dawei211
        12
    dawei211  
       306 天前
    @lhx888 思考些其他的更有价值.
    xmumiffy
        13
    xmumiffy  
       306 天前 via Android
    @lhx888 9 元 4T 的机场也有,能到 300Mbps
    totoro52
        14
    totoro52  
       306 天前   ❤️ 5
    镜像都是校队 MD5 的,你改了包 MD5 就对应不上了,你这被害妄想症太严重了
    另外 NPM 仓库鱼龙混杂,上次就有个美国人在上面投了一堆,桌面都会多一个 txt ,NPM 仓库也是挖矿病毒的重灾之地,与其担心被夹带私活,不如多关心一下自己都导入哪些依赖,是否有大厂靠背等
    https://juejin.cn/post/7075510289189322759
    lhx888
        15
    lhx888  
    OP
       306 天前
    @dawei211 思考了,那就是我需要好好的学一下英语,因为查官方文档一定能得到答案,可惜英语不过关
    dfkjgklfdjg
        16
    dfkjgklfdjg  
       306 天前
    @lhx888 #9 ,收集信息并不是夹带私货吧,收集信息你是没办法感知的,就算镜像源不收集你信息运营商之类的也可以收集你信息去坐,真的要担心这个真的不如肉身翻墙。
    如果是真·夹带私货,在包内给你做小动作吗。就是自断后路了谁还会用。与其怀疑这种公益项目,不如找一个你认为靠谱的镜像去做赞助。

    -----
    另外现在直连 npm 官方源也不会很慢,我都懒得换源了,直接用官方源。特别是之前遇到过镜像源版本落后编译失败的情况。
    lhx888
        17
    lhx888  
    OP
       306 天前
    @totoro52 您说的有道理,学到了。校对 md5 是默认打开,安装软件的时候 npm 主动进行的吗?打比方,npm install 一些东西,不需要我人工进行校对,电脑自己就把这事做了。
    dawei211
        18
    dawei211  
       306 天前
    @lhx888 软件这东西,信任边界很重要,信任边界太窄,害人害己
    magicdawn
        19
    magicdawn  
       306 天前 via Android
    上次有个包篡改 Onedrive 文件夹
    lhx888
        20
    lhx888  
    OP
       306 天前
    @dfkjgklfdjg 夹带一私货就是进行修改加后门等别人安装,安装之后就有了后门,然后就可就通过这个后门对设备进行控制,或者主动上传信息啊。
    收集信息不是无法感知,而是不容易感知,对文件 IO 监测,流量监测,也能发现点蛛丝马迹。
    肉身翻墙太难了,希望你说的不是走线哈哈。
    lhx888
        21
    lhx888  
    OP
       306 天前
    @dawei211 您说的对,国产的一些软件,有些不得不用,比如大厂的即时通讯和移动支付,google play 有我就安 play 版的,没有就 shelter 沙盒里运行。 信任边界窄 真的是害人也害已,因为在乎的人需要付出一些成本,才能放弃或使用到那些软件的功能。
    ysc3839
        22
    ysc3839  
       306 天前 via Android   ❤️ 1
    当然有可能,没记错的话 npm 的源是没有额外校验途径的,服务器返回啥就是啥。
    lhx888
        23
    lhx888  
    OP
       306 天前
    @magicdawn 那也许会有,之前不是坐实什么讯公司的游戏会扫 firefox 的访问历史记录吗。新闻可以搜到的。 这不是很离谱的行为吗?一个游戏为什么想知道我访问了哪些网站。。。 。。。 后来闹大了,x 讯公司的解释是反外挂。。。 。。。真的无法相信它的解释
    lhx888
        24
    lhx888  
    OP
       306 天前
    @ysc3839 如果 npm 不会主动校验,那开梯子好了。信任没有绝对,只能选择相信相对可信的。
    SP00F
        25
    SP00F  
       306 天前
    资安是啥?????
    上 NPM 的包还有投毒呢
    otakustay
        26
    otakustay  
       306 天前   ❤️ 1
    npm 只会在 lock 文件中留第一次安装时的镜像对应的 hash ,后续切换镜像安装 hash 对不上会失败。但如果第一次就是淘宝源(极端假设它是不可信的),那么你本的存的 hash 就是错的,无法发现安全问题
    bthulu
        27
    bthulu  
       306 天前
    @lhx888 没用的. 校对用到的 md5 数据, 也是存在淘宝源里的. 如果包都给你改了, 难道会傻到不去改一下 md5 数据么?
    uni
        28
    uni  
       306 天前
    我也担心 pip 或者 npm 的包直接把我小狐狸存私钥的文件给上传了。。。
    yunyuyuan
        29
    yunyuyuan  
       306 天前
    好像 package-lock.json 就是干这事的吧。实在不放心,就在首次开发的时候挂代理用 npmjs.org 的源下载依赖并保存 lock 文件,后续换别的源如果 sha 对不上,npm i 会报错的,就能发现是源有问题
    lyhiving
        30
    lyhiving  
       306 天前
    这个问题你看下腾讯的会不会用淘宝源就知道了呀
    estk
        31
    estk  
       306 天前 via iPhone
    反正我是不敢用过没源,坑多
    placeholder
        32
    placeholder  
       306 天前
    既然担心那就别换,直接设置 npm 的 proxy 不就好了。

    你需要下的 npm 包那么多,你如何保证 npm 里下的包就一定不会夹带私货呢?
    CLMan
        33
    CLMan  
       306 天前   ❤️ 8
    所以前面一大堆回复都没人查官方文档吗,还是周末大佬不是加班就出去玩了,v2 的平均技术在我眼中断崖式下跌。。。

    楼主考虑的是代理 /镜像导致的中间人攻击问题,npm 使用的是类似 debian 之类的软件包签名来解决的:

    Signing and verifying published packages protects against an attacker controlling a registry mirror or proxy where they attempt to intercept and tamper with the package tarball content.

    链接:
    https://docs.npmjs.com/about-registry-signatures
    https://docs.npmjs.com/verifying-registry-signatures

    要了解实现细节,比如默认是否验证签名,验证签名失败会怎么样(会不会依然允许安装,会不会被用户忽视),是否存在例外情况等等,需要读 npm 的源码,反正是开源的。
    Mooon
        34
    Mooon  
       306 天前
    有两种说法,分别是:

    除了敌人就是朋友

    除了朋友都是敌人

    很显然信息安全里面我们应该遵循后者

    然后怎么判断是敌人还是朋友,这就很简单了

    只要有任何不可信任的背景,那就不能当做朋友

    既然不是朋友,那么就只能是敌人
    woshipanghu
        35
    woshipanghu  
       306 天前
    免费提供的一个便利的产品 竟然还要揣测别人不坏好意 你的心真的坏
    harrozze
        36
    harrozze  
       306 天前
    @totoro52 #14 改完以后也可以重新生成 md5 ,因为 md5 也是从镜像站拿来的。。。
    Mooon
        37
    Mooon  
       306 天前
    @woshipanghu

    你不去百度公关部门上班真是可惜了

    「李彦宏给你免费用搜索引擎,你还揣测别人偷你隐私,你的心真坏」
    lhx888
        38
    lhx888  
    OP
       306 天前
    @woshipanghu 你的逻辑 1:免费的就一定是好心的,所以不需要质疑。逻辑 2:免费的就不可以质疑,质疑就是坏。。。 。。。
    leonshaw
        39
    leonshaw  
       306 天前
    @CLMan 想起了那篇 Reflections on Trusting Trust
    br9852000
        40
    br9852000  
       306 天前
    国内产品都不可靠都有问题,最好中文能不用就不用。殖人,还是应润尽润吧!待着国内太不安全了。
    Ricciardo
        41
    Ricciardo  
       306 天前
    @wudicgi 大陆北方网友
    CLMan
        42
    CLMan  
       306 天前   ❤️ 1
    @lhx888 粗略的看了一下,npm 注册表镜像的安全性是远远不如 debian 镜像仓库:

    - npm 使用 `npm audit`进行包的签名检查,使用私钥签名,公钥检查,但似乎没使用证书体系(有待确认)
    - npm 注册表允许私有签名(有待确认),但镜像默认不提供公钥,所以审查失败
    - 执行`npm install`会触发`npm audit`,但是审查错误信息会被静默掉(只有在日志级别为 verbose 显示),不影响安装流程,直接执行`npm audit`会正常显示审查错误信息
    - npmmirrors 官方推荐全局安装`cnpm`替代`npm`
    Yadomin
        43
    Yadomin  
       306 天前
    说到这个,pypi 前两天把 pgp 签名支持去了,理由是没人用🤣
    https://blog.pypi.org/posts/2023-05-23-removing-pgp/
    Cu635
        44
    Cu635  
       306 天前
    @xmumiffy #13
    这是哪家?

    @totoro52 #14
    你应该说“xxx 镜像都是校对 md5/sha1/xxxxxx”的,因为有些就是没有校对机制。
    scxiazi
        45
    scxiazi  
       306 天前   ❤️ 1
    你好 会的. 阿里的 maven 仓库就把 maven 的几个插件给夹带私货了, 每次编译的时候都输出阿里云的广告
    Yadomin
        46
    Yadomin  
       306 天前   ❤️ 1
    有一说一被 npm 上乱七八糟的库害的概率比被 npmmirror 害的概率大多了,后者没有现成的案例,而前者的案例一抓一大把,比如著名的 node-ipc 时间
    scxiazi
        47
    scxiazi  
       306 天前   ❤️ 4
    shijingshijing
        48
    shijingshijing  
       306 天前
    资安不一定是弯弯用的,很多国内的开发人员,特别是做硬件相关的,经常和弯弯工程师讨论,连打字都是用的繁体,一时切换不过来也正常。不过楼主回复中多次用到您,嘿嘿,感觉暴露了。
    dfkjgklfdjg
        49
    dfkjgklfdjg  
       306 天前
    @lhx888 #20 ,可以通过你发起的请求来进行数据分析,这个你是无法感知的。通过客户端的后门实在太低级了,而且太容易暴雷了。肉身翻墙很容易,只要你有够钱也过了语言关,有大把的机会移民出去。走线?走线是正常人会考虑的方式吗?

    我上面也提到了,如果觉得淘宝镜像有问题,就找到一个你认为靠谱的镜像源,然后有条件的话就多赞助。这才是实实在在的。
    提出问题、解决问题,而不是光抱怨,减少没有必要的顾虑,生活更加乐观一点。
    Stoney
        50
    Stoney  
       306 天前 via iPhone
    @SP00F 资讯安全
    Al0rid4l
        51
    Al0rid4l  
       305 天前
    这年头用您也是弯弯了...不禁想起了名侦探沈逸: 有点意思

    SP00F
        52
    SP00F  
       305 天前
    @Stoney #50 资讯安全是第一次听说……

    如果要使用到开源库就无法避免安全问题的,没有模仿投毒也有官方投毒,官方不投毒,也有夹杂私货的。

    用起来自己觉得 OK 或者本身公司就有安全部门审计就不用太过担心。
    FozillaMox
        53
    FozillaMox  
       305 天前
    实在太过奇妙深刻,再挂。

    alfchin
        54
    alfchin  
       305 天前 via Android
    @dfkjgklfdjg 不要把黑客想得太简单。最近几年供应链攻击已经出现了多起,并且影响了很多大厂
    gitjavascript
        55
    gitjavascript  
       305 天前
    你这么一说,官网的也有问题啊
    albert0yyyy
        56
    albert0yyyy  
       305 天前
    @woshipanghu 不是,这肯定是反串黑。。。不会真有人认真反驳吧
    houshuu
        57
    houshuu  
       305 天前
    当然有这个风险,只是淘宝毕竟体量大,相当于信用背书了。
    大部分大厂都有自己的内部 npm 源,在导入到内部源的时候会运行代码安全性检查。
    程序员自己的话跟着公司政策走就行。
    harrozze
        58
    harrozze  
       305 天前
    还不放心的话,你可以找台国外的服务器自己做源,或者做代理
    3144838718
        59
    3144838718  
       305 天前
    你一说安全我就想笑。
    woshipanghu
        60
    woshipanghu  
       305 天前
    @lhx888 当然可以质疑 你这不是质疑 你是直接泼脏水了
    woshipanghu
        61
    woshipanghu  
       305 天前
    @Mooon 百度免费 你可真是大聪明
    a632079
        62
    a632079  
       305 天前
    我记得现在的 pnpm ,yarn 都是校验 sha256 的。npm 默认的行为不知道是不是 sha256 ,但就算不是,也有基于 sha1 ,md5 的包校验。
    楼主可以观察下 package-lock.json yarn.lock pnpm-lock.yaml 里面的结构。

    当然,包这没有 GPG 签名啥的,所以中央源可以通过一些手段修改包的一些信息,比如说替代一个版本~
    对于这种情况,可能只有楼主写一个工具脚本,定期针对你的 lockfile 做校验=,=
    wdssmq
        63
    wdssmq  
       305 天前
    只能说概率上,npm 包本身带料的可能性都大于淘宝搬运时加东西 - -
    phithon
        64
    phithon  
       305 天前   ❤️ 1
    台湾人用大陆的镜像,是有一定风险的
    Mooon
        65
    Mooon  
       305 天前
    @woshipanghu

    来,你来教育一下大家,普通搜索业务,百度什么时候不是免费了

    条理清晰地说清楚,我发 1000 块钱红包给你

    说不明白,你给大家发 100 块钱红包

    这么简单的事情,应该五分钟就说的清楚吧

    五分钟赚 1000 块钱,换算一下应该怎么都不会比你平均时新低吧

    ——————————————————

    另外也也欢迎有朋友可以作为第三方的见证人参与进来,我可以先把赌注的 1000 块钱转过去
    bianhui
        66
    bianhui  
       304 天前
    台湾没有镜像源?
    siuis
        67
    siuis  
       304 天前
    会,淘宝会修改他们镜像里的包的代码。以前用他们 Maven 仓库的时候发现过。
    siuis
        68
    siuis  
       304 天前
    @dfkjgklfdjg 阿里那群蠢货夹带私活不是一次两次的事情了,之前 Ant-Design 圣诞节彩蛋就被喷过,阿里 Maven 仓库提供的 maven-compiler-plugin 也被修改代码夹带了阿里的广告。
    lhx888
        69
    lhx888  
    OP
       304 天前
    @Mooon 不必回应 @woshipanghu ,如果他同意自己的观点,这样的奇人我等只有参观与猎奇的份,思维不在一个维度上不需要反驳。如果他不认同自己的观点,仍然维护它,就是有目的的。他的方法就是抛出谬论附带人身攻击,把讨论环境搅和的乌烟瘴气。非蠢即坏,何必搭理。再一个我想起一句话:“看头像,知成份”
    Mooon
        70
    Mooon  
       304 天前
    @lhx888 谢谢朋友开导
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   956 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 20:41 · PVG 04:41 · LAX 13:41 · JFK 16:41
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.