GitHub關鍵字掃描開源工具推薦
前言
網路上多次爆出的GitHub洩露企業敏感資訊事件,說明企業安全中GitHub關鍵字掃描是很關鍵及重要的安全基礎建設,我用了一些事件針對不同型別的GitHub掃描開源產品作了一些測試調研,與君分享。
一、GitHub搜尋介面
github給出了在程式碼找中搜索關鍵字的API,並且定義預設只搜尋主分支程式碼,也就是master這個分支,只有小於384KB的檔案才能被搜尋。
在官方舉例中:
https://api.github.com/search/code?q=addClass+in:file+language:js+repo:jquery/jquery
q 表示為關鍵字;
in:file 表示為在檔案中搜索(在檔案目錄中則是in:path,);
language 表示語言為JavaScript;
repo 表示為在jquery/jquery儲存庫中搜索;
更多搜尋語法可以前往官網檢視 ofollow,noindex" target="_blank">https://github.com/search/advanced 。
API還提供了搜尋結果展示的功能,在請求的時候帶上請求頭:
curl-H'Accept:application/vnd.github.v3.text-match+json'\https://api.github.com/search/code?q=addClass+in:file+language:js+repo:jquery/jquery
示例:但是這個功能只顯示匹配到的關鍵字和行數,對於實際應用作用不大:
二、開源工具介紹
網路上有很多GitHub掃描的開源工具,我的需求是:及時告警、掃描全面、視覺化展示,經過一些測試對比後,推薦兩款部署方便、配置簡單的工具:
GSIL( https://github.com/FeeiCN/GSIL )
Hawkeye( https://github.com/0xbug/Hawkeye )
2.1 GSIL介紹
原理:
登入配置:採用token( https://github.com/settings/tokens ),使用PyGithub庫。
進行API呼叫( http://pygithub.github.io/PyGithub/v1/introduction.html )。
搜尋範圍:預設搜尋前200個專案,最大5000(github限制)。
過程:通過API(/search/code)搜尋規則檔案rules.gsil中提交的關鍵字,然後分析得到的json結果,預設展示前30個相關專案。
掃描配置:在配置檔案中會過濾一些作者認為無用的路徑,可以根據實際情況遮蔽一些:
結果展示:該款工具沒有頁面展示,通過郵件告警,匹配存在關鍵詞的行及其上下3行用於郵件傳送來排查(使用者體驗較好)。
去重掃描:工具記錄掃描過程中產生的相關程式碼內容、檔案hash,在~目錄下建立了一個隱藏資料夾.gsil。掃描引擎中如果檔案的hash是之前遇到過的,則跳過:
週期掃描:可通過crontab配置,每小時執行一次:
@hourly /usr/bin/python /root/gsil/gsil.py 規則名稱
2.2 Hawkeye介紹
掃描原理前面已經簡單介紹過了,Hawkeye由於擁有圖形化介面,因此可以和GSIL搭配使用,我通常將GSIL掃描出來的賬號,作為重點關注物件,配置更加詳細的策略來監測。
三、總結
GitHub關鍵字掃描還有很多其他的開源工具,比如比較輕量級的gitpprey( https://github.com/repoog/GitPrey ),還有小米研發的X-patrol( https://github.com/MiSecurity/x-patrol ),從安裝環境要求、配置功能實現、部署難易程度入手,就能找到一款適合企業環境的開源掃描工具。再加上一些二次開發的話,基本可以保障一些觸及關鍵字的GitHub資訊洩露能被及時的發現與刪除。
感謝閱讀,歡迎指導。
*本文作者:胡說,轉載請註明來自FreeBuf.COM