您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關如何攻入微軟VS Code的Github倉庫,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
就在這個月,一位安全研究人員披露了他是如何滲透進微軟Visual Studio Code的官方GitHub存儲庫的。
據了解,微軟Visual Studio Code的問題管理功能中存在一個安全漏洞,并且缺少了相應的身份驗證檢測機制,這將允許研究人員以及網絡攻擊者能夠獲取到推送訪問,并將其寫入到代碼庫中。
由于這名研究人員負責任地將該漏洞的詳細信息上報給了微軟的開發團隊,這名研究人員也獲取到了一筆具體金額不詳的漏洞獎金。
據悉,安全研究人員RyotaK當時在乘坐火車的過程中意外發現了微軟Visual Studio Code的持續集成(CI)腳本中存在一個漏洞,該漏洞導致他能夠滲透進微軟Visual Studio Code的官方GitHub存儲庫并向其提交文件。
RyotaK在接受BleepingComputer的采訪時表示:“我當時在火車上實在是太無聊了,所以我打算讀一下微軟Visual Studio Code的源代碼。過了一會兒,我發現VS Code中有一個單獨的針對CI的腳本存儲庫,該代碼庫名為【vscode-github-triage-actions】。”
很快,這名安全研究人員就發現了該腳本中有一行非常有意思的代碼,可以利用它來實現代碼注入攻擊:
exec(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) => {
RyotaK還說到:“當然了,這是一個命令注入漏洞。但是該漏洞的利用要求我們獲取到‘commit’變量或‘release’變量的控制權。”
研究人員RyotaK很快便意識到,由于以下兩個原因,攻擊者很可能能夠控制commit變量:
closedWith命令中缺乏有效的身份驗證機制;
用于驗證closedWith命令(在結束注釋中指定)的正則表達式存在安全問題;
closedWith命令可以用來在commit關閉之前將commit哈希與問題進行關聯。
但是,這里使用了存在安全問題的正則表達式來驗證關閉的評論,而且CI腳本中沒有任何的身份驗證機制,任何用戶都可以將commit與一個問題繼續寧關聯,并在closedWith值中注入代碼。具體如下所示:
const closingHashComment = /(?:\\|\/)closedWith (\S*)/
由于Visual Studio Code存在安全問題的CI工作流每天會執行一次,那么在午夜時分,研究人員就可以預先植入一份PoC漏洞利用代碼,這樣也可以避免在夜間犯任何危險的錯誤。
為此,研究人員瀏覽了該項目的GitHub Actions代碼文件,以了解持續集成和持續交付(CI/CD)工作流。
研究人員告訴BleepingComputer稱:“幸運的是,GitHub Actions的工作流文件是在GitHub上發布的,因此我對GitHub Actions的內部情況還是能夠有所了解的。由于actions/checkout是在使用易受攻擊的工作流文件之前執行的,因此我們能夠獲取到對代碼庫具有寫入權限的GitHub令牌,隨后我們還將使用到這個令牌。”
通過將我們的PoC漏洞利用代碼注入到Visual Studio Code的CI腳本中(該腳本在午夜前后運行),研究人員成功拿到了一個反向Shell。
除此之外,研究人員還拿到了Visual Studio Code代碼庫的GitHub授權令牌,這個令牌將允許研究人員獲取到針對該代碼庫的寫入權限。
最后,在拿到令牌之后,研究人員向代碼庫發布了一個PoC commit:
研究人員表示,雖然這個代碼庫的主分支具有基于帳戶的分支保護,但GitHub Actions令牌無法繞過這些保護,不過可以使用該令牌將文件推送到發布分支。
值得注意的是,RyotaK在遵守了微軟的漏洞獎勵計劃提交漏洞的同時,也按照微軟的“Safe Harbor”準則執行了這一次的PoC攻擊。
研究人員RyotaK在其發布的報告中寫到:“Microsoft允許通過“Safe Harbor”來診斷和調測漏洞。
這種類型的安全漏洞將允許攻擊者入侵其他安全的軟件代碼庫,從而為更加復雜的軟件供應鏈攻擊奠定基礎。
毫無疑問,SolarWinds供應鏈攻擊已經成為了安全界的新聞頭條。在有針對性的供應鏈攻擊中,針對源代碼編輯器和IDE的攻擊可能會對其用戶、開發人員以及接收使用問題IDE構建的應用程序的客戶端造成毀滅性的后果。
關于如何攻入微軟VS Code的Github倉庫就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。