新冠疫情(COVID-19)為世界帶來翻轉性的改變,居家隔離、遠距工作、在家辦公等趨勢讓物聯網成為一種必需,也讓物聯網(IoT)更貼近每個人的生活。然而,需求攀升除了帶來商機外,也帶來艱困的網路安全挑戰。
過去駭客的攻擊行動,多半透過攻擊已知弱點來達到入侵目的,但現在愈來愈多攻擊者逐漸開始利用未知弱點發動零時差攻擊,且手段漸趨成熟。以惡意程式針對未知弱點攻擊毫無防備的物聯網設備已成為攻擊者的最愛,因此物聯網產品未知弱點與弱點修補問題也成高度被重視的議題。
除了這些潛在攻擊造成的資安風險外,各品牌商也重視物聯網資安,紛紛對製造商提出資安規範要求,而對前進國際市場的設備製造商來說,更多了一層國際法規須要正視,因此物聯網設備的安全對製造商而言是一大難題。
已知與未知弱點讓物聯網世界成為戰場
只要是弱點,都會讓駭客嘗試利用它來達到攻擊的目的,當弱點被成功利用進而形成威脅,便會造成資安問題,由此可知,整個攻擊鏈中,安全弱點是造成資安問題最基本的根源,弱點簡單可以分為兩種:
.已知弱點(Known Vulnerability)
談到已知弱點最常被使用的便是CVE(Common Vulnerabilities and Exposures),當有新的弱點被發現時,將會被分配一個CVE編號並透過美國國家弱點資料庫(NVD)機構公布。然而,隨著網路發達,會公布弱點的機構也愈來愈多,甚至有的研究員或駭客會直接在網路上揭露並公開討論自己發現的弱點,而這一類的弱點不一定會有CVE編號。
.未知弱點(Unknown Vulnerability)
未知弱點是已存在的弱點,但從未被任何官方組織或社群公開揭露過。
要降低資安威脅,成本最低但也最重要的工作就是在軟體開發階段找出弱點並修補,市面上有不少工具可以幫助開發人員找出已知弱點,然而卻很少有人談及未知弱點議題,更精確地說,是很少有人重視未知弱點的存在,然而未知弱點卻是物聯網時代最可能導致重大後果的潛在風險之一。
善用模糊測試找出未知安全弱點
接下來介紹何謂模糊測試(Fuzz Testing),以及它的用途為何。
何謂模糊測試
模糊測試(Fuzz Testing)主要目的是將自動或半自動產生的測試資料,輸入受測目標中進行測試,同時在測試過程中監視程式是否出現異常狀況,例如崩潰、斷言失敗(Assertion Failed),以發現可能的程式錯誤、檢測軟體或電腦系統的安全弱點,而模糊測試正是當前能找出未知弱點最有效的技術方法之一。
以通訊協定(Protocol)來說,通訊協定主要規範通訊的兩個端點,在進行資料交換時所需要遵守的執行與對話流程、語言與資料格式,在通訊的端點都確實遵循規範來發送與接收資料的狀況下,得以確保資料交換過程中的安全性與正確性。但在網路通訊環境中,可能有惡意的第三方透過網路連接,傳送帶有特定意圖且經過精確調整的內容到資料接收端,這些惡意資料內容(Malformed)可以造成的危害包括緩衝區溢位(Buffer Overflow)或注入攻擊(Injection)等。
模糊測試能發現什麼
再以收看電視節目為例,說明在通訊的兩個端點進行資料交換過程中,為何其安全性及正確性需要被重視。
正常的通訊協定
正常的視訊資料傳輸完畢會讓觀眾看到該節目應該存在的主角,並處在適當的位置(圖1)。
.透過智慧式產生式模糊測試(Smart Fuzz)
在視訊資料傳輸過程中,若被攻擊並輸入不符合協定規範的惡意資料,在資料傳輸完成後,便會明顯發現不屬於該節目的角色出現(圖2)。
.經由變異式模糊測試
在視訊資料傳輸過程中,若被攻擊並輸入符合協定規範的惡意資料,在資料傳輸完成後,便會發現一位偽裝很好卻不屬於該節目的角色(圖3)。
模糊測試最主要的功能即是找出未知弱點,尤其是嚴重的安全性缺陷,這也是大部分駭客攻擊時會利用的弱點,其目的是造成系統崩潰、記憶體洩漏(Memory Leak)及未處理的異常(Unhandled Exception)狀況等,最終達成服務失效或控制系統。在測試過程中,若與黑箱測試(Black Box Testing)等其他方法一起使用,將能更有效地找出未知弱點。
然而,模糊測試也並非萬能,模糊測試對於找出系統的重大安全性缺陷是很有效的方法,但像病毒、蠕蟲、木馬等之類的安全問題,則不屬於模糊測試可以發現的問題。
模糊測試時的技術困難點
模糊測試的技術困難點,在於必須符合協定規範的前題下,打造可以引發接收端問題的惡意資料。
.測試案例數量與時間取捨最具難度
模糊測試能有效發現弱點,但實際使用上卻相當複雜,其技術困難點在於必須在符合協定規範的前題下,打造可以引發接收端問題的惡意資料,做為測試的基礎。而現今協定多樣化,且每個協定皆有不同的技術規範,若沒有專業經驗支援,測試資料的有效性具備相當的難度;再者若沒有良好的測試資料來進行模糊測試,還會造成測試案例重複、誤判,以及測試時間過於冗長的問題。
.持續自動化測試的問題
模糊測試是透過大量資料來進行,因此測試過程需要較長的一段時間,而過程中若受測設備(DUT)因異常而停止運作時(Crash),測試便會中止無法繼續,直到有人手動重啟受測設備後,測試工作才得以再繼續進行下去。因此,若無法自動化重啟測試,除了增加人力負擔外,還拉長了整體的測試時間。
.誤判機率高
模糊測試最讓測試人員困擾的就是經常會有誤判的狀況產生,例如測試封包量較大,受測設備回應較慢便被誤判為設備異常、又例如交握(Handshaking)錯誤導致設備反應異常,或者測試區的網路環境不穩定所造成設備回應異常等原因,上述狀況讓測試人員不得不透過人工檢測方式,一一確認該異常是否為真正的安全弱點。
實現模糊測試之分層處理
國際標準化組織(ISO)將電腦網路體系結構劃分為七個不同的階層,第一層在底部;而OSI/RM是Open Systems Interconnection Reference Model的縮寫,乙太網的通訊傳輸是架構在嚴謹的資料格式定義與傳輸順序的前題上,才能實現高度的正確性與效率,因此模糊測試並不是隨機調整資料中的某個部分這樣簡單,除了該階層協定的符合,更必須考量到其底層協定的完整性。
例如安華聯網以自主研發的onFuzz架構實現模糊測試的分層處理,模糊用例產生器(Fuzzing Pattern Generator)負責打造惡意內容(Malformed Data),資料發送器(Dispatcher)負責將惡意內容封裝到標準的底層協定中,透過這樣的結構足以使HERCULES SecDevice支援OSI第二層到第七層的模糊測試(圖4)。
測試效能增強器 提升測試時效性
模糊測試另外一個令人困擾的一點在於測試過程不易瞭解、測試時間不易掌握,對於隨機產生與變異的過程中,獨立元件個別對於資料進行亂數產生,容易發生亂數碰撞的問題,而在不同階段發出相同的惡意格式內容,造成測試資源與時間的非必要損耗。HERCULES SecDevice透過特有的專利技術,有效排除相同的惡意內容,達到法規要求的不重複唯一惡意內容上限,同時加速測試時間,提升測試時效性。SecDevis模糊測試(Smart Fuzz)可用來探索未知弱點(圖5):
.探索協定未知弱點
探索有限/無限Ethernet、Web XML Streams、JSON Streams的緩衝區溢位、格式化字串、特殊字符、命令注入等未知弱點,驗證產品抵禦惡意攻擊的強健性。
.降低測試時間
特殊演算法可去除重複測試案例,增加測試效率,減少測試時間。
.高判斷精準度
採用多重異常偵測方法,提高判斷弱點精準度。例如同時採用ICMP與正常協定溝通方式,判斷設備是否異常。
支援廣泛通訊協定 滿足不同產業需求
產生式模糊測試技術,測試效果佳,但技術難度與開發成本高,連帶影響到產品售價,造成產業界與設備製造商無法找到合適的測試解決方案。以HERCULES SecDevic為例,其具備60個以上的通訊協定(圖6),可以有效提供資安從業人員完整的測試配套,滿足網通、工控、醫療與監控等產業的測試需求。
以醫療設備醫療影像傳輸系統PACS為例,PACS主要用來儲存傳送醫療影像,做為醫生診斷的輔助資料或做為病歷交換的來源。而PACS主要進行影像傳輸的通訊協定DICOM(醫療設備傳輸影像協定),便是醫療設備專屬協定。DICOM是以TCP/IP為基礎的應用協定,在各系統間進行溝通,若採用一般的網路通訊協定格式進行測試,或許可以測到TCP的弱點,但卻無法真正測到影像交換協定DICOM的漏洞,而SecDevice除了可以滿足一般網路弱點測試外,也能滿足醫療設備特殊協定所需的模糊測試需求。
加碼提升設備安全性國際資安法規著重穩健性
鑑於增強設備安全性的需要,國際法規與標準均制定相關輸入驗證與測試的要求,列舉國際法規對於穩健性的要求重點摘要如下:
.ETSI 303 645
歐洲電信標準協會(European Telecommunications Standards Institute, ETSI)在303645要求中第5.13項(Validate input data)規定,消費物聯網設備軟體應驗證通過使用者介面輸入的資料,或透過應用程式介面(API),或在服務和設備網路間傳輸的資料。格式不正確的資料,或跨不同類型的介面傳輸的程式碼可能會破壞系統。攻擊者或測試人員可使用自動化工具(例如模糊器),找出因未驗證資料而出現的潛在差距和弱點。
.FDA
FDA上市許可確效報告中規範,必須提交安全風險管理報告(Risk Management Documentation)。這是一種全面的方法,以有意義的方式同時考量到安全和安全風險分析。它提供了評估和緩解活動的摘要,合理地確保設備安全。另外,為確保網路安全風險控制的充分性,因而進行測試的說明(例如在執行指定的安全策略時之安全有效性、所需流量條件的性能、適當的穩定性和可靠性),測試報告應包括「穩健性測試」與「邊界分析」。
.IEC 62443
2019年2月27日國際電工委員會(IECEE)釋出工業自動化和控制系統的安全性第4-2部分(IEC 62443-4-2 : 2019),將系統完整性列為基礎要求的第三項(Fundamental Requirement No.3 : System Integrity),其他元件要求第3.54項輸人驗證(Input Validation),便規範了工控設備的技術安全要求。
.MDR
MDCG 2019-16 Guidance on Cybersecurity for medical devics的3.7 Vrification/Validation中說明,MDR附件I第17.2節和IVDR附件I第16.2節要求裝有軟體的設備,或本身就是設備的軟體,應在考慮開發原理的前提下,根據最新技術開發和製造軟體生命週期及風險管理,包括資訊安全、驗證和確認。安全驗證和確認的主要手段是測試,方法包括安全功能測試、模糊測試、弱點掃描和滲透測試,也可以使用安全性程式碼分析工具,掃描產品中使用的開源函式庫來完成其他安全測試,以識別已知問題的組件。
.TAICS
工業局委託台灣資通產業標準聯盟(TAICS)制定「影像監控系統資安標準」,在第「5.3.2通訊協定與設置安全」中規範,產品之RTSP、RTCP、RTP與TLS等關鍵通訊協定,不應存在錯誤處理弱點,包括檢視訊息長度、訊息識別碼及關鍵協定屬性等欄位,導致產品因發生崩潰而服務中止的情形,而此項要求的主要測試方式即是使用模糊測試。
面對未知弱點,在產品開發過程中運用工具進行掃描,發掘潛在安全弱點是一個好方法,但更好的方式是透過建立符合規範的產品開發流程,並在每個階段導入安全設計重點,同時在測試階段運用自動化工具進行檢測,以達到降低產品在上市前的資安風險,也才不會因資安因素而延誤產品的上市計畫。
善用自動化檢測工具 迅速探索未知弱點
如HERCULES SecDevic是針對IoT、IIoT及醫療設備產品資安檢測需求所設計的自動化工具,檢測範圍包含已知弱點、未知弱點、網頁弱點、Wi-Fi弱點、服務阻斷測試、後門測試等面向,可支援超過60項協定。若運用其多元且廣泛的支援,能協助聯網產品在開發過程有效找出已知與未知弱點(圖7)。
進行模糊測試時不可或缺的功能
業者開發出的自動化資安檢測工具,在模糊測試方面,具備了以下幾項功能。
豐富的協定支援度滿足產業測試需求
支援的網路層級橫跨OSI第二層至第七層架構中的各種協定,包含Core Network、IIoT、Web Application、VoIP/IMS、Wireless等60個以上的協定,其支援的豐富性足以滿足不同產業的測試需求,例如工控常用的modbus/DNP3、安控常用的RTSP/RTCP/RTP等影像串流協定,網通設備最容易出現問題的HTTP與Web Application,物聯網設備常用的Wi-Fi協定等。由於具廣泛的協定支援性,不僅適用於物聯網設備製造商,即使是為各行各業進行安全弱點檢測的實驗室也非常適用。
精準定位技術,提供近乎零誤判的測試結果
關於模糊測試經常發生誤判,造成人工重複驗證的問題,在自動化檢測工具獨特的異常定位技術下,可大幅減少這類的問題。當受測產品在測到異常時,其精準定位法可透過主動回應分析與重複驗證方式,排除偽陽性(False Positive)的誤判狀況,確保設備出現異常的條件不是隨機發生,以減少誤判,同時降低人工篩選測試結果的時間。
支援安全弱點掃描自動化,定期且持續的執行
為了滿足市場需求,軟體更新週期越來越短,造成開發與測試團隊極大的負擔,如何在有限的時間內完成資安檢測,又能保證測試品質?這是個難以兼顧的挑戰;因此自動化與可靠的工具輔助必不可少,例如HERCULES SecDevice提供整合式容易使用的介面,使得每次軟體改版的定期性測試過程,可以不再耗費大量人力資源。另外,其內建的DUT重啟功能,也能讓受測設備在遇到異常,無法繼續進行測試工作時,可以自動重啟以繼續往下的測試任務,省去等待人工重啟的時間。
協助團隊在開發初期找出產品弱點與資安風險
由感測器、網路攝影機、路由器及伺服器等組成複雜的物聯網環境,這些設備組成的混合式網路環境,使資安風險更加多樣、影響更加廣泛,現已有資安廠商開發的自動化弱點風險檢測工具,可提供各式聯網設備運作時主要的網路通訊協定支援,使用模糊測試技術發掘設備潛藏的資安漏洞,以圖8為例,會依照不同通訊協定發送符合該協定的變異封包,並且持續發送不同的變異封包給待測設備並且監控其設備回應,假如設備有不正常回應,就代表找到該設備的潛在漏洞,如此可以在設計、測試階段協助排除問題,避免設備出廠後才發現問題,衍生出修補與召回的成本。
事前化解潛藏風險免除日後棘手攻擊
在物聯網的環境中,已知弱點掃描僅是物聯網設備檢測的基本項目,單靠已知弱點掃描已不足以解決產品的弱點及資安風險,尤其是面對架構與功能差異很大的物聯網設備,必須透過專門為其量身打造的模糊測試工具,來挖掘物聯網設備的未知弱點,才能有效避免潛藏風險變成日後棘手的零時差攻擊。
(本文作者為安華聯網產品開發總監)