新聞中心
Git是一個(gè)開(kāi)源的分布式軟件版本控制系統(tǒng),用于敏捷高效地處理任何或小或大的系統(tǒng)開(kāi)發(fā)項(xiàng)目。Git 存儲(chǔ)庫(kù)看上去就是一個(gè)文件夾,不過(guò),在這個(gè)文件夾中不僅僅保存了所有應(yīng)用系統(tǒng)的當(dāng)前版本,也同時(shí)保存了所有的歷史記錄。Git存儲(chǔ)庫(kù)的開(kāi)放性和便利性使其經(jīng)常面臨人為錯(cuò)誤的影響,企業(yè)每天在公共Git存儲(chǔ)庫(kù)上泄露數(shù)以千計(jì)的重要代碼信息,包括數(shù)據(jù)庫(kù)密碼、郵箱賬號(hào)、管理URL等隱私信息等,造成了巨大損失。隨著人們對(duì)這個(gè)問(wèn)題的認(rèn)識(shí)不斷加深,一些新的安全工具和技術(shù)也不斷涌現(xiàn),以在整個(gè)軟件開(kāi)發(fā)生命周期(SDLC)中提供針對(duì)性的安全保護(hù)。

什么是Git秘密掃描(secret scanning)?
代碼隱私信息泄露的危害性不容忽視。無(wú)論是錯(cuò)誤放置的密鑰,或是意外泄露的數(shù)據(jù)庫(kù)密碼都可能會(huì)轉(zhuǎn)化為即時(shí)危機(jī),帶來(lái)沉重的經(jīng)濟(jì)損失。Git秘密掃描是從攻擊者的角度出發(fā),提前對(duì)需要上傳至Git存儲(chǔ)庫(kù)的代碼數(shù)據(jù)進(jìn)行掃描或周期性的掃描,防止敏感信息泄露,并及時(shí)刪除暴露的信息。Git秘密掃描有兩種模式,每種模式都涵蓋“持續(xù)集成”(Continuous Integration,簡(jiǎn)稱(chēng)CI)/“持續(xù)交付”(Continuous Delivery,簡(jiǎn)稱(chēng)CD)管道的不同階段。
? 第一種模式側(cè)重于預(yù)防
第一種模式試圖從一開(kāi)始就防止秘密泄露,這種Git秘密掃描模式通過(guò)集成到CI/CD管道中并實(shí)時(shí)監(jiān)控開(kāi)發(fā)人員的操作,攔截包含秘密的意外代碼提交,阻止其公開(kāi)暴露。
? 第二種模式側(cè)重于及時(shí)檢測(cè)
第二種模式則嘗試檢測(cè)可能已經(jīng)暴露的秘密。惡意行為者一直在使用Git掃描技術(shù),試圖從公共和配置錯(cuò)誤的Git存儲(chǔ)庫(kù)中提取秘密,并將其用于惡意活動(dòng)中。如果沒(méi)有像惡意攻擊者所用的這般強(qiáng)大的掃描工具,企業(yè)可能根本不知道自己的秘密已被泄露。此外,還需要注意的是,秘密檢測(cè)是一個(gè)不斷發(fā)展的過(guò)程,必須定期更新。
Top 9秘密掃描解決方案
沒(méi)人愿意淪為Git秘密泄露的受害者,以下列舉了9款Git秘密掃描解決方案,幫助企業(yè)在軟件開(kāi)發(fā)生命周期(SDLC)的早期引入安全性,目標(biāo)是讓參與SDLC的每個(gè)人來(lái)開(kāi)發(fā)更安全的應(yīng)用程序。
1、gitLeaks
gitLeaks是在MIT許可下發(fā)布的開(kāi)源靜態(tài)分析命令行工具,主要用于檢測(cè)本地和GitHub存儲(chǔ)庫(kù)(私有和公共)中的硬編碼秘密,如密碼、API密鑰和令牌。
gitLeaks利用正則表達(dá)式(Regular expressions)和熵字符串編碼(entropy string coding),根據(jù)自定義規(guī)則檢測(cè)秘密,并以JSON、SARIF或CSV格式導(dǎo)出報(bào)告。
- 優(yōu)點(diǎn):gitLeaks是一個(gè)開(kāi)源項(xiàng)目,由50多位貢獻(xiàn)者積極開(kāi)發(fā)所得,可免費(fèi)使用。值得一提的是,gitLeaks還包含大多數(shù)開(kāi)源項(xiàng)目中沒(méi)有的集成、審計(jì)和克隆功能。
- 缺點(diǎn):由于缺乏用戶(hù)界面且只有有限的集成選項(xiàng),gitLeaks比較適合安全專(zhuān)業(yè)人士、研究人員或?qū)I(yè)開(kāi)發(fā)項(xiàng)目。
2、SpectralOps
Spectral是較全面的秘密掃描解決方案,涵蓋從集成到構(gòu)建過(guò)程的各個(gè)方面。無(wú)論是靜態(tài)構(gòu)建、預(yù)提交到Git還是CI集成,Spectral都能提供簡(jiǎn)單的集成選項(xiàng)。
有趣的是Spectral能夠掃描Git存儲(chǔ)庫(kù),不僅可以?huà)呙璐a中的配置問(wèn)題和秘密,還可以?huà)呙璐a庫(kù)中的日志、二進(jìn)制文件和其他容易忽略的潛在泄漏源。
- 優(yōu)點(diǎn):Spectral使用直觀的用戶(hù)界面,使其更易于訪(fǎng)問(wèn)并適合企業(yè)管理。Spectral秘密掃描技術(shù)所運(yùn)用的AI和機(jī)器學(xué)習(xí)算法,可確保隨著系統(tǒng)處理數(shù)據(jù)量的不斷增加,檢測(cè)率也能不斷提高,并不斷降低誤報(bào)率。
- 缺點(diǎn):Spectral不太適合小型項(xiàng)目或單個(gè)開(kāi)發(fā)人員,它專(zhuān)為在大型代碼庫(kù)上進(jìn)行協(xié)作的開(kāi)發(fā)團(tuán)隊(duì)而設(shè)計(jì)。
3、 Git-Secrets
Git-secrets是一種開(kāi)發(fā)安全工具,可防止用戶(hù)在Git存儲(chǔ)庫(kù)中包含機(jī)密和其他敏感信息。它會(huì)掃描提交代碼和說(shuō)明,當(dāng)與用戶(hù)預(yù)先配置的禁止表達(dá)式模式匹配,就會(huì)阻止提交。
- 優(yōu)點(diǎn):Git-Secrets可以集成到CI/CD管道中以實(shí)時(shí)監(jiān)控提交信息。
- 缺點(diǎn):Git-secrets使用相當(dāng)簡(jiǎn)單的檢測(cè)算法,主要為“正則表達(dá)式”(regular expression),這通常會(huì)導(dǎo)致許多誤報(bào)。而且,該項(xiàng)目不再定期維護(hù),可能不適合在專(zhuān)業(yè)開(kāi)發(fā)環(huán)境中使用。
4、 Whispers
Whispers是一種開(kāi)源靜態(tài)代碼分析工具,旨在搜索硬編碼憑據(jù)和危險(xiǎn)函數(shù)。它可以作為命令行工具運(yùn)行或集成到CI/CD管道中。該工具旨在解析結(jié)構(gòu)化文本,例如YAML、JSON、XML、npmrc、.pypirc、.htpasswd、.properties、pip.conf、conf/ini、Dockerfile、Shell腳本和Python3以及聲明指定的Javascript、Java、GO、PHP格式。
- 優(yōu)點(diǎn):Whispers開(kāi)箱即用,支持多種秘密檢測(cè)格式,包括密碼、AWS密鑰、API令牌、敏感文件、危險(xiǎn)函數(shù)等。此外,Whispers還包括一個(gè)插件系統(tǒng),可用于將其掃描功能進(jìn)一步擴(kuò)展到新的文件格式。
- 缺點(diǎn):Whispers旨在配合其他秘密掃描解決方案,不對(duì)實(shí)際代碼執(zhí)行深度掃描,其掃描規(guī)則也只是基于正則表達(dá)式、Base64和Ascii檢測(cè)的有限組合。
5、 GitHub秘密掃描(Secret scanning)
當(dāng)使用GitHub作為企業(yè)的公共存儲(chǔ)庫(kù)時(shí),GitHub會(huì)提供自己的集成秘密掃描解決方案,以檢測(cè)流行的API密鑰和令牌結(jié)構(gòu)。如果想要掃描私有存儲(chǔ)庫(kù),企業(yè)需要獲得高級(jí)安全許可證。用戶(hù)可以通過(guò)提供“正則表達(dá)式”公式來(lái)擴(kuò)展檢測(cè)算法,以檢測(cè)自定義秘密字符串結(jié)構(gòu)。
- 優(yōu)點(diǎn):使用GitHub可以更輕松地進(jìn)行可視化掃描、配置和集成。該服務(wù)包含對(duì)許多網(wǎng)絡(luò)流行服務(wù)廣泛API密鑰和令牌字符串結(jié)構(gòu)的支持,為任何安全評(píng)估提供堅(jiān)實(shí)的基礎(chǔ)。
- 缺點(diǎn):目前,針對(duì)私有存儲(chǔ)庫(kù)的秘密掃描正處于測(cè)試階段。整個(gè)服務(wù)的關(guān)注點(diǎn)非常狹窄,主要針對(duì)已知的字符串結(jié)構(gòu),例如API密鑰和令牌,而忽略其他秘密,例如數(shù)據(jù)庫(kù)密碼、電子郵件地址、管理URL等。
6、 Gittyleaks
Gittyleaks是一個(gè)簡(jiǎn)單的Git秘密掃描命令行工具,能夠掃描和克隆存儲(chǔ)庫(kù)。它試圖發(fā)現(xiàn)不應(yīng)包含在代碼或配置文件中的用戶(hù)名、密碼和電子郵件。
- 優(yōu)點(diǎn):Gittyleaks是一款簡(jiǎn)單的工具,可用于快速掃描存儲(chǔ)庫(kù)以查找明顯的秘密。它比較簡(jiǎn)潔,不需要其他解決方案那樣進(jìn)行更復(fù)雜的配置。
- 缺點(diǎn):鑒于其簡(jiǎn)單性和固定規(guī)則,Gittyleaks最適合作為介紹性工具,以幫助用戶(hù)了解代碼中的秘密。但是,它缺乏商業(yè)開(kāi)發(fā)團(tuán)隊(duì)所需的強(qiáng)大功能和靈活性。
7、 Scan
Scan是一個(gè)全面的開(kāi)源安全審計(jì)工具。它可以與Azure、BitBucket、GitHub、GitLab、Jenkins、TeamCity等流行存儲(chǔ)庫(kù)和管道集成。此外,Scan還支持廣泛的流行框架和語(yǔ)言,能夠集成到CI/CD管道中以提供實(shí)時(shí)保護(hù),并提供廣泛的報(bào)告功能。
- 優(yōu)點(diǎn):由于其良好的開(kāi)源性質(zhì),Scan可能是企業(yè)可以免費(fèi)獲得的最強(qiáng)大、最靈活的DevSecOps工具之一。
- 缺點(diǎn):雖然Scan確實(shí)強(qiáng)大且靈活,但其并不友好的用戶(hù)界面和復(fù)雜設(shè)置,使得只有少數(shù)安全專(zhuān)家才能真正使用Scan并從中受益。
8、 Git-all-secrets
Git-all-secrets是一個(gè)開(kāi)源的秘密掃描器集成項(xiàng)目。該工具目前依賴(lài)于兩個(gè)開(kāi)源秘密掃描項(xiàng)目,即truffleHog和repo-supervisor——這兩個(gè)項(xiàng)目使用“正則表達(dá)式”和高熵(high entropy)算法進(jìn)行秘密檢測(cè)。Git-all-secrets匯總了兩個(gè)掃描器的組合結(jié)果,以呈現(xiàn)更全面的視圖。
- 優(yōu)點(diǎn):Git-all-secrets引入了一個(gè)有趣的概念,它試圖通過(guò)不依賴(lài)單一算法的方式來(lái)增強(qiáng)秘密掃描結(jié)果。
- 缺點(diǎn):雖然使用了一種新穎的方法,但Git-all-secrets底層掃描仍然依賴(lài)于基本算法,并且目前已經(jīng)沒(méi)有人再積極維護(hù)該項(xiàng)目了。該工具提供了更多的概念驗(yàn)證(proof-of-concept,PoC),將來(lái)可能會(huì)被其他項(xiàng)目利用。
9、 Detect-secrets
Detect-secrets是一個(gè)積極維護(hù)的開(kāi)源項(xiàng)目,專(zhuān)為企業(yè)客戶(hù)設(shè)計(jì)。它的創(chuàng)建初衷是防止新的秘密進(jìn)入代碼庫(kù),檢測(cè)預(yù)防措施是否存在缺陷,并提供一份秘密清單以在安全存儲(chǔ)中進(jìn)行維護(hù)。Detect-secrets的工作原理是定期比較“正則表達(dá)式”語(yǔ)句,以識(shí)別可能已提交的新秘密。
- 優(yōu)點(diǎn):Detect-secrets的掃描方法避免了掃描整個(gè)git歷史文件,以及每次都需要掃描整個(gè)存儲(chǔ)庫(kù)的繁復(fù)任務(wù)。而且,它的插件支持也非常好,目前有18個(gè)不同的插件可用,涵蓋AWS密鑰、熵字符串、Base64編碼、Azure密鑰等等。
- 缺點(diǎn):如果秘密被分成多行或不包含足夠的熵,則Detect-secrets可能無(wú)法實(shí)時(shí)檢測(cè)到它們。
小結(jié)
很明顯,積極掃描Git存儲(chǔ)庫(kù)和開(kāi)發(fā)人員提交文件以防止機(jī)密泄露,應(yīng)該成為每個(gè)公司軟件開(kāi)發(fā)管道的強(qiáng)制性部分。每天,都會(huì)上演惡意行為者竊取個(gè)人身份信息和私人知識(shí)產(chǎn)權(quán)的戲碼。而這些通常是由于缺乏代碼安全實(shí)踐或僅僅由于人為錯(cuò)誤造成。企業(yè)用戶(hù)可以通過(guò)使用直接集成到CI/CD管道中的秘密掃描技術(shù),對(duì)與這些項(xiàng)目相關(guān)的Git存儲(chǔ)庫(kù)進(jìn)行主動(dòng)秘密掃描來(lái)緩解其中的許多問(wèn)題。
原文鏈接:
https://blog.checkpoint.com/2022/03/18/top-9-git-secret-scanning-tools-for-devsecops/。
分享題目:從攻擊視角看代碼隱私安全,九款Git秘密掃描工具盤(pán)點(diǎn)
標(biāo)題路徑:http://m.fisionsoft.com.cn/article/ccsespe.html


咨詢(xún)
建站咨詢(xún)
