top of page
  • 作家相片Tara Hsiao / PM

開源軟體的潛在風險:駭客如何利用你的選擇?

開源軟體又稱為開放式原始碼軟體,指的是軟體中的原始碼開放給所有使用者任意檢視、編修與分享。因此只要取得軟體原始碼的,就能編修代碼以改進應用程式。開源軟體的開發模式主要有兩種:

由軟體公司開放開發:有些開發公司將軟體的原始碼開放任意使用,而公司擁有整體開發方向主控權。例如Elaskticsearch即由Elastic公司開放的開源搜尋與分析引擎。

由社群人員共同開發:由一群有同樣理念的社群人員共同開發維護,在沒有單一公司主導的情況下,所有開發流程由社群人員共同協作討論。例如在全球擁有高佔有率的網站架設工具WordPress.org 以及 網站伺服器 Apach HTTP Server 即為此類型。


不論是哪種開發模式,開源軟體的開放性,除了能讓更多技術人員參與軟體開發提升成熟度外,也更能推廣技術與應用的發展。根據Gartner 統計報告指出,有超過90%的企業使用開源軟體,像是作業系統Linux/GNU、資料壓縮工具7-Zip、防火牆pfSense與網頁伺服器軟體Apache HTTP等。開源軟體提供開放原始碼的做法,使得企業組織能依據本身業務需求來修改代碼。加上大部分開源軟體是免費的,對企業來說(尤其是中小型企業),採用開源軟體無疑能為公司節省一大筆軟體授權費用。乍聽之下,開源軟體所具備的自主性、修改彈性、與低成本等特性是非常吸引企業主,然而這些特性經常會造成使用者的迷思與盲點,不僅容易忽略了潛在資安風險,也容易付出意外的代價!


被忽略的潛在資安風險

水能載舟、亦能覆舟

開源軟體的開放特性使任何人,包含駭客也能取得軟體原始碼並尋找軟體漏洞進行攻擊。一旦發現漏洞,駭客就可以利用該漏洞入侵有使用該軟體的企業組織,網路上所公開的漏洞訊息也往往比非開源軟體來得完整詳細,使攻擊者能夠更廣泛地利用這些漏洞進行攻擊。甚至駭客能藉由將受感染的程式碼上傳至開源軟體平台GitHub,進而發動供應鏈攻擊。例如2020年即發生駭客感染開發NetBean之電腦,而開發者在不知情的情況下,將帶有惡意程式(Octopus Scanner)的程式碼上傳至GitHub,也導致後續版本一併遭感染。


缺乏技術支援,遇事求助無門

相較於商業軟體有相對應的專業技術人員與文件支援,開源軟體由於仰賴自由開發者的參與度,也缺乏完整文件或是文件過時,若使用者有技術支援需求時,沒有客服可以立即聯絡及處理問題,技術人員反而得耗費時間自行研究處理。若組織內有經驗的人員離職,可能出現維護斷層,導致有漏洞卻不知道該怎麼處理以及對漏洞影響掌握不明的情況。而企業組織往往一開始抱著『沒有支援應該還好吧?』的心態,等到緊急時才感受到技術支援不足的困境。

此外,開源軟體普遍較難持續性檢測開源碼漏洞,當社群參與度不高時,將影響漏洞修補與安全更新的速度,甚至可能無法有效修補,使得系統容易變成攻擊目標。以WordPress為例,根據patchstack調查,WordPress外掛有26%的高風險漏洞從未被修補,往往因開發人員能量不足,選擇直接下架該外掛或是忽略修補。例如2022年資安廠商Wordfence即發現有駭客鎖定WordPress外掛程式,WPBakery Page Builder的元件Kaswara漏洞進行攻擊,攻擊者能利用該元件存在的漏洞CVE-2021-24284,上傳任意文件並執行代碼,由於沒有修補版本,因此資安廠商也呼籲盡快移除該外掛程式。


容易忽略安全性更新

商業軟體即便是免費版本,出於商業考量,通常會定期提供軟體版本,並存在自動更新機制或是更新提醒,在資訊爆炸的時代,使用者對於更新多半會仰賴提醒。然而開源軟體由於通常沒有安全性更新的提醒或是告警訊息,因此當有新版本公開時,使用者往往沒有注意到。例如2022年4月, 7-Zip Windows App被發現 21.07(含)以前的版本存在提權的漏洞(CVE-2022-29072),7-Zip官方已於2022年7月釋出更新版。對於這種獨立工具,對大部分人來說完全不會注意到新版本更新,因此容易成為漏洞利用的目標。


不是不能用 而是怎麼用

儘管商業軟體在管理和控制方面具有優勢,但開源軟體的低成本與高彈性仍極具優勢,與促進現代產業發展密不可分,難以捨棄。因此建議企業組織在使用前後應做好評估與管控,以降低資安風險。以下幾點建議措施提供參考:


充分的需求評估

企業組織在導入開源軟體前,應進行充分的需求評估,包含為什麼使用、用在哪裡、誰使用以及有哪些同性質軟體。此外,開源軟體雖然可以依據企業需求自行調整,但也表示企業可能得花更多人力成本開發整合及維護成本上,因此也應評估未來的擴展計畫與成本,切勿因小失大。


充分的軟體評估

企業組織應對軟體進行充分了解,包含如何取得、開源軟體版本更新速度、社群活躍程度、漏洞問題與版本現況。在充分了解後,才能評估該開源軟體對組織所可能帶來的資安風險。同時應考慮合規性、對現行系統的影響性及安全性。


充分的資產管控

明確的列出組織內所使用的開源軟體清單,以及每個開源軟體的應用範圍、使用者與軟體版本。明確的清單有助於後續維護更新,避免有所遺漏,並定期檢視,確保使用最新版本。同時,企業應做好存取控制,避免未經授權軟體執行以及只有授權的人員可以存取特定軟體,有助於降低資安風險。此外,已終止使用的軟體應進行全面的移除,包含相關配置,以避免遭利用。


充分的端點防護

為了避免駭客利用開源軟體的漏洞入侵目標伺服器,竊取重要資料,除了即時漏洞修補外,企業組織也可以導入威脅獵捕防護,即時偵測與防止惡意行為。尤其很多中小企業僅安裝傳統防毒軟體,然而傳統防毒軟體無法偵測漏洞利用所引發的一連串惡意行為。若是團隊沒有足夠資安能量,在資源許可下,可將資安防護交由外部資安團隊協助處理,強化整體安全防護。


擬定相關應變措施

應變措施的目的在於遇到事件能減少反應速度與影響範圍,因此企業可針對開源軟體的應用範圍擬定相關措施,包含備援機制與替代方案。例如若有無法修補的漏洞出現,是否有替代方案。企業可在進行軟體評估時,也同時評估同性質軟體,確保有其他可行方案能實施。


結語

以「食品安全」來思考「商業付費 vs.開源免費」的軟體安全問題,前者就如同商業公司出品的食品一般,會受到公司的嚴格管理與把關,例如食品包裝上的有效期限,讓消費者清楚知道食品的安全時間範圍。同樣地,由商業公司出品的授權軟體也會經過公司的把關,使用者可以獲得確定的保障,例如終止支援的公告或是提供明確的聯絡管道。

相對而言,開源軟體的安全性就如同由社區人員共同為食品安全背書一樣,仰賴於社區參與者的安全觀念與共同努力,以及使用者的自覺,使用者需記住『什麼時候買』、『可以放多久』,但大部分使用者都不會記住這些細節,選擇吃吃看來確認是否安全。


我們難以避開使用開源軟體,甚至有些開源軟體的設計非常好並且被大量採用,比如Apache Log4j便是一個知名的案例代表,卻不曾想到在2021年底造成全球性大規模的漏洞安全問題,並促使「軟體供應鏈安全」的議題。因此在採用開源軟題前,應對該開源軟體的應用與風險充分了解,並做好防護與應變措施。其實不止開源軟體,任何打著『免費』使用的軟體,像是破解軟體或是用來破解的軟體都應充分了解這些軟體可能帶來的資安風險,保持警惕。

Comentarios


bottom of page