压在透明的玻璃上c-国产精品国产一级A片精品免费-国产精品视频网-成人黄网站18秘 免费看|www.tcsft.com

軟件敏感信息檢測工具對(duì)比分析

一. 引言

隨著軟件開發(fā)的日益復(fù)雜,敏感信息(如API密鑰和訪問令牌)的安全性變得尤為重要。如圖1.1,根據(jù)GitGuardian的監(jiān)測數(shù)據(jù),2023年GitHub存儲(chǔ)庫中的密鑰暴露數(shù)量較2022年增長了28%,累計(jì)泄漏超過1280萬個(gè)身份驗(yàn)證和敏感密鑰。這一問題不僅威脅到軟件的安全性,還可能導(dǎo)致嚴(yán)重的安全漏洞和經(jīng)濟(jì)損失。例如,2022年9月,一名攻擊者通過利用Uber公司PowerShell腳本中硬編碼的管理員憑證,成功接管了該公司的內(nèi)部工具和應(yīng)用程序。

圖1.1 2020年至2023年 Github 密鑰泄漏數(shù)量

為了應(yīng)對(duì)這一問題,市場上出現(xiàn)了許多開源和專有的敏感信息檢測工具,如Gitleaks和SpectralOps等。然而,這些工具在實(shí)際使用中存在許多問題,其中最為突出的是高誤報(bào)率。誤報(bào)率過高不僅增加了開發(fā)人員的工作負(fù)擔(dān),還可能導(dǎo)致警報(bào)疲勞,使得開發(fā)人員忽視真正的安全威脅。

本文介紹《軟件敏感信息檢測工具比較研究》的相關(guān)工作,作者通過對(duì)5個(gè)開源和4個(gè)專有密鑰檢測工具進(jìn)行的實(shí)證研究,詳細(xì)分析了這些工具在精度和召回率方面的表現(xiàn),揭示了誤報(bào)和漏報(bào)的主要原因。

二. 敏感信息識(shí)別的工具比較

2.1 基準(zhǔn)數(shù)據(jù)集

評(píng)估軟件敏感信息檢測工具選擇SecretBench作為基準(zhǔn)數(shù)據(jù)集。SecretBench是一個(gè)公開可用的軟件敏感信息基準(zhǔn)數(shù)據(jù)集,通過Google Cloud Storage和Google BigQuery訪問。該數(shù)據(jù)集包含從Google BigQuery公共GitHub數(shù)據(jù)集中提取的818個(gè)公共GitHub存儲(chǔ)庫,使用了761種正則表達(dá)式模式來識(shí)別不同類型的敏感信息,總計(jì)97479個(gè)被標(biāo)記為真或假,其中15084個(gè)是真實(shí)的密鑰。如圖2.1,密鑰被手動(dòng)分類為八個(gè)類別,前三個(gè)類別分別是私鑰、API密鑰和認(rèn)證密鑰。

圖2.1 SecretBench中的8種密鑰類型

此外,數(shù)據(jù)集覆蓋了49種編程語言和311種文件類型,并提供了詳細(xì)的敏感元數(shù)據(jù),如存儲(chǔ)庫名稱、文件路徑和提交ID。如圖2.2,不同文件類型中敏感數(shù)據(jù)的最多是txt文件、toml配置文件、js文件、html文件與pem文件。

圖2.2 Top 5的敏感文件類型

2.2 測試的敏感信息識(shí)別工具

根據(jù)可訪問性、掃描能力、活躍度、標(biāo)記精度和報(bào)告格式五個(gè)標(biāo)準(zhǔn)選擇了9個(gè)工具(5個(gè)開源工具和4個(gè)專有工具)進(jìn)行敏感信息識(shí)別比較。

2.2.1 5個(gè)開源識(shí)別工具

git-secrets是由AWS-Labs開發(fā)的開源工具,旨在防止將敏感信息提交到Git存儲(chǔ)庫中。工具通過掃描整個(gè)Git歷史,檢測并輸出存儲(chǔ)庫中的敏感信息。

Gitleaks是一個(gè)用Go編寫的開源工具,主要用于檢測Git存儲(chǔ)庫中的敏感信息。通過使用詳細(xì)模式掃描存儲(chǔ)庫,以檢索匹配敏感信息的元數(shù)據(jù),最后將檢測到的結(jié)果輸出為JSON文件,便于后續(xù)分析。

Repo-supervisor是一個(gè)用JavaScript編寫的開源工具,支持通過webhooks掃描GitHub拉取請(qǐng)求,以及從命令行掃描本地存儲(chǔ)庫目錄。該工具在命令行模式下運(yùn)行,掃描本地存儲(chǔ)庫并將結(jié)果輸出為JSON文件。

TruffleHog是由Truffle Security開發(fā)的開源工具,用于檢測Git存儲(chǔ)庫中的高熵字符串和正則表達(dá)式匹配的敏感信息信息。通過啟用了正則表達(dá)式和熵計(jì)算標(biāo)志來掃描存儲(chǔ)庫,最后將檢測結(jié)果輸出為JSON文件,以便進(jìn)一步分析。

Whispers是一個(gè)用Python編寫的開源工具,支持YAML和XML等結(jié)構(gòu)化文本解析格式。工具將源代碼解析為鍵值對(duì),并檢測硬編碼的敏感信息。通過使用whispers命令掃描存儲(chǔ)庫,將結(jié)果輸出為JSON文件。

2.2.2 4個(gè)專有識(shí)別工具

Commercial X是一個(gè)專有工具,能夠掃描GitHub存儲(chǔ)庫中的敏感信息,還可以檢測圖像和不可搜索的PDF中的敏感信息。工具支持與Slack、JIRA和Google Drive集成。作者聯(lián)系了供應(yīng)商團(tuán)隊(duì),提供了基準(zhǔn)存儲(chǔ)庫的快照,并接收了掃描報(bào)告。最后將報(bào)告中的敏感信息和元數(shù)據(jù)被解析并輸出為CSV文件。

ggshield由GitGuardian開發(fā),是一個(gè)依賴GitGuardian公共API的開源工具。通過使用詳細(xì)模式掃描每個(gè)存儲(chǔ)庫,并將檢測到的敏感信息輸出為JSON文件。

GitHub Secret Scanner是GitHub集成的掃描工具。通過在每個(gè)存儲(chǔ)庫中啟用了“Secret Scanner”設(shè)置,工具自動(dòng)掃描并在“Security/Secret scanning alerts”選項(xiàng)卡下顯示檢測到的結(jié)果,利用Python腳本通過GitHub Rest API提取每個(gè)存儲(chǔ)庫的敏感信息,并輸出為CSV文件。

SpectralOps是一個(gè)專有工具,提供了開發(fā)者、安全和審計(jì)三種掃描模式。工具使用“安全”模式掃描存儲(chǔ)庫,以獲得更好的精度和召回率。同樣的,將敏感信息的詳細(xì)元數(shù)據(jù)與對(duì)應(yīng)掃描結(jié)果輸出為JSON文件。

2.3 工具對(duì)比實(shí)驗(yàn)與結(jié)果

實(shí)驗(yàn)中敏感元數(shù)據(jù)包括Commit ID、文件路徑、行號(hào)和純文本,這些信息能夠識(shí)別出工具檢測到的具體敏感信息的位置及其上下文。標(biāo)準(zhǔn)化文件路徑和純文本敏感信息有助于提高不同工具報(bào)告之間的比較精度。

如圖2.3,不同工具的檢測結(jié)果不同,為了準(zhǔn)確評(píng)估敏感信息檢測工具的性能,通過Jaro-Winkler相似度和Gestalt模式匹配算法,計(jì)算工具報(bào)告的敏感信息與基準(zhǔn)數(shù)據(jù)集敏感信息的相似度,設(shè)定相應(yīng)的相似度閾值,確保高效準(zhǔn)確地匹配。

圖2.3 3種不同工具對(duì)于相同敏感信息的不同輸出結(jié)果

通過對(duì)九種工具的實(shí)驗(yàn)比較,評(píng)估其在檢測敏感信息方面的精度、召回率和F1得分。如圖2.4所示,GitHub Secret Scanner在精度方面表現(xiàn)最佳(75%),但其召回率較低(6%),表明它漏掉了許多敏感信息。Gitleaks在兩種召回率情況下均表現(xiàn)出色(情況1:86%,情況2:88%),并且在精度方面也表現(xiàn)良好(46%)。此外,TruffleHog在召回率方面表現(xiàn)良好,但精度較低(6%)。總的來說,沒有一個(gè)工具同時(shí)具有高精度和高召回率,這表明目前的工具在檢測敏感信息方面仍存在不足。使用機(jī)器學(xué)習(xí)技術(shù)的工具(如Commercial X和SpectralOps)在減少誤報(bào)方面的表現(xiàn)并不理想,分別只有25%和1%的精度。

圖2.4 9種工具的準(zhǔn)確率、召回率、F1得分、掃描時(shí)間結(jié)果

作者對(duì)敏感信息檢測工具的誤報(bào)和漏報(bào)進(jìn)行了詳細(xì)分析,發(fā)現(xiàn)工具使用通用正則表達(dá)式、無效的熵計(jì)算是誤報(bào)的主要原因。另一方面,錯(cuò)誤的正則表達(dá)式、跳過特定文件類型和規(guī)則集不足是漏報(bào)的主要原因。

三. 總結(jié)

本文評(píng)估了九種敏感信息檢測工具在檢測代碼庫中的敏感信息方面的性能。通過對(duì)五個(gè)開源工具和四個(gè)專有工具的比較得出,GitHub Secret Scanner在精度方面表現(xiàn)最佳,而Gitleaks在召回率方面表現(xiàn)突出。當(dāng)然,不同工具在檢測敏感信息方面各有優(yōu)劣,開發(fā)人員應(yīng)根據(jù)具體需求選擇合適的工具。例如,GitHub Secret Scanner盡管精度高,但召回率較低,表明其可能漏掉許多敏感信息。相反,Gitleaks在召回率和精度之間表現(xiàn)較為平衡,是一個(gè)值得推薦的工具。開發(fā)人員在選擇和使用檢測工具時(shí),應(yīng)根據(jù)項(xiàng)目中的具體需求和敏感信息類型,綜合考慮工具的精度、召回率和功能。通過合理選擇和配置這些工具,可以有效地保護(hù)代碼庫中的敏感信息,增強(qiáng)軟件開發(fā)過程中的安全性和可靠性。

參考文獻(xiàn)

[1] https://www.gitguardian.com/files/the-state-of-secrets-sprawl-report-2024

內(nèi)容編輯:創(chuàng)新研究院 楊雙鎮(zhèn)

責(zé)任編輯:創(chuàng)新研究院 陳佛忠

本公眾號(hào)原創(chuàng)文章僅代表作者觀點(diǎn),不代表綠盟科技立場。所有原創(chuàng)內(nèi)容版權(quán)均屬綠盟科技研究通訊。未經(jīng)授權(quán),嚴(yán)禁任何媒體以及微信公眾號(hào)復(fù)制、轉(zhuǎn)載、摘編或以其他方式使用,轉(zhuǎn)載須注明來自綠盟科技研究通訊并附上本文鏈接。

來源:綠盟科技研究通訊

上一篇:日本銀行聯(lián)盟著手實(shí)施分布式數(shù)字身份

下一篇:勒索軟件入侵兒童醫(yī)院系統(tǒng),黑客聲稱竊取600GB數(shù)據(jù)