Common Crawl是一個(gè)包含400TB壓縮網(wǎng)絡(luò)數(shù)據(jù)的龐大數(shù)據(jù)集,其內(nèi)容來自3830萬個(gè)注冊(cè)域名和4750萬臺(tái)主機(jī)。數(shù)據(jù)以WARC(Web ARCive)文件格式存儲(chǔ),每個(gè)WARC文件包含多個(gè)記錄,記錄了客戶端請(qǐng)求、服務(wù)器響應(yīng)及相關(guān)元數(shù)據(jù)。
以下是WARC記錄的一個(gè)示例:

為了處理如此龐大的數(shù)據(jù)集,我們使用了20臺(tái)高性能服務(wù)器(每臺(tái)16核CPU和32GB內(nèi)存),構(gòu)建了一個(gè)分布式作業(yè)隊(duì)列。每個(gè)節(jié)點(diǎn)的處理步驟如下:
awk解壓縮并拆分WARC記錄。我們嘗試構(gòu)建自定義的WARC文件處理程序,但發(fā)現(xiàn)直接流式處理WARC文件效率較低。最終,我們選擇通過awk分割文件后再掃描,顯著提高了處理速度。
在研究中,我們僅統(tǒng)計(jì)了通過自動(dòng)驗(yàn)證過程確認(rèn)有效的API密鑰和密碼。這些“活著”的秘密能夠成功通過各自服務(wù)的身份驗(yàn)證,而未驗(yàn)證的類似字符串則未被納入統(tǒng)計(jì)范圍。

需要注意的是,LLM在訓(xùn)練過程中無法區(qū)分有效和無效的秘密,這可能導(dǎo)致不安全的編碼實(shí)踐被強(qiáng)化。
我們的研究表明,LLM在Common Crawl數(shù)據(jù)集中暴露了數(shù)百萬個(gè)包含硬編碼秘密的代碼示例。這些暴露可能會(huì)影響LLM的輸出安全性,尤其是在模型訓(xùn)練時(shí)未能有效過濾這些數(shù)據(jù)的情況下。
為了減少風(fēng)險(xiǎn),我們建議:
Common Crawl的數(shù)據(jù)集是公共互聯(lián)網(wǎng)的快照,記錄了開發(fā)者將密鑰硬編碼到前端HTML和JavaScript中的情況。需要明確的是,這并非Common Crawl的責(zé)任,而是開發(fā)者未能妥善管理敏感信息所致。
作為一項(xiàng)政策,當(dāng)Truffle Security發(fā)現(xiàn)泄露的秘密時(shí),我們會(huì)盡力幫助受影響的組織撤銷密鑰。在此次研究中,我們選擇與用戶受影響最大的供應(yīng)商合作,成功撤銷了數(shù)千個(gè)密鑰。
我們發(fā)現(xiàn)一個(gè)AWS根密鑰被硬編碼在前端HTML中,雖然S3基本身份驗(yàn)證未生效,但這一暴露本不應(yīng)存在。

我們還發(fā)現(xiàn)了近1500個(gè)獨(dú)特的Mailchimp API密鑰被硬編碼在HTML表單和JavaScript代碼中,而非使用服務(wù)器端環(huán)境變量。這種做法可能導(dǎo)致攻擊者利用這些密鑰進(jìn)行釣魚、數(shù)據(jù)泄露或品牌冒充。

一些軟件開發(fā)公司在多個(gè)客戶站點(diǎn)上重復(fù)使用相同的API密鑰,這使得攻擊者可以輕松識(shí)別客戶列表,進(jìn)一步增加了安全風(fēng)險(xiǎn)。
本次研究揭示了公共數(shù)據(jù)集中硬編碼秘密的嚴(yán)重性,并強(qiáng)調(diào)了改進(jìn)LLM訓(xùn)練數(shù)據(jù)過濾和開發(fā)者安全實(shí)踐的重要性。未來,我們希望通過技術(shù)改進(jìn)和行業(yè)合作,進(jìn)一步降低敏感信息泄露的風(fēng)險(xiǎn)。
原文鏈接: https://trufflesecurity.com/blog/research-finds-12-000-live-api-keys-and-passwords-in-deepseek-s-training-data