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