成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

舊樹開新花:再談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 配置中的用戶名,驗證之后發現這個郵箱不一定是注冊郵箱,而是在設置里添加的都可以關聯到,也就是剛剛提到的登記郵箱,即使你沒有驗證郵箱的歸屬權限,如下圖:

  而且尤其比較詭異的是使用 Git config user.name 和 Git config user.email 這兩個命令查看均顯示為空,就像這個命令從未執行一樣,但是在使用 Git log 的時候才會真正顯示提交本次 commit 的用戶名和郵箱,也就是該發行版 Git 內置的缺省賬戶和郵箱。

  撥云見日

  上邊說了那么多,那么這個東西有什么用呢?我一直秉承一個觀點:安全總是跟場景相關的,所以要想知道這個有什么危害,首先需要做的就是設想一些可利用的場景。

  在這里最基本的利用方式是可以偽造別人去提交代碼,但是這個對我們來說其實并沒有什么太大的用處。準確來說,更多有一種惡作劇的味道。

  那有沒有什么其他的場景是比較有用的,其實在寫這篇文章之前,我還是比較猶豫的,眾所周知,GitHub 有很多用戶提交了一些比較敏感的東西,而作者是不想在現實中被發現的,但是上述提到這個接口,可以通過批量爆破郵箱從而獲得對應的用戶名。那么也有可能獲得了那些不愿意公開自己身份用戶的聯系方式。

  扯的有點遠了,還是回歸到題目當中 GitHub 監控的問題,當前 GitHub 監控一直是基于代碼搜索中的關鍵字匹配,真的是誰用誰知道——那是相當的難用。所以目前很多人也是在爬蟲和更好的過濾上下功夫。但是這個流程還有一個盲點存在,就是在發現違規上傳的***時間并不能特別準確的定位到具體的個人。

  說完傳統監控的缺陷同時,我們其實也找到了新的利用場景,因為入職信息登記都會寫到自己的常用郵箱(還沒有入職,所以基本填寫自己私人常用郵箱),那么可以通過這個接口來獲得對應的用戶賬戶,換句話說,安全團隊基本就有了部分員工注冊的 GitHub 賬戶,這個時候違規上傳公司代碼的監控是不是可以做一些分級管理,重點監控。而且更重要的一點,這也解決了發現問題簡單、定位人員困難的問題。

  至于操作過程,就相當簡單了,新建一個項目,然后使用腳本修改自己用戶郵箱進行 commit,在這里我以修改自己的郵箱為例:

  之后 push 到 GitHub 上去,***在 GitHub 上就可以看到綁定了對應郵箱的用戶,如下圖(項目地址:https://github.com/daysdaysup/TSRC_TEST):

  至于剩下的就不用再多說了。套用一句比較流行的打油詩:懂的自然懂,刀劍俠客夢,事了拂衣去,深藏身與名。

  ***特別致謝我的師兄吳恒,感謝他在撰寫本文時提供的幫助。

責任編輯:張燕妮 來源: freebuf
相關推薦

2013-10-22 09:37:14

網絡配置管理網絡性能監控

2020-01-21 22:23:18

代碼開發AI

2017-08-25 09:22:18

miui小米MIUI

2015-06-10 10:35:51

2025-06-23 08:57:00

2013-04-18 17:07:36

2022-05-09 08:01:23

countdistinctMySQL

2012-11-20 16:23:19

飛輪UPS數據中心電源

2014-03-19 10:03:56

2010-06-18 23:01:16

IT管理安防產業H3C

2010-06-21 21:35:28

運維管理安防行業H3C

2012-02-27 09:30:22

JavaScript

2009-11-04 11:51:08

技術領袖

2021-07-31 23:09:42

GPU內存帶寬

2013-07-21 04:11:12

PythonRubyPHP

2021-08-13 15:03:04

GitHub代碼開發

2019-12-04 10:15:10

GitHub代碼開發者

2013-01-22 11:22:02

聯想Yoga

2009-05-13 20:12:15

殺毒設計師H1N1

2011-07-07 10:40:18

Enyokindscomponents
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩av一区在线观看 | 欧美日韩在线电影 | 国产精品综合一区二区 | 色婷婷国产精品 | 午夜视频一区二区三区 | 岛国av一区二区 | 久热精品在线观看视频 | 在线看免费 | 国产一级电影在线观看 | 涩爱av一区二区三区 | 黄色一级视频免费 | 久久av一区二区三区 | 国产精品黄视频 | 九九热在线视频 | 欧美中文字幕一区二区 | 日日干夜夜草 | 国产日韩精品一区 | 国产一区在线免费观看视频 | 一级毛片在线看 | 91精品一区二区三区久久久久久 | 超碰一区二区 | 在线视频三区 | 91久操视频 | 天堂色 | 国产精品成av人在线视午夜片 | xxx.在线观看 | 欧美v日韩v| 国产一区二区中文字幕 | 成人性视频免费网站 | 精品国产99| 国产欧美日韩一区二区三区在线 | 国产精品1区2区3区 国产在线观看一区 | 中文字幕 国产精品 | 欧美中文字幕在线观看 | 国产激情视频 | 免费在线观看一区二区 | 精品欧美乱码久久久久久 | 亚洲精品国产成人 | 欧美一区二区成人 | 欧美一级片在线 | 欧州一区二区 |