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