新聞中心
當前位置:網站(zhàn)首頁 > 新聞中心
如何防止企業的數據和(hé)機密從(cóng)GitHub存儲庫洩露
研究表明(míng),網絡攻擊者不斷在GitHub等公共代碼存儲庫中搜索開(kāi)發人員可能(néng)留下(xià)的秘密,任何微小(xiǎo)的錯誤都可能(néng)被他(tā)們利用(yòng)。
安全研究員Craig Hays在疫情期間進行了(le)一個實驗。他(tā)将其SSH用(yòng)戶名和(hé)密碼洩露到(dào)GitHub存儲庫中,看(kàn)看(kàn)是否有網絡攻擊者可能(néng)會(huì)找到(dào)它。他(tā)認爲可能(néng)需要等待幾天才會(huì)有人注意到(dào)。事(shì)實證明(míng)更加殘酷,第一次未經授權的登錄發生在其洩露用(yòng)戶名和(hé)密碼之後的34分鐘(zhōng)内。他(tā)說:“對(duì)我來(lái)說,最讓我大(dà)開(kāi)眼界的是它被利用(yòng)的速度有多快(kuài)。”
在最初的24小(xiǎo)時(shí)内,六個不同的IP地址9次登錄他(tā)的帳号。一名網絡攻擊者試圖安裝僵屍網絡客戶端,另一名網絡攻擊者試圖使用(yòng)其服務器發起拒絕服務攻擊。Hays還看(kàn)到(dào)有人想從(cóng)他(tā)的服務器竊取敏感信息,也(yě)有人隻是查看(kàn)信息。
實驗表明(míng),威脅行爲者不斷掃描GitHub和(hé)其他(tā)公共代碼存儲庫,尋找開(kāi)發人員留下(xià)的敏感數據。随着企業從(cóng)内部部署軟件過渡到(dào)雲平台以及越來(lái)越多的開(kāi)發人員在家工(gōng)作(zuò),包括用(yòng)戶名、密碼、Google密鑰、開(kāi)發工(gōng)具或私鑰在内的機密不斷增加。法國安全初創廠(chǎng)商GitGuardian公司的聯合創始人Eric Fourrier表示,僅在今年,數據洩露就比去年至少增加了(le)20%,該公司主要提供掃描公共存儲庫以識别網絡攻擊者可能(néng)利用(yòng)的數據的服務。
黑客如何找到(dào)GitHub的秘密
黑客知(zhī)道(dào)GitHub是查找敏感信息的好(hǎo)地方,聯合國機構、Equifax、Codecov、星巴克和(hé)優步等機構和(hé)組織爲此付出了(le)代價。一些(xiē)企業可能(néng)會(huì)争辯說他(tā)們不會(huì)面臨風(fēng)險,因爲他(tā)們不使用(yòng)開(kāi)源代碼,但(dàn)事(shì)實上(shàng)更微妙;開(kāi)發人員經常将他(tā)們的個人存儲庫用(yòng)于工(gōng)作(zuò)項目。根據針對(duì)GitHub的調查報(bào)告,85%的數據洩漏發生在開(kāi)發人員的個人存儲庫中,其他(tā)15%的數據洩漏發生在企業擁有的存儲庫中。
開(kāi)發人員會(huì)留下(xià)shell命令曆史、環境文(wén)件和(hé)受版權保護的内容。有時(shí)他(tā)們也(yě)會(huì)犯錯誤,因爲試圖簡化流程。例如,他(tā)們在編寫代碼時(shí)可能(néng)會(huì)包含他(tā)們的憑據,因爲這(zhè)樣更容易調試。然後,他(tā)們可能(néng)會(huì)忘記删除并提交。即使他(tā)們稍後執行删除提交或強制删除機密,這(zhè)些(xiē)私人信息通常仍然可以在Git曆史記錄中訪問。
GitHub上(shàng)最常見的機密類型
Hays說,“我在舊版本的文(wén)件中發現(xiàn)了(le)很(hěn)多密碼,而這(zhè)些(xiē)密碼已被更新的、更幹淨的版本替換,而這(zhè)些(xiē)版本中沒有密碼。”Git提交曆史會(huì)記住所有内容,除非明(míng)确删除它。
無論是初級開(kāi)發人員還是高(gāo)級開(kāi)發人員都可能(néng)犯錯誤。Fourrier說。,“即使你(nǐ)是一位出色的開(kāi)發人員,并且在安全問題上(shàng)受過教育,在某些(xiē)時(shí)候編碼時(shí),可能(néng)會(huì)犯錯誤,而洩露秘密通常是人爲的錯誤。”
在GitHub上(shàng)發現(xiàn)的最常見的文(wén)件類型
任何開(kāi)發人員都會(huì)出錯,那些(xiē)剛進入職場的開(kāi)發人員通常會(huì)洩露更多的機密。當Crina Catalina Bucur多年前還是一名軟件工(gōng)程專業的學生時(shí),就開(kāi)設了(le)一個用(yòng)于開(kāi)發目的的AWS賬戶,但(dàn)不久收到(dào)了(le)2000美(měi)元的賬單,其中隻有0.01美(měi)元是她(tā)應該支付的費用(yòng)。
她(tā)說,“我開(kāi)發的項目是一個聚合文(wén)件管理(lǐ)平台,用(yòng)于大(dà)約10種雲存儲服務,包括亞馬遜的S3。這(zhè)發生在GitHub提供免費私有存儲庫之前,所以我的AWS訪問密鑰和(hé)相應的密鑰與代碼一起發布到(dào)我的公共存儲庫。而我當時(shí)并沒有考慮太多。”
幾天後,她(tā)開(kāi)始收到(dào)來(lái)自(zì)AWS的電子郵件,警告她(tā)的賬戶已被盜用(yòng),但(dàn)她(tā)沒有仔細閱讀這(zhè)些(xiē)郵件,直到(dào)收到(dào)賬單。對(duì)她(tā)來(lái)說,幸運的是AWS公司免除了(le)其他(tā)額外(wài)費用(yòng)。但(dàn)Bucur還是犯了(le)一些(xiē)被黑客利用(yòng)的錯誤,包括爲方便起見對(duì)密鑰進行硬編碼并将它們發布到(dào)公共代碼存儲庫中。
Hays表示,如今想要發現(xiàn)此類錯誤的黑客隻需要很(hěn)少的資源。他(tā)在業餘時(shí)間是一名漏洞的賞金(jīn)獵人,并且經常依賴開(kāi)源情報(bào)(OSINT),這(zhè)些(xiē)都是可以在網上(shàng)找到(dào)的信息。他(tā)說,“我選擇的方法是使用(yòng)标準的Github.com界面人工(gōng)搜索,我使用(yòng)搜索運算(suàn)符限制特定的文(wén)件類型、關鍵字、用(yòng)戶和(hé)組織,具體取決于針對(duì)的公司。”
一些(xiē)工(gōng)具可以使過程更快(kuài)、更有效。HUMAN公司的安全研究員Gabriel Cirlig說:“網絡攻擊者運行自(zì)動機器人來(lái)抓取GitHub内容并提取敏感信息。這(zhè)些(xiē)機器人可以一直運行,這(zhè)意味着黑客可以在幾秒鐘(zhōng)或幾分鐘(zhōng)内檢測到(dào)錯誤。”
一旦發現(xiàn)秘密,網絡攻擊者就可以輕松利用(yòng)它。Fourrier說,“例如,如果找到(dào)AWS密鑰,就可以訪問某公司的所有雲計(jì)算(suàn)基礎設施。而針對(duì)爲特定公司工(gōng)作(zuò)的開(kāi)發人員并嘗試查看(kàn)該公司的一些(xiē)資産非常簡單。”根據機密的性質,黑客可以做很(hěn)多事(shì)情,其中包括發起供應鏈攻擊和(hé)危害企業的安全。
随着機密數量的增加,企業需要在爲時(shí)已晚之前更好(hǎo)地發現(xiàn)它們。GitHub有自(zì)己的“秘密掃描合作(zuò)夥伴程序”,它可以查找類似密碼、SSH密鑰或API令牌的文(wén)本字符串。GitHub與40多家雲計(jì)算(suàn)服務提供商合作(zuò),自(zì)動修複公共存儲庫中公開(kāi)的API密鑰。
GitHub發言人表示,“我們一直在尋求擴大(dà)這(zhè)些(xiē)合作(zuò)夥伴關系,以更好(hǎo)地保護生态系統。我們目前每天注銷100多個公開(kāi)的GitHub API密鑰,在我們這(zhè)樣做時(shí),通常會(huì)安全地向新開(kāi)發人員介紹憑證安全的重要性。”
Hays表示,“秘密掃描合作(zuò)夥伴程序”是朝着正确方向邁出的一步,因爲它使網絡攻擊者更難找到(dào)有效憑據。不過他(tā)表示,該計(jì)劃并不完美(měi)。他(tā)說,“當人們不小(xiǎo)心檢查他(tā)們自(zì)己的SSH密鑰、密碼、令牌或任何其他(tā)敏感的東西時(shí),仍然留下(xià)了(le)空(kōng)白(bái)。這(zhè)更難以檢測和(hé)管理(lǐ),因爲沒有合作(zuò)的憑證提供者可以提出諸如‘這(zhè)是真的嗎?想撤銷它嗎?我們中的一方應該告訴所有者嗎?’之類的問題。”
與此同時(shí),他(tā)建議(yì)開(kāi)發人員注意他(tā)們編寫和(hé)部署代碼的方式。他(tā)說,“首先要做的事(shì)情之一是将正确的設置添加到(dào).gitignore文(wén)件中,這(zhè)個文(wén)件告訴Git和(hé)GitHub.com哪些(xiē)文(wén)件不應該被跟蹤和(hé)上(shàng)傳到(dào)互聯網。”
一些(xiē)安全初創廠(chǎng)商也(yě)在試圖填補這(zhè)一空(kōng)白(bái)。GittyLeaks、SecretOps、gitLeaks和(hé)GitGuardian旨在爲業務用(yòng)戶和(hé)獨立專業人士提供更多的保護層。有些(xiē)人可以在幾秒鐘(zhōng)内檢測到(dào)洩露的機密,從(cóng)而使開(kāi)發人員和(hé)公司能(néng)夠立即采取行動。Fourrier說,“我們在整個開(kāi)發生命周期、docker容器、不同類型的數據中掃描軟件上(shàng)的所有代碼,我們找到(dào)并試圖撤銷它們。”
在理(lǐ)想情況下(xià),最好(hǎo)的策略是根本不洩露數據或盡可能(néng)少地洩露,提高(gāo)對(duì)這(zhè)一問題的認識有助于做到(dào)這(zhè)一點。Cirlig說:“教育開(kāi)發人員編寫安全代碼并主動阻止攻擊總比事(shì)後應對(duì)數據洩露事(shì)件要好(hǎo)得多。”
上(shàng)一篇 雲成本優化:雲計(jì)算(suàn)戰略的關鍵部分 下(xià)一篇 制造業中的雲計(jì)算(suàn):從(cóng)不可能(néng)到(dào)不可或缺
|