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生态伙伴提前规避潜在风险。对本期内容感兴趣的小伙伴,点击公众号“阅读原文”填写《DevEco Testing测试服务试用申请》,即可申请试用DevEco Testing注入攻击测试服务。

更多安全测试解决方案即将上线,敬请期待!

HUAWEI DevEco Testing注入攻击测试:以攻为守,守护OpenHarmony终端安全的更多相关文章

  1. HTML5 App的代码注入攻击

    原文链接 摘要 基于HTML5的手机app(译者注:以下简称HTML5 app)越来越流行了, 在大多数情况下它比native应用更容易适配不同的移动操作系统.它开发起来很方便,可以使用标准的web技 ...

  2. 安全性测试入门:DVWA系列研究(二):Command Injection命令行注入攻击和防御

    本篇继续对于安全性测试话题,结合DVWA进行研习. Command Injection:命令注入攻击. 1. Command Injection命令注入 命令注入是通过在应用中执行宿主操作系统的命令, ...

  3. web安全测试--sql注入攻击

     先要自行了解sql的几个概念: 1. or '1'='1' 2. order by 3. union : 联合查询需要表字段相同 sql注入攻击漏洞判断步骤: 1.‘ 2.查看数据库信息 3.绕过过 ...

  4. 实例讲解 SQL 注入攻击

    这是一篇讲解SQL注入的实例文章,一步一步跟着作者脚步探索如何注入成功,展现了一次完整的渗透流程,值得一读.翻译水平有限,见谅! 一位客户让我们针对只有他们企业员工和顾客能使用的企业内网进行渗透测试. ...

  5. Java程序员从笨鸟到菜鸟之(一百零二)sql注入攻击详解(三)sql注入解决办法

    sql注入攻击详解(二)sql注入过程详解 sql注入攻击详解(一)sql注入原理详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办法.怎么来解决和防范sql注入, ...

  6. Java程序员从笨鸟到菜鸟之(一百零一)sql注入攻击详解(二)sql注入过程详解

    在上篇博客中我们分析了sql注入的原理,今天我们就来看一下sql注入的整体过程,也就是说如何进行sql注入,由于本人数据库和网络方面知识有限,此文章是对网上大量同类文章的分析与总结,其中有不少直接引用 ...

  7. 防止SQL注入攻击的一些方法小结

    SQL注入攻击的危害性很大.在讲解其防止办法之前,数据库管理员有必要先了解一下其攻击的原理.这有利于管理员采取有针对性的防治措施. 一. SQL注入攻击的简单示例. statement := &quo ...

  8. PHP的SQL注入攻击的技术实现以及预防措施

    最近在折腾 PHP + MYSQL 的编程.了解了一些 PHP SQL 注入攻击的知识,总结一下经验.在我看来,引发 SQL 注入攻击的主要原因,是因为以下两点原因: 1. php 配置文件 php. ...

  9. SQL注入攻击

    SQL注入攻击是黑客对数据库进行攻击的常用手段之一.随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多.但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候, ...

  10. SQL注入攻击的种类和防范手段

    观察近来的一些安全事件及其后果,安全专家们已经得到一个结论,这些威胁主要是通过SQL注入造成的.虽然前面有许多文章讨论了SQL注入,但今天所讨论的内容也许可帮助你检查自己的服务器,并采取相应防范措施. ...

随机推荐

  1. 维基百科Wikipedia镜像网站列表(全部已被封)

    序号 网址 备注 1 https://chi.jinzhao.wiki/wiki (中文版) https://en.jinzhao.wiki/wiki/Main_Page (英文版)  支持多种语言. ...

  2. 【Azure Web Job】Azure Web Job执行Powershell脚本报错 The term 'Select-AzContext' is not recognized as the name

    问题描述 Azure Web Job执行Powershell脚本报错 Select-AzContext : The term 'Select-AzContext' is not recognized ...

  3. 读 NebulaGraph源码 | 查询语句 LOOKUP 的一生

    本文由社区用户 Milittle 供稿 LOOKUP 是图数据库 NebulaGraph 的一个查询语句.它依赖索引,可以查询点或者边的信息.在本文,我将着重从源码的角度解析一下 LOOKUP 语句的 ...

  4. 图查询语言 nGQL 简明教程 vol.01 快速入门

    本文旨在让新手快速了解 nGQL,掌握方向,之后可以脚踩在地上借助文档写出任何心中的 NebulaGraph 图查询. 视频 本教程的视频版在B站这里. 准备工作 在正式开始 nGQL 实操之前,记得 ...

  5. String对象和String常量池

    1. String的基本特性 String:字符串,使用一对 "" 引起来表示 String s1 = "mogublog" ; // 字面量的定义方式 Str ...

  6. 图数据库基准测试 LDBC SNB 系列讲解:Schema 和数据生成的机制

    LDBC(Linked Data Benchmark Council)Social Network Benchmark,简称 LDBC SNB,是一种针对社交网络场景的评估图数据库性能的基准测试. L ...

  7. [VueJsDev] 日志 - 更新日志

    [VueJsDev] 目录列表 https://www.cnblogs.com/pengchenggang/p/17037320.html 更新日志 ::: details 目录 目录 更新日志 Lo ...

  8. vscode 利用正则 搜索标签 tags (?=.*关键字1)(?=.*关键字2).*

    vscode 利用正则 搜索标签 (?=.关键字1)(?=.关键字2).* 这里关键词是可以多个并且不按照顺序搜索的,就是写起来需要 (?=.关键字) 最后. 结尾 我是不是需要制作一个转换的小工具呢 ...

  9. 使用gradle打包springboot项目

    这边整理下自己项目使用gradle打jar包的坎坷经历,使用的方式是命令行的方式 首先配置build.gradle跟我一样 plugins { id 'java' id 'org.springfram ...

  10. Android视音频基础知识

    学术概念 采样和采样频率: ⼀秒钟内采样的次数称为采样频率.采样频率越⾼,越接近原始信号,但是也加⼤了运算处理的复杂度.根据Nyquist采样定理,要想重建原始信号,采样频率必须⼤于信号中最⾼频率的两 ...