本文將探討CNC工具機相關的資安風險。趨勢科技針對四家代表性廠商進行了一系列資安評估,同時分析了工業4.0潮流下的一些技術發展,並針對真實世界安裝情境進行一系列的攻擊實驗。
電腦數值控制(CNC)是一種工廠內用來製造產品的工具機,這類機器已廣泛使用多年,而且在過去10年當中,由於連線能力的提升,這類工具機的應用還變得更廣。連線能力的提升也使得這類工具機更依賴軟體來運作,因此也更容易遭到駭客攻擊。這項弱點起因於工廠環境充斥著各式各樣的技術,但使用者卻缺乏安全觀念,不知該如何保護系統。
本篇文章將探討CNC工具機相關的資安風險。趨勢科技針對四家代表性廠商進行了一系列資安評估,同時分析了工業4.0潮流下的一些技術發展,並且針對真實世界安裝情境進行一系列的攻擊實驗。
以下是這份研究在挑選廠商時的幾個條件:
‧地理區域分散(也就是總部和分支機構遍部全球),同時業務也遍布全球。
‧在市場上已經有數十年歷史。
‧規模龐大,例如年營收至少10億美元以上。
‧採用業界廣泛使用技術,遍及各種不同製造領域。
了解CNC工具機
工具機是一種使用刀具將一塊原料切削成產品的裝置,這個過程稱為機械加工,它可生產出符合特定幾何形狀的成品。機械加工是一種消去法,換句話說,就是將不要的部分削除來創造出想要的形狀。
所謂「數位控制」(NC)是一種透過電腦來控制工具機的技術,這項技術革命性改變了工具機,讓它們變得更加精準,使用上也更有彈性。NC工具機現在廣泛應用於製造業,但也可應用於其他類型的設備,例如雷射與彎曲機。
基本概念介紹
為了讓讀者更容易理解趨勢科技的研究結果,以下稍微介紹工具機的一些基本概念,如圖1所示。
‧數值控制。NC是這台機器最重要的單元,因為它控制了整個流程。這套系統包含了視覺化程式設計功能,可加快製造程序的設定。此外,NC一定會配備人機介面(HMI)來幫助操作人員控制機器。
‧程式設計。工具機最普遍使用的程式設計語言是「G-code」(或稱為「G碼」,也就是RS-274),開發於1950年代。其程式是一連串的指令,每個指令由一個字母開頭的位址碼加數字組成,一行可以有好幾個指令,每一行稱做一個「單節」(Block)。位址碼代表的是移動方式或使用者呼叫的機能。
‧參數化程式設計。參數化程式設計是一種可讓程式根據不同數值而做調整的方式。這是透過使用者輸入的變數值來達成,程式會根據這些輸入值來做一些改變,這在工具機當中用來協助處理生產系統之間的回饋與封閉迴路控制之類的情況。
‧單節執行(Single Step)。此功能可以讓工作程式一次只執行一行。這樣一來,操作人員就能檢查程式碼執行後的結果是否達到最佳效果,進而決定是否該手動修改。
‧進給暫停(Feed Hold)。進給暫停功能主要用來查看複雜功能是否正確執行,先查看一下正在加工的部位,然後再繼續執行後續步驟。事實上,材料切削過程中所產生的碎屑有可能累積在加工部位,或累積在偵測器上,進而導致測量失準,或造成後續加工上的瑕疵(如果碎屑沒有清除的話)。
‧刀具。機械加工是一種使用「刀具」來將一塊原始材料上不要的部分去除的製造技巧。切削的動作是藉由被加工材料與刀具之間的相對速度來達成,也就是所謂的切削速度或表面速度。除了這項參數之外,進給速度(Feed Rate)(也就是刀具沿著被加工材料移動的速度)也會影響碎屑移除的過程。刀具的種類繁多,視加工的需求而定。
廠商評估
針對每一家廠商的研究,將會對其工具機執行一系列相同的資安評估:
‧所謂「工業4.0相容」技術,是智慧工廠設備用來對外傳輸資訊的一些介面和相關通訊協定,例如將生產資料傳送至中央系統以改善管理或降低成本。此外,也方便遠端管理,如此操作人員不須親臨現場也能變更要執行的程式。
‧利用像Nessus這類的自動化掃描工具來發掘這些對外暴露的服務是否有潛在的漏洞,包括一些可能造成危險的已知漏洞和組態設定錯誤,不過暫時略過這些問題,將焦點擺在領域相關的CNC介面攻擊。
‧接著,深入分析前面發現的CNC相關技術,看看是否存在著被攻擊的風險,並針對CNC控制器發動實際攻擊。為此,此次開發了一個攻擊工具,然後搭配廠商提供的專屬API來攻擊被發現的領域相關介面弱點。
‧將相關證據蒐集起來,然後通報給廠商,並提出一些防範建議。所有證據都來自於對真實世界安裝環境的測試結果,不過也使用模擬器來執行一些初步測試,或者當身邊沒有可用的實際環境時,也會用模擬器進行測試。
Haas
Haas是第一個被研究的廠商,因為很快就取得了他們的控制器(圖2)。一開始,先針對控制器模擬器執行連接埠掃描,找出該控制器使用的通訊協定。接著,測試了駭客在攻擊這些通訊協定時可能運用的方法,以測試這台機器的安全性,並在真實世界安裝的機器上驗證這些攻擊。
Okuma
Okuma在CNC控制器市場上獨樹一格的功能就是:他們的控制器採用模組化設計。雖然廠商最單純的裝置型態是一台微型控制器,但他們還提供了一個機制叫作「THINC API」,可對其控制器的功能進行高度客製化。透過這項技術,任何開發人員都能撰寫並安裝一個控制器擴充程式,其作法類似透過行動應用程式來擴充智慧型手機的功能(圖3)。
Heidenhain
為了實踐工業4.0的精神,Heidenhain提供了Heidenhain DNC介面讓其設備能與現代化數位工廠整合。Heidenhain DNC可在許多情境中提供自動化資料交換功能,支援設備與生產資料擷取(MDA/PDA)系統、企業資源規劃(ERP)、製造執行系統(MES)、庫存管理系統、電腦輔助設計製造(CAD/CAM)系統、生產活動控制系統、模擬工具、工具管理系統等等(圖4)。
在測試過程中拿到了Heidenhain提供給系統整合商用來幫控制器開發介面的函式庫,這套名為「RemoTools SDK」的函式庫僅提供給某些特定的合作夥伴。
Fanuc
類似Heidenhain一樣,Fanuc也提供了一個介面叫做「FOCAS」,讓其CNC工具機與智慧環境整合。即使這個介面提供的遠端呼叫功能比其他廠商有限(也就是僅有少數管理功能),但經實驗顯示駭客還是有辦法發動某些類型的攻擊,例如損害、阻斷服務和挾持(圖5)。
研究發現
在測試中找出了18種不同的攻擊手法(或變化形),並將它們分成入侵、損害、阻斷服務、挾持以及竊取資料等五大類,如表1所示。
Haas、Okuma以及Heidenhain三家的控制器所包含的問題數量大致相同,都是15個左右,而Fanuc確定可能遭遇的攻擊有10個。不幸的是,從研究中可以看出該領域缺乏關於資安與隱私權的危機意識,因而造成一些嚴重而迫切的問題。
一些自動化方面的功能,例如從遠端設定刀具幾何數值,或經由連網的資源來決定參數化程式中的數值,在製造業已經越來越普遍。
防範措施
研究後發現這四家廠商當中只有兩家支援安全認證,但這兩家也不會預設啟用安全認證,使得設備很容易遭到駭客攻擊。啟用安全認證,對於防止工業4.0功能遭到濫用至關重要。
資源存取控管系統對於降低攻擊的衝擊很重要,廠商有許多技術都開放讓所有人可以存取控制器的資源,這樣做很危險。正確的作法是採用一套資源控管系統來有限度開放權限,如此有助於確保唯有經過授權的使用者才能存取控制器的資源,防止未經授權的人員存取這些資源。
針對系統整合商與使用者,建議採用以下防範措施:
‧具備環境偵測能力的工業入侵防護及偵測(IPS/IDS)系統:最近資安廠商的這類產品突然大受歡迎,它們內建網路引擎,可即時擷取工業流程相關的網路流量來偵測攻擊。
‧網路分割:正確的網路架構非常重要,正如研究顯示,所有受測的工具機都暴露了一些可能遭駭客濫用的介面。
‧正確的系統修補:現代化CNC工具機都配備完整的作業系統與複雜的軟體,因此難免會含有一些資安漏洞,而這樣的情況也確實發生在本次測試的機器上。
負責任地揭露
本次逐一測試了各家廠商的控制器,並適時通知了相關的廠商,第一次通知廠商的時間是在2021年11月,最後一次是2022年3月(表2)。美國「網路資安與基礎架構安全局」(Cybersecurity and Infrastructure Security Agency,CISA)旗下的「工業控制系統網路緊急應變小組」(Industrial Control Systems Cyber Emergency Response Team,簡稱ICS-CERT)在研究期間提供了不少寶貴的協助。
截至本文撰寫為止,所有四家廠商都已回覆了研究時提出的疑慮,而且大部分廠商都在合理時間內針對所發現的問題提出了某種程度的解決方案。更重要的是,所有廠商都對本次研究感到興趣,並且都決定改善其說明文件或接洽其工具機的製造商,希望能為終端使用者提供更安全的解決方案。
(本文出處:https://www.trendmicro.com/vinfo/tmr/?/ph/security/news/internet-of-things/uncovering-security-weak-spots-in-industry-4-0-cnc-machines)
<本文作者:Trend Micro Research 趨勢科技威脅研究中心本文出自趨勢科技資安部落格,是由趨勢科技資安威脅研究員、研發人員及資安專家全年無休協力合作,發掘消費者及商業經營所面臨層出不窮的資安威脅,進行研究分析、分享觀點並提出建議。>