本文來自微信公眾號“嘶吼專業(yè)版”,作者/小二郎。
新一代供應鏈攻擊日盛
軟件供應鏈一直是漏洞和攻擊的巨大催化劑,近年來,新一代供應鏈攻擊正在興起。在這種攻擊中,黑客通常將第三方和內(nèi)部非人類身份作為訪問核心業(yè)務系統(tǒng)的手段。雖然許多關(guān)于供應鏈安全風險的討論都集中在軟件應用程序組件本身的漏洞上,但它們卻忽略了供應鏈安全風險的一個關(guān)鍵領(lǐng)域:非人類身份及其對核心業(yè)務和工程環(huán)境的不受控制的訪問。
1.不受監(jiān)控的內(nèi)部訪問密鑰和令牌
先來看一組實際工程環(huán)境中的數(shù)據(jù):
·開發(fā)團隊每周在GitHub中創(chuàng)建大約20-30個新的個人訪問令牌和SSH密鑰。
·在典型的GitHub環(huán)境中,大約有1/4的令牌(PAT和SSH密鑰)沒有被使用,并可以在不影響業(yè)務的情況下安全地刪除。
·在Snowflake生產(chǎn)環(huán)境中,五分之一的用戶實際上是服務帳戶。
為了開發(fā)應用程序并使其正常工作,開發(fā)團隊會定期生成“秘密”——密鑰和令牌。這些密鑰和令牌允許訪問資源、代碼和基礎設施——也就是組織最有價值的資產(chǎn)。但是,保管這些密鑰卻是一大挑戰(zhàn),因為它們分散在不同的秘密管理器中,并且經(jīng)常被開發(fā)團隊訪問,而這些團隊經(jīng)常無意中暴露它們(例如,用于調(diào)試)。
雖然采用“左移”方法的AppSec解決方案保護了代碼漏洞和依賴關(guān)系、CI/CD進程和運行時環(huán)境,但安全團隊缺乏對實際訪問密鑰的可視性,不了解它們在哪里、是否暴露、擁有什么權(quán)限等。秘密掃描器(secret scanners)或vaults(一個基于身份的機密和加密管理系統(tǒng),可管理一些私密的信息)不能解決這個問題——vaults只存儲用戶的秘密。秘密掃描器只發(fā)現(xiàn)暴露的秘密,同樣沒有任何上下文或優(yōu)先考慮風險的能力。
一個被盜的密鑰允許攻擊者訪問組織的應用程序代碼,甚至修改或竊取它,致使應用程序無法使用,造成昂貴的停機成本和潛在的聲譽損害。
2.第三方非人類身份訪問
人類身份主要是終端用戶、開發(fā)人員、DevOps和云管理員;非人類身份則是由附加到云服務、API、微服務、軟件供應鏈、云數(shù)據(jù)平臺等的身份組成。
如今,IT、DevOps、開發(fā)人員甚至安全團隊越來越多地授權(quán)新的第三方工具和服務(如GitHub、GitLab、AWS和Big Query)訪問核心工程環(huán)境,以簡化開發(fā)工作并提高敏捷性。隨著自下而上的軟件采用和免費增值云服務的發(fā)展趨勢,許多這些連接都是由沒有任何安全治理的開發(fā)人員完成的。
它們在敏感工程系統(tǒng)與外部第三方應用程序和流程之間創(chuàng)建了“影子”連接,這些連接通過API密鑰、服務帳戶、webhook、OAuth令牌或SSH密鑰完成。這些密鑰和令牌通常具有高級權(quán)限,有時甚至具有無限的永久訪問權(quán)限。即使在用戶使用完所連接的服務之后,其中也有一部分不會就此撤銷。
這種“影子”集成的例子是開發(fā)人員使用一種新的基于云的CI/CD工具,比如日益流行的CircleCI,它依賴于API訪問GitHub源代碼存儲庫。這種不受管制的自由訪問的結(jié)果正如您所知——CircleCI在2023年初被攻破。
在這次攻擊中,攻擊者獲得了CircleCI客戶的密鑰,這意味著他們可以將代碼推送到部署。這種攻擊的結(jié)果可能包括將惡意代碼推送到生產(chǎn)環(huán)境和竊取客戶數(shù)據(jù),以及使應用程序無法使用。這是一次通過非人類訪問的軟件供應鏈攻擊。
而最近發(fā)生的各種事件也突出了不安全的非人類訪問所造成的風險:
·Okta(2023年10月):攻擊者使用泄露的服務帳戶訪問Okta的支持案例管理系統(tǒng),這使得攻擊者可以查看一些Okta客戶上傳的文件。
·GitHub Dependabot(2023年9月):黑客竊取了GitHub個人訪問令牌(PAT)。然后使用這些令牌作為Dependabot向公共和私有GitHub存儲庫進行未經(jīng)授權(quán)的提交。
·微軟SAS密鑰(2023年9月):微軟人工智能研究人員發(fā)布的SAS令牌實際上授予了對其創(chuàng)建的整個存儲帳戶的完全訪問權(quán)限,結(jié)果導致超過38TB的極度敏感信息泄露且這些權(quán)限暴露給攻擊者超過2年之久。
·Microsoft365偽造訪問令牌(2023年7月):攻擊者從企業(yè)Azure系統(tǒng)中竊取了非活動簽名密鑰,用于簽名和創(chuàng)建有效的電子郵件訪問令牌,這些令牌被多個客戶的Azure AD云系統(tǒng)錯誤地接受。這使得攻擊者可以將其攻擊范圍擴展到共享相同Azure AD云環(huán)境的所有組織。
·Jumpcloud(2023年7月):在對漏洞的持續(xù)調(diào)查中,Jumpcloud宣布所有API密鑰無效,隨后敦促其客戶輪換提供的所有令牌。
·WordPress Ultimate Member插件(2023年7月):通過一個漏洞,任何未經(jīng)身份驗證的攻擊者都能隨意創(chuàng)建具有完全管理權(quán)限的用戶,從而接管WebPress網(wǎng)站。
·Slack GitHub存儲庫(2023年1月):在這次事件中,威脅行為者通過“有限”數(shù)量的被盜Slack員工令牌獲得了Slack外部托管的GitHub存儲庫的訪問權(quán)限。從那里,他們可以下載私有代碼庫。
·GitHub個人訪問令牌(2022年12月):2022年12月6日,來自GitHub Atom、桌面和其他已棄用的GitHub存儲庫被與機器帳戶關(guān)聯(lián)的受損個人訪問令牌(PAT)克隆。惡意攻擊者隨后使用PAT讀取這些存儲庫,其中包含敏感信息。
·微軟OAuth網(wǎng)絡釣魚攻擊(2022年12月):惡意OAuth應用程序被用來竊取客戶的電子郵件。隨后,攻擊者使用這些賬戶在Azure AD中注冊經(jīng)過驗證的OAuth應用程序,并針對英國和愛爾蘭的企業(yè)用戶進行網(wǎng)絡釣魚攻擊。
·微軟OAuth(2022年9月):通過利用OAuth集成,惡意應用程序被部署在受損的云租戶上,修改了Exchange Online的設置來傳播垃圾郵件。
·GitHub(2022年4月):被盜的OAuth令牌允許攻擊者使用Travis CI和Heroku作為后門攻破數(shù)十個GitHub帳戶。
·Mailchimp(2022年4月):黑客濫用API密鑰破壞了數(shù)百個Mailchimp賬戶。
·Codecov(2021年4月)攻擊者采取的一種攻擊路徑是從Codecov竊取17,000家公司的Git訪問令牌,并使用它們訪問私有Git存儲庫并破壞敏感數(shù)據(jù)。
這樣的例子不勝枚舉。其他受到黑客濫用身份或訪問密鑰攻擊的知名公司還包括Slack、微軟和谷歌。
防御建議
·為系統(tǒng)操作員定義角色,映射到特定權(quán)限,并根據(jù)基于角色的訪問控制(RBAC)實施最小特權(quán)訪問。如果特定參與者的賬戶或資產(chǎn)受到損害,此類活動可以降低風險;
·建議經(jīng)常描代碼中是否存在機密,如密鑰或訪問令牌,以防被惡意行為者濫用;
·制定事件響應計劃,為暴露的機密獲取優(yōu)先級補救指導,最大限度降低攻擊影響;
·第三方和內(nèi)部非人類訪問的發(fā)現(xiàn)和態(tài)勢管理,獲悉所需的風險和業(yè)務上下文,以便輕松地修復過度特權(quán)、不必要和不可信的訪問;
·檢測錯誤配置并完善更新機制;
·實施異常和威脅檢測,通過行為分析實時檢測和修復可疑的非人類訪問;使用威脅和異常檢測引擎持續(xù)分析應用程序、服務、供應商和機密,以及它們連接至工程環(huán)境的方式,以便在攻擊發(fā)生之前檢測到它們。
·實施網(wǎng)絡分段,這是最小化供應鏈攻擊影響的絕佳方法;
·實施零信任模型,“永不信任,始終驗證”,阻止攻擊者橫向移動;
·培訓員工和供應商了解最新的攻擊趨勢,提高安全意識,規(guī)范開發(fā)行為。