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: 一点阴谋论, 有没有其它信息发给微信了?

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 来快速止血。

这个有用

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

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

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

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

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

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

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

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

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

#4 防杠:不是原始 token

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

#17

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

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

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

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

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

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

楼主先把事实情况捋清再发表观点吧…别嘴硬了…但凡有点背景常识并且读完了上面那篇博客都不会这么杠,不够建议补充阅读:

docs.github.com/en/developers/overview/secret-scanning-partner-program

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

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

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

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

GitHub 给你发的邮件你看吗?难道要一有 token 就给你 private ?行业这么干了至少也小十年了,你觉得他们没想到?

阿里云 token 放到 github 上面本来就很邪

你能枚举到 token 不正说明 token 被破解了,不安全了吗,正好需要通知微信和用户更换新的 token

邮件当然是每天都看的。
接口出现信息泄露,临时设置为不可访问不是正常操作吗?

我举的这个例子不能算是 token 被破解。因为攻击者只是放了个字典,由 GitHub 完成请求的提交,攻击者看不到回显的结果。但是有可能造成实际的破坏。就好像随机砸死一位幸运观众 🐶

建议 OP 马上放弃 Github! 建议 OP 马上放弃 Github! 建议 OP 马上放弃 Github!
讨论完毕

个人失误导致人人都可以获取到的 token ,为什么那么介意某个人或者某个组织获取到?关注点是不是有点儿偏差?
人家 github 这种做法所付出的成本实际是为用户个人的失误买单,尽量减少个人失误可能导致的个人及所在组织和服务的损失?好心没好报?

人家文档里说的很清楚啊,你们在这里吵什么?


Secret scanning 在 GitHub.com 上以两种形式提供:

1 。 在所有公共存储库上自动运行。 与机密扫描合作伙伴提供的模式匹配的任何字符串都将直接报告给相关合作伙伴。
2 。 使用具有 GitHub Advanced Security 许可证的 GitHub Enterprise Cloud 的组织可以为组织拥有的仓库启用和配置额外扫描。与机密扫描合作伙伴、其他服务提供商或你的组织定义的模式匹配的任何字符串都会在存储库的“安全”选项卡中报告为警报。 如果公共存储库中的字符串与合作伙伴模式匹配,则也会向合作伙伴报告该字符串。


1 、联系 GitHub 以启动流程。
2 、识别要扫描的相关密码,并创建正则表达式来捕获它们。
3 、针对在公共仓库中发现的密码匹配项,创建一个密码警报服务,以便从 GitHub 接受包含 secret scanning 消息有效负载的 web 挂钩。
4 、在密码警报服务中实施签名验证。
5 、在密码警报服务中实施密码撤销和用户通知。
6 、提供误报的反馈(可选)。

阿里和腾讯的 token 检测估计也是这种方式, Github 怎么可能直接推送, 它又不知道你的 Token 是否正确, 阴谋论都是 sb.

github 其实是给自己节约资源,因为一直以来各大云厂商都是用类似 api.github.com/events 直接获取所有推送上去的 commit 信息(
这样 github 压力很大的,所以自然要专门给 token 扫描提供第一方的支持

小龙哥有很多值得喷的地方,但 op 看到微信就逮着无脑骂有点不可取哦

这有什么好阴谋论的?都泄露到 github 了不就已经公开了吗,发给微信提醒一下 token 主人挺好的呀

几年前有个同事把代码放到 github ,后来阿里云就短信通知技术负责人 AccessKey 泄露了,虽然那个账户权限不大。
不知道是 github 通知阿里云的还是阿里云自己扫的。
这些配置有固定名称、格式,很容易检索和匹配。

你这不是为了喷而喷吗?

微信是原罪拉

说明你不懂 token ,你要是能枚举到一个合法 token ,建议你不要薅微信,直接对着银行来

v2 什么地方,只要和中国沾上关系那就是原罪。

搞不懂楼主的逻辑。

  1. 代码里的 key 不存在需要模糊检索对应用户的可能性,有就是有没有就是没有。
  2. 微信的 key 想要撞出来是比较难的,微信开发团队没那么傻逼。
  3. 要是幸运的撞出来了,那你扔到 public 本身也就是泄露,不存在误伤,因为确实有恶意用户专门盯着 public 扫然后尝试利用,扫描范围自然也包括你上传的那个 public 项目。

初一看 不明所以,看了原文,不觉得问题,GitHub 会将泄漏的 token 发送给腾讯微信,腾讯微信会通知 token 所有者 token 泄漏

腾讯微信现成为 GitHub 扫密合作伙伴
2022 年 12 月 19 日
GitHub 秘密扫描通过在存储库中搜索已知类型的秘密来保护用户。通过识别和标记这些秘密,我们的扫描有助于防止数据泄露和欺诈。

我们与腾讯微信合作,扫描他们的令牌,并使用 GitHub Advanced Security 帮助保护我们共同用户在所有公共存储库和私有存储库上的安全。腾讯微信令牌允许用户验证微信公众号和小程序开发者,获取有关业务应用程序的敏感信息,并可用于验证商家身份。

GitHub 会将在公共存储库中找到的访问令牌转发给腾讯微信,后者将通知受影响的用户。腾讯微信鼓励用户删除 GitHub 上泄露的 API token ,并在微信支付商户平台或微信公众平台创建新的 token 。有关腾讯微信令牌的更多信息,请参见此处

来自 GitHub 的警告

将提交推送到 GitHub 后,应将提交中的所有敏感数据视为泄露。 如果你提交了密码,请更改密码! 如果您提交了密> 钥,请生成新密钥。 删除泄露的数据并不能解决其初始暴露问题,尤其是在仓库的现有克隆或复刻中。

op 是程序员吗 这开源项目里的 token 每天不知道多少爬虫在爬 就算不区分是不是微信的全塞给微信又有什么问题?你都放在开源 repo 里了 早被爬干净了。

怀疑是在骗我的铜币

正常操作,之前不小心把阿里的 token 放到 npm 里面去了,第二天就收到阿里的邮件提醒了

绝了,token 怎么枚举你告诉我?你是不是对 n 的 m 次方的大小有误解?

打了好长一串,算了,全删了。

你叫不醒一个装睡的人,这根本就不是一个技术问题

😅这个问题的错不在腾讯,也不在 Github 。
在有些人为了强行尬黑开始连伪装 Token 这种 P 话都说出来了。
Token 的构造算法能被你枚举出来的话你还在搁这跟 V 友吹牛逼呢?

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

全文中心思想

很多人觉得在 v2 提到或者吐槽微信等国内产品或者企业的时候,以为会引起共鸣,但作为偏技术的 v2 论坛,不是每一次都有效的,明显 OP 就是一次明显的翻车

不具有讨论意义。

公开的库,GitHub 不扫,腾讯自己扫能不能达到目的?

盲猜 OP 是第一次知道 Github 和各厂商之间有这种合作,然后又看到了合作厂商是微信,于是决定批判一番

真就乱喷了 问之前多了解下

OP 你得先分清 repo 用户不一定是最终用户,只通知给 repo 用户没有意义,repo 用户主动上传的它很少会不知道?

这 OP 像个小丑一个

笑死我了

公开 repo ,官方提供,无论对于 github 还是厂商还是应用者来说都是大好事一件

咋在 OP 眼里就是“总有刁民想害朕” 呢

这不是好事吗?可以帮助及时止损。op 怕不是魔怔了吧?

如果 csdn 也有这个功能就好了

OP 可能之前没有了解过这方面的技术。事实上 GitHub 很早就有这样的技术了,比如你把 RSA 私钥推上去,它会警告再警告;如果发现你的私钥刚好是某家提供商的有效证书,比如你在 FreeSSL 上签一张放上去就会触发吊销。

op 赶紧注销 GitHub 帐号吧,丢人。

不管是不是破解,这种情况 token 都应该被换掉

请仔细读题

GitHub will forward access tokens found in public repositories to Tencent WeChat, who will notify affected users. Tencent WeChat encourages users to delete leaked API tokens on GitHub and to create a new token on the WeChat Pay Merchant Platform or WeChat Official Accounts Platform. More information about Tencent WeChat tokens can be found here.

in public repositories 是指的公共项目的 tokens 。这个和 docker 里面的漏洞扫描+hook 差不多。只是这次不是自己手动 hook 了,而是 github 扫描完公共项目,直接把 token 给 tx 过目一遍。不管你有没有 hook 。

至于 github 有没有扫描私有项目,这点不好说。github 有前科,copilot 就拿你们的 github 上的私有项目做训练的。微软买了 github 后,它变得越来越“商”气,还和 ZC 挂钩,会封号。

此文也被转载到 hn 了,那边讨论气氛也差不多
news.ycombinator.com/item?id=34063390

hn 的讨论气氛和这里可不一样,嘿嘿。我提到的几个观点在那边也有人提出来,人家的回复和思考理性多了。

hn 上面还提到了一些我没有想到的观点,比如 Github 会不会扫瞄私有仓库,然后这些合作厂商是不是能故意传任意的正则来窃取不属于它的 token ,甚至还有说去扫描比特币种子的,大开眼界了。

HZ 你上了那么久外网还不知道国外逢中必反,只是因为沾了微信就是原罪,之前 github 和跟其他厂商合作的时候怎么没见一堆人出来闹?
docs.github.com/en/code-security/secret-scanning/secret-scanning-patterns#supported-secrets-for-user-alerts

Hacker news 还说什么扫描私有仓库,真的笑话,涉密不上网,上网不涉密,敢传到网上就要有这种觉悟。

不相信不爱用就别用,整天搞这些阴谋论被别人戳穿了还死鸭子嘴硬。

你这叫越菜越...

上面大家都很用心和你解释了。你还没有意思到自己的问题,这大概就是你的问题。

「 hn 的讨论气氛和这里可不一样,嘿嘿。我提到的几个观点在那边也有人提出来,人家的回复和思考理性多了。」

「理性」,哈哈哈哈

感觉 op 跑偏了[dog]

已 block 楼主。(由于 V2EX 的 block 功能是单向屏蔽。可能你会回复我的其他评论或帖子,而我看不到。为了节约你的时间,建议互相 block 。谢谢)

#77
会不会窃取不属于它的 token:当 token 出现在公共库的时候意味着它已经泄露了,很可能已经被一直在扫描互联网资产的黑产获取到了,这时候你需要的是尽快得知密钥已泄露并更换新密钥,而不是关心它是否被微信或者其他的合作伙伴获取到,更不是掩耳盗铃把仓库设为私有

会不会扫瞄私有仓库、比特币:且不说 token 也不应该出现在私有库。退一步说,你就是想在私有库存储 token ,那你就应该相信 github 啊。如果你不相信 github ,那你为什么要违反安全规范在上面存储 token ?自己创造风险,然后又来质疑风险,这很无厘头

v2ex 上程序员真的越来越少了

GitHub 的做法一点问题都没有,不爽就从 GitHub 删库走人好了。

长的差不多看错那是人会出现的问题,不是计算机会出现的问题

OP 的技术水平诚然对这件事的看法理解有偏差,但你们真的愿意看到腾讯参与到和国际主流公司的安全合作中吗?洼国的局域网公司本身就是为当局服务的间谍软件,是安全威胁本身

之前不小心把阿里云的密钥传到 GitHub 了,然后过了几个月阿里云通知才知道

没具体看怎么实现的 我自己想了一下一个可能的工作流:

  1. github 检测所有公开的项目并把查到的 token 广播给所有合作方
  2. 合作方收到后不给 github 任何反馈,系统内排查到相同 token 直接在系统内部直接通知 token 主人
    这样做不用管 token 到底是哪一家的,也不用担心有人利用这个机制撞库。