乐趣区

关于openharmony:HUAWEI-DevEco-Testing注入攻击测试以攻为守守护OpenHarmony终端安全

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. 剖析被测接口或者业务是如何被内部调用的(无需关注业务或者接口是如何实现的,只关注如何被调用即可)。

    1. 连贯设施,创立工作并执行。
    2. 查看异样日志。
    3. 依据异样剖析是否存在破绽。
    4. 修复完破绽后,从新测试验证。
      测试小贴士:依据 Fuzz 测试原理,测试执行工夫越长,笼罩的分支越多,测试深度就越深。但产品测试,不可能无限期测试,须要均衡测试时长与成果。依据华为内部测试教训,满足以下两个条件可完结测试:
  3. 达到根本稳固:不生成新的 Bug。
  4. 达到测试充沛:满足工夫或者次数要求。
    具体的测试执行策略,开发者需依据本身业务状况确定。

    四、结束语

    目前许多开发者在产品设计和实现阶段漠视了平安问题,以至于上线后危险难以评估和把控。DevEco Testing 提倡将平安测试左移,及时暴露出零碎及设施破绽,通过提供业余、易用、凋谢的测试服务,帮忙 OpenHarmony 生态搭档提前躲避潜在危险。对本期内容感兴趣的小伙伴,点击公众号“浏览原文”填写《DevEco Testing 测试服务试用申请》,即可申请试用 DevEco Testing 注入攻打测试服务。
    更多平安测试解决方案行将上线,敬请期待!

退出移动版