最新消息:图 床

舊樹開新花——再談 GitHub 監控

COOL IAM 338浏览 0评论

作者:[Tencent Blade Team] 彥修
公眾號:騰訊安全應急響應中心

本文不涉及常見的基於代碼關鍵字匹配的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配置中的用戶名,驗證之後發現這個郵箱不一定是註冊郵箱,而是在設置里添加的都可以關聯到,也就是剛剛提到的登記郵箱,即使你沒有驗證郵箱的歸屬權限,如下圖。

转载请注明:IAMCOOL » 舊樹開新花——再談 GitHub 監控

0 0 vote
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x