色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          關(guān) 閉

          新聞中心

          EEPW首頁 > 安全與國防 > 業(yè)界動態(tài) > 二進制密鑰掃描實現(xiàn)預(yù)警守護,阻擊潛在供應(yīng)鏈重大安全隱患

          二進制密鑰掃描實現(xiàn)預(yù)警守護,阻擊潛在供應(yīng)鏈重大安全隱患

          作者:Yoav Landman,JFrog聯(lián)合創(chuàng)始人兼首席技術(shù)官、Shachar Menashe, JFrog安全研究高級總監(jiān) 時間:2024-08-14 來源:EEPW 收藏

          安全研究團隊近期發(fā)現(xiàn)并報告了一起嚴重的安全事件,一個具有管理員權(quán)限的訪問令牌在Docker Hub上托管的某個公共Docker容器中意外泄露,該令牌可訪問Python、PyPI及Python軟件基金會(PSF)的GitHub倉庫。

          本文引用地址:http://cafeforensic.com/article/202408/462018.htm

          作為一項針對線上社區(qū)的服務(wù),安全研究團隊持續(xù)掃描Docker Hub、NPM和PyPI等公共倉庫,旨在識別惡意軟件包和泄露的密鑰。一旦發(fā)現(xiàn)潛在威脅,團隊會立即通知相關(guān)維護人員,確保漏洞在攻擊者對其進行利用之前便得到修復(fù)。盡管團隊以往已多次檢測到相似方式泄露密鑰的安全隱患,但由于此次事件潛在后果影響廣泛,因此尤為嚴重——假設(shè)攻擊者將惡意代碼注入PyPI軟件包,或者將所有Python包替換為惡意軟件包,這將可能影響到Python語言本身!

          JFrog安全研究團隊迅速鎖定泄露的密鑰,并即刻向PyPI安全團隊報告,PyPI安全團隊僅在短短17分鐘內(nèi)便撤銷了該令牌,有效遏制了潛在安全危機。

          如今,Python編程語言被廣泛應(yīng)用于絕大多數(shù)的數(shù)字系統(tǒng)中,包括:

          ●   YouTube、Instagram、Facebook、Reddit、Pinterest以及其他各類社交媒體網(wǎng)站

          ●   所有機器學(xué)習(xí)和人工智能程序

          ●   金融支付系統(tǒng),如Venmo、Zelle以及摩根大通和高盛等銀行的內(nèi)部操作系統(tǒng)

          我們將深入剖析JFrog是如何發(fā)現(xiàn)并阻止一起可能危及整個Python基礎(chǔ)設(shè)施的GitHub個人訪問令牌(PAT)泄露事件,同時借此案例強調(diào)在密鑰檢測中“右移”策略的重要性,該策略保證了不僅在源代碼中查找密鑰,還將在二進制文件和生產(chǎn)制品中加強防范。

          我們發(fā)現(xiàn)了什么

          我們的密鑰掃描引擎在Docker Hub上的一個公共倉庫中檢測到了一個“傳統(tǒng)”的GitHub令牌。與更新的細粒度令牌不同,傳統(tǒng)GitHub令牌的風(fēng)險在于,它們授予用戶訪問所有倉庫相似的權(quán)限。

          在本次的案例中,該事件主角擁有對Python核心基礎(chǔ)設(shè)施倉庫(包括PSF、PyPI、Python語言及CPython)的管理員權(quán)限。

          image.png

          可能引發(fā)的后果

          如果有他人發(fā)現(xiàn)了這一泄露的令牌,將造成后果極其嚴重的安全隱患。該令牌的持有者將擁有訪問所有Python、PyPI和Python軟件基金會存儲庫的管理員權(quán)限,并可能借此實施大規(guī)模的供應(yīng)鏈攻擊。

          如果出現(xiàn)這一情況,可能會發(fā)生各種形式的供應(yīng)鏈攻擊。其中一種可能的攻擊方式是,攻擊者將惡意代碼藏匿于CPython中,該組件包含Python語言的核心庫,由C語言編寫。鑒于Python的廣泛應(yīng)用,惡意代碼一旦混入Python分發(fā)版,其潛在影響將波及全球數(shù)以千萬計的計算機。

          1723618494154641.png

          另一種可能遭受攻擊的場景是,向PyPI的Warehouse代碼中滲透惡意代碼,該代碼用于管理PyPI包管理器。如果攻擊者通過插入代碼獲得通往PyPI存儲的后門的權(quán)限,他們將隨意操縱熱門PyPI包,并且在其中隱藏惡意代碼或用惡意代碼完全替換原有內(nèi)容。盡管這一攻擊方式并不十分高明,但其危害性不可小覷。

          1723618528626910.png

          為什么該令牌僅在二進制文件中找到?

          在Docker容器內(nèi)的一個編譯后的Python文件——__pycache__/build.cpython-311.pyc中發(fā)現(xiàn)了身份驗證令牌:

          然而,在匹配的源代碼文件中,該令牌并未包含在相同功能的部分當中。

          1723618547994558.png

          這就意味著原作者:

          1.曾經(jīng)短暫地將授權(quán)令牌添加到了他們的源代碼中,并運行了源代碼

          2.這項被運行的源代碼(Python腳本) 是帶有授權(quán)令牌的 .pyc二進制文件

          3.盡管原作者從源代碼中刪除了授權(quán)令牌,但沒有同步清理 .pyc

          4.將修正版本的源代碼和未修正的 .pyc二進制文件都推送到了Docker鏡像中

          例如,以下是反編譯的build.cpython-311.pyc文件與Docker容器中實際源代碼的比較:

          1723618572914410.png

          從二進制文件“build.cpython-311.pyc”中重構(gòu)的源代碼

          1723618605941758.png

          Docker容器中匹配文件的實際源代碼

          可以發(fā)現(xiàn),盡管從 .pyc緩存文件中反編譯的代碼與原始代碼相似,但其含有了一個包含有效GitHub令牌的授權(quán)數(shù)據(jù)頭。

          僅在源代碼中掃描密鑰是不夠的

          此事件警醒我們,為了預(yù)防類似的安全隱患,雖然與基于文本的文件相比,在二進制文件中搜索泄露的機密信息更為困難,但是很多情況下關(guān)鍵數(shù)據(jù)只存在于二進制數(shù)據(jù)當中,因此對發(fā)布的Docker鏡像中的源代碼和二進制數(shù)據(jù)進行全面審核將成為最佳的解決方案。

          1723618623275569.png

          PyPI的快速響應(yīng)

          在本次事件報告中,我們由衷感謝PyPI安全團隊的迅速響應(yīng)。

          面對難以規(guī)避的泄露風(fēng)險,企業(yè)和相關(guān)組織應(yīng)以最快速度采取行動,評估并減輕潛在損害。

          在此次事件中,在發(fā)現(xiàn)令牌后,JFrog立即將這一情況通知了PyPI的安全團隊和令牌的所有者。PyPI的安全團隊迅速響應(yīng),僅在17分鐘后就做出回應(yīng),撤銷了這一具有安全隱患的令牌。與此同時,PyPI進行了全面的檢查,確認該令牌尚未涉及任何具有安全威脅的可疑活動。

          我們可以從密鑰檢測中汲取哪些經(jīng)驗?

          從此次事件中,我們汲取了寶貴經(jīng)驗:

          1.在源代碼和文本文件中掃描密鑰已經(jīng)不足以排除安全隱患。現(xiàn)代集成開發(fā)環(huán)境(IDE)和開發(fā)工具雖然可以有效地在源代碼中檢測密鑰并防止其泄露,但它們的范圍僅限于代碼,卻往往忽略由構(gòu)建和打包工具生成的二進制制品。我們在開源注冊表中遇到的大多數(shù)密鑰都位于環(huán)境、配置和二進制文件中。

          2.用新的令牌替換老式的GitHub令牌以實現(xiàn)更好的可見性。最初,GitHub 使用的是十六進制編碼的 40 個字符的令牌字符串,與 SHA1 哈希字符串無異,大多數(shù)密鑰掃描工具都無法捕捉到這種字符串。2021年,GitHub改用了一種新的令牌格式,該更新并未強制要求所有用戶重新生成他們的令牌。新格式的令牌包含可識別的前綴 ghp_,同時還嵌入了校驗和,允許密鑰檢測工具能更輕松、更準確地識別它們。

          3.您的令牌只能訪問使用它的應(yīng)用程序所需的資源。將令牌權(quán)限設(shè)置為最大并非明智決定。兩年前,GitHub引入了新的細粒度令牌。與傳統(tǒng)令牌不同,它們允許用戶選擇個人訪問令牌可用的權(quán)限和倉庫,并將其范圍限制為相應(yīng)任務(wù)所需的最小范圍。我們強烈建議使用此功能,從而最大程度避免類似于對整個基礎(chǔ)設(shè)施具有最終訪問權(quán)限的令牌在一個輔助項目或臨時的“hello-world”應(yīng)用程序中被泄露的情況。

          image.png

          JFrog Secrets Detection–二進制優(yōu)勢

          即使關(guān)鍵令牌被泄露在一個編譯后的Python二進制文件(.pyc)中,JFrog的密鑰檢測引擎依然能夠?qū)⑵渥R別。我們能夠檢測到泄露的令牌主要得益于兩個重要原因:

          1.JFrog Secrets Detection在開發(fā)人員的IDE內(nèi)部實現(xiàn)左移運行,也可以在已部署的Docker容器內(nèi)部進行右移運行。

          2.JFrog Secrets Detection能夠?qū)崿F(xiàn)在文本文件和二進制文件中搜索泄露的密鑰,實現(xiàn)全方位的保護。

          JFrog的檢測基于JFrog Xray針對配置文件、文本文件和二進制文件進行掃描,查找純文本憑據(jù)、私鑰、令牌和類似的密鑰信息。通過利用持續(xù)更新且擁有超過150種特定類型證書列表,以及專有的通用密鑰匹配器,JFrog將盡可能的在掃描過程中實現(xiàn)最佳的文件覆蓋范圍。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉