以Electron為基礎的桌面應用程式安全問題

較早前曾提出5個不用桌面版通訊程式的原因,其實很多類似的應用程式使用Electron framework,但其更新難以控制,事實上有關問題影響更加廣泛,除了通訊程式以外,還涉及數百款其他應用程式。

Electron受開發者歡迎的原因

Electron是一款採用網絡技術(上要是HTML、CCS和JavaScript)跨平台桌面應用程式開發框架,最初由GitHub創立為其原代碼編輯器Atom工作(所以它的原名為Atom Shell),稍後該框架重新命名為Electron,最終發展成極受歡迎的創建桌面應用程式工具,支援多個操作系統,包括Windows、macOS和Linux。Electron本身是以Chromium瀏覽器引擎為基礎,負責在桌面應用程式內顥示網上內容,所以任何Electron應用程式都能作為獨立網站於Chromium瀏覽器內開啟。

用戶通常並不清楚當中如何運作,普遍認為Electron應用程式和一般的應用程式相同,安裝、執行、交出某些檔案存取權限和偶爾更新到最新版本。而Electron在開發者圈子中迅速跑出的原因,是無論創建怎樣的數碼服務,都需要網上版本,而Electron框架就讓開發者開發網上版,並以此為基礎,製造出支援所以桌面操作系統的功能完整應用程式。

Electron其他方便的功能包括製作安裝封包、診斷、發佈到應用程式商店及自動更新,而且能快速、方便的開發,一次就能於所有桌面操作系統中運作,都是Electron框架受開發者歡迎的原因。

Electron為基礎的應用程式問題

以Electron為基礎的應用程式也有一系列的缺點,從使用者角度來看,最明顯就是速度遲緩,Electron為基礎的軟件通常需要較多資源,以及檔案容量過大的問題,原因是每個應用程式都背著整個Chromium瀏覽器,因為需要透過它作為一種媒介。另一個問題是網絡瀏覽器很受網絡犯罪份子歡迎,安裝越多Electron為基礎的應用程式,也等於安裝了越多的瀏覽器能被罪犯作為目標。

Chrome/Chromium差不多每星期都有新的安全漏洞出現,單是今年已被發現超過3個嚴重、70個高等級安全漏洞,更甚者是最受歡迎瀏覽器的安全漏洞很快就會被利用,這意味著很多人會以為安全漏洞只是一般的錯誤,其實可以被網絡犯罪份子用來發動攻擊。如果是獨立的Chrome瀏覽器的話問題不大,Google很快就會推出補丁,並持續遊說用戶安裝更新及重啟瀏覽器。

但Electron為基礎的應用程式則十分不同,內建的Chromium瀏覽器只會在應用程式開發商推出新版本時才會進行補丁,還未計算成功遊說用戶安裝這個障礙,所以很多時候用戶除了安裝了很多個瀏覽器(在不知情下),但也難以控制更新和保護瀏覽器的安全,以及含有多少未補丁的安全漏洞。而框架的創造者們也知道這個問題,強烈建議應用程式開發者及中推出補丁,而用戶只能希望建議有效。

Electron為基礎的應用程式

可能很多人想像不到Electron為基礎的應用程式有多普遍,以下是廣受歡迎的部份程式:

1PasswordAgora FlatAsanaDiscord
FigmaGitHub DesktopHyperLoom
Microsoft TeamsNotionObsidianPolyplane
PostmanSignalSkypeSlack
SpliceTidalTrelloTwitch
Visual Studio CodeWhatsAppWordPress Desktop

合適的保安考慮

由於使用Electron為基礎的應用程式中多,考慮保安時有以下三個建議:

  • 盡可能把使用Electron為基礎的應用程式數量減至最少,其實沒有想像中困難,使用該框架的程式通常都標榜擁有極佳的網上版本,其功能與方便差不多與桌面應用程式相同。
  • 選錄公司員工使用的Electron為基礎的應用程式,並優先進行更新,這些通常是不同形式的協作應用程式。
  • 使用可靠的保安方案,有助擊退已知但補丁欠奉的安全漏洞攻擊。

資料來源:Kaspersky Blog