OpenAtom OpenHarmony(以下簡稱“OpenHarmony”)作為面向全場景的開源分布式操作系統,可廣泛應用于智能家居物聯網終端、智能穿戴、智慧大屏、汽車智能座艙、音箱等智能終端,為用戶提供全場景跨設備的極致體驗。這些搭載OpenHarmony的智能終端設備(后文簡稱:OpenHarmony終端)涉及人們生活的方方面面,成了記錄人們日常行為數據和隱私信息的重要載體。不可避免地,這讓OpenHarmony終端成了網絡黑客的攻擊目標,一旦發現設備存在安全漏洞,攻擊者就會針對漏洞進行惡意攻擊和利用。不僅影響到用戶設備、隱私和財產安全,對社會安全更是埋下了潛在隱患。
為守護OpenHarmony終端安全,HUAWEI DevEco Testing安全測試團隊帶來了成熟的安全解決方案——注入攻擊測試。
一、HUAWEI DevEco Testing介紹
HUAWEI DevEco Testing(后文簡稱:DevEco Testing)是華為為OpenHarmony生態合作伙伴打造的測試服務平臺,為伙伴接入提供專業的測試服務,共筑高品質的智能硬件和應用產品。
為幫助生態合作伙伴守護OpenHarmony終端安全,DevEco Testing團隊將華為公司多年的攻防經驗實例化,總結出一套豐富、全面的安全測試用例庫,形成了標準化的黑盒Fuzz自動化測試服務——注入攻擊測試。
由于DevEco Testing注入攻擊測試是一種黑盒Fuzz自動化測試,下面我們就先從Fuzz測試談起,通過對Fuzz測試的原理和測試執行過程的介紹,讓你深入了解DevEco Testing注入攻擊測試的背后原理。
二、Fuzz測試
面對網絡黑客對漏洞的惡意攻擊,相較于被動應對外部的暴力破解,安全專家們更樂于主動出擊。通過模擬攻擊者思維,針對業務系統進行漏洞挖掘,以暴露出業務流程中潛在的安全缺陷。業內進行漏洞挖掘常用的手段包括靜態代碼掃描、Fuzz測試、滲透測試等,其中Fuzz測試因其效果顯著且原理簡單,被廣泛運用在黑客界、學術界及企業界。例如,Google將Fuzz測試用例作為產品代碼交付的標準項,以確保交付組件是穩定、安全和可靠的;微軟也在產品全周期中持續進行Fuzz測試,從單元測試到系統測試,Fuzz從不停止。
1.Fuzz測試原理及應用場景
Fuzz測試是一種通過提供大量非預期的輸入(惡意/隨機數據),并監測被測系統是否出現異常結果,來發現應用程序中是否存在安全問題的安全測試技術。
通常來說,只要是接受外部數據輸入的業務組件/接口,都需要進行Fuzz測試的覆蓋。比如,存在外部入口的協議報文、外部文件的解析代碼、系統服務接口等,都涉及外部數據輸入,被攻擊后安全風險非常高。以常見的移動操作系統為例,如圖1所示,Fuzz測試會涉及到以下接口:
圖1 Fuzz測試涉及的接口
(1)應用層:上層應用對外暴露的組件,可能接受外部Intent輸入。
(2)系統服務:大量系統服務開放接口被上層應用調用,承擔著系統的核心功能。
(3)網絡服務:Socket通信是設備對外傳送數據的主要方式,是常見的遠程攻擊面。
(4)內核驅動:通過ioctl(input/output control)系統調用向上層提供讀寫/控制設備的能力。
針對以上接口,Fuzz測試能發現大多數常見的安全問題:空指針、數組越界、緩沖區溢出、整數溢出、格式串漏洞、資源分配、有效性檢查缺少和內存泄漏等。相較于上線后發現漏洞緊急修復,通過Fuzz測試將常見的安全問題暴露在上線前是企業更優的選擇。
2.Fuzz測試執行過程及分類
Fuzz測試效果備受業內認可,其執行過程并不復雜,通常分為以下步驟:
(1)選擇高風險模塊作為測試目標。
(2)基于種子數據,通過自動或是半自動的方式生成大量測試數據。
(3)將生成的數據作為輸入,發送給被測試的系統執行。
(4)檢測被測系統的狀態(斷言、異常、進程crash、錯誤、邏輯錯誤、重啟、能否響應、響應是否正確、系統是否穩定等)。
(5)根據每次數據執行的結果,反向指導數據的變異,以生成更有效的數據、覆蓋更多分支。
(6)根據被測系統的異常狀態,判斷是否存在潛在的安全漏洞。
圖2 Fuzz測試執行過程
根據測試過程中使用的不同關鍵技術,Fuzz測試可以分為白盒Fuzz、黑盒Fuzz、灰盒Fuzz三類:
其中,黑盒Fuzz測試效率最高,無需考慮內部邏輯結構,僅著眼于程序外部結構,即可快速驗證大量潛在的安全威脅。
對于測試人員來說,黑盒Fuzz測試雖然簡單易執行,但想要根據業務流程設計出系統、完備的測試解決方案,往往需要投入巨大成本,對于大多數企業來說這是難以負擔的。為幫助生態合作伙伴解決這些難點,DevEco Testing推出了注入攻擊測試服務。
三、DevEco Testing注入攻擊測試
DevEco Testing注入攻擊測試,是一種黑盒Fuzz自動化測試服務。在進行注入攻擊測試時,將程序看作一個不能打開的黑盒子。在不考慮程序內部結構及特性的情況下,測試人員靈活選擇接口進行測試,以檢查程序是否能適當地接收輸入數據而產生正確的輸出信息。
當前,注入攻擊測試服務主要提供以下能力:
1.已集成系統服務接口和網絡通信接口的Fuzz測試能力,支持一次任務多種接口類型同時測試。
2.支持系統全量SA接口和Socket端口的全自動化測試,零用例,零學習成本。
3.可定制攻擊強度和攻擊權限,平臺基于配置自動進行Fuzz測試引擎的無縫切換。
4.支持測試過程中手機的隨時插拔,能夠在設備重連后繼續執行Fuzz測試任務。
使用DevEco Testing注入攻擊測試服務的測試過程也非常簡單,演示如下:
測試過程演示
關鍵步驟如下:
1. 梳理接收外部數據輸入的業務和接口(一般遵循新增/修改、對外開放暴露、權限低、距離攻擊入口近的原則,制定風險優先級)。
2. 分析被測接口或者業務是如何被外部調用的(無需關注業務或者接口是如何實現的,只關注如何被調用即可)。
3. 連接設備,創建任務并執行。
4. 查看異常日志。
5. 根據異常分析是否存在漏洞。
6. 修復完漏洞后,重新測試驗證。
測試小貼士:
根據Fuzz測試原理,測試執行時間越長,覆蓋的分支越多,測試深度就越深。但產品測試,不可能無限期測試,需要平衡測試時長與效果。根據華為內部測試經驗,滿足以下兩個條件可結束測試:
1. 達到基本穩定:不生成新的Bug。
2. 達到測試充分:滿足時間或者次數要求。
具體的測試執行策略,開發者需根據自身業務情況確定。
四、結束語
目前許多開發者在產品設計和實現階段忽視了安全問題,以至于上線后風險難以評估和把控。DevEco Testing提倡將安全測試左移,及時暴露出系統及設備漏洞,通過提供專業、易用、開放的測試服務,幫助OpenHarmony生態伙伴提前規避潛在風險。
-
數據
+關注
關注
8文章
6909瀏覽量
88850 -
操作系統
+關注
關注
37文章
6747瀏覽量
123204 -
OpenHarmony
+關注
關注
25文章
3665瀏覽量
16162
原文標題:HUAWEI DevEco Testing注入攻擊測試:以攻為守,守護OpenHarmony終端安全
文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論