加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

旧树开新花:再谈GitHub监控

发布时间:2019-03-26 03:49:16 所属栏目:建站 来源:皮一下的彦修
导读:本文不涉及常见的基于代码要害字匹配的 GitHub 监控。而是从 GitHub 的账户出发,通过人的相关来得到一些代码搜刮不具有的上风。 疑云乍现 题目要从一个明朗而又娇媚的下战书提及,我喝着娃哈哈,看着自以为天下上最优雅的代码,然而当我上传到 GitHub 私有

本文不涉及常见的基于代码要害字匹配的 GitHub 监控。而是从 GitHub 的账户出发,通过人的相关来得到一些代码搜刮不具有的上风。

疑云乍现

题目要从一个明朗而又娇媚的下战书提及,我喝着娃哈哈,看着自以为天下上最优雅的代码,然而当我上传到 GitHub 私有客栈的时辰,嘴角的一抹笑意逗留在 10 秒 24 毫秒前的阳光下,由于我发明上传表现的用户并非是我,换句话说,commit 页面并未表现我帅气的头像,我的职业第二敏感性汇报我,这个工作有点蹊跷:

a.这小我私人是谁?

b.我的呆板被挟制了?

c.我的账户被黑了?

d.GitHub 出题目了?

e.某些未知缘故起因?

a 题目是较量好答复的,点进去发明是一个很是正常的用户,我总不至于被黑了,不可,职业尊严让我逼迫解除了这个选项,可是我较量体谅的一个题目是 ta 是不是能看到我的代码?ta 会不会由于云云优雅的代码而感想自愧不如?以是随后出于对他情绪的思量先清空了本身的代码。

对付b,改换了多台呆板,发明如故具有沟通的题目,同样出于职业尊严,我的呆板不行能都被黑了,以是题目武断不在b。

随后又细细过滤了最近的 GitHub 登录记录,c的也许性也被解除了;再问周围的童鞋,d的题目也被解除了。

今朝只剩下e缘故起因,可是这句话着实相等于没有说,由于统统未知都能归结到未知。

刨根问底

题目在这已经陷入了死胡同,简朴描写下就是:由于某些未知缘故起因,我的 GitHub 的提交人酿成了未知的或人,并且在换了多台呆板之后,题目依然一再。一样平常碰着这种环境,我的风俗都是从新梳理整个流程,从全局说明也许存在题目的环节。当务之急是必要从头梳理下全部的流程,然后不绝实行,那么题目来了,从编写代码到下载 Git 并行使 Git 提交到 GitHub 的流程是什么呢?

Git 起首必要下载到当地,下载当地的时辰必要行使 HTTP 协议,HTTP 协议是基于 TCP 的,说到 TCP,那么就要相识三次握手…….

半小时后……

看着 16 位微处理赏罚器芯片 8086 微处理赏罚器总线接口部门(BIU) 和执行部件(EU)常识的我……感受再深挖下去预计要开始进修二氧化硅的化学回响了,呵,常识啊。

只好另辟门路,找了一个认识 Git 的强力外助,我们先实行了……然后实行了……接着又实行了……终于工夫不负有意人,找到了最后的症结地址。不是存心跳过这段,其实是这个进程乏善可陈。

总之看下边重点了:

这个题目激发的基础缘故起因是行使某刊行版源客栈安装的 Git 默认内置了一个邮箱和用户名,然后 GitHub 在上传的时辰辨认用户是默认通过 Git 中设置的邮箱来辨认,倘若用户邮箱存在(在 GitHub 注册可能挂号)则表现匹配到的用户名,不然会表现 Git 设置中的用户名,验证之后发明这个邮箱不必然是注册邮箱,而是在配置里添加的都可以关联到,也就是方才提到的挂号邮箱,纵然你没有验证邮箱的归属权限,如下图:

旧树开新花:再谈GitHub监控

并且尤其较量诡异的是行使 Git config user.name 和 Git config user.email 这两个呼吁查察均表现为空,就像这个呼吁从未执行一样,可是在行使 Git log 的时辰才会真正表现提交本次 commit 的用户名和邮箱,也就是该刊行版 Git 内置的缺省账户和邮箱。

拨云见日

上边说了那么多,那么这个对象有什么用呢?我一向承袭一个概念:安详老是跟场景相干的,以是要想知道这个有什么危害,,起首必要做的就是假想一些可操作的场景。

在这里最根基的操作方法是可以伪造别人去提交接码,可是这个对我们来说着实并没有什么太大的用处。精确来说,更多有一种开顽笑的味道。

那有没有什么其他的场景是较量有效的,着实在写这篇文章之前,我照旧较量踌躇的,众所周知,GitHub 有许多用户提交了一些较量敏感的对象,而作者是不想在实际中被发明的,可是上述提到这个接口,可以通过批量爆破邮箱从而得到对应的用户名。那么也有也许得到了那些不肯意果真本身身份用户的接洽方法。

扯的有点远了,照旧回归到标题傍边 GitHub 监控的题目,当前 GitHub 监控一向是基于代码搜刮中的要害字匹配,真的是谁用谁知道——那是相等的难用。以是今朝许多人也是在爬虫和更好的过滤上下工夫。可是这个流程尚有一个盲点存在,就是在发明违规上传的第一时刻并不能出格精确的定位到详细的小我私人。

说完传统监控的缺陷同时,我们着实也找到了新的操作场景,由于入职信息挂号城市写到本身的常用邮箱(还没有入职,以是根基填写本身私家常用邮箱),那么可以通过这个接口来得到对应的用户账户,换句话说,安详团队根基就有了部门员工注册的 GitHub 账户,这个时辰违规上传公司代码的监控是不是可以做一些分级打点,重点监控。并且更重要的一点,这也办理了发明题目简朴、定位职员坚苦的题目。

至于操纵进程,就相等简朴了,新建一个项目,然后行使剧本修改本身用户邮箱举办 commit,在这里我以修改本身的邮箱为例:

旧树开新花:再谈GitHub监控

之后 push 到 GitHub 上去,最后在 GitHub 上就可以看到绑定了对应邮箱的用户,如下图(项目地点:https://github.com/daysdaysup/TSRC_TEST):

旧树开新花:再谈GitHub监控

至于剩下的就不消再多说了。套用一句较量风行的打油诗:懂的天然懂,刀剑侠客梦,事了拂袖去,深藏身与名。

最后出格叩谢我的师兄吴恒,感激他在撰写本文时提供的辅佐。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读