圖片來源/GitHub

傳統密碼安全性不足引發諸多問題,帳號遭盜用的事件亦層出不窮,啟用雙因素認證、兩步驟驗證的機制,已是近年最常呼籲的資安觀念之一,這股風潮,陸續開始吹向軟體開發界。

最近就有一項消息引發關注,那就是全球知名程式碼共享與版本協作平臺GitHub宣布,2023年底前在GitHub.com貢獻程式碼的所有使用者,都必須啟用一種或多種形式的雙因素驗證(2 factor authentication,2FA)。

很多人可能會認為這不是新議題,畢竟啟用雙因素認證、兩步驟驗證(2-Step Verification,2SV),這樣的保護帳號安全觀念早已呼籲多年,然而,對於一般使用者、企業與組織而言,最近才開始重視這項議題,而攸關程式碼安全的開發者,按理來說,應該會有更清楚的認知,事實卻不然。

根據GitHub公布的最新統計數據顯示,以活躍用戶而言,僅有16.5%啟用2FA,而NPM用戶啟用2FA的比例更低,只有6.44%,這樣的結果令人憂心。

畢竟,程式開發者常用的雲端平臺與工具並不少,包括程式碼管理的GitHub、Bitbucket、GitLab,程式碼建構的Jenkins、Bamboo,以及專案追蹤與協同管理的 Jira、Confluence,這些僅是一小部分,如今GitHub在此議題抱持的態度最積極,率先採取更多行動。

保護軟體供應鏈最源頭的帳號安全,GitHub將強制啟用MFA

無庸置疑,軟體供應鏈是現今最受關注的資安議題之一,除了資安界早已提倡安全軟體開發生命週期(SSDLC),近年也強調需改善漏洞發現與修補,以及推動軟體物料清單(SBOM)等,當中有更多關注是放在開放原始碼軟體,畢竟絕大多數開發人員不會從頭開始建構軟體,而是站在巨人的肩膀上,活用這些成果。

然而,從軟體供應鏈源頭來看,所有人都很清楚程式碼的安全性會是關鍵,但撰寫、保管、發布程式碼的「開發人員」,更是不能忽略的重要環節。儘管大多數開發者知道要保護自己的電腦,注意上網安全,但對於程式撰寫、協作使用的工具與平臺,以及開發人員本身帳號的安全性,可能並未清楚認知對於軟體安全帶來的衝擊,這些部分若出現資安問題將會帶來嚴重影響,事實上,我們甚至可以說,這是軟體供應鏈最前面的一道防護。

面對軟體供應鏈的帳號安全議題,不只是軟體業者、企業、政府擔憂,因而決心採取更積極的防範措施,與程式開發者密切相關的公用平臺也展開行動。如前所述,GitHub在這方面的動作頻頻,他們是全球最大開源程式碼平臺,自然也背負著眾人期望。GitHub安全長Mike Hanley指出,軟體供應鏈安全需從開發者做起,為防範開發者帳號遭社交工程與帳號劫持,避免此類攻擊將是確保供應鏈安全的第一步,也是最關鍵的一步。

事實上,為了提升用戶帳號安全,GitHub在近年已經祭出不少新政策。例如,2019年7月,GitHub已提供裝置驗證機制,要求未啟用雙因素驗證的GitHub用戶,一旦透過陌生裝置進行存取,需要額外的驗證,也就是以電子郵件提供驗證碼的方式來確認使用者身分;到了2020年11月,GitHub又強制要求所有Git操作及API呼叫,都需經由基於Token的身分驗證方式連線。

然後,僅憑這些措施來保護還不夠,雙因素驗證將是下一道重要的防線,而且將逐漸轉變成強制所有使用者配合。

開發者帳戶被劫持導致套件被植入惡意程式,已有多起事件

為何各大開發平臺現在更關注此一問題?這要從近年的實際威脅事件看起。

2018年7月,有位代號為pronebird開發者指出,駭客入侵JavaScript程式碼檢查工具ESLint,並在NPM平臺,發布包含惡意程式的ESLint 3.7.2版,一旦用戶安裝此版本套件,惡意程式碼將執行竊取開發者的NPM帳戶或其他資訊。

這樣的事件,到了最近半年仍持續傳出,並且是接二連三發生。例如,在2021年10月22日,熱門NPM套件UAParser.js的作者表示,疑似有駭客劫持他的NPM帳號,並發布3個可能被植入惡意程式的UAParser.js版本,分別是0.7.29、0.8.0與1.0.0版,而且,他無法取消發布這些版本,只能緊急通報NPM support,並透過警告訊息提醒其他開發人員,後續,GitHub也對這起植入惡意程式的事件發布資安公告,並標示為重大級別。

接著,2021年11月,又有兩起類似的事件。首先,名為COA(Command-Option-Argument)的熱門NPM套件,傳出遭植入惡意程式;接著相隔數小時,又傳出另一個名為RC的NPM套件也發生類似情形。GitHub在11月4日,也緊急公告這些套件遭植入惡意程式。

上述這些事件,引發整個軟體開發界的關注。最主要原因,開源軟體安全所帶來的牽連與影響極大,以上述COA的NPM套件為例,該套件是提供開發者以命令列下達指令的解析器,概估GitHub上面有5百萬個開源專案採用,且每週下載量超過9百萬次,而RC的NPM套件,是1款組態下載器,它本身的每週下載量更是超過1400萬次。

這顯示出,一旦開源專案的開發者帳號被駭客劫持,不僅取而代之,還冒名替其發布已植入惡意程式的開源套件,這樣的供應鏈攻擊方式,很可能使其他開發者,在不知情的情況去下載安裝或使用。而且,越熱門的開源套件,相關的牽連越廣,就算該套件很冷門,還是有可能造成壞影響,而且,很有可能導致眾人越晚發現異狀。

一般而言,開源軟體安全的防護環節很多,像是去年底被揭露的Log4J漏洞,突顯出改善漏洞的發現與修補及因應,就是一大挑戰,因此不論是掃描能力的強化、程式碼稽核、漏洞修補應變,以及透過SBOM掌握採用的關鍵開源元件,確保開源軟體的安全生產也同樣重要,不只從軟體設計的層面著手,並要解決惡意假冒的問題,以及確保上游軟體元件確實是真正的開發者所打造。

基本上,光是改善漏洞發現與縮短修補應變,就已經令各界應接不暇,若再因為開發者帳號自身的防護不周,使得上游套件發生被植入惡意程式的情況,將使確保軟體供應鏈安全這事更添動盪與麻煩。因此,如何降低這類問題的發生,雙因素驗證的啟用至關重要,現在正逐漸從「有它可以更好」,轉變成「必備」的要求。

多起駭客接管開發者帳號事件,新版套件被嵌入惡意程式
近期開發者帳號被劫持的資安事件接二連三傳出,根據GitHub資安公告顯示,在2021年10月與11月有3起事件,包括UAParser.js、COA、RC的NPM套件,因為開發者的帳號遭到劫持而遭植入惡意程式,這也促使平臺業者祭出新政策,例如,GitHub今年2月開始針對前100大NPM套件的所有維護者,強制要求啟用雙因素認證(2FA)。

宣導啟用雙因素驗證不是新鮮事,現在陸續已成強制要求

啟用MFA保護自身帳號安全,並非新議題,我們關注的是,過去各界已不斷呼籲,為了使用者自身帳戶安全,避免遭密碼暴力破解或網釣攻擊,應啟用雙因素驗證,然而,各種應用系統背後的程式開發人員,對於所用的開發環境帳號卻沒這麼做,不免讓人覺得很失望。

回顧這幾年,為了強化線上服務帳號安全,雙因素驗證是關鍵,許多線上服務已提供兩步驟驗證或雙因素驗證,並且持續提升驗證機制的強度,例如從手機接收簡訊OTP,轉向使用App驗證,或是支援FIDO無密碼的驗證機制。

只是,這些年來,上述這些保護手段都只是讓使用者自行選擇啟用,並非強制,於是,我們還是經常看到許多資安專家向大眾呼籲:為了使用者個人自身的帳戶安全,應啟用雙因素驗證。

但在相關威脅日益嚴重之下,不論是設定弱密碼或相同密碼的情形,以及帳密被竊取的狀況,相當氾濫,而這些問題與導致的各種資安事件一再發生,促使許多平臺業者在強化帳號安全的面相上,開始轉為更嚴格要求的態度,設法解決僅依賴單一密碼造成的各式問題。

例如,微軟在2018年,開始宣告密碼時代即將終結,強調Password less以及更安全的多因素驗證,儘管那時還沒邁向強制啟用,但已打響無密碼登入的聲勢。近年該公司也陸續開放更多系統的身分,支援這種作法,例如,所有的Microsoft Account、Azure用戶帳號,現在都可以利用無密碼方式登入,而且,到2021年為止,已有1.5億用戶及所有微軟員工,都選擇這樣的登入方式。

另一家科技大廠Google在2021年5月宣布,將強制用戶啟動帳號兩步驟驗證(2SV),關於推動的情形,2022年2月Google指出已讓1.5億用戶預設啟用,未來將陸續擴及所有Google帳號用戶。畢竟,以雲端郵件雲端硬碟等服務而言,帳密被盜用的風險帶來的衝擊非常大,不僅是用戶資料被竊取、被看光,甚至不小心重要敏感個資也包含在內,並且也是許多雲端服務忘記密碼時,接收認證碼的管道之一。

換言之,隨著現今的威脅態勢,近年最大的改變就是,更多的平臺業者開始陸續改變政策,積極推動無密碼登入,以及宣布將強制啟用雙因素驗證。

當然,或許這樣的措施也與實際的資安威脅態勢有關,畢竟,一般線上服務身分冒用與資料竊取資安事件,在前幾年就已日益嚴峻,而軟體供應鏈的資安事件面向廣泛,相較之下,與帳號安全有關的事件雖然持續發生,但可能不易一開始就聚焦於此,但也不應被漠視。

換言之,除了一般使用者持續面臨帳號遭盜用接管的威脅,引發各界注目,開發人員對於帳號被劫持的威脅,卻似乎一直都太輕忽。

輕忽的是什麼?輕忽的是開發人員帳號若欠缺保護,對軟體供應鏈安全的影響極大。

規範上架應用程式開發者保護帳戶,蘋果與Google已展開行動

對於開發人員帳號安全的強化,其實近年,IT業界已趨向積極推動的態度。

以應用程式的發布平臺的層面而言,近年兩大智慧型手機體系已有動作,像是蘋果在2019年,針對開發人員的Apple ID帳號做出硬性規範,要求他們必須啟用雙因素認證,一般的Apple ID用戶則依然可選擇是否採用;針對Android開發人員,Google在2020年第三季末也祭出新政策,針對登入Google Play控制臺的開發者,強制要求須啟用雙因素驗證。

這些政策的目的,無疑是要讓開發者或開發商進行嚴謹的身分驗證,避免帳號遭盜用造成的資安風險,甚至防止匿名或假帳戶上架App。因為之前就發生多起事件,是駭客劫持開發者帳號後,將成功上架的App改變原有用途,或是透過更新加入惡意功能,以此規避應用程式市集在App上架時的審查機制。

更進一步來看,應用程式及系統的發布與維運,已屬於軟體供應鏈的末端,而其本身都是由程式碼建構而成,因此像是程式碼開發協作與分享平臺的開發者帳號安全,同樣至關重要。

針對上游程式碼開發者,GitHub祭出一連串強化措施

時至今日,隨著GitHub的表態,更是具體點出一件事,那就是:軟體供應鏈的安全需從開發者做起,以此帶動整個軟體開發生態系的安全提升。

以GitHub最近一連串的行動而言,為強化平臺帳號安全,正逐步將2FA成為必要防護措施。

首先,針對已收購旗下的NPM,GitHub在2021年底時宣布,將因應前述去年11月開發者帳號未啟用2FA遭冒用,而造成NPM套件被置換的狀況,並在今年2月1日提新要求,強制前100大NPM套件的所有維護者啟用2FA,接著又在3月1日將所有NPM帳戶納入強化登入驗證,也就是針對未啟用2FA的用戶,當由npmjs.com網站或npm CLI驗證身分時,需以電子郵件傳送驗證碼的方式來核對身分的真實性。

同時,為了讓NPM平臺用戶可以更廣泛採用2FA,他們增加多項安全機制,包括:因啟用2FA的用戶也可能常在CI/CD持續整合工具使用自動化Token,所以簡化套件自動發布等流程與任務;新增Token命名機制,幫助用戶更容易管理Token;在NPM組織層面,現在也可強制所有成員啟用2FA;提供專屬介面,稽核組織成員是否啟用2FA。他們還預告NPM接下來將支援WebAuthn,也就是支援FIDO實體安全金鑰與生物識別方式,提供更強身分驗證。

不只是針對NPM平臺,近年GitHub平臺的帳號安全強化上,除了提供雙因素驗證、登入警示、驗證裝置等機制,在2021年還有幾項重要措施,包括透過SSH協定使用Git操作的身分驗證,將不再支援帳號密碼的驗證方式,必須以Token來驗證,並且新增可利用FIDO實體安全金鑰來產生SSH金鑰。

到了2022年5月,GitHub再次祭出新政策──將在2023年底之前,針對所有提交程式碼的平臺用戶,強制啟用雙因素驗證。在此項宣布中,說明了大多數的安全漏洞並非是零時差攻擊造成,而是透過攻擊成本低的方式進行,像是社交工程、帳密竊取或外洩及其他管道,使攻擊者能夠廣泛地存取受害帳戶及其資源,並特別點出一大關鍵:開發人員應該要了解帳號被挾持及盜用的風險與影響:不只是私有程式碼面臨被竊取的狀況,也有可能是程式碼遭惡意竄改,隨後將影響與此程式碼有關的任何人,而且這樣的供應鏈安全威脅並非空想,已是實際存在的狀況。

換個角度設想,身為開發人員,自然也希望下載或使用的程式碼或套件,應該依循標準程序發布,不是被駭客劫持的開發者帳號所發布。

面對這樣無人能置身事外的局面,每個開發人員都必須該有所行動,將啟用MFA視為必要防護手段。事實上,不僅是GitHub,在今年3月,開源軟體套件管理系統NuGet.org也已宣布,自3月8日開始將強制要求帳戶都需啟用雙因素驗證。

畢竟,基礎資訊安全認知人人該有,若連啟用MFA都沒有徹底實施,更何況現今還要提倡種種安全軟體開發教育,推動廣大開發人員接受安全程式設計實務訓練,避免因為開發時程緊迫,人力有限,以及未考慮到使用情境,而撰寫出有漏洞的程式。尤其是開源程式碼及套件的貢獻者,自己在帳號安全上的輕忽,可能衝擊的是軟體生態系統與供應鏈下游。

軟體供應鏈安全始於開發人員帳號保護
對於軟體供應鏈安全,GitHub安全長Mike Hanley指出,程式開發者帳號的保護是最源頭的一步。一旦有人遭受社交工程的攻擊,或面臨其他身分憑證竊取及外洩的事故,有可能導致所用的各種開發平臺帳戶蒙受遭到入侵的後果,而這將會牽連與此程式碼有關的任何人,影響整個軟體開發與交付流程的生態系。圖片來源/GitHub

提高開發者本身帳號安全要求,其實也是保護整個軟體生態系的安全

廣泛來看,不只在GitHub上該重視身分安全,同性質的GitLab、Bitbucket,甚至開發者常使用的其他平臺與工具亦然。

除了一般使用者要有自覺,服務平臺及工具業者也應設備提高安全性要求。對於使用這些平臺的企業帳號管理者而言,在安全政策上,也應思考是否該強制成員啟用2FA,當然自身也要檢視對於現行環境的影響,像是相關自動化工具是否與2FA相容等種種情況。無論如何,已有不少重視資安的企業,早已規範需強制啟用MFA或2FA,或是導入企業集中式的身分存取管理,但還有更高比例的企業與開發者尚未採取行動。

當然,開源程式碼及套件的貢獻者更是要注意,不要以為自己只是軟體供應鏈中的一個小小的螺絲,但這個螺絲的鬆動,可能衝擊軟體生態系統與供應鏈下游。無論如何,強制啟用2FA的趨勢已成,而在GitHub的帶動之下,未來也可能在整個軟體開發界開始發酵。

強化平臺帳號安全,還要注意不同層面風險

對於密碼安全性不足導致開發者帳號冒用的資安事故頻傳的問題之外,不只是企業程式與開源開發人員需要重視,提供服務的平臺業者同樣至關重要。

對於平臺業者而言,不只是妥善提供強式雙因素驗證機制,或是將相關政策轉為強制啟用,關於帳號安全,其實還有不同層面的問題需防範,如身分驗證被繞過及串接風險等,而從近期出現的資安公告與事件,也可看出有不同挑戰需要因應。

舉例來說,3月底GitLab修補CVE-2022-1162漏洞,這是其內部團隊發現的漏洞,將導致基於OmniAuth的GitLab社群版與企業版(CE/EE)在註冊過程中,無意間設定為靜態固定密碼,若被駭客發現將導致用戶帳號被駭客接管。

另外,3月GitHub發現駭客利用該公司授予雲端應用程式服務Heroku、程式碼持續整合服務Travis-CI的部分OAuth憑證的部分憑證,進而存取GitHub私有儲存庫的情況。

1個月之後,Heroku公布調查結果,說明問題出在Heroku機器帳號遭駭客盜用,這不僅導致Heroku資料庫被存取,對方還下載整合GitHub與OAuth的客戶Token,使得Heroku與其客戶置放於GitHub的儲存庫都被存取,這其實也反應出機器身分的保護與管理,同樣需要重視。

美國白宮下令推動軟體供應鏈安全,並強調MFA的重要性

美國白宮於2022年1月26日舉行開源軟體高峰會議,邀請相關業者共同商討這個特殊的安全挑戰,今年5月初,由Linun基金會與開源安全基金會二度舉辦峰會,達成多項共識,並發布了開源軟體安全動員計畫白皮書。

關於啟用多因素驗證(MFA)的重要性,近期美國推動加快改善網路安全之際,也特別提及。今年3月,該國總統拜登曾呼籲民間企業與關鍵基礎設施業者,需趕緊提升資安水準,並列出8個重點資安防護重點,其中導入多因素驗證(MFA)居於第一項,當中指出,在組織系統上使用多因素驗證,現在必須是強制執行,才能讓攻擊者入侵系統更加困難。

更大的挑戰在於,軟體供應鏈安全不只基本的開發者帳號安全。目前開源軟體安全基金會(OpenSSF)持續推動此議題,產業界中,Google最為積極,在過去兩三年來,他們不只釋出OSS-Fuzz及連續模糊測試解決方案ClusterFuzzLite專案,希望模糊測試能真正與開發流程結合,而不是額外採取的行動,還有推動軟體供應鏈安全框架SLSA,並與OpenSFF社群合作,發布開源專案軟體安全掃描工具Scorecards,將能評估專案的安全性,檢驗開源專案是否採用程式碼審查工具,以及CI/CD系統的配置等,目前已更新到第四版,幫助整個軟體生態系變得更安全。

但面對整個軟體供應鏈的資安議題,尤其是最上游的開源軟體安全,單靠一方之力無法解決,在今年1月底,美國白宮舉辦高峰會議邀集科技大廠商討對策,到了5月初,由LinuX基金會與開源安全基金會二度舉辦峰會,並發布了開源軟體安全動員計畫白皮書

當中決議將解決10大問題,包括推動安全軟體開發水準教育,建立開源軟體風險評估儀表板,推動數位簽章增強信任,替換不具記憶體安全的程式語言,成立OpenSSF開源安全事件應變小組,加快新漏洞的挖掘與修復,實施第三方稽核及程式碼審核與修復,資料共享以確定關鍵項目,推動軟體物料清單並提供安全範例與工具,以及改善供應鏈需強化開源軟體開發系統、套件管理器與部署系統。

帳號劫持攻擊普遍,資訊及開發人員都輕忽此類威脅

關於啟用多因素驗證(MFA)或雙因素驗證(2FA)的現況,近期有兩項統計數據受關注,透露出開發及資訊人員對此重視程度的不足。

●數據1:在2022年5月初,GitHub安全長Mike Hanley宣布平臺將在2023年強制啟用雙因素驗證(2FA),同時指出目前GitHub活躍用戶中,僅有16.5%啟用2FA,而NPM用戶的比例更低,只有6.44%啟用2FA。

●數據2:在2022年2月初,微軟新發布《網路訊號》(Cyber Signals)報告,首先以身分識別為主題,當中指出微軟Azure服務用戶中,採用高強度的身分驗證機制僅有22%,顯示多數用戶在身分認證上仍有待強化。

關於身分安全威脅的態勢,以這類劫持用戶帳號的攻擊而言,微軟亦提供2021年的現況說明。例如,微軟在Azure AD上,偵測並封鎖了256億次透過暴力破解的攻擊,以及透過Microsoft Defender for Office 365攔截了357億封的網釣郵件與惡意郵件,這當中其實也意味著駭客無所不用其極地企圖劫持用戶帳號。

因此微軟建議,各大企業組織應提高安全水準來降低風險,至少做到幾項基本的網路安全,將能防範絕大多數的資安攻擊,微軟認為這至少防範98%的資安攻擊。具體而言,包括啟用多因素身分認證(及持續稽核帳號權限,檢查與監控所有管理者帳號)、保持系統最新版本與落實安全性更新、執行最小存取權限原則,以及進行資料保護等。

對於上述威脅態勢,其他資安業者也有類似觀察。例如,資安業者CyberArk根據MITRE ATT&CK for Enterprise所列的攻擊手法,對企業IT人員進行調查,結果顯示:排名第一的風險領域是身分存取(40%),其次是躲避防禦(31%)、執行(31%)、初期存取(29%)、提高權限(27%)。而且,CyberArk強調,在加速數位化的局勢之下,使身分數量爆發性成長,根據他們統計,在每個組織中,人類與機器身分數量已高達10萬個以上。

從上述種種調查結果來看,駭客入侵企業取得身分識別及橫向攻擊,已是當今駭客攻擊手段的一大主要手段,甚至從軟體供應鏈源頭的開發者用戶帳號下手,這已在在突顯身份識別安全的重要性。

 相關報導  提升開發者帳戶安全,企業應強制全面啟用2FA或建置集中管控

熱門新聞

Advertisement