3

GitHub 和微信合作。。。脱裤子放屁

 1 year ago
source link: https://www.v2ex.com/t/903703
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

V2EX  ›  程序员

GitHub 和微信合作。。。脱裤子放屁

  superrichman · 1 小时 16 分钟前 · 2055 次点击

https://github.blog/changelog/2022-12-19-tencent-wechat-is-now-a-github-secret-scanning-partner/

GitHub will forward access tokens found in public repositories to Tencent WeChat, who will notify affected users.

Github 扫瞄项目中泄漏的 token ,然后发给微信,然后微信再通知用户???这是什么中间商赚差价的操作? Github 你 tm 就不能直接通知用户?

PS: 一点阴谋论, 有没有其它信息发给微信了?

38 条回复    2022-12-20 13:55:14 +08:00
messense

messense      1 小时 13 分钟前

> We have partnered with Tencent WeChat to scan for their tokens and help secure our mutual users on all public repositories and private repositories with GitHub Advanced Security.

有点断章取义了吧,GitHub 会把泄露的微信相关的 token 发给微信,除了通知用户,微信还可以主动停用这些 token 来快速止血。
eason1874

eason1874      1 小时 12 分钟前

这个有用

只通知 Github 用户不够的,比如我是你的开发商,我把你的微信 Token 泄露到 Github 上面,Github 只通知用户的话就只通知到我,我怎么处理就要看我的良心了。要是跟微信合作,直接通知 Token 对应微信管理员,就是通知到你,那靠谱多了
superrichman

superrichman      1 小时 10 分钟前 via Android

@eason1874 github 怎么保证这个 token 就是微信的? 如果是其它系统的 token 碰巧长得和微信差不多,它也发给微信,这根本没有道理。
janus77

janus77      1 小时 9 分钟前

万一用户没看到就没用了
发给微信主要是微信第一时间停用这个 token ,这样就强行掐断了风险源头
superrichman

superrichman      1 小时 8 分钟前 via Android

@messense 如何我别的系统的非微信 token 也发给微信,这数据如何保证安全? 集中收集一堆 token 送给微信,你说它不会滥用我是不信的
Ultraman

Ultraman      1 小时 6 分钟前 via Android

GitHub 把扫到的意思腾讯的 token hash 一下发给腾讯不得了
@superrichman
eason1874

eason1874      1 小时 6 分钟前   ❤️ 3

@superrichman 不止判断 token ,也看代码特征啊,有微信接口代码,有 openid 和 token ,就可以发给微信,让微信确认是否有效

至于安全问题,你逻辑搞错了,你都 github 把 token 公开了,全世界都知道了,你还介意微信知道 😂
docx

docx      1 小时 5 分钟前 via iPhone

我觉得是微信先把 Token 给 GitHub ,Github 扫描到了匹配值,给微信返回结果。肯定是要一样才通知,这种还能撞到相同的概率太低了。

至于为什么不是 GitHub 直接通知用户:如果是别人的仓库呢?如果你在 GitHub 没有账号呢?
docx

docx      1 小时 4 分钟前 via iPhone

@docx #4 防杠:不是原始 token
superrichman

superrichman      1 小时 3 分钟前 via Android

@janus77 还有,我用代码故意枚举一堆类似微信 token 的字符串,它扫描发给微信,万一碰到哪个倒霉蛋的 token 正好被我枚举碰撞到了,那他生产的 token 可能也要挂掉
HomeboyC

HomeboyC      1 小时 1 分钟前

这个特性很多厂商都有和 GitHub 合作啊,又不止微信。
swulling

swulling      1 小时 0 分钟前

wechat 只是合作商之一。这个的意思是

github 会把所有公开库里的 token 都提取出来,一股脑发给各个合作商。各个合作商收到后,进行比对,看是不是自己家的,如果是,那么就通知对应的用户。

至于你说的 Token 发给 wechat 有没有安全问题,库已经公开了,已经不知道被多少黑阔扫到了,公开信息发给微信没有任何问题。

其实很多公司都有类似的策略,比如我司也会自己去扫描 github 上的所有公开库有没有泄漏的 token 。但是和 github 合作的话,github 进行增量推送,应该能提高这个扫描的实效性。
superrichman

superrichman      1 小时 0 分钟前 via Android

@eason1874 我介意的是把提取出来的结果送给微信这点不合理。没法保证 token 是微信的,而且没法保证 token 不被滥用
zxCoder

zxCoder      57 分钟前

那要喷也得喷 github 啊,微信这波算躺枪嘛
janus77

janus77      52 分钟前

@superrichman #10 为什么要 github 去判断?正常情况下应该是,github 和微信合作,既然有合作,自然不是直接检测字符串之类的,还记得 copilot 吗?首先他肯定会结合代码特征进行初步筛选,而且是否包含 token 这也不是一遍扫描就完事,应该是把初步筛选得到的代码段交给微信来判断,github 不应该有权判断 token 真伪的。等微信判断结果出来以后他自己会进行相应处理,比如临时停用什么的
zhaorunze

zhaorunze      49 分钟前

@superrichman 枚举的想跟生产的撞上,你搜搜看你要多少次枚举
dzdh

dzdh      49 分钟前

@superrichman

1. token 是基于公开的 repo 而公开的, 私有 repo 不会参与进来
2. 不发送,微信也可以扫项目拿到(当然任何人都能拿到)
3. 主动推送的确是官方行为,我相信你介意的是这一点
4. 你枚举的类似微信 token 的字符串,倒霉蛋就不能用了,是的,的确,但是同样的,你居然能真的枚举到合法且真实有效的 token ,那顺手 block 掉岂不是更好?你拯救了一个项目于危难。
5. token 扫描用脚趾头想也不可能是单纯的 egreg wx(\w+),肯定是有上下文的上下文代码中有 https:wx.qq.com 或者有 openid&secret 等字样才会触发。
mooyo

mooyo      48 分钟前

公开信息你介意发给微信合不合理是什么意思?微信想要他自己不能扫了么。
ylqhust

ylqhust      48 分钟前

@superrichman
1. token 都是很长的随机字符串,能碰到的概率微乎其微,你能碰到不如去买彩票。
2.微信给 github 的接口,怎么到你这就想调用就调用了?你想发啥就发啥是吧。那你还走 github 干啥,直接把微信开发者后台黑了得了。
Kangtai

Kangtai      45 分钟前   ❤️ 9

@dzdh ta 介意的是推给国内厂商吧,推给 Google 、Amazon ,应该就不会叫了
lovedoing

lovedoing      43 分钟前

国内的大厂基本都会扫 github 公开仓库代码的
superrichman

superrichman      42 分钟前 via Android

@janus77 我直接伪造配置文件代码,生成一堆文件,每个文件枚举一个 token ,copilot 能分辨的出?

假设我有个阿里云的 token ,长得和微信的类似,这个 token 发给微信到底是否合适?如何保证我的阿里云 token 不会被微信恶意使用?
superrichman

superrichman      41 分钟前 via Android

@Kangtai 一样的,不论是国内还是国外,这种集中收集敏感信息的行为,无论是推给哪个厂商都是很危险的。
hidemyself

hidemyself      37 分钟前

@superrichman #21 你有一个阿里云的 token ,长得和微信类似,你怎么知道你的这个 token 不会被其他机构扫出来使用?
janus77

janus77      35 分钟前

@superrichman #22 第一个问题,用你的“发给用户”这个方案同样存在这个问题。而且这种情况基本上不需要考虑,就好像我发了一个方案你觉得不好,列举出一两个极端例子就为了证明这个方案不好,然后你就把整个方案废弃了?
第二个问题,copilot 能识别是阿里云还是微信。况且我说了,copilot 只是一个举例,而且他也只是初步识别,你所谓的各种伪装、迷惑方案真的会出现很多吗?即使出现了,又真的能骗过 github 所持有的一整套 AI 技术吗?(再次强调,copilot 只是一个举例,背后是一整套 AI 技术)
alexkuang

alexkuang      33 分钟前 via iPhone

@superrichman 自己去算算概率,你要是能随随便便枚举出碰撞的 token 那黑客也能,那黑客干嘛还盯着泄漏的密钥直接自己一个一个枚举不就完了。
github 的做法很标准,早就在和其他国外各种 api provider 这样合作了,没有任何问题。只有微信知道泄露的 token 属于谁,所以交给微信去通知。
learningman

learningman      33 分钟前 via Android

@superrichman
1.哪来的 copilot?
2.是分辨不出,但是影响啥了?大概率压根不存在这个 token 。
3.你 token 都传到 public 仓库了,现在全世界都知道了,还介意阿里云还是微信知道?

你现在生成个 scope 为空的 github token 传到个 public 仓库,马上就有一堆 saas 厂商给你发警告邮件,不信就按我说的复现下。
dethan

dethan      33 分钟前 via Android

@Kangtai #20 有些人永远觉得自己是对的,错了也是对的。死鸭子嘛,嘴硬,脸皮比真相重要~
superrichman

superrichman      32 分钟前

@dzdh
#17
3. 是的,它推送的内容,后续会被如何使用是未知的
5. 找个正常的项目配置文件伪造整个配制文件就行了,一个文件一个 token ,弄一堆零散的文件出来。就比如生产配置和测试配置通常是类似的内容,只是里面的一些配置不一样。批量生成一堆配置
janus77

janus77      31 分钟前

@superrichman #22 其实说白了,这个合作只是一个松散的合作,不是是什么严谨的商业产品,只是为了安全性的一点点提高而已,竟遭到你如此的抵触?就算我识别不出来,不发就是了,我发我能识别的不行吗?你所想象的各种伪装、迷惑手段,有多少人会闲的蛋疼去干这事?
superrichman

superrichman      31 分钟前

@hidemyself 不能保证,但是,我的观点是 github 不应该主动把这些信息发出去。
8675bc86

8675bc86      27 分钟前

这 OP 笨死了,github 早就有这个功能了,这是加入了新的 partner ,这是非常牛逼好用的功能,别动不动就阴谋论。
superrichman

superrichman      25 分钟前

@alexkuang 密钥一般会有监测防护机制,比如一个 ip 尝试了多少次不同的密钥都失败了,就屏蔽这个 ip ,所以这种枚举的成本很大。但是,对这种内部主动扫瞄一般是不会限制,这里的枚举攻击是有可能的。
jamosLi

jamosLi      25 分钟前

@superrichman 存在安全隐患的东西为什么不能推出去?那要怎么办?扔着不管,最后来个大的? csdn 上海阿里云?什么奴性思维。
jamosLi

jamosLi      22 分钟前

@8675bc86 是的 阿里云早就有了,之前公司有人把项目传 github 忘记删 token ,阿里云直接就短信阿里云账户管理员了。
eason1874

eason1874      21 分钟前

@superrichman #13 最简单的 secret 都有字母和数字组成的 32 个字符。你觉得可以办到,那你就去试试呗 😂

当你的 secret 发布在 github 公开库的时候就已经泄露了,github 再发给微信是试图止损,不是泄露。这么简单的逻辑都不能理解的话,我建议你以后不要碰网络安全这部分内容,全部交给同事
superrichman

superrichman      3 分钟前

@jamosLi #34 Github 可以直接通知用户,同时把仓库设置为 private 。

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK